summaryrefslogtreecommitdiff
path: root/tda.erl
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-29 14:00:41 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-10-29 14:00:41 +0100
commitfc86381ccac10fa30aefe76996a716ae1d677f5b (patch)
treec7a0c6c2ab9ab0c254bdb01088c2aad3119ff277 /tda.erl
parentb9697094228db7832e75a8699a2678338f7c7c22 (diff)
Prepare for rebar
Diffstat (limited to 'tda.erl')
-rw-r--r--tda.erl89
1 files changed, 0 insertions, 89 deletions
diff --git a/tda.erl b/tda.erl
deleted file mode 100644
index 0798365..0000000
--- a/tda.erl
+++ /dev/null
@@ -1,89 +0,0 @@
--module(tda).
-
--export([start/0, client/1, stop/0]).
--export([ext/0, co/0, snapshot/1]).
-
--define(TIMEOUT, 300000).
--define(CONNECT_TIMEOUT, 3000).
--define(HOST, "192.168.240.20").
--define(PORT, 33333).
-
-start() ->
- register(tdaPid, spawn(?MODULE, client, [{dial, ?HOST, ?PORT}])).
-
-stop() ->
- counter:stop(),
- tdaPid ! acse:release().
-
-ext() ->
- tdaPid ! rose:invoke({local, 51}, csta:lines(ext)).
-
-co() ->
- tdaPid ! rose:invoke({local, 51}, csta:lines(co)).
-
-snapshot(Device) ->
- tdaPid ! rose:invoke({local, 74}, csta:snapshot(Device)).
-
-client({dial, Host, Port}) ->
- io:format("Dial ~p:~p~n", [Host, Port]),
- Conn = gen_tcp:connect(Host, Port,
- [binary, {active, once}, {packet, 2}],
- ?CONNECT_TIMEOUT),
- counter:start(),
- client(Conn);
-
-client({ok, Sock}) ->
- io:format("Connected~n", []),
- tdaPid ! acse:associate(),
- loop(Sock);
-
-client({error, Reason}) ->
- io:format("Error: ~p~n", [Reason]),
- {error, Reason}.
-
-loop(Sock) ->
- inet:setopts(Sock, [{active, once}]),
- receive
- {ok, Reply} ->
- %io:format("Send ~p~n", [Reply]),
- gen_tcp:send(Sock, Reply);
- {tcp, Sock, Data} ->
- %io:format("Got ~p~n", [Data]),
- case decode(Data) of
- {ok, Reply} -> tdaPid ! {ok, Reply};
- ok -> ok;
- error -> exit(error)
- end;
- {tcp_closed, _} ->
- io:format("Connection closed~n", []),
- exit(closed)
- after ?TIMEOUT ->
- io:format("Connection timed out~n", []),
- exit(timeout)
- end,
- loop(Sock).
-
-decode(Data) ->
- case dispatch(Data) of
- rose ->
- {ok, Rose} = rose:decode(Data),
- io:format("ROSE> ~p~n", [Rose]),
- rose:dispatch(Rose);
- acse ->
- {ok, Acse} = acse:decode(Data),
- io:format("ACSE> ~p~n", [Acse]),
- acse:dispatch(Acse)
- end.
-
-dispatch(<<Head:8,_/binary>>) ->
- case Head of
- 96 -> acse; % aarq
- 97 -> acse; % aare
- 98 -> acse; % rlrq
- 99 -> acse; % rlre
- 100 -> acse; % abrt
- 161 -> rose; % invoke
- 162 -> rose; % returnResult
- 163 -> rose; % returnError
- 164 -> rose % reject
- end.