1 #pragma once 2 3 #include "ASyncTCP.h" 4 #include "S0MeterBase.h" 5 6 class S0MeterTCP: public S0MeterBase, ASyncTCP 7 { 8 public: 9 S0MeterTCP(const int ID, const std::string &IPAddress, const unsigned short usIPPort); 10 ~S0MeterTCP(void); 11 bool WriteToHardware(const char *pdata, const unsigned char length) override; 12 boost::signals2::signal<void()> sDisconnected; 13 private: 14 bool StartHardware() override; 15 bool StopHardware() override; 16 bool WriteInt(const std::string &sendString); 17 void Do_Work(); 18 19 void OnConnect() override; 20 void OnDisconnect() override; 21 void OnData(const unsigned char *pData, size_t length) override; 22 void OnError(const boost::system::error_code& error) override; 23 private: 24 int m_retrycntr; 25 std::string m_szIPAddress; 26 unsigned short m_usIPPort; 27 std::shared_ptr<std::thread> m_thread; 28 }; 29 30