74 lines
1.8 KiB
C++
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);
|