STIMA  3
publish_thread.h
1 #include <Countdown.h>
2 #include <WifiIPStack.h>
3 #include <MQTTClient.h>
4 
5 
6 #ifndef PUBLISH_THREAD_H_
7 #define PUBLISH_THREAD_H_
8 
9 // thread exchange data struct
11  int id;
12  frtosLogging* logger;
13  Queue* mqttqueue;
14  Queue* dbqueue;
15  BinaryQueue* recoveryqueue;
16  publishStatus_t* status;
17  station_t* station;
18  WiFiClient* networkClient;
19 };
20 
21 bool publish_maint(MQTT::Client<IPStack, Countdown, MQTT_PACKET_SIZE, 1 >& mqttclient, publish_data_t& data);
22 bool publish_constantdata(MQTT::Client<IPStack, Countdown, MQTT_PACKET_SIZE, 1 >& mqttclient, publish_data_t& data);
23 
24 using namespace cpp_freertos;
25 
26 class publishThread : public Thread {
27 
28 public:
29  publishThread(publish_data_t* publish_data);
30  ~publishThread();
31  virtual void Cleanup();
32 
33  protected:
34  virtual void Run();
35  bool mqttSubscribeRpc(char* comtopic);
36  //static void WiFiStationDisconnected(WiFiEvent_t event, WiFiEventInfo_t info);
37 
38  private:
39  bool mqttDisconnect();
40  bool mqttConnect(const bool cleanSession=true);
41  bool mqttPublish( const mqttMessage_t& mqtt_message, const bool retained);
42  bool publish_maint();
43  bool publish_constantdata();
44  void archive();
45  bool doPublish(mqttMessage_t& mqtt_message);
46  publish_data_t* data;
47  IPStack ipstack;
48  MQTT::Client<IPStack, Countdown, MQTT_PACKET_SIZE, 1 > mqttclient;
49  uint8_t errorcount;
50 };
51 
52 #endif
Definition: publish_thread.h:26
Definition: typedef.h:134
Definition: typedef.h:163
Definition: publish_thread.h:10
Definition: typedef.h:70