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