-module(pbx_pdu). -export([start_link/0, add_handler/2, delete_handler/2, notify/1, call/2]). -export([decode/1, invoke/2]). -include("Remote-Operations-Generic-ROS-PDUs.hrl"). -include("ACSE-1.hrl"). start_link() -> gen_event:start_link({local, ?MODULE}). add_handler(Handler, Args) -> gen_event:add_handler(?MODULE, Handler, Args). delete_handler(Handler, Args) -> gen_event:delete_handler(?MODULE, Handler, Args). notify(Args) -> gen_event:notify(?MODULE, Args). call(Handler, Args) -> gen_event:call(?MODULE, Handler, Args). %%% decode({asn1_ExtAlt, <>}) -> {ok, Pdu} = 'Remote-Operations-Generic-ROS-PDUs':decode('ROS', Data), Pdu; decode(<>) -> {ok, Pdu} = 'ACSE-1':decode('ACSE-apdu', Data), decode(Pdu); decode(Pdu) -> Pdu. invoke(Module, Args) -> pbx_pdu:notify({invoke, Module:opcode(), Module:encode(Args)}).