#include "PanasonicHeightFind.h" PanasonicHeightFind* PanasonicHeightFind::uniqueInstance = nullptr; PanasonicHeightFind* PanasonicHeightFind::instance() { if (!uniqueInstance) { uniqueInstance = new PanasonicHeightFind(); } return uniqueInstance; } PanasonicHeightFind::PanasonicHeightFind() { } PanasonicHeightFind::~PanasonicHeightFind() { } int PanasonicHeightFind::SetLaser(int deviceID,int value) { int ret; int CR = 0xd; char cmd[50];//%03#WLR+00000**D %03$WLR**D %03!XX**D sprintf_s(cmd,50,"%%%02dWLR+%05d**%X",deviceID,value,CR); ret = SendCmd(cmd, static_cast(strlen(cmd)) ,reinterpret_cast(revData), &revDataLen); if (ret== 0) { if (revData[3] == '$') ret = 0; else ret = -1; } return ret; } int PanasonicHeightFind::GetHeightValue(int deviceID,double *value) { //% 0 3 # R M D * * CR % 0 3 $ R M D - 0 1 2 3 4 5 6 * * CR int ret; int CR = 0xd; char cmd[50]; sprintf_s(cmd,50,"%%%02dRMD**%X",deviceID,CR); ret = SendCmd(cmd, static_cast(strlen(cmd)) ,reinterpret_cast(revData), &revDataLen); if (ret== 0) { if (revData[3] == '$') { memset(cmd,0,50); memcpy_s(cmd,50,&revData[7],8); *value = atof(cmd); *value = *value / 10000; ret = 0; } else ret = -1; } return ret; } // int SendCmd(char *data, unsigned short data_len ,unsigned char * revData, int * revData_len);