Tasks #2337

Create parser for RST types

Added by A. Nordmann almost 4 years ago. Updated over 3 years ago.

Status:FeedbackStart date:07/01/2015
Priority:UrgentDue date:
Assignee:D. Wigand% Done:

100%

Category:-
Target version:-

Description

The RSBDataParser currenly only knows how to work with some primitive types, but since the rsb-ccordination DSL now also support all RST types, the RSBDataParser needs to be extended. Either:
  • by implementing separate parsers for all RST types (not cool) or
  • by implementing a generic RST parser (cool!)

The second, cooler variant only works together when RST types DSL is propery integrated, because then SCXML is uniform.

engineInformer.jpg (397 KB) D. Wigand, 07/22/2015 04:10 PM


Related issues

Related to RSB SCXML Engine - Tasks #2348: Use reflections for nested RST types Feedback 07/21/2015

Associated revisions

Revision 1e31e7e4
Added by D. Wigand over 3 years ago

fixed enum probing. refs #2337

Revision 393c3e2d
Added by D. Wigand over 3 years ago

added converter loading. refs #2337

History

#1 Updated by J. Wienke almost 4 years ago

  • Assignee deleted (J. Wienke)

Someone can do this. But since I am not even using the engine, I won't ;)

#2 Updated by A. Nordmann almost 4 years ago

Well, as father of this engine, can you at least share your opinion on this? ;)

#3 Updated by A. Nordmann almost 4 years ago

  • Tracker changed from Bug to Tasks
  • Assignee set to D. Wigand
  • Priority changed from Normal to Urgent

If taking second approach, one could think about generating the specific type parsers from the RST dsl. Probably too much effort though (at least in the beginning).
-dwigand

#4 Updated by J. Wienke almost 4 years ago

I would approach this using the reflection API of protobuf. So far, the idea was that the engine itself should not be coupled to the DSL.

#5 Updated by D. Wigand almost 4 years ago

  • Related to Tasks #2348: Use reflections for nested RST types added

#6 Updated by D. Wigand over 3 years ago

  • Status changed from New to Feedback
  • % Done changed from 0 to 100

The parser itself should work now, but it gives me error messages like the following for every RST-type:
Caused by: org.apache.commons.scxml2.model.ModelException: rsb.converter.ConversionException: rsb.converter.NoSuchConverterException: No converter with key rst.euroc.ColoredPoseSetType$ColoredPoseSet registered in ConverterMap

I am not quite sure how to solve that, perhaps Johannes has an idea?

Until now the enhanced parser is only available in the experimental-rst-parser branch of the engine.

#7 Updated by J. Wienke over 3 years ago

You need to register the ProtocolBufferConverter for each type that you want to use. That's missing and what the exceptions is saying.

#9 Updated by D. Wigand over 3 years ago

Converter werden jetzt richtig geladen. Trotzdem sehe ich einen Punkt der hier und da zu einem Problem werden koennte: Da die Converter geladen werden muessen, bevor der Informer erstellt wird, muss die Informer-Instanziierung in der execution()-Methode geschehen was das Senden verlangsamt. Vielleicht hat hierfuer ja jemand eine gute Idee?

#10 Updated by D. Wigand over 3 years ago

engineInformer.jpg

#11 Updated by J. Wienke over 3 years ago

Wie ist das denn bisher geloest? Fuer Listener gibt es ja auch schon irgendeine Logik, dass die von Anfang an da sind, oder nicht?

Also available in: Atom PDF