CEleForce.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. //#pragma warning(disable:4251)
  3. #include <mutex>
  4. #include"CRS485.h"
  5. #ifdef ELEFORCE_EXPORTS
  6. #define ELEForce_DLL_API __declspec(dllexport)
  7. #else
  8. #define ELEForce_DLL_API //__declspec(dllimport)
  9. #endif
  10. #define FORCE_BASE_ERROR (MODBUS_BASE_ERROR+20000)
  11. //设备类型
  12. enum Force_Ctltype {XJC_5100MF = 1, Other };
  13. class ELEForce_DLL_API CEleForce
  14. {
  15. private:
  16. CRS485* m_ComPort;
  17. Force_Ctltype m_iForceType;
  18. bool m_bIsInitSuccess = false;
  19. static CEleForce *m_EleForce;
  20. static std::mutex m_EleMutex;
  21. std::mutex m_mutexReadWrite; //正在读写锁
  22. long Init(string sport, Force_Ctltype iTemperType); //初始化
  23. void UnInit();//关闭
  24. public:
  25. // 获取单实例对象
  26. static long GetInstance(string strPort, Force_Ctltype iForceType, CEleForce **pForce);
  27. static string GetErrText(long errid);
  28. long GetEleForce(unsigned char rtuAddr, double& dValue, unsigned char iMaxSendNum = 3);//获取电子称当前压力
  29. long GetEleMaxForce(unsigned char rtuAddr, double& dValue, unsigned char iMaxSendNum = 3);//获取电子称峰值压力
  30. };