summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-11-11 04:08:19 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-11-11 04:08:19 +0100
commitf791f0f2cadf54b4d0a5db7f84afc866f287bbf2 (patch)
treebff6648f8ea65abf082ac3d9273396bae325bdf9
parent5dbc4e98a2cf21e992d5687b51913b9c6eec4296 (diff)
Add generic decoder rose/acse
-rw-r--r--src/pbx_conn.erl2
-rw-r--r--src/pbx_pdu.erl13
2 files changed, 15 insertions, 0 deletions
diff --git a/src/pbx_conn.erl b/src/pbx_conn.erl
index a4eecec..8326b84 100644
--- a/src/pbx_conn.erl
+++ b/src/pbx_conn.erl
@@ -28,6 +28,8 @@ handle_cast({error, Reason}, Socket) ->
handle_info({tcp, _, Data}, Socket) ->
pbx_acse:decode(Data),
+ Pdu = pbx_pdu:decode(Data),
+ io:format("PDU ~p~n", [Pdu]),
{noreply, Socket};
handle_info({tcp_closed, _}, Socket) ->
diff --git a/src/pbx_pdu.erl b/src/pbx_pdu.erl
new file mode 100644
index 0000000..b6b4cd2
--- /dev/null
+++ b/src/pbx_pdu.erl
@@ -0,0 +1,13 @@
+-module(pbx_pdu).
+-export([decode/1]).
+-include("Remote-Operations-Generic-ROS-PDUs.hrl").
+-include("ACSE-1.hrl").
+
+decode({asn1_ExtAlt, <<Data/binary>>}) ->
+ {ok, Pdu} = 'Remote-Operations-Generic-ROS-PDUs':decode('ROS', Data),
+ Pdu;
+decode(<<Data/binary>>) ->
+ {ok, Pdu} = 'ACSE-1':decode('ACSE-apdu', Data),
+ decode(Pdu);
+decode(Pdu) ->
+ Pdu.