From 868daf94f29ce1ffdd799a68c07bb668cd373bcd Mon Sep 17 00:00:00 2001
From: HP\李良庭 <liliangting@lanpucloud.cn:1111>
Date: 星期二, 08 七月 2025 11:49:03 +0800
Subject: [PATCH] 提交分辨率自适应版本V3.1.0.1500

---
 bin/core/Actuator.h |  251 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 251 insertions(+), 0 deletions(-)

diff --git a/bin/core/Actuator.h b/bin/core/Actuator.h
new file mode 100644
index 0000000..263ee4a
--- /dev/null
+++ b/bin/core/Actuator.h
@@ -0,0 +1,251 @@
+锘�// 涓嬪垪 ifdef 鍧楁槸鍒涘缓浣夸粠 DLL 瀵煎嚭鏇寸畝鍗曠殑
+// 瀹忕殑鏍囧噯鏂规硶銆傛 DLL 涓殑鎵�鏈夋枃浠堕兘鏄敤鍛戒护琛屼笂瀹氫箟鐨� ACTUATOR_EXPORTS
+// 绗﹀彿缂栬瘧鐨勩�傚湪浣跨敤姝� DLL 鐨�
+// 浠讳綍椤圭洰涓婁笉搴斿畾涔夋绗﹀彿銆傝繖鏍凤紝婧愭枃浠朵腑鍖呭惈姝ゆ枃浠剁殑浠讳綍鍏朵粬椤圭洰閮戒細灏�
+// ACTUATOR_API 鍑芥暟瑙嗕负鏄粠 DLL 瀵煎叆鐨勶紝鑰屾 DLL 鍒欏皢鐢ㄦ瀹忓畾涔夌殑
+// 绗﹀彿瑙嗕负鏄瀵煎嚭鐨勩��
+#ifdef ACTUATOR_EXPORTS
+#define ACTUATOR_API __declspec(dllexport)
+#else
+#define ACTUATOR_API __declspec(dllimport)
+#endif
+
+typedef enum
+{
+    //绮鍑嗗鍛戒护浠g爜锛堢伯绉嶅凡淇敼锛�
+    READY_GRAIN = 0x01, 
+
+    //杩斿洖鍑嗗瀹屾垚
+    READY_FINISH = 0x02,
+
+    //妫�娴嬪惎鍔ㄥ懡浠�
+    DETECT_START = 0x03,
+
+    //杩斿洖妫�娴嬪畬姣�
+    DETECT_FINISH = 0x04,
+
+    //璁惧姘村垎浠浣嶅懡浠�
+    DEVICE_WR_RESET = 0xFE,
+
+    //杩斿洖姘村垎浠晠闅滀唬鐮�
+    DEVICE_WR_FAULT = 0xFF
+}PLCWORD;
+
+typedef enum
+{
+    //姘村垎浠噯澶囨寚浠�
+    WR_READY = 0x01,
+
+    //姘村垎浠娴嬫寚浠�
+    WR_DETECT = 0x02,
+    
+    //姘村垎浠牎楠屾寚浠�
+    WR_VERIFY = 0x03,
+
+    //姘村垎浠浣嶆寚浠�
+    WR_RESET = 0x04,
+
+    //绮鍙樻洿鎸囦护
+    WR_GOODS = 0x05,
+
+    //涓婇榾闂ㄥ紑
+    WR_VALV01 = 0x07,
+    //涓婇榾闂ㄥ叧
+    WR_VALV02 = 0x08,
+    //涓嬮榾闂ㄥ紑
+    WR_VALV03 = 0x09,
+    //涓嬮榾闂ㄥ叧
+    WR_VALV04 = 0x0A,
+    //鍙岄榾闂ㄥ紑
+    WR_VALV05 = 0x0B,
+    //鍙岄榾闂ㄥ叧
+    WR_VALV06 = 0x0C,
+    //鎸姩寮�
+    WR_VIBRATE_01 = 0x0D,
+    //鎸姩鍏�
+    WR_VIBRATE_02 = 0x0E,
+    
+}WRWORD;
+
+//鍒涘缓鍒濆鍖栧鎴稰LC璁惧鍙ユ焺ctx
+//strIp:   IP鍦板潃
+//nPort:   缃戠粶绔彛
+ACTUATOR_API void* __stdcall CreatePlcDevice(const char* strIp, int nPort);
+
+//鍒涘缓姘村垎浠彞鏌刢tx
+//szSerialPort:   涓插彛鍚�
+//baud:       娉㈢壒鐜�
+//parity:     鏍¢獙绫诲瀷
+//data_bit:   鏁版嵁浣�
+//stop_bit:   鍋滄浣�
+ACTUATOR_API void* __stdcall CreateWrDevice(const char* szSerialPort, int baud, char parity, int data_bit, int stop_bit);
+
+//杩炴帴瀹㈡埛璁惧鎴栨按鍒嗕华瑁呯疆
+//ctxDev : 璁惧鍙ユ焺
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ConnectDevice(void* ctxDev);
+
+//鑾峰彇鐘舵�佹垨绮鏇存敼淇℃伅
+//ctxDev : 璁惧鍙ユ焺
+//nState 锛氱姸鎬佸瓧锛屽涓嬬姸鎬佷笉浼氶噸澶�
+//         0x01:  绮宸蹭慨鏀�
+//         0x03:  寮�濮嬫祴璇�
+//         0xFE:  澶嶄綅鍛戒护锛屼紭鍏堢骇鏈�楂�
+//         鍏朵粬锛� 涓哄啓鍏ョ姸鎬�
+//nGoodType: 绮缂栧彿 
+//         0x01:  灏忛害, 
+//         0x02:  姘寸ɑ 
+//         0x03:  榛勮眴 
+//         0x04:  鐜夌背
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ReadState(void* ctxDev, unsigned short* nState, unsigned short* nGrainType);
+
+//鍐欏洖鐘舵��
+//ctxDev : 璁惧鍙ユ焺
+//nState 锛氱姸鎬佸瓧锛屽涓嬬姸鎬佷笉浼氶噸澶�
+//         0x02:  鍑嗗宸插畬鎴�
+//         0x04:  妫�娴嬪畬鎴�
+//         0xFF:  姘村垎浠晠闅�
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ResponseState(void* ctxDev, unsigned short nState);
+
+//鍥炰紶妫�娴嬫暟鎹�
+//ctxDev : 璁惧鍙ユ焺
+//nDatas 锛氭暟缁勶紝鏁版嵁椤哄簭濡備笅
+//         绮缂栫爜
+//         鍚按鐜囷紝  鍙栨暣 = 鍘熷��*100
+//         瀹归噸姣旓紝  鍙栨暣 = 鍘熷��*100
+//nSize  : 鏁版嵁涓暟
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall UploadData(void* ctxDev, unsigned short* nDatas, unsigned short nSize = 3);
+
+//涓嬪彂鍛戒护淇℃伅
+//ctxDev : 璁惧鍙ユ焺
+//nCmdType 锛氬懡浠ゅ瓧锛屽涓嬫弿杩�
+//         0x01:  绮宸蹭慨鏀�
+//         0x02:  寮�濮嬫祴璇�
+//         0x03:  鏍″噯鍛戒护锛屽嵆涓烘爣瀹氶〉闈㈡娴嬫寜閽懡浠わ紝
+//nGoodType: 绮缂栧彿 
+//         0x01:  灏忛害, 
+//         0x02:  姘寸ɑ 
+//         0x03:  榛勮眴 
+//         0x04:  鐜夌背
+//         褰搉CmdType 涓�0x02锛�0x03鏃讹紝涓嶇敤鑰冭檻绮缂栧彿
+// nResponseSeconds: 鍝嶅簲鏃堕棿锛屼互绉掕绠�
+// nResponseUSeconds: 鍝嶅簲鏃堕棿锛屼互寰璁$畻锛岃嫢灏忎簬绉掞紝鍏ㄩ儴鐢ㄥ井濡欒〃绀恒��
+//杩斿洖鍊硷細澶т簬0 琛ㄧず 璁惧鏈夋晠闅滐紝鏁呴殰鐮佽瑙丷eadFaultCode鍑芥暟锛屾湁鎻忚堪
+//        灏忎簬0 琛ㄧず 鍛戒护鎵ц閿欒锛岄敊璇彲浠ラ�氳繃 GetError鎻愬彇澶勭悊銆�
+//        绛変簬0 琛ㄧず 鍛戒护鎵ц鎴愬姛
+ACTUATOR_API int __stdcall SendCommands(void* ctxDev, unsigned short nCmdType, unsigned short nGrainType = 0, unsigned int nResponseSeconds = 0, unsigned int nResponseUSeconds = 500000);
+
+//涓嬪彂鍙傛暟
+//ctxDev : 璁惧鍙ユ焺
+//nStartFreq 锛氳捣濮嬮鐜�
+//nStopFreq 锛� 缁堟棰戠巼
+//nStepFreq 锛� 姝ラ暱
+//nDecayCode 锛氳“鍑忕爜
+//nAscValid 锛� ASC 鍐呴儴/澶栭儴鏈夋晥锛� 鍙栧�间负 0锛氬唴閮ㄦ湁鏁堬紝 1锛氬閮ㄦ湁鏁�
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall WriteParams(void* ctxDev,   unsigned short nStartFreq, unsigned short nStopFreq,
+                            unsigned short nStepFreq,  unsigned short nDecayCode, unsigned short nAscValid);
+
+//璇诲彇妫�娴嬩俊鎭�
+//ctxDev : 璁惧鍙ユ焺
+//nDatas 锛氭暟缁勶紝鏁版嵁椤哄簭濡備笅
+//         鐢靛帇鍊�
+//         閲嶉噺
+//         娓╁害
+//         婀垮害
+// nSize : 璇诲彇4涓瘎瀛樺櫒
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ReadDatas(void* ctxDev, unsigned short* nDatas, unsigned short nSize = 4);
+
+//璇诲彇鍥轰欢鐗堟湰
+//ctxDev : 璁惧鍙ユ焺
+//nVersions 锛氭暟缁勶紝鏁版嵁椤哄簭濡備笅
+//         纭欢鐗堟湰
+//         杞欢鐗堟湰
+// nSize : 璇诲彇2涓瘎瀛樺櫒
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ReadVersion(void* ctxDev, unsigned short* nVersions, unsigned short nSize = 1);
+
+
+//璇诲彇鎵鍊�,鍏跺疄涓虹數骞冲�硷紝
+//ctxDev : 璁惧鍙ユ焺
+//nVcc :   鐢靛钩鍊兼寚閽�
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ReadVcc(void* ctxDev, unsigned short* nVcc);
+
+//璇婚噸閲忓�硷紝
+//ctxDev : 璁惧鍙ユ焺
+//nWeight : 閲嶉噺鍊�
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ReadWeight(void* ctxDev, unsigned short* nWeight);
+
+//璇诲彇鏁呴殰鐮侊紝
+//ctxDev : 璁惧鍙ユ焺
+//nFaultCode : 鏁呴殰鐮�
+//             0 .......... 姝e父
+//             1 .......... 涓婇榾闂ㄥ叧鍗′綇
+//             2 .......... 涓嬮榾闂ㄥ叧鍗′綇
+//             4 .......... 涓婇榾闂ㄥ紑鍗′綇
+//             8 .......... 涓嬮榾闂ㄥ紑鍗′綇             
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall ReadFaultCode(void* ctxDev, unsigned short* nFaultCode);
+
+//澶嶄綅鍛戒护
+//ctxDev : 璁惧鍙ユ焺鎸囬拡
+//杩斿洖鍊硷細鏃狅紝 
+ACTUATOR_API int __stdcall ResetCommand(void* ctxDev);
+
+//鍙栭敊璇瓧绗︿覆:
+//ctxDev : 璁惧鍙ユ焺鎸囬拡
+//杩斿洖鍊硷細鏃狅紝 
+//鎵ц鏉′欢锛屽湪涓婇潰鍛戒护鍑芥暟鎵ц杩斿洖-1鐨勬椂鍊欒皟鐢ㄣ��
+ACTUATOR_API const char* __stdcall GetError(void* ctxDev);
+
+//鏂紑姘村垎浠垨瀹㈡埛璁惧鐨勮繛鎺�
+//ctxDev : 璁惧鍙ユ焺鎸囬拡
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall Disconnect(void* ctxDev);
+
+//閿�姣佽祫婧�
+//ctxDev : 璁惧鍙ユ焺鎸囬拡
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall DestroyDevice(void* ctxDev);
+
+
+/***************************杞粨绾垮洖浼犲嚱鏁�**********************************
+data:    鏁版嵁浠ユ暣鏁版暟缁勮〃绀�
+nsize:   鏁版嵁灏哄
+**************************************************************************/
+typedef void(__stdcall* MESSAGE_HANDLER)(unsigned short *data, int nsize);
+
+/*
+nSlavePort: 鏈嶅姟绔彛  姣斿 502
+szDevPort: 涓插彛  COM1
+baud, parity, data_bit, stop_bit 鍙傝�冧笂闈㈠嚱鏁�
+detectTimeout 妫�娴嬭秴鏃舵椂闂�
+resetTimeout 鏈嶅姟瓒呮椂鏃堕棿
+handler 锛� 鍥炶皟鍑芥暟
+*/
+
+ACTUATOR_API int __stdcall StartTcpSlaveEx(void* waterDev, int nSlavePort, int detectTimeout = 60, int resetTimeout = 10, MESSAGE_HANDLER handler = NULL);
+
+ACTUATOR_API int __stdcall StartTcpSlave(int nSlavePort, const char* szSerialPort, int baud, char parity, int data_bit, int stop_bit, int, int detectTimeout = 60, int resetTimeout = 10, MESSAGE_HANDLER handler = NULL);
+
+ACTUATOR_API int __stdcall StopTcpSlave();
+
+//绠楁硶鍑芥暟
+//x 涓烘祴閲忓��
+//y 涓哄疄闄呭��
+//n 涓烘嫙鍚堟鏁�
+//nSampleNumber 鏍锋湰鏁伴噺
+//杩斿洖鍊硷細灏忎簬0 琛ㄧず 閿欒锛� 
+ACTUATOR_API int __stdcall Linearize(float x[], float y[], double Coefficient[], const int n = 2, const int nSampleNumber = 5);
+ACTUATOR_API int __stdcall LinearizeX(double x[], double y[], double Coefficient[], const int nDegree = 3, const int nSampleNumber = 5);
+ACTUATOR_API int __stdcall PolyNomialFit(double x[], double y[], double Coefficient[], const int nDegree = 3, const int nSampleNumber = 5);
+
+//璁$畻鍑芥暟 
+ACTUATOR_API double __stdcall CalcValue(unsigned short nDValue, double Coef0, double Coef1, double Coef2, double Coef3, double Coef4);
+

--
Gitblit v1.9.3