将ADModule类中关于dataProcess相关的操作移到主程序中

LanXin3D
QuShuailong 2 years ago
parent 8240030e09
commit c7db2f7ad4

@ -4,7 +4,7 @@
ADModule::ADModule(QObject *parent): QObject(parent)
,m_mutex(QMutex::Recursive)
{
//qRegisterMetaType<QVector<double>>("QVector<double>");
qRegisterMetaType<QVector<QVector<double>>>("QVector<QVector<double>>");
m_vecFmat = std::make_shared<matGroup>();
m_pThread = new QThread();
moveToThread(m_pThread);
@ -92,6 +92,9 @@ Q_SLOT void ADModule::onDataRequestStop()
{
m_pUdpSocket->abort();
}
emit sgNewNumData(m_vecFmat->vec, m_vecRawData, m_workMode);
m_vecFmat->clear();
m_vecRawData.clear();
}
void ADModule::setMode(int workMode)
@ -179,61 +182,61 @@ void ADModule::onReceiveData(int stationId, const QVector<double>& hexVecDistanc
//}
}
Q_SLOT void ADModule::onSendData2Algo()
{
if (m_vecFmat->vec[0].size() <= 0)
{
qWarning() << "signal stopped but i didnt get data";
return;
}
QString szSide = m_workMode == emTopLeft ? "left" : "right";
m_pDataProcess->sensorValTransformationTemp(m_vecFmat->vec, szSide);
m_vecFmat->clear();
}
Q_SLOT void ADModule::onSaveData2File(QString folderPath)
{
qWarning() << "sensor data to be recieved";
if (!QDir(folderPath).exists())
{
qWarning() << folderPath << " is not exist";
return;
}
QString timeStr = QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss");
if (m_vecRawData.size() <= 0)
{
qWarning() << "sensor raw data is empty";
return;
}
auto savefile = [&](const QString& path, QVector<QString>& vec)->bool
{
ofstream mfile;
mfile.open(path.toStdString(), std::ios::out | std::ios::app | std::ios::ate);
if (!mfile.is_open()) return false;
for (int i = 0; i < vec.size(); ++i)
{
const QString& ls = vec[i];
std::string ss = ls.toStdString() + "\n";
//std::string ss = ls.toStdString();
mfile << ss;
}
mfile.flush();
mfile.close();
};
QString side = m_workMode == emTopLeft ? "left" : "right";
QString filePath = QString("%1\\%2_%3.txt").arg(folderPath).arg(timeStr).arg(side);
qWarning() << "find path" << filePath;
if (m_vecRawData.size() >= mimumDataSize)
{
QVector<QString> vec;
m_pDataProcess->sensorValTransformationTemp(m_vecRawData, vec, side);
savefile(filePath, vec);
qWarning() << "save " << side << " data to txt successfully";
}
m_vecRawData.clear();
}
//Q_SLOT void ADModule::onSendData2Algo()
//{
// if (m_vecFmat->vec[0].size() <= 0)
// {
// qWarning() << "signal stopped but i didnt get data";
// return;
// }
// QString szSide = m_workMode == emTopLeft ? "left" : "right";
// m_pDataProcess->sensorValTransformationTemp(m_vecFmat->vec, szSide);
// m_vecFmat->clear();
//}
//Q_SLOT void ADModule::onSaveData2File(QString folderPath)
//{
// qWarning() << "sensor data to be recieved";
// if (!QDir(folderPath).exists())
// {
// qWarning() << folderPath << " is not exist";
// return;
// }
//
// QString timeStr = QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss");
// if (m_vecRawData.size() <= 0)
// {
// qWarning() << "sensor raw data is empty";
// return;
// }
//
// auto savefile = [&](const QString& path, QVector<QString>& vec)->bool
// {
// ofstream mfile;
// mfile.open(path.toStdString(), std::ios::out | std::ios::app | std::ios::ate);
// if (!mfile.is_open()) return false;
// for (int i = 0; i < vec.size(); ++i)
// {
// const QString& ls = vec[i];
// std::string ss = ls.toStdString() + "\n";
// //std::string ss = ls.toStdString();
// mfile << ss;
// }
// mfile.flush();
// mfile.close();
// };
//
// QString side = m_workMode == emTopLeft ? "left" : "right";
// QString filePath = QString("%1\\%2_%3.txt").arg(folderPath).arg(timeStr).arg(side);
// qWarning() << "find path" << filePath;
//
// if (m_vecRawData.size() >= mimumDataSize)
// {
// QVector<QString> vec;
// m_pDataProcess->sensorValTransformationTemp(m_vecRawData, vec, side);
// savefile(filePath, vec);
// qWarning() << "save " << side << " data to txt successfully";
// }
// m_vecRawData.clear();
//}

@ -30,16 +30,17 @@ public:
~ADModule();
bool loadParameters(const QString& path);
void setDataProcessObj(std::shared_ptr<dataPreProcessing> dp_ptr)
{
m_pDataProcess = dp_ptr;
}
//void setDataProcessObj(std::shared_ptr<dataPreProcessing> dp_ptr)
//{
// m_pDataProcess = dp_ptr;
//}
Q_SLOT void onDataRequestStart(int sideId);
Q_SLOT void onDataRequestStop();
Q_SLOT void onSendData2Algo();
Q_SLOT void onSaveData2File(QString dataPath);
//Q_SLOT void onSendData2Algo();
//Q_SLOT void onSaveData2File(QString dataPath);
signals:
void sgReceiveData(int sideId, const QVector<double>& hexVecDistance);
void sgNewNumData(const QVector<QVector<double>>& vec, const QVector<QString>& strVec, int side);
private:
void setMode(int workMode);
uint decode(const QByteArray &dataGram, uint index);
@ -58,7 +59,7 @@ private:
int m_endIndex{ 0 };
QVector<QString> m_vecRawData;
matGroup::PTR m_vecFmat;
std::shared_ptr<dataPreProcessing> m_pDataProcess;
//std::shared_ptr<dataPreProcessing> m_pDataProcess;
};
#endif // !ADMODULE_H

@ -6,34 +6,28 @@ SmokeBoxIdentification::SmokeBoxIdentification(QWidget *parent)
{
qRegisterMetaType<QVector<ImageInfo> >("QVector<ImageInfo>");
qRegisterMetaType<QMap<QString, int> >("QMap<QString,int>");
qRegisterMetaType<lightCtrl>("lightCtrl");
qRegisterMetaType<QMap<QString, int> >("QMap<QString,int>");
ui.setupUi(this);
this->setWindowTitle(tr("ÑÌÏä¼ì²âϵͳ"));
//m_pShowRltImgLabel = ui.label_showImg;
//m_pCameraControl = new CameraControl();
//m_pCaptureThread = new QThread();
//m_pCameraControl->moveToThread(m_pCaptureThread);
connect(this, &SmokeBoxIdentification::sgCapture, CameraControl::instance(), &CameraControl::onCapture);
connect(CameraControl::instance(), &CameraControl::sgCapturedImage, this, &SmokeBoxIdentification::onCapturedImage);
//connect(m_pCaptureThread, &QThread::finished, m_pCameraControl, &QObject::deleteLater);
//m_pCaptureThread->start();
QString applicationDirPath = QCoreApplication::applicationDirPath();
QtConcurrent::run([=]()
{
//readCameraConfig();
//m_bCamerasInit = initCamera();
if (decodeSmokeInfoCsv(applicationDirPath + SMOKEINFO_XLSX_CONFIG))
matchSmokeNameAndTemplateFolderName(applicationDirPath + NUM_TEMPLATE_PATH);
m_pDataProcess = std::make_shared<dataPreProcessing>();
if (m_pDataProcess)
{
//dataPreProcessing * t = (dataPreProcessing*)m_pDataProcess.get();
m_pDataProcess->getFileDir(applicationDirPath + NUM_TEMPLATE_PATH);
m_pDataProcess->transmitFilePathForSampleWithItsCorresLabel();
m_pDataProcess->setWinSize(170);
ADModule::instance()->setDataProcessObj(m_pDataProcess);
//ADModule::instance()->setDataProcessObj(m_pDataProcess);
}
});
@ -67,12 +61,13 @@ SmokeBoxIdentification::SmokeBoxIdentification(QWidget *parent)
, &lpSerialStation::onStartEmptyPlaceCheck);
connect(this, &SmokeBoxIdentification::sgStopEmptyPlaceCheck, lpSerialStation::instance()
, &lpSerialStation::onStopEmptyPlaceCheck);
connect(this, &SmokeBoxIdentification::sgMonitorSensorTriggerStart, ADModule::instance()
connect(this, &SmokeBoxIdentification::sgNumDataCollectStart, ADModule::instance()
, &ADModule::onDataRequestStart);
connect(this, &SmokeBoxIdentification::sgMonitorSensorTriggerStop, ADModule::instance()
connect(this, &SmokeBoxIdentification::sgNumDataCollectStop, ADModule::instance()
, &ADModule::onDataRequestStop);
connect(this, &SmokeBoxIdentification::sgSendData2AndAlgo, ADModule::instance(), &ADModule::onSendData2Algo);
connect(this, &SmokeBoxIdentification::sgSaveSensorData2Local, ADModule::instance(), &ADModule::onSaveData2File);
connect(ADModule::instance(), &ADModule::sgNewNumData, this, &SmokeBoxIdentification::onNewNumData);
//connect(this, &SmokeBoxIdentification::sgSendData2AndAlgo, ADModule::instance(), &ADModule::onSendData2Algo);
//connect(this, &SmokeBoxIdentification::sgSaveSensorData2Local, ADModule::instance(), &ADModule::onSaveData2File);
connect(this, &SmokeBoxIdentification::sgSendStockCheckMsg, this, &SmokeBoxIdentification::onSendStockCheckResults, Qt::QueuedConnection);
connect(ui.action_templateNum, SIGNAL(triggered()), this, SLOT(onActionClicked()));
emit sgControlSideLight(lightCtrl::emTurnOnLight);
@ -82,160 +77,9 @@ SmokeBoxIdentification::~SmokeBoxIdentification()
{
emit sgControlSideLight(lightCtrl::emTurnOffLight);
DELETE_POINTER(m_pNetControl);
//m_pCaptureThread->quit();
//m_pCaptureThread->wait();
//DELETE_POINTER(m_pCaptureThread);
//DELETE_POINTER(m_pCameraControl);
DELETE_POINTER(m_pCategoryMatcher);
}
//bool SmokeBoxIdentification::readCameraConfig()
//{
// m_mapIdCameraInfoSide.clear();
// m_mapIdCameraInfoTop.clear();
// m_mapSerialNumberIdSide.clear();
// m_mapSerialNumberIdTop.clear();
// QString filePath = QCoreApplication::applicationDirPath() + CAMERA_CONFIG;
// QFile file(filePath);
// if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
// {
// qWarning() << "打开文件失败!";
// return false;
// }
// QByteArray arr = file.readAll();
// file.close();
// if (arr.isEmpty())
// {
// qWarning() << "内容为空";
// return false;
// }
//
// QJsonParseError err;
// QJsonDocument doc = QJsonDocument::fromJson(arr, &err);
// if (doc.isEmpty())
// {
// qWarning() << err.errorString(); //打印失败信息
// return false;
// }
//
// QJsonObject jsonObj = doc.object();
// auto getCameraType = [](int type)-> CameraType
// {
// CameraType cameraType;
// switch (type)
// {
// case 100:
// cameraType = CameraType::Virtual;
// break;
// case 140:
// cameraType = CameraType::Hik;
// break;
// case 190:
// cameraType = CameraType::Basler;
// break;
// default:
// break;
// }
// return cameraType;
// };
// QJsonObject topObj = jsonObj.value("top").toObject();
// int topStartId, topEndId;
// if (!topObj.isEmpty())
// {
// topStartId = topObj.value("startID").toInt();
// topEndId = topObj.value("endID").toInt();
// }
// else
// {
// qWarning() << "top id error";
// return false;
// }
// QJsonObject sideObj = jsonObj.value("side").toObject();
// int sideStartId, sideEndId;
// if (!sideObj.isEmpty())
// {
// sideStartId = sideObj.value("startID").toInt();
// sideEndId = sideObj.value("endID").toInt();
// }
// else
// {
// qWarning() << "side id error";
// return false;
// }
// QJsonObject devicesObj = jsonObj.value("devices").toObject();
// if (!devicesObj.isEmpty()) {
// CameraInfo cameraInfo;
// QStringList devicesLabelList = devicesObj.keys();
// for each (QString deviceLabel in devicesLabelList)
// {
// cameraInfo.cameraLabel = deviceLabel;
// QStringList strList = deviceLabel.split(' ');
// if (strList.length() != 2)
// {
// qWarning() << "Device label: " << deviceLabel << " syntax error!";
// continue;
// }
// cameraInfo.modelName = strList.at(0);
// cameraInfo.serialNumber = strList.at(1);
// QJsonObject deviceObj = devicesObj.value(deviceLabel).toObject();
// if (!deviceObj.isEmpty())
// {
// cameraInfo.cameraType = getCameraType(deviceObj.value("type").toInt());
// cameraInfo.exposure = deviceObj.value("exposure").toDouble();
// cameraInfo.imageHeight = deviceObj.value("height").toInt();
// cameraInfo.imageWidth = deviceObj.value("width").toInt();
// cameraInfo.saveImgSuffix = deviceObj.value("save_img_suffix").toString();
// int id = deviceObj.value("id").toInt();
// if (id >= topStartId && id <= topEndId)
// {
// m_mapIdCameraInfoTop[id] = cameraInfo;
// m_mapSerialNumberIdTop[cameraInfo.serialNumber] = id;
// }
// else if (id >= sideStartId && id <= sideEndId)
// {
// m_mapIdCameraInfoSide[id] = cameraInfo;
// m_mapSerialNumberIdSide[cameraInfo.serialNumber] = id;
// }
// }
// }
// }
// return true;
//}
//bool SmokeBoxIdentification::initCamera()
//{
// QList<CameraInfo> cameraInfoList = m_mapIdCameraInfoSide.values();
// cameraInfoList.append(m_mapIdCameraInfoTop.values());
// if (!m_pCameraControl->loadCamera(cameraInfoList))
// {
// qWarning() << "Load camera failed";
// return false;
// }
// else {
// QStringList serialNumberList = m_mapSerialNumberIdSide.keys();
// serialNumberList.append(m_mapSerialNumberIdTop.keys());
// if (!m_pCameraControl->openCamera(serialNumberList))
// {
// qWarning() << "Open camera failed";
// return false;
// }
// else {
// if (!m_pCameraControl->startCamera(serialNumberList))
// {
// qWarning() << "Start camera failed";
// return false;
// }
// else {
// if (!m_pCameraControl->setSoftwareTrigger(serialNumberList))
// {
// qWarning() << "Set software trigger failed";
// }
// }
// }
// }
// return true;
//}
Q_SLOT void SmokeBoxIdentification::onActionClicked()
{
QString strObj = sender()->objectName();
@ -260,38 +104,6 @@ void SmokeBoxIdentification::captureSide()
emit sgCapture(eCameraLocation::emSide);
}
//bool SmokeBoxIdentification::getSaveImgNameInfo(QString serialNumber, FileInfo& fileInfo)
//{
// QString imgSaveBaseName;
// auto iter = m_mapSerialNumberIdSide.find(serialNumber);
// if (iter == m_mapSerialNumberIdSide.end())
// {
// iter = m_mapSerialNumberIdTop.find(serialNumber);
// if (iter != m_mapSerialNumberIdTop.end())
// {
// int id = iter.value();
// QString suffix = m_mapIdCameraInfoTop.value(id).saveImgSuffix;
// fileInfo.suffix = suffix;
// fileInfo.baseName = QString::number(id);
// fileInfo.name = fileInfo.baseName + suffix;
// }
// else
// {
// qWarning() << "Can not find " << serialNumber;
// return false;
// }
// }
// else
// {
// int id = iter.value();
// QString suffix = m_mapIdCameraInfoSide.value(id).saveImgSuffix;
// fileInfo.suffix = suffix;
// fileInfo.baseName = QString::number(id);
// fileInfo.name = fileInfo.baseName + suffix;
// }
// return true;
//}
void SmokeBoxIdentification::saveImage(const cv::Mat& imgMat, const QString& filePath)
{
if (imgMat.empty())
@ -617,29 +429,29 @@ Q_SLOT void SmokeBoxIdentification::onShowImage(QLabel* labelPtr, const QImage&
labelPtr->setPixmap(QPixmap::fromImage(imgShow));
}
Q_SLOT void SmokeBoxIdentification::onMonitorSensorTriggerStart(eSideID sideId)
Q_SLOT void SmokeBoxIdentification::onMonitorSensorTriggerStart(int sideId)
{
if (m_workMode == WorkMode::StockCheck)
{
qDebug() << "start collect data";
emit sgMonitorSensorTriggerStart(sideId);
emit sgNumDataCollectStart(sideId);
m_bDataCollection = true;
}
}
Q_SLOT void SmokeBoxIdentification::onMonitorSensorTriggerStop(eSideID)
Q_SLOT void SmokeBoxIdentification::onMonitorSensorTriggerStop(int sideId)
{
if (m_workMode == WorkMode::StockCheck)
{
qDebug() << "stop collect data";
emit sgMonitorSensorTriggerStop();
emit sgNumDataCollectStop();
m_bDataCollection = false;
emit sgSendData2AndAlgo();
QString dataSaveFolder = QString("%1\\%2\\%3\\%4").arg(FILE_STORAGE_PATH)
.arg(m_currtStockCheckInfo.stockNum).arg(m_currtStockCheckInfo.taskNum)
.arg(m_currtStockCheckInfo.smokeQuantity);
dataPreProcessing::mkDir(dataSaveFolder);
emit sgSaveSensorData2Local(dataSaveFolder);
//emit sgSendData2AndAlgo();
//QString dataSaveFolder = QString("%1\\%2\\%3\\%4").arg(FILE_STORAGE_PATH)
// .arg(m_currtStockCheckInfo.stockNum).arg(m_currtStockCheckInfo.taskNum)
// .arg(m_currtStockCheckInfo.smokeQuantity);
//dataPreProcessing::mkDir(dataSaveFolder);
//emit sgSaveSensorData2Local(dataSaveFolder);
}
}
@ -746,3 +558,63 @@ Q_SLOT void SmokeBoxIdentification::onSendEmptyCheckResults(const QMap<QString,
m_pNetControl->sendMsg(emptyResult);
qDebug() << "send msg: " << emptyResult;
}
Q_SLOT void SmokeBoxIdentification::onNewNumData(const QVector<QVector<double>>& vec, const QVector<QString>& strVec, int side)
{
if (vec[0].size() <= 0)
{
qWarning() << "signal stopped but i didnt get data";
return;
}
QString szSide = side == emTopLeft ? "left" : "right";
m_pDataProcess->sensorValTransformationTemp(vec, szSide);
QString dataSaveFolder = QString("%1\\%2\\%3\\%4").arg(FILE_STORAGE_PATH)
.arg(m_currtStockCheckInfo.stockNum).arg(m_currtStockCheckInfo.taskNum)
.arg(m_currtStockCheckInfo.smokeQuantity);
dataPreProcessing::mkDir(dataSaveFolder);
saveData2File(strVec, dataSaveFolder, side);
}
void SmokeBoxIdentification::saveData2File(const QVector<QString>& strVec, QString folderPath, int side)
{
if (!QDir(folderPath).exists())
{
qWarning() << folderPath << " is not exist";
return;
}
QString timeStr = QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss");
if (strVec.size() <= 0)
{
qWarning() << "sensor raw data is empty";
return;
}
auto savefile = [&](const QString& path, QVector<QString>& vec)->bool
{
ofstream mfile;
mfile.open(path.toStdString(), std::ios::out | std::ios::app | std::ios::ate);
if (!mfile.is_open()) return false;
for (int i = 0; i < vec.size(); ++i)
{
const QString& ls = vec[i];
std::string ss = ls.toStdString() + "\n";
//std::string ss = ls.toStdString();
mfile << ss;
}
mfile.flush();
mfile.close();
};
QString strSide = side == emTopLeft ? "left" : "right";
QString filePath = QString("%1\\%2_%3.txt").arg(folderPath).arg(timeStr).arg(strSide);
qDebug() << "find path" << filePath;
if (strVec.size() >= mimumDataSize)
{
QVector<QString> vec;
m_pDataProcess->sensorValTransformationTemp(strVec, vec, strSide);
savefile(filePath, vec);
qDebug() << "save " << strSide << " data to txt successfully";
}
}

@ -94,20 +94,18 @@ public:
SmokeBoxIdentification(QWidget *parent = Q_NULLPTR);
~SmokeBoxIdentification();
//bool readCameraConfig();
signals:
//void sgCapture(const QStringList serialNumberList);
void sgCapture(int cameraLocation);
void sgCategoryMatchFinished(QString smokeNum);
void sgShowImage(QLabel* labelPtr, const QImage& qImage);
void sgSendData2AndAlgo();
void sgSaveSensorData2Local(QString filePath);
void sgMonitorSensorTriggerStart(eSideID);
void sgMonitorSensorTriggerStop();
//void sgSendData2AndAlgo();
//void sgSaveSensorData2Local(QString filePath);
void sgNumDataCollectStart(int sideId);
void sgNumDataCollectStop();
void sgSendStockCheckMsg(int mode);
void sgStartEmptyPlaceCheck(QString streetName);
void sgStopEmptyPlaceCheck();
void sgControlSideLight(lightCtrl);
void sgControlSideLight(int);
private:
Q_SLOT void onSendStockCheckResults(int mode);
@ -115,18 +113,18 @@ private:
Q_SLOT void onCapturedImage(const QVector<ImageInfo>& vecImageInfo, int camearLocation);
Q_SLOT void onNumStatistic(QString typeNum);
Q_SLOT void onShowImage(QLabel* labelPtr, const QImage& qImage);
Q_SLOT void onMonitorSensorTriggerStart(eSideID);
Q_SLOT void onMonitorSensorTriggerStop(eSideID);
Q_SLOT void onMonitorSensorTriggerStart(int);
Q_SLOT void onMonitorSensorTriggerStop(int);
Q_SLOT void onActionClicked();
Q_SLOT void onSendEmptyCheckResults(const QMap<QString, int>&);
Q_SLOT void onNewNumData(const QVector<QVector<double>>& vec, const QVector<QString>& strVec, int side);
//bool initCamera();
void saveData2File(const QVector<QString>& strVec, QString folderPath, int side);
void captureTop();
void captureSide();
void saveImage(const QVector<ImageInfo>& vecImageInfo, int workMode);
void saveImage(const cv::Mat& imgMat, const QString& filePath);
//bool getSaveImgNameInfo(QString serialNumber, FileInfo& fileInfo);
bool decodeSmokeInfoCsv(const QString& filePath);
bool matchSmokeNameAndTemplateFolderName(const QString& folderPath);
@ -135,20 +133,16 @@ private:
bool m_bCaptureFinish{ false };
bool m_bDataCollection{ false };
//bool m_bCamerasInit{ false };
//QMap<int, CameraInfo> m_mapIdCameraInfoTop;
//QMap<int, CameraInfo> m_mapIdCameraInfoSide;
//QMap<QString, int> m_mapSerialNumberIdTop;
//QMap<QString, int> m_mapSerialNumberIdSide;
QMap<QString, QString> m_mapSmokeCode2Name;
QMap<QString, QString> m_mapSmokeName2TemplateFolderName;
//QThread* m_pCaptureThread;
QString m_currLeftRightJudge;
QVector<QString> m_vecStrHeightLeft;
QVector<QString> m_vecStrHeightRight;
std::shared_ptr<dataPreProcessing> m_pDataProcess;
WorkMode m_workMode;
//CameraControl* m_pCameraControl;
NetControl* m_pNetControl;
CategoryMatcher* m_pCategoryMatcher;
IntoStockInfo m_currtIntoStockInfo;

@ -2,7 +2,6 @@
lpSerialStation::lpSerialStation()
{
qRegisterMetaType<eSideID>("eSideID");
qRegisterMetaType<SerialErrorType>("SerialErrorType");
m_pobjThread = new QThread;
moveToThread(m_pobjThread);
@ -63,7 +62,7 @@ void lpSerialStation::closeComs()
}
}
void lpSerialStation::onControlSideLight(lightCtrl cmdData)
void lpSerialStation::onControlSideLight(int cmdData)
{
QSharedPointer<LpSerialFrame> byteArr_ptr = QSharedPointer<LpSerialFrame>(new LpSerialFrame);
byteArr_ptr->cmd = LP_SIDELIGHT_SWITCH;

@ -32,7 +32,7 @@ public:
void openComs();
void closeComs();
Q_SLOT void onControlSideLight(lightCtrl cmdData);
Q_SLOT void onControlSideLight(int cmdData);
Q_SLOT void onStartEmptyPlaceCheck(QString streetName);
Q_SLOT void onStopEmptyPlaceCheck();
@ -41,8 +41,8 @@ public:
signals:
void sgNewEmptyCheckResults(const QMap<QString, int>&);
void sgMonitorSensorTriggerStart(eSideID);
void sgMonitorSensorTriggerStop(eSideID);
void sgMonitorSensorTriggerStart(int sideId);
void sgMonitorSensorTriggerStop(int sideId);
private:
Q_SLOT void onOpen();

Loading…
Cancel
Save