sm.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef SM_H
  2. #define SM_H
  3. struct err_t{
  4. int code;
  5. char szstr[128];
  6. };
  7. struct state_t{
  8. int code;
  9. char szstr[128];
  10. };
  11. struct statemachine_t{
  12. struct state_t* states;
  13. int state_nbr;
  14. struct err_t* errs;
  15. int err_nbr;
  16. int state;
  17. char szstate[16];
  18. int step;
  19. int count;
  20. int err;
  21. char szerrcode[64];
  22. unsigned char tick;
  23. int tick_timer;
  24. int tick_prd;
  25. /* timing statistics */
  26. int timing_timer;
  27. int timing_prd;
  28. double timing_tslastrun;
  29. double timing_totalcnt;
  30. double timing_totaltime;
  31. double timing_ave;
  32. double timing_max;
  33. double timing_cur;
  34. };
  35. void sm_set_state(struct statemachine_t* sm, int state, int err);
  36. int sm_get_state(struct statemachine_t* sm);
  37. char* sm_get_szstate(struct statemachine_t* sm);
  38. void sm_reset_timing(struct statemachine_t* sm, int timing_prd, int tick_prd);
  39. void sm_cal_timing(struct statemachine_t* sm);
  40. int sm_get_step(struct statemachine_t* sm);
  41. void sm_set_step(struct statemachine_t* sm, int step);
  42. int sm_get_count(struct statemachine_t* sm);
  43. void sm_set_count(struct statemachine_t* sm, int val);
  44. void sm_inc_count(struct statemachine_t* sm);
  45. void sm_get_summary(struct statemachine_t* sm, char* buf, int len);
  46. double sm_get_timeofday();
  47. #endif /* SM_H */