Wrap this up in a suitable wrapper and it works!
SC_MODULE(xactor)
{
public:
int state;
bool call;
bool DH;
uint8_t DH_d, H8_d;
void advance();
void TLM_call(uint8_t d)
{
DH_d = d;
DH = live;
call = active;
do { sc_wait(); } while (call != idle);
}
void process()
{
#include "generated_state_machine_code"
printf("State Strobe=%i Ack=%i DL_d=%i, state=%i\n", Strobe, Ack, DL_d, state);
}
SC_CTOR(xactor)
{
SC_THREAD(process) ;
...
}
Here's the working output:
State Strobe=0 Ack=0 DL_d=0, state=215 State Strobe=0 Ack=0 DL_d=0, state=215 State Strobe=0 Ack=0 DL_d=0, state=215 State Strobe=0 Ack=0 DL_d=0, state=646 State Strobe=0 Ack=0 DL_d=0, state=838 State Strobe=1 Ack=0 DL_d=10, state=327 netlevel4psink sink0: received data 10 State Strobe=1 Ack=1 DL_d=10, state=807 State Strobe=1 Ack=1 DL_d=10, state=794 State Strobe=0 Ack=1 DL_d=10, state=775 State Strobe=0 Ack=0 DL_d=10, state=786 State Strobe=0 Ack=0 DL_d=10, state=790 State Strobe=0 Ack=0 DL_d=10, state=502 State Strobe=0 Ack=0 DL_d=10, state=646 State Strobe=0 Ack=0 DL_d=10, state=646 State Strobe=0 Ack=0 DL_d=10, state=646 State Strobe=0 Ack=0 DL_d=10, state=646 State Strobe=0 Ack=0 DL_d=10, state=838 State Strobe=1 Ack=0 DL_d=10, state=327 netlevel4psink sink0: received data 10 State Strobe=1 Ack=1 DL_d=10, state=807 State Strobe=1 Ack=1 DL_d=10, state=794 State Strobe=0 Ack=1 DL_d=10, state=775 State Strobe=0 Ack=0 DL_d=10, state=786 State Strobe=0 Ack=0 DL_d=10, state=790 State Strobe=0 Ack=0 DL_d=10, state=790 State Strobe=0 Ack=0 DL_d=10, state=790