[ragel-users] Re: State Chart Finishing Actions?
Bob Paddock
graceindustr... at gmail.com
Tue Apr 15 17:55:44 UTC 2008
Am I not understanding something here, or is there
a bug with State Charts in 6.1?
I'm dealing with a serial protocol. I want to stay
in the starting state until I receive a ">".
Here is a snippet of have I have:
action Starting {
wxLogVerbose( _("Starting [State{%d}]") , cs );
}
bootloader = (
start: (
'>' @start_signal_received -> UnitID
any* -> start # Only a '>' means anything to us in
the starting state
)@Starting,
UnitID: (
'>' @start_signal_received -> UnitID |
'A' @{ DeviceID_u16 = 1; } -> FlashSize |
...
Everything seems to work but the action 'Starting' is called for
*EVERY* state in the chart. If this is what any* does, this
isn't what I want. I only want 'Starting' called when I
transition from 'start' to 'UnitID'. Once I leave 'start'
I don't want to see any more 'Starting' message.
?
Example output:
13:22:49: >
13:22:49: Execute[0x3E] {Byte passed to write exec}
13:22:49: Begin
13:22:49: Synchronization Signal Received.
13:22:49: Starting [State{2}] {This is good, it belongs here}
13:22:49: [Not printable]
13:22:49: Execute[0x95]
13:22:49: Starting [State{4}] {This is *BAD*, doesn't belong here}
13:22:49: Device_ID=8, EXECCODE=00FF, PageMul = 8
13:22:49: o
13:22:49: Execute[0x6F]
13:22:49: Starting [State{5}] {This is *BAD*, doesn't belong here}
13:22:49: DeviceFlashSize = 65536
If I use *any in other states then they show up in the list when
then should not as well.
Compiled on Windows with Digital Mars Compiler with:
BootLoaderStateChart.cpp: BootLoaderStateChart.rl
G:\U\Ragel61\bin\ragel -s BootLoaderStateChart.rl -o
BootLoaderStateChart.cpp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.colm.net/pipermail/ragel-users/attachments/20080415/2941f81b/attachment-0001.html>
More information about the ragel-users
mailing list