summaryrefslogtreecommitdiff
path: root/rose.erl
diff options
context:
space:
mode:
Diffstat (limited to 'rose.erl')
-rw-r--r--rose.erl15
1 files changed, 11 insertions, 4 deletions
diff --git a/rose.erl b/rose.erl
index 51a1ec9..093b372 100644
--- a/rose.erl
+++ b/rose.erl
@@ -1,16 +1,23 @@
-module(rose).
--export([decode/1, encode/3, dispatch/1]).
+-export([decode/1, return/3, invoke/3, dispatch/1]).
-include("Remote-Operations-Generic-ROS-PDUs.hrl").
decode(Msg) -> 'Remote-Operations-Generic-ROS-PDUs':decode('ROS', Msg).
-encode(Id, Op, Msg) -> 'Remote-Operations-Generic-ROS-PDUs':encode('ROS',
+return(Id, Op, Msg) -> 'Remote-Operations-Generic-ROS-PDUs':encode('ROS',
{returnResult, #'ReturnResult'{invokeId = Id,
result = #'ReturnResult_result'{opcode = Op, result = Msg}}}).
+invoke(Id, Op, Msg) -> 'Remote-Operations-Generic-ROS-PDUs':encode('ROS',
+ {invoke, #'Invoke'{invokeId = Id, opcode = Op, argument = Msg}}).
+
dispatch({invoke, #'Invoke'{invokeId = Id, opcode = Op}}) ->
case Op of
- {local, 211} -> encode(Id, Op, <<5,0>>)
- end.
+ {local, 211} ->
+ {ok, Status} = status:status(),
+ return(Id, Op, Status);
+ {local, 51} -> ok
+ end;
+dispatch({returnResult, #'ReturnResult'{result = #'ReturnResult_result'{result = Msg}}}) -> {result, Msg}.