summaryrefslogtreecommitdiff
path: root/rose.erl
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-27 20:51:51 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-10-27 20:51:51 +0100
commitd4b3c570e2f10208912e16209a7759d860af178c (patch)
treec80fdd7d53978ceaa6ade8e17c9154e279ca2767 /rose.erl
parenta41822aa0165da09108674c9de894fff5d69b121 (diff)
Status module
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}.