Tasks #2337
Create parser for RST types
Status: | Feedback | Start date: | 07/01/2015 | |
---|---|---|---|---|
Priority: | Urgent | Due date: | ||
Assignee: | D. Wigand | % Done: | 100% | |
Category: | - | |||
Target version: | - |
Description
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.
Related issues
History
#1 Updated by J. Wienke almost 9 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 Anonymous almost 9 years ago
Well, as father of this engine, can you at least share your opinion on this? ;)
#3 Updated by Anonymous almost 9 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 9 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 9 years ago
- Related to Tasks #2348: Use reflections for nested RST types added
#6 Updated by D. Wigand almost 9 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 almost 9 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 almost 9 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?
#11 Updated by J. Wienke almost 9 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?