sga500e.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #ifndef __SGA500E_H__
  2. #define __SGA500E_H__
  3. #include "plt.h"
  4. #define SGA500E_NBR_MAX 4
  5. /*
  6. 0X0100 设备状态 0-6;(0:正常;1:低报;2:高报;6:传感器故障)
  7. 0X0101 测量浓度值0-65535
  8. 0X0102 小数点位置 0-4(0:无;1:1位小数;2:2位小数;3:3位小数;4:4位小数)
  9. 0X0103 物质名称0-255,详见附表1
  10. 0X0104 测量单位 0-3;(0 :%LEL;1:%VOL等于mol/mol ;2:PPM等于μmol/mol;3:PPB)
  11. 0X0105 高限报警值00-65535
  12. 0X0106 低限报警值00-65535
  13. 0X0107 检测仪地址01-247
  14. 0X0108 检测量程00-65535
  15. */
  16. struct sga500e_t{
  17. char szinfo[32];
  18. int cmd;
  19. struct comm_t comm;
  20. struct statemachine_t sm;
  21. int state; // 0 : normal
  22. // 6 : fault
  23. char szstate[16];
  24. double density;
  25. int decimal_pos; //
  26. int name;
  27. char szname[32];
  28. int unit;
  29. char szunit[32];
  30. int alarm_hi;
  31. int alarm_lo;
  32. };
  33. extern struct sga500e_t sga500e[SGA500E_NBR_MAX + 1];
  34. int sga500e_init();
  35. int sga500e_get_state( int idx);
  36. char* sga500e_get_state_str( int idx);
  37. int sga500e_get_cmd( int idx);
  38. void sga500e_reset_cmd( int idx);
  39. int sga500e_send_sm_cmd( int idx, int val );
  40. int sga500e_get_addr( int idx );
  41. int sga500e_chk_stat_all( int stat);
  42. int sga500e_send_sm_cmd_all( int val );
  43. int sga500e_get_comm_st(int idx);
  44. double sga500e_get_density( int idx);
  45. int sga500e_get_chan_idx(int idx);
  46. int sga500e_get_tick(int idx);
  47. char* sga500e_get_comm_state_str(int idx);
  48. int sga500e_get_nbr();
  49. int sga500e_get_tool_data(int idx,char* buf);
  50. int sga500e_get_tbmqtt_data(int idx,char* buf);
  51. int sga500e_get_cloud_data(int ctn_idx,int idx,char* buf);
  52. int sga500e_get_bkds_data(int idx,char* buf);
  53. #endif