Files
ds-628/BaseModules/Hd_LightSourceModule_CST/Hd_LightSourceModule_CST.cpp
T
2024-09-27 14:31:22 +08:00

94 lines
2.3 KiB
C++

#include "Hd_LightSourceModule_CST.h"
Hd_LightSourceModule_CST::Hd_LightSourceModule_CST()
{
}
Hd_LightSourceModule_CST::~Hd_LightSourceModule_CST()
{
DestroyIpConnection(handle);
}
//在这里data是CHX_XXXX 即通道几,亮度几
bool Hd_LightSourceModule_CST::writeData(std::vector<cv::Mat>& mat, QByteArray& data)
{
int index = QString(data.mid(2, 1)).toInt();
int value = QString(data.mid(4)).toInt();
auto res = SetDigitalValue(index, value, handle);
if (res != SUCCESS)
{
qCritical() << " [Error] " << "Set CST Intensity Error";
isOpenFlag = false;
return false;
}
return true;
}
//在这里params是SN
bool Hd_LightSourceModule_CST::initParas(QByteArray& params)
{
if (!searchDevice())
return false;
if (!SNtoIP.contains(params))
{
qCritical() << " [Error] " << "CST Init Params Invaild";
return false;
}
auto res = ConnectIP((char*)SNtoIP[params].toStdString().c_str(), 3, &handle);
if (res != SUCCESS)
{
qCritical() << " [Error] " << "Connect CST Device Error";
return false;
}
isOpenFlag = true;
return true;
}
bool Hd_LightSourceModule_CST::checkStatus()
{
return isOpenFlag;
}
bool Hd_LightSourceModule_CST::searchDevice()
{
//搜索设备
Adapter_prm adapter[20];
int length;
GetAdapter(&length, adapter);
Host_prm hostprm;
int concount = 0;
for (int i = 0; i < length; i++)
{
int controllercount;
memset(&hostprm, 0, sizeof(hostprm));
GetHost(&controllercount, &hostprm, adapter[i].cIp);
if (controllercount)
{
Controller_prm controlprm;
auto res = GetConfigure(hostprm.cMac, &controlprm, adapter[i].cIp);
SNtoIP[hostprm.cSn + 3] = controlprm.cIp;
}
concount += controllercount;
}
if(concount)
return true;
else
{
qCritical() << " [Error] " << "CST Device Count 0";
return false;
}
}
Hd_LightSourceModule_CST* create()
{
qDebug() << "[INFO] " << "Hd_LightSourceModule_CST create success!";
return new Hd_LightSourceModule_CST;
}
void destory(Hd_LightSourceModule_CST* ptr)
{
if (ptr)
{
delete ptr;
ptr = nullptr;
}
qDebug() << "[INFO] " << "Hd_LightSourceModule_CST destory success!";
}