summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-23 18:26:59 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-10-23 18:26:59 +0200
commit97a86ed6adb02f1cd78eda0bb9ae11974046becb (patch)
tree7f337ecf936f8a5daf91fd7e05ba366171178a21
parent65f8f5577020e965f183a31ba6f9a4d3a567edb4 (diff)
Invoke
-rw-r--r--tda.erl33
1 files changed, 14 insertions, 19 deletions
diff --git a/tda.erl b/tda.erl
index 535eb12..3d1b60f 100644
--- a/tda.erl
+++ b/tda.erl
@@ -3,7 +3,7 @@
-export([associate_request/0, associate_result/1]).
-export([release_request/0, release_result/1]).
-export([associate_abort/1]).
--export([system_status/1]).
+-export([system_status/0, system_status/1]).
-include("acse.hrl").
-include("rose.hrl").
@@ -22,21 +22,9 @@ associate_request() ->
% Reject
% <<97,25,128,2,7,128,161,7,6,5,43,12,0,129,90,162,3,2,1,1,163,5,161,3,2,1,1>>
associate_result(Bin) ->
- {ok, Pdu} = acse:decode('AARE-apdu', Bin),
- case Pdu#'AARE-apdu'.result of
- accepted ->
- [UI] = Pdu#'AARE-apdu'.'user-information',
- {_, Enc} = UI#'EXTERNAL'.encoding,
- {ok, {_, Ver}} = acse:decode('ACSEUserInformationForCSTA', Enc),
- {Pdu#'AARE-apdu'.result,
- Pdu#'AARE-apdu'.'result-source-diagnostic',
- Ver#'NewACSEUserInformationForCSTA'.cSTAVersion};
- 'rejected-permanent' ->
- {Pdu#'AARE-apdu'.result,
- Pdu#'AARE-apdu'.'result-source-diagnostic'};
- 'rejected-transient' ->
- {Pdu#'AARE-apdu'.result,
- Pdu#'AARE-apdu'.'result-source-diagnostic'}
+ case acse:decode('AARE-apdu', Bin) of
+ {ok, Pdu} -> Pdu#'AARE-apdu'.result;
+ {error, Reason} -> Reason
end.
release_request() ->
@@ -53,9 +41,16 @@ associate_abort(Bin) ->
% <<161,12,2,1,1,2,2,0,211,48,3,10,1,2>>
% <<162,11,2,1,1,48,6,2,2,0,211,5,0>>
system_status(Bin) ->
- Inv = #'Invoke'{invokeId = 1, opcode = {local, 211}},
- io:format("~p~n", [Inv]),
- case rose:encode('Invoke', Inv) of
+ case rose:decode('ROS', Bin) of
+ {ok, {invoke, Invoke}} -> Invoke;
+ {error, Reason} -> Reason
+ end.
+
+system_status() ->
+ RR = #'ReturnResult_result'{opcode = {local, 211}, result = <<5,0>>},
+ R = #'ReturnResult'{invokeId = {present, 1}, result = RR},
+ io:format("~p~n", [R]),
+ case rose:encode('ROS', {returnResult, R}) of
{ok, Invoke} -> Invoke;
{error, Reason} -> Reason
end.