summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-29 11:33:12 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-10-29 11:33:12 +0100
commite944d2b3d236c5aeba04455773e5cd8e5f1507c0 (patch)
tree0c55c21c33f86b7b07c0afef42b33cd4d415d9c8
parent03774c4e3033235d7fab446c6a6d8a9cf3ce4803 (diff)
Snapshot
-rw-r--r--csta.erl10
-rw-r--r--rose.erl17
-rw-r--r--tda.erl5
3 files changed, 28 insertions, 4 deletions
diff --git a/csta.erl b/csta.erl
index 6aa904a..ca5fb09 100644
--- a/csta.erl
+++ b/csta.erl
@@ -1,8 +1,10 @@
-module(csta).
--export([lines/1, decode/1, status/0]).
+-export([lines/1, decode/1, status/0, snapshot/1]).
-include("CSTA-escape-service.hrl").
+-include("CSTA-snapshot-device.hrl").
+-include("CSTA-device-identifiers.hrl").
decode(Data) ->
'CSTA-escape-service':decode('EscapeArgument', Data).
@@ -21,3 +23,9 @@ lines(Device) ->
status() ->
'CSTA-system-status':encode('SystemStatusRes', {noData, []}).
+
+snapshot(Device) ->
+ 'CSTA-snapshot-device':encode('SnapshotDeviceArgument',
+ #'SnapshotDeviceArgument'{
+ snapshotObject = #'DeviceID'{
+ deviceIdentifier = {deviceNumber, Device}}}).
diff --git a/rose.erl b/rose.erl
index 908f217..650061c 100644
--- a/rose.erl
+++ b/rose.erl
@@ -26,6 +26,8 @@ dispatch({invoke, #'Invoke'{invokeId = Id, opcode = Op, argument = Data}}) ->
ok;
{local, 71} ->
ok;
+ {local, 74} ->
+ ok;
{local, 211} ->
return(Id, Op, csta:status());
_ ->
@@ -35,6 +37,17 @@ dispatch({invoke, #'Invoke'{invokeId = Id, opcode = Op, argument = Data}}) ->
dispatch({returnResult, #'ReturnResult'{result = Data}}) ->
dispatch(Data);
-dispatch(#'ReturnResult_result'{result = Data}) ->
- io:format("Result: ~p~n", [Data]),
+dispatch({returnError, #'ReturnError'{errcode = Code, parameter = Par}}) ->
+ io:format("Err: ~p ~p~n", [Code, Par]),
+ error;
+
+dispatch(#'ReturnResult_result'{opcode = Op, result = Data}) ->
+ case Op of
+ {local, 74} ->
+ {ok, Status} = 'CSTA-snapshot-device':decode(
+ 'SnapshotDeviceResult', Data),
+ io:format("Result: ~p~n", [Status]);
+ _ ->
+ io:format("Result: ~p~n", [Data])
+ end,
ok.
diff --git a/tda.erl b/tda.erl
index e030a57..863feea 100644
--- a/tda.erl
+++ b/tda.erl
@@ -1,7 +1,7 @@
-module(tda).
-export([start/0, client/1, stop/0]).
--export([ext/0, co/0]).
+-export([ext/0, co/0, snapshot/1]).
-define(TIMEOUT, 300000).
-define(CONNECT_TIMEOUT, 3000).
@@ -19,6 +19,9 @@ ext() ->
co() ->
tdaPid ! rose:invoke({present, 2}, {local, 51}, csta:lines(co)).
+snapshot(Device) ->
+ tdaPid ! rose:invoke({present, 2}, {local, 74}, csta:snapshot(Device)).
+
client({dial, Host, Port}) ->
io:format("Dial ~p:~p~n", [Host, Port]),
Conn = gen_tcp:connect(Host, Port,