summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-23 12:12:06 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-10-23 12:12:06 +0200
commit3b36fb5bf7537913145f7bd0ae512c7df13dfb34 (patch)
tree541e9521953d1ac76633bb423edae5507b974859
parent8eb831679c305703b2a8332e87ae39afa23b55fe (diff)
Encode AARQ and decode AARE
-rw-r--r--tda.erl28
1 files changed, 18 insertions, 10 deletions
diff --git a/tda.erl b/tda.erl
index 073da6e..6bf486d 100644
--- a/tda.erl
+++ b/tda.erl
@@ -1,18 +1,26 @@
-module(tda).
--export([login/0]).
+-export([associate_request/0, associate_result/1]).
-include("ACSE-1.hrl").
-include("CSTA-application-context-information-csta3.hrl").
-login() ->
+associate_request() ->
+ Ver = {newDefinition, #'NewACSEUserInformationForCSTA'{
+ cSTAVersion = [versionFive]}},
+ {ok, Enc} = 'CSTA-application-context-information-csta3':encode(
+ 'ACSEUserInformationForCSTA', Ver),
Pdu = #'AARQ-apdu'{'application-context-name' = {1, 3, 12, 0, 218},
- 'user-information' = #'EXTERNAL'{
+ 'user-information' = [#'EXTERNAL'{
'direct-reference' = {1, 3, 12, 0, 285, 200},
- encoding = #'NewACSEUserInformationForCSTA'{
- cSTAVersion = [versionFive]
- }
- }
- },
+ encoding = {'single-ASN1-type', Enc}
+ }]},
+ 'ACSE-1':encode('AARQ-apdu', Pdu).
- {ok, Bits} = 'ACSE-1':encode('AARQ-apdu', Pdu),
+%Bin = <<97,47,128,2,7,128,161,7,6,5,43,12,0,129,90,162,3,2,1,0,163,5,161,3,2,1,1,190,20,40,18,6,7,43,12,0,130,29,129,72,160,7,160,5,3,3,0,8,0>>,
+associate_result(Bin) ->
+ {ok, Pdu} = 'ACSE-1':decode('AARE-apdu', Bin),
+ [UI] = Pdu#'AARE-apdu'.'user-information',
+ {_, Enc} = UI#'EXTERNAL'.encoding,
+ {ok, {_, Ver}} = 'CSTA-application-context-information-csta3':decode(
+ 'ACSEUserInformationForCSTA', Enc),
+ {Pdu#'AARE-apdu'.result, Ver#'NewACSEUserInformationForCSTA'.cSTAVersion}.
- list_to_binary(Bits).