@@ -62,10 +62,10 @@ var registry = {};
6262 ...
6363 }
6464 },
65- action: { Goal: ..,
66- Result: ..,
67- Feedback: ..
68- }
65+ // action: { Goal: ..,
66+ // Result: ..,
67+ // Feedback: ..
68+ // }
6969 },
7070 'packagename2': {..}
7171 };
@@ -120,14 +120,18 @@ function setMessageInRegistry(messageType, message, type, subtype) {
120120 if ( type == "msg" ) {
121121 // message
122122 registry [ packageName ] [ type ] [ messageName ] = message ;
123+ } else if ( type == "action" ) {
124+ // action
125+ // concating subtype "Goal", "Result", or "Feedback"
126+ registry [ packageName ] [ "msg" ] [ messageName + subtype ] = message ;
123127
124128 } else {
125- // service or action
129+ // service
126130 if ( ! registry [ packageName ] [ type ] [ messageName ] ) {
127131 registry [ packageName ] [ type ] [ messageName ] = { } ;
128132 }
129133
130- var serviceType = subtype ; // "Request" or "Response", or "Goal", "Result", "Feedback"
134+ var serviceType = subtype ; // "Request" or "Response"
131135 registry [ packageName ] [ type ] [ messageName ] [ serviceType ] = message ;
132136 }
133137}
@@ -165,21 +169,21 @@ function getMessageFromFile(messageType, filePath, type, callback) {
165169 if ( type == "msg" ) {
166170 message = buildMessageClass ( details ) ;
167171 setMessageInRegistry ( messageType , message , type ) ;
168- callback ( null ) ;
172+ callback ( null , message ) ;
169173 } else if ( type == "srv" ) {
170174 request = buildMessageClass ( details . request ) ;
171175 response = buildMessageClass ( details . response ) ;
172176 setMessageInRegistry ( messageType , request , type , "Request" ) ;
173177 setMessageInRegistry ( messageType , response , type , "Response" ) ;
174- callback ( null ) ;
178+ callback ( null , message ) ;
175179 } else if ( type == "action" ) {
176180 goal = buildMessageClass ( details . goal ) ;
177181 result = buildMessageClass ( details . result ) ;
178182 feedback = buildMessageClass ( details . feedback ) ;
179183 setMessageInRegistry ( messageType , goal , type , "Goal" ) ;
180184 setMessageInRegistry ( messageType , result , type , "Result" ) ;
181185 setMessageInRegistry ( messageType , feedback , type , "Feedback" ) ;
182- callback ( null ) ;
186+ callback ( null , message ) ;
183187 } else {
184188 console . log ( "unknown service" , type ) ;
185189 }
@@ -220,6 +224,14 @@ function parseMessageFile(fileName, details, type, callback) {
220224 rtv . request . md5 = rtv . response . md5 = calculateMD5 ( rtv , "srv" ) ;
221225 callback ( null , rtv ) ;
222226 } else if ( type == "action" ) {
227+ // TODO: need to create the action-prefix message types,
228+ // too, where we wrap the message like this:
229+ // Header header
230+ // actionlib_msgs/GoalID goal_id
231+ // ShapeGoal goal
232+ //
233+ // see /opt/ros/indigo/share/turtle_actionlib/msg/ShapeGoal.msg
234+
223235 // actions treat each message type as independent, each
224236 // with their own md5sum
225237 var rtv = {
@@ -292,6 +304,8 @@ function calculateMD5(details, type) {
292304 console . log ( "calculateMD5: Unknown type" , type ) ;
293305 return null ;
294306 }
307+
308+ console . log ( "calculateMD5:" , details . messageType , " text:" , text ) ;
295309 return md5 ( text ) ;
296310}
297311
@@ -559,6 +573,7 @@ function serializeMessage(message, bufferInfo) {
559573 bufferInfo . buffer = [ buffer ] ;
560574 bufferInfo . length = bufferSize ;
561575
576+ // console.log("serializeMessage", buffer.toString('hex'));
562577 return bufferInfo ;
563578}
564579
0 commit comments