mqtt.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #ifndef MQTT_H
  2. #define MQTT_H
  3. #include "plt.h"
  4. struct mqtt_t
  5. {
  6. int dbg;
  7. MQTTClient cli;
  8. int enable;
  9. char szservip[32];
  10. int servport;
  11. char szclientid[150];
  12. char szaccesstoken[64];
  13. char szusername[64];
  14. char szpasswd[64];
  15. char sztopic[128];
  16. int timezone;
  17. int connlost;
  18. int conncnt;
  19. MQTTClient_deliveryToken token;
  20. MQTTClient_connectOptions conn_opts;
  21. int cmd;
  22. double txbuf_usage; /* 0-100 */
  23. double rxbuf_usage; /* 0-100 */
  24. double pub_starttime;
  25. double pub_endtime;
  26. double pub_totaltime; //
  27. double pub_totalcnt;
  28. double pub_max;
  29. double pub_ave;
  30. int pub_failed; // 当前连续失败了多少次
  31. double pub_totalFailcnt; // 总共失败了多少次
  32. double pub_maxFailcnt; // 连续失败多少次
  33. // int tick;
  34. struct statemachine_t sm;
  35. struct comm_t comm;
  36. };
  37. extern struct mqtt_t mqtt;
  38. int mqtt_init(void);
  39. int mqtt_set_state(int state, int errcode);
  40. int mqtt_get_state();
  41. int mqtt_send_sm_cmd(int cmd);
  42. int mqtt_get_cmd();
  43. void mqtt_reset_cmd();
  44. void mqtt_lock_txbuf();
  45. void mqtt_unlock_txbuf();
  46. int mqtt_get_rb_used(void);
  47. int mqtt_get_rb_size(void);
  48. void mqtt_init_txbuf();
  49. void mqtt_lock_txbuf();
  50. void mqtt_unlock_txbuf();
  51. void mqtt_queue_txbuf(mqtt_ringbuffer_element_t data);
  52. int mqtt_dequeue_txbuf(mqtt_ringbuffer_element_t *data);
  53. int mqtt_peek_txbuf(mqtt_ringbuffer_element_t *data, mqtt_ringbuffer_size_t index);
  54. int mqtt_get_txbuf_used(void);
  55. int mqtt_get_txbuf_size(void);
  56. void mqtt_init_rxbuf();
  57. void mqtt_lock_rxbuf();
  58. void mqtt_unlock_rxbuf();
  59. void mqtt_queue_rxbuf(mqtt_ringbuffer_element_t data);
  60. int mqtt_dequeue_rxbuf(mqtt_ringbuffer_element_t *data);
  61. int mqtt_peek_rxbuf(mqtt_ringbuffer_element_t *data, mqtt_ringbuffer_size_t index);
  62. int mqtt_get_rxbuf_used(void);
  63. int mqtt_get_rxbuf_size(void);
  64. int mqtt_connect(void);
  65. int mqtt_pub(char *sztopic, char *szpayload);
  66. int mqtt_get_tz();
  67. char *mqtt_get_state_str(void);
  68. int mqtt_get_stp(void);
  69. char *mqtt_get_err_str(void);
  70. int mqtt_get_tick(void);
  71. double mqtt_get_timing_ave(void);
  72. double mqtt_get_timing_cur(void);
  73. double mqtt_get_timing_max(void);
  74. int mqtt_get_enable(void);
  75. char *mqtt_get_servip_str(void);
  76. int mqtt_get_servport(void);
  77. char *mqtt_get_client_id(void);
  78. double mqtt_get_txbuf_usage(void);
  79. char *mqtt_get_access_token(void);
  80. int mqtt_get_tool_data(char *buf);
  81. int mqtt_set_dbg(int val);
  82. #endif /* MQTT_H */