<div><br>Am I not understanding something here, or is there<br>a bug with State Charts in 6.1?</div>
<div>
<p>I'm dealing with a serial protocol.  I want to stay<br>in the starting state until I receive a ">".</p>
<p>Here is a snippet of have I have:</p>
<p>action Starting {<br> wxLogVerbose( _("Starting [State{%d}]") , cs );<br>}</p>
<p>bootloader = (<br> start: (<br>  '>' @start_signal_received -> UnitID<br>  any*                       -> start # Only a '>' means anything to us in the starting state<br> )@Starting,</p>
<p> UnitID: (<br>  '>' @start_signal_received   -> UnitID         |</p>
<p> 'A' @{ DeviceID_u16 = 1; }    -> FlashSize      |<br> ...</p>
<p>Everything seems to work but the action 'Starting' is called for<br>*EVERY* state in the chart.  If this is what any* does, this<br>isn't what I want.  I only want 'Starting' called when I<br>transition from 'start' to 'UnitID'.  Once I leave 'start'<br>
I don't want to see any more 'Starting' message.</p>
<p>?</p>
<p>Example output:<br>13:22:49: ><br>13:22:49: Execute[0x3E]  {Byte passed to write exec}<br>13:22:49: Begin<br>13:22:49: Synchronization Signal Received.<br>13:22:49: Starting [State{2}]  {This is good, it belongs here}</p>

<p>13:22:49: [Not printable]<br>13:22:49: Execute[0x95]<br>13:22:49: Starting [State{4}] {This is *BAD*, doesn't belong here}<br>13:22:49: Device_ID=8, EXECCODE=00FF, PageMul = 8</p>
<p>13:22:49: o<br>13:22:49: Execute[0x6F]<br>13:22:49: Starting [State{5}] {This is *BAD*, doesn't belong here}<br>13:22:49: DeviceFlashSize = 65536</p>
<p>If I use *any in other states then they show up in the list when<br>then should not as well.</p>
<p>Compiled on  Windows with Digital Mars Compiler with:<br></p>
<p>BootLoaderStateChart.cpp: BootLoaderStateChart.rl<br> G:\U\Ragel61\bin\ragel -s BootLoaderStateChart.rl -o BootLoaderStateChart.cpp<br></p>
<p> </p></div>