Files
newspark110/device/SerialPort/PowerAttenuator.cpp
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

74 lines
1.8 KiB
C++

#include "PowerAttenuator.h"
PowerAttenuator* PowerAttenuator::uniqueInstance = nullptr;
PowerAttenuator* PowerAttenuator::instance()
{
if (!uniqueInstance) {
uniqueInstance = new PowerAttenuator();
}
return uniqueInstance;
}
PowerAttenuator::PowerAttenuator()
{
}
PowerAttenuator::~PowerAttenuator()
{
}
int PowerAttenuator::GetSts(int * value)
{
int ret;
char cmd[50] = "o\r";
::EnterCriticalSection(&mCsRead);
memset(revData,0,4096);
ret = SendCmd(cmd, 2,reinterpret_cast<unsigned char*>(revData), &revDataLen);
//revData[revDataLen - 2] = 0;
if (revData[1] == '0')
*value = 0;
else
*value = 1;
::LeaveCriticalSection(&mCsRead);
return ret;
}
int PowerAttenuator::GetPos(int * value)
{
int ret;
::EnterCriticalSection(&mCsRead);
char cmd[50] = "o\r";
memset(revData,0,4096);
ret = SendCmd(cmd, 2,reinterpret_cast<unsigned char*>(revData), &revDataLen);
revData[revDataLen - 2] = 0;
//if (revData[1] == '0')
*value = atoi(&revData[3]);
//else
// *value = 1;
::LeaveCriticalSection(&mCsRead);
return ret;
}
int PowerAttenuator::setPos(int value)
{
int ret;
char cmd[50];
sprintf_s(cmd, "g %d\r", value);
ret = SendCmd(cmd, static_cast<unsigned short>(strlen(cmd)) ,reinterpret_cast<unsigned char*>(revData), &revDataLen);
return ret;
}
int PowerAttenuator::setRPos(int value)
{
int ret;
::EnterCriticalSection(&mCsRead);
char cmd[50];
sprintf_s(cmd, "m %d\r", value);
ret = SendCmd(cmd, static_cast<unsigned short>(strlen(cmd)) ,reinterpret_cast<unsigned char*>(revData), &revDataLen);
::LeaveCriticalSection(&mCsRead);
return ret;
}
// int SendCmd(char *data, unsigned short data_len ,unsigned char * revData, int * revData_len);