#pragma once //#pragma warning(disable:4251) #include <vector> #include <mutex> #include"CRS485.h" #ifdef TEMPERATURE_EXPORTS #define Temperature_DLL_API __declspec(dllexport) #else #define Temperature_DLL_API //__declspec(dllimport) #endif //�豸���� enum Temperature_Ctltype { GLTC = 1, Temperature_Other}; #define TEMPER_BASE_ERROR (MODBUS_BASE_ERROR+10000) class Temperature_DLL_API CTemperature { public: typedef struct { string addrs; CTemperature* pTemperature; }TEMPERATURE_LST; public: // ��ȡ��ʵ������ static long GetInstance(string strPort, Temperature_Ctltype iCtlType, CTemperature **temperature); static string GetErrText(long errid); //long SetRunStatus(unsigned char rtuAddr, unsigned char iMaxSendNum = 3); /// <summary> /// �����¿����¶� /// </summary> /// <param name="rtuAddr">վ���ַ</param> /// <param name="dTemperature">�����¶�ֵ����λ���ȣ�</param> /// <param name="iMaxSendNum">�������ʧ�ܣ�����ظ�����</param> /// <returns></returns> long SetTemperature(unsigned char rtuAddr, double dTemperature, unsigned char iMaxSendNum = 3); /// <summary> /// ��ȡ�¿�����ǰ�¶� /// </summary> /// <param name="rtuAddr">վ���ַ</param> /// <param name="pTemperature">��ȡ�����¶�ֵ����λ���ȣ�</param> /// <param name="iMaxSendNum">�������ʧ�ܣ�����ظ�����</param> /// <returns></returns> long GetTemperature(unsigned char rtuAddr, double &pTemperature, unsigned char iMaxSendNum = 3); private: Temperature_Ctltype m_iTemperType; //�豸���� CRS485 *m_ComPort; bool m_bIsInitSuccess; //static CTemperature *m_Temperature; static std::vector<TEMPERATURE_LST> m_vecTemperature; static std::mutex m_Mutex; std::mutex m_mutexReadWrite; //���ڶ�д�� CTemperature(); ~CTemperature(); long Init(string port, Temperature_Ctltype iTemperType); //��ʼ�� void UnInit();//�ر� static CTemperature* GetTemperature(string addrs); CTemperature(const CTemperature &temperature); const CTemperature &operator=(const CTemperature &temperature); };