From 97a86ed6adb02f1cd78eda0bb9ae11974046becb Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 23 Oct 2015 18:26:59 +0200 Subject: Invoke --- tda.erl | 33 ++++++++++++++------------------- 1 file 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. -- cgit v1.2.3