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