1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #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);
- };
|