63 lines
1.6 KiB
C++
63 lines
1.6 KiB
C++
#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<unsigned short>(strlen(cmd)) ,reinterpret_cast<unsigned char*>(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<unsigned short>(strlen(cmd)) ,reinterpret_cast<unsigned char*>(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);
|