1 #pragma once 2 3 #include "KMTronicBase.h" 4 5 class KMTronicTCP : public KMTronicBase 6 { 7 public: 8 KMTronicTCP(const int ID, const std::string &IPAddress, const unsigned short usIPPort, const std::string &username, const std::string &password); 9 ~KMTronicTCP(void); 10 bool WriteToHardware(const char *pdata, const unsigned char length) override; 11 boost::signals2::signal<void()> sDisconnected; 12 private: 13 bool StartHardware() override; 14 bool StopHardware() override; 15 void ParseRelays(const std::string &sResult); 16 void ParseTemps(const std::string &sResult); 17 std::string GenerateURL(const bool bIsTempDevice); 18 bool WriteInt(const unsigned char *data, const size_t len, const bool bWaitForReturn) override; 19 void Init(); 20 void GetMeterDetails(); 21 void Do_Work(); 22 private: 23 std::string m_szIPAddress; 24 unsigned short m_usIPPort; 25 std::string m_Username; 26 std::string m_Password; 27 std::shared_ptr<std::thread> m_thread; 28 bool m_bCheckedForTempDevice; 29 bool m_bIsTempDevice; 30 }; 31 32