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