Skip to content
This repository has been archived by the owner on Nov 2, 2021. It is now read-only.

Commit

Permalink
New btserver fil
Browse files Browse the repository at this point in the history
  • Loading branch information
mfeuer committed Jul 21, 2015
1 parent 9fc3218 commit 0a7f20b
Showing 1 changed file with 245 additions and 0 deletions.
245 changes: 245 additions & 0 deletions btserver.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
%% -*- erlang -*-

%% Copyright (C) 2014, Jaguar Land Rover
%%
%% This program is licensed under the terms and conditions of the
%% Mozilla Public License, version 2.0. The full text of the
%% Mozilla Public License is at https://www.mozilla.org/MPL/2.0/
%%
%% Configuration file for the (in-vehicle) IVI used by the hvac_demo
%%
%% See ../hvac_demo/README.md for details on the demo.
%%
%% See ../CONFIGURE.md for a details on the configuration process
%% itself.
%%
[
%% All erlang apps needed to fire up a node. Do not touch.
{apps,
[kernel,
stdlib,
sasl,
{setup, load},
syntax_tools,
lager,
crypto,
public_key,
exo,
compiler,
ssl,
asn1,
%% RVI-specific apps.

%% Do not touch unless you are replacing apps with your own
%% version. If you are replacing an app with a non-Erlang version,
%% it still has to be loaded in order to resolve.
%% If, for example, you want to deploy your own scheduler
%% outside Erlang, replace
%%
%% schedule,
%% with
%% { schedule, load },
%%
rvi,
rvi_common,
service_discovery,
service_edge,
authorize,
schedule,
dlink_tcp,
bt,
dlink_bt,
proto_bert,
proto_json ]},

%%
%% Custom environment settings
%% for all apps running on the node.
%%
{env,
[
%% Lager is the main logging mechanism.
%% See https://github.com/basho/lager for details.
%%
{lager,
[ { handlers,
%% Change this to debug, info, notice, warning, or error in
%% order to lower the console chatter.
[ {lager_console_backend, debug} ]
}
]
},

%% All RVI configuration is done here.
%% Please note that the rvi_node.sh launch script
%% can still override the port range and static nodes
%% through its command line parameters.
%%
{rvi,
[

%% Specify the node address that data_link uses to listen to
%% incoming traffic from other rvi nodes.
%%
%% This is the address that is announced to
%% other rvi nodes during service discovery and should be
%% forwarded through firewalls and port forwarding to to the port
%% specified by the configuration entry rvi -> components ->
%% data_link -> bert_rpc_server (see below).
%%
%% If this node is sitting behind a firewall and cannot
%% receive incomign connections on any address, its
%% node_address should be set to "0.0.0.0:0" to inform
%% the remote node that it should not attempt to
%% connect back to self.
{ node_address, "127.0.0.1:8807" },

%% Specify the prefix of all services that this rvi node is hosting.
%%
%% All local services regsitering with service edge will be prefixed with
%% the string below when they are announced to remote rvi nodes
%% that connect to this node (using the address specified
%% by node_address above).
%%
%% If a locally connected service registers itself as
%% "hvac/fan_speed", and the node_service_prefix is
%% "jlr.com/vin/1234/", this node will announce the service
%% "jlr.com/vin/1234/hvac/fan_speed" as being available
%% to remotely connected rvi nodes.
%%
%% Two rvi nodes should never have the same node_service_prefix
%% value unless all services add a system-wide unique name
%% to it.
%%
{ node_service_prefix, "jlr.com/bt/stoffe"},


{ routing_rules,
[
%% Make sure to have a default if you don't want your message
%% to error out immediately. With a default the message will
%% be queued until it times out, waiting for a remote node
%% to connect and announce that it can handle the targeted service.
{ "",
[
{ proto_json_rpc, dlink_tcp_rpc}
]
}
]
},
{ components,
[
%% A note about JSON-RPC calls vs gen_server calls:
%%
%% All locally connected services communicate with Service Edge
%% through JSON-RPC, as specified below.
%%
%% Communication between the RVi components, however, can be
%% either JSON-RPC or gen_server calls.
%%
%% JSON-RPC calls provide compatability with replacement components
%% written in languages other than Erlang.
%%
%% Gen_server calls provide native erlang inter-process calls that
%% are about 4x faster than JSON-RPC when transmitting large data volumes.
%%
%% If one or more of the components below are replaced with external
%% components, use JSON-RPC by specifying url and exo_http_opts
%% for all components.
%%
%% If you are running an all-native erlang system, use gen_server calls
%% by configuring gen_server.
%%
%% If you specify both gen_server and url/exo_http_opts, the gen_server
%% communicaiton path will be used for inter component communication.
%%
%% Please note that communication between two RVI nodes are
%% not affected by this since data_link_bert_rpc will use
%% BERT-RPC to communicate ( using the address/port specified
%% by bert_rpc_server).
%%

{service_edge,
[
%% Service_edge_rpc component is used as a gen_server
{ service_edge_rpc, gen_server,
[
%% JSON-RPC address will be translated to
%% an URL looking like this:
%% http://127.0.0.1:8801
%%
%% This URL is used both for communication with
%% locally connected services and for intra-component
%% communication in case the access method for
%% service_edge_rpc is specified as json_rpc.
{ json_rpc_address, { "127.0.0.1", 8801 } },

%% Websocket is used for websocket access, preferably
%% through the rvi.js package available for Javascript
%% apps in browsers and crosswalk who wants to interface
%% RVI.
{ websocket, [ { port, 8808}]}
]
}
]
},
{ service_discovery,
[ { service_discovery_rpc, gen_server,
[
{ json_rpc_address, { "127.0.0.1", 8802 }}
]
}
]
},
{ schedule,
[ { schedule_rpc, json_rpc,
[
{ json_rpc_address, { "127.0.0.1", 8803 }}
]
}
]
},
{ authorize,
[ { authorize_rpc, gen_server,
[
{ json_rpc_address, { "127.0.0.1", 8804 } }
]
}
]
},
{ protocol,
[ { proto_json_rpc, gen_server,
[
{ json_rpc_address, { "127.0.0.1", 8805 } }
]
}
]
},
{ data_link,
[
{ dlink_tcp_rpc, gen_server,
[
{ json_rpc_address, { "127.0.0.1", 8806 } },
%% Bert_rpc server specifies the port we should
%% listen to for incoming connections
%% from other rvi nodes.
%% A specific NIC address can also be specified
%% through the {ip, "192.168.0.1" } tuple.
{ server_opts, [ { port, 8807 }]}
%% { persistent_connections, [ "38.129.64.13:8807" ]}
]
},
{ dlink_bt_rpc, gen_server,
[

{ server_opts, [ { channel, 1 }]}
]
}

]
}
]
}
]}
]}
].

0 comments on commit 0a7f20b

Please sign in to comment.