Compare commits

...

15 Commits

Author SHA1 Message Date
c99ba84638 张卓修改没提交的代码 2024-10-30 17:00:12 +08:00
ad0c4149e6 修改了电机部分控制代码&错误打印,优化了电机错误的信息输出。温湿度传感器修改 2024-05-14 17:09:53 +08:00
xin
fe80b88677 Merge remote-tracking branch 'origin/TC' 2022-10-12 14:46:40 +08:00
527c23e30e 接上一个提交:遗漏代码 2022-10-12 14:15:14 +08:00
xin
6f65684ddb Merge remote-tracking branch 'origin/TC' 2022-10-12 13:15:28 +08:00
4ebbea7bc9 张欣欣要求:定标时,将原始的dn值和重采样后的积分球标准曲线输出到csv,以便定标时排错; 2022-10-12 13:13:13 +08:00
xin
d6dadec3cc Merge remote-tracking branch 'origin/zz' 2022-08-12 11:18:20 +08:00
xin
ae65847576 经度给改位维度 2022-08-12 09:35:31 +08:00
xin
cabffe0709 Merge remote-tracking branch 'origin/zz' 2022-08-12 09:34:42 +08:00
xin
e84f8d32b5 Merge remote-tracking branch 'origin/TC' 2022-08-04 09:37:21 +08:00
f04f058b9c 结构体按1字节对齐的代码#pragma pack(1)使用错误,导致CalibrationAlgorithm::produceCalfile函数在结构体传参时出现错误(DataFrame的数据向后漂移一个ZZ_U32,曝光时间为0); 2022-08-03 19:17:34 +08:00
xin
3bff0c266a Merge remote-tracking branch 'origin/TC' 2022-08-03 11:14:37 +08:00
bd46759395 1、增加输出定标文件:将定标文件通过结构体写入文件;
2、修改atp的最高定标时间:13s → 65s,此问题是由于2022-4-21-14:00更新卓哥atp代码到最新版导致;
2022-08-03 10:59:27 +08:00
xin
181ff9e9c6 还原calibrate 2022-08-02 11:07:34 +08:00
xin
084edcac53 增加了shutter切换模块对双通道的支持 修改错误 2022-08-02 11:05:17 +08:00
19 changed files with 378 additions and 149 deletions

View File

@ -2,22 +2,22 @@
"configurations": [
{
"name": "Linux-GCC-Debug",
"generator": "Unix Makefiles",
"generator": "Ninja",
"configurationType": "Debug",
"cmakeExecutable": "/opt/cmake/bin/cmake",
"cmakeExecutable": "/zz/cmake-3.29.3/bin/cmake",
"remoteCopySourcesExclusionList": [ ".vs", ".git", "out" ],
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "linux_arm" ],
"intelliSenseMode": "linux-gcc-x64",
"remoteMachineName": "243120617;172.16.0.232 (username=root, port=22, authentication=Password)",
"remoteMachineName": "-1273990714;172.16.0.61 (username=root, port=22, authentication=Password)",
"remoteCMakeListsRoot": "/home/pi/SIF0/src",
"remoteBuildRoot": "/home/pi/SIF0/out/build_d/${name}",
"remoteInstallRoot": "/home/pi/SIF0/out/install/${name}",
"remoteCopySources": true,
"rsyncCommandArgs": "-t --delete --delete-excluded",
"remoteCopyBuildOutput": true,
"remoteCopySourcesMethod": "rsync"
"remoteCopySourcesMethod": "rsync",
"remoteCopyUseCompilerDefaults": false
},
{
"name": "x64-Debug",
@ -29,6 +29,25 @@
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ]
},
{
"name": "Linux-GCC-R",
"generator": "Unix Makefiles",
"configurationType": "Release",
"cmakeExecutable": "/opt/cmake/bin/cmake",
"remoteCopySourcesExclusionList": [ ".vs", ".git", "out" ],
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "linux_arm" ],
"intelliSenseMode": "linux-gcc-x64",
"remoteMachineName": "-1784524891;172.16.0.71 (username=root, port=22, authentication=Password)",
"remoteCMakeListsRoot": "/home/pi/SIF0/src_r",
"remoteBuildRoot": "/home/pi/SIF0/out/build_r/${name}",
"remoteInstallRoot": "/home/pi/SIF0/out/install_r/${name}",
"remoteCopySources": true,
"rsyncCommandArgs": "-t --delete --delete-excluded",
"remoteCopyBuildOutput": true,
"remoteCopySourcesMethod": "rsync"
}
]
}

View File

@ -1,5 +1,4 @@
cmake_minimum_required(VERSION 3.3)
cmake_minimum_required(VERSION 3.5)
project(TowerOptoSifAndSpectral)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)

98
html/config/calibrate.php Normal file
View File

@ -0,0 +1,98 @@
<?php
$position=$_GET["p"];
$sensorType=$_GET["sensor"];
$nite=$_GET['nite'];
if ($position==0)
{
echo "error";
return;
}
set_time_limit(0);
ob_end_clean();//清空(擦除)缓冲区并关闭输出缓冲
ob_implicit_flush(1);//将打开或关闭绝对(隐式)刷送。绝对(隐式)刷送将导致在每次输出调用后有一次刷送操作,以便不再需要对 flush() 的显式调用
//echo shell_exec("D:\\03MyGit\\linux\\movingliner\\cmake-build-debug-mingw\\movingliner.exe");
echo "application beging<br>";
//$cmd = 'ping 127.0.0.1';
$ini=parse_ini_file("/home/data/Setting/DeviceSettings.ini",true);
$numberofsensor=intval($ini['DEVICE INFO']['TotalSpectrometer']);
$numberofFS=0;
for($i=0;$i<$numberofsensor;$i++){
$tempsens=$ini['FS'.($i+1)]['Model'];
if ($sensorType==$tempsens)
{
$numberofFS=$i+1;
break;
}
if ($i==$numberofsensor-1)
{
echo "cannot find the sensor";
return;
}
}
system("sudo killall Mywathdog.sh");
system("sudo killall TowerOptoSifAndSpectral");
system("sudo pkill ocean_optics_calibration_console");
system("sudo gpio write 1 1");
$cmd="";
if ($position==1)
{
if($sensorType=="OSIFAlpha"||$sensorType=="OSIFBeta")
{
$cmd = 'sudo /home/pi/bin/ocean_optics_calibration_console --deviceType OceanOptics -t 30 -slfs IrrLamp.txt --cfon FSN'.$sensorType.$position.'.data --position '.$position.' --integratingSphereDetectorValue '.$nite;
}
else{
$port=$ini['FS'.($i+1)]['Port'];
getonestring($port,'/');
getonestring($port,'/');
$cmd = 'sudo /home/pi/bin/ocean_optics_calibration_console --deviceType OPTOSKY --serialPort '.$port.' -t 30 -slfs IrrLamp.txt --cfon FSN'.$sensorType.$position.'.data --position '.$position.' --integratingSphereDetectorValue '.$nite;
}
}
else
{
if($sensorType=="OSIFAlpha"||$sensorType=="OSIFBeta")
{
$cmd = 'sudo /home/pi/bin/ocean_optics_calibration_console --deviceType OceanOptics -t 30 -slfs RadLamp.txt --cfon FSN'.$sensorType.$position.'.data --position '.$position.' --integratingSphereDetectorValue '.$nite;
}else{
$port=$ini['FS'.($i+1)]['Port'];
getonestring($port,'/');
getonestring($port,'/');
$cmd = 'sudo /home/pi/bin/ocean_optics_calibration_console --deviceType OPTOSKY --serialPort '.$port.' -t 30 -slfs RadLamp.txt --cfon FSN'.$sensorType.$position.'.data --position '.$position.' --integratingSphereDetectorValue '.$nite;
}
}
echo $cmd;
while(@ ob_end_flush());
$proc = popen($cmd, 'r');
while(!feof($proc)){
echo fread($proc, 4096);
@ flush();
}
echo 'FINISH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ';
echo '<a href=/config/position.html>回到首页</a>';
function getonestring(&$bytes,$fenge)
{
$pattern = '{^.*?'.$fenge.'}';
$lenth=strlen($fenge);
preg_match($pattern, $bytes, $aa, PREG_OFFSET_CAPTURE);
$bytes = substr($bytes, strlen($aa[0][0]));
$bb = substr($aa[0][0], 0, -$lenth);
return $bb;
}

View File

@ -58,7 +58,7 @@
</tr>
<tr>
<td>GPS经度 <input type="text" class="TextInput" name="GPS_Longtitude" id="GPS_Longtitude"></td>
<td>GPS<input type="text" class="TextInput" name="GPS_Latitude" id="GPS_Latitude"> </td>
<td>GPS<input type="text" class="TextInput" name="GPS_Latitude" id="GPS_Latitude"> </td>
<td>GPS高程 <input type="text" class="TextInput" name="GPS_Altitude" id="GPS_Altitude"> </td>
</tr>

0
install.sh Normal file
View File

View File

@ -9,7 +9,6 @@
#include "MainDataUploader.h"
#include "VSMD12XMovementTest.h"
using namespace std;
#pragma once
int main(int argc, char *argv[])
@ -20,10 +19,13 @@ int main(int argc, char *argv[])
QCoreApplication a(argc, argv);
//////////////////////////////////////////////////////////////////////////for test
MovementTest m_testVSMD12X;
//MovementTest m_testVSMD12X;
////////////////////////////////////////////////////////////////////////////
//system("gpio mode 1 output");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD>ʼ<EFBFBD><CABC>
//qDebug() << "gpio mode 1 output......" << endl;
//
//ZZ_ATPControl_Serial_Qt test;
//test.Initialize(0, "/dev/ttyS1", "2223344");
//////////////////////////////////////////////////////////////////////////
////
GY39Controller m_ctrlHumitureDetector;
@ -54,13 +56,14 @@ int main(int argc, char *argv[])
///turn on power supply
//////add support to dual channel
system("gpio mode 1 out");
system("gpio mode 4 out");
system("gpio mode 5 out");
qDebug() << "gpio 1;4;5; ready" << endl;
int iRet0 = 0,iRet1 = 0,iRet2 = 0,iRet3 = 0;
iRet0 = system("gpio mode 1 out");
iRet1 = system("gpio mode 4 out");
iRet2 = system("gpio mode 5 out");
iRet3 = system("gpio write 1 1");//上电
system("gpio write 1 1");//<2F><EFBFBD>ϵ<EFBFBD>
qDebug() << "gpio write 1 1......" << endl;
qDebug() << "gpio 1;4;5; ready"<<" Ret:"<< iRet0<< iRet1<< iRet2<< endl;
qDebug() << "gpio write 1 1......" <<" Ret:"<< iRet3<< endl;
// QString qstrCMD_A, qstrCMD_B, qstrCMD_Temp;
// qstrCMD_Temp = QString::fromStdString("4");
@ -86,18 +89,21 @@ int main(int argc, char *argv[])
m_scConfiggerLoader.GetParams(m_struRuntimeParams, m_struEC, m_struMEC, m_struHumitureDI);
m_sTimer.SetAcqTimeParams(m_struRuntimeParams.atsParams);
m_dfpSaver.SetEnvironmentContex(m_struEC);
m_dfpSaver.SetManmadeEnviromentalContext(m_struMEC);
m_mduUploader.SetContext(m_struEC, m_struMEC);
//m_mduUploader.SetContext(m_struEC, m_struMEC);
//m_mduUploader.Initialize();
m_ctrlHumitureDetector.Initialize(m_struHumitureDI.qstrInterfaceName.toStdString());
//////////////////////////////////////////////////////////////////////////prepare
m_sTimer.Preheating();
//m_sTimer.Preheating();
m_ctrlHumitureDetector.GetHumiture_retry(m_fChassisTemp, m_fChassisHum);
m_ctrlHumitureDetector.GetHumiture_retry(m_fChassisTemp, m_fChassisHum);
m_struEC.qstrCaseTemperature= QString("%1").arg(m_fChassisTemp);
m_struEC.qstrCaseHumidity = QString("%1").arg(m_fChassisHum);
m_dfpSaver.SetEnvironmentContex(m_struEC);
m_dfpSaver.SetManmadeEnviromentalContext(m_struMEC);
m_mduUploader.SetContext(m_struEC, m_struMEC);
//////////////////////////////////////////////////////////////////////////
QThread* m_pqDataGrabberThreadHolder = new QThread();
QThread* m_pqTimerThreadHolder = new QThread();
@ -123,9 +129,6 @@ int main(int argc, char *argv[])
m_mdgGrabber.Init_Self();
m_sTimer.SelfStart();
//////////////////////////////////////////////////////////////////////////test
// DataFileProcessor testdp;
// ZZ_SysConfigger test;
@ -210,8 +213,6 @@ int main(int argc, char *argv[])
// qfCalFile.read((char*)OneFile.fWaveLength, sizeof(double)*OneFile.iPixels);
// qfCalFile.read((char*)OneFile.dCal_Gain, sizeof(double)*OneFile.iPixels);
// qfCalFile.read((char*)OneFile.dCal_Offset, sizeof(double)*OneFile.iPixels);
//////////////////////////////////////////////////////////////////////////
return a.exec();

View File

@ -2,6 +2,8 @@
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ļ<EFBFBD>
//////////////////////////////////////////////////////////////////////////
#pragma once
#pragma pack(1)//<2F><EFBFBD><EFBFBD><E5B0B4>1<EFBFBD>ֽڶ<D6BD><DAB6><EFBFBD><EFBFBD>
#include <string>
#include <QTime>
@ -351,4 +353,5 @@ namespace ZZ_MISCDEF
QString qstrInterfaceName;
}HumitureDeviceInfo;
}
};
};
#pragma pack()//<2F>ָ<EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EBA3A8><EFBFBD><EFBFBD>8<EFBFBD>ֽڣ<D6BD>

View File

@ -612,12 +612,12 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
bIsLastValueOverflow = bIsValueOverflow;
fLastExposureTime = fTempExposureTime;
if (fExposureTime > 13000)
if (fExposureTime > 65000)
{
bFlagIsAutoExposureOK = false;
bFlagIsAutoExposureFailed = true;
fPredictedExposureTime = 13000;
iRes = SetExposureTime(13000);
fPredictedExposureTime = 65000;
iRes = SetExposureTime(65000);
if (iRes != 0)
{
qDebug() << "Err:PerformAutoExposure Failed.Exit Code:3";

View File

@ -102,22 +102,22 @@ void ATPFiberImager::recordDark(QString path)
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
singleShot(m_DarkData);
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
// QDateTime curDateTime = QDateTime::currentDateTime();
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral.csv";
// std::ofstream outfile(fileName.toStdString().c_str());
//
// for (int i = 0; i < attribute.iPixels; i++)
// {
// if (i==0)
// {
// outfile << m_DarkData.usExposureTimeInMS << std::endl;
// }
// outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
// }
//
// outfile.close();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
QDateTime curDateTime = QDateTime::currentDateTime();
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral_dn.csv";
std::ofstream outfile(fileName.toStdString().c_str());
for (int i = 0; i < attribute.iPixels; i++)
{
if (i==0)
{
outfile << m_DarkData.usExposureTimeInMS << std::endl;
}
outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
}
outfile.close();
}
void ATPFiberImager::recordTarget(int recordTimes, QString path)
@ -155,22 +155,22 @@ void ATPFiberImager::recordTarget(int recordTimes, QString path)
}
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
// QDateTime curDateTime = QDateTime::currentDateTime();
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral.csv";
// std::ofstream outfile(fileName.toStdString().c_str());
//
// for (int i = 0; i < attribute.iPixels; i++)
// {
// if (i==0)
// {
// outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
// }
// outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
// }
//
// outfile.close();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
QDateTime curDateTime = QDateTime::currentDateTime();
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral_dn.csv";
std::ofstream outfile(fileName.toStdString().c_str());
for (int i = 0; i < attribute.iPixels; i++)
{
if (i==0)
{
outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
}
outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
}
outfile.close();
}
void ATPFiberImager::autoExpose()

View File

@ -113,28 +113,28 @@ void CalibrationAlgorithm::readAndResample_StandardLightFile(QString filePath, i
// //<2F><><EFBFBD>ضϱ<D8B6>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
// QFileInfo fileInfo(filePath);
// QString standardLightFileFolder = fileInfo.path();
// QString standardLightFileName = fileInfo.fileName();
//
// QDateTime curDateTime = QDateTime::currentDateTime();
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
//
// QString tmp = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) +"_"+ standardLightFileName + "_truncation.csv";
//
// std::ofstream outfile1(tmp.toStdString().c_str());
//
// for (size_t i = 0; i < endPos - startPos; i++)
// {
// if (i == 0)
// {
// outfile1 << m_dStandardLightDataBase << std::endl;
// }
//
// outfile1 << m_dStandardLightWavelength[i] << "," << m_dStandardLightData[i] << std::endl;
// }
// outfile1.close();
//<2F><><EFBFBD>ضϱ<D8B6>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
QFileInfo fileInfo(filePath);
QString standardLightFileFolder = fileInfo.path();
QString standardLightFileName = fileInfo.fileName();
QDateTime curDateTime = QDateTime::currentDateTime();
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
QString tmp = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) +"_"+ standardLightFileName + "_truncation.csv";
std::ofstream outfile1(tmp.toStdString().c_str());
for (size_t i = 0; i < endPos - startPos; i++)
{
if (i == 0)
{
outfile1 << m_dStandardLightDataBase << std::endl;
}
outfile1 << m_dStandardLightWavelength[i] << "," << m_dStandardLightData[i] << std::endl;
}
outfile1.close();
@ -176,19 +176,19 @@ void CalibrationAlgorithm::readAndResample_StandardLightFile(QString filePath, i
}
// //<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ı<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
// QString outputName = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_" + standardLightFileName + "_resample.csv";
// std::ofstream outfile2(outputName.toStdString().c_str());
// for (size_t i = 0; i < deviceAttribute.iPixels; i++)
// {
// if (i == 0)
// {
// outfile2 << m_dStandardLightDataBase << std::endl;
// }
//
// outfile2 << deviceAttribute.fWaveLengthInNM[i] << "," << m_dStandardLightDataResampled[i] << std::endl;
// }
// outfile2.close();
//<2F><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD>ı<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
QString outputName = standardLightFileFolder + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_" + standardLightFileName + "_resample.csv";
std::ofstream outfile2(outputName.toStdString().c_str());
for (size_t i = 0; i < deviceAttribute.iPixels; i++)
{
if (i == 0)
{
outfile2 << m_dStandardLightDataBase << std::endl;
}
outfile2 << deviceAttribute.fWaveLengthInNM[i] << "," << m_dStandardLightDataResampled[i] << std::endl;
}
outfile2.close();
}
void CalibrationAlgorithm::produceCalfile(QString calFilePath, DeviceAttribute deviceAttribute, DataFrame integratingSphereData, DataFrame darkData)
@ -242,5 +242,30 @@ void CalibrationAlgorithm::produceCalfile(QString calFilePath, DeviceAttribute d
}
outfile.close();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʱ<EFBFBD><CAB1>ֱ<EFBFBD><D6B1>д<EFBFBD><EFBFBD><E1B9B9>
using namespace ZZ_MISCDEF::ZZ_DATAFILE;//tagCalibrationFrame
tagCalibrationFrame calibrationFrame;
calibrationFrame.uiExposureTimeInMS = integratingSphereData.usExposureTimeInMS;
calibrationFrame.fTemperature = integratingSphereData.fTemperature;
calibrationFrame.iPixels = deviceAttribute.iPixels;
for (size_t i = 0; i < deviceAttribute.iPixels; i++)
{
calibrationFrame.fWaveLength[i] = deviceAttribute.fWaveLengthInNM[i];
calibrationFrame.dCal_Gain[i] = m_gain[i];
}
QStringList tmp = calFilePath.split('.');
QString calFilePath2 = tmp[0] + "_structure." + tmp[1];
FILE * calFileHandle2 = fopen(calFilePath2.toStdString().c_str(), "wb");
writeCounter = fwrite(&calibrationFrame,sizeof(tagCalibrationFrame), 1, calFileHandle2);
fclose(calFileHandle2);
delete[] m_gain;
delete[] m_offset;
}

View File

@ -124,7 +124,7 @@ int main(int argc, char *argv[])
//<2F>Զ<EFBFBD><D4B6>ع<EFBFBD>
logout("<br><b style=\"color:red\">AutoExpose!</b>");
m_FiberSpectrometer->autoExpose();//
m_FiberSpectrometer->autoExpose();
int iExposureTime;
m_FiberSpectrometer->getExposureTime(iExposureTime);
@ -166,7 +166,7 @@ int main(int argc, char *argv[])
{
QDateTime curDateTime = QDateTime::currentDateTime();
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
QString calFileName = QDir::cleanPath(query.calFileOutputDirectory + QDir::separator() + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + ".dat");
QString calFileName = QDir::cleanPath(query.calFileOutputDirectory + QDir::separator() + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + ".cal");
query.calFileOutputName=calFileName;
}

View File

@ -123,23 +123,23 @@ void OceanOpticsFiberImager::recordDark(QString path)
//<2F>ɼ<EFBFBD><C9BC><EFBFBD>֡
singleShot(m_DarkData);
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
// QDateTime curDateTime = QDateTime::currentDateTime();
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
//
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral.csv";
// std::ofstream outfile(fileName.toStdString().c_str());
//
// for (int i = 0; i < attribute.iPixels; i++)
// {
// if (i==0)
// {
// outfile << m_DarkData.usExposureTimeInMS << std::endl;//
// }
// outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
// }
//
// outfile.close();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
QDateTime curDateTime = QDateTime::currentDateTime();
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_darkSpectral_dn.csv";
std::ofstream outfile(fileName.toStdString().c_str());
for (int i = 0; i < attribute.iPixels; i++)
{
if (i==0)
{
outfile << m_DarkData.usExposureTimeInMS << std::endl;//
}
outfile << attribute.fWaveLengthInNM[i] << "," << m_DarkData.lData[i] << std::endl;
}
outfile.close();
}
void OceanOpticsFiberImager::recordTarget(int recordTimes, QString path)
@ -177,23 +177,23 @@ void OceanOpticsFiberImager::recordTarget(int recordTimes, QString path)
}
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
// QDateTime curDateTime = QDateTime::currentDateTime();
// QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
//
// QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral.csv";
// std::ofstream outfile(fileName.toStdString().c_str());
//
// for (int i = 0; i < attribute.iPixels; i++)//
// {
// if (i==0)
// {
// outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
// }
// outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
// }
//
// outfile.close();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>csv
QDateTime curDateTime = QDateTime::currentDateTime();
QString currentTime = curDateTime.toString("yyyy_MM_dd_hh_mm_ss");
QString fileName = path + "/" + currentTime + "_" + QString::fromStdString(deviceInfo.strSN) + "_integratingSphereSpectral_dn.csv";
std::ofstream outfile(fileName.toStdString().c_str());
for (int i = 0; i < attribute.iPixels; i++)//
{
if (i==0)
{
outfile << m_IntegratingSphereData.usExposureTimeInMS << std::endl;
}
outfile << attribute.fWaveLengthInNM[i] << "," << m_IntegratingSphereData.lData[i] << std::endl;
}
outfile.close();
}
void OceanOpticsFiberImager::autoExpose()

View File

@ -7,6 +7,7 @@ CMainDataGrabber::CMainDataGrabber(QObject* parent /*= nullptr*/)
//m_GrabTimer = new QTimer(this);
m_iFlagIsWorkingTime = 1;
m_iFlagIsCapturing = false;
m_iFlagIsCapturing_Signal = false;
m_iFlagIsCapturing_Dark = false;
@ -459,6 +460,8 @@ int CMainDataGrabber::GrabOnceFinished()
int CMainDataGrabber::OnTimeCounter()
{
m_iFlagIsWorkingTime = 1;
bool bRes;
QString qstrCMD_A,qstrCMD_B,qstrCMD_Temp;
@ -504,7 +507,7 @@ int CMainDataGrabber::GrabOnceFinished()
{
if (m_struLinearShutterContext.ucProtocolType == 100)
{
if (i==0)
if (/*i==0*/i%2==0)
{
qstrCMD_Temp = QString::fromStdString(m_vecDSS[0].strChannelA);
qstrCMD_A = "gpio write " + qstrCMD_Temp + " 1";
@ -520,7 +523,7 @@ int CMainDataGrabber::GrabOnceFinished()
Delay_MSec(500);
}
if (i==1)
else if (/*i==1*/i%2==1)
{
qstrCMD_Temp = QString::fromStdString(m_vecDSS[0].strChannelA);
qstrCMD_A = "gpio write " + qstrCMD_Temp + " 0";
@ -630,11 +633,16 @@ int CMainDataGrabber::GrabOnceFinished()
//vecData[i].push_back();
}
//emit SignalPushOneDataFrame(vecData);
m_pmduUploader->SetData(vecData);
emit SignalPushOneDataFrame();
m_pdfpSaver->SetData(vecData);
m_pdfpSaver->WriteDataFile();
if (m_iFlagIsWorkingTime)
{
//emit SignalPushOneDataFrame(vecData);
m_pmduUploader->SetData(vecData);
emit SignalPushOneDataFrame();
m_pdfpSaver->SetData(vecData);
qDebug() << "Thread Data Server: WriteDataFile Called";
m_pdfpSaver->WriteDataFile();
}
m_iFlagIsCapturing = 0;
// qDebug() << "-------------------------------------------busy" << QTime::currentTime().toString();
@ -679,6 +687,9 @@ int CMainDataGrabber::GrabOnceFinished()
int CMainDataGrabber::OnZeroHoldCurrent()
{
///
m_iFlagIsWorkingTime = 0;
///
bool bRes = m_ctrlLS.SetHoldCurrent(0);
if (!bRes)
{

View File

@ -28,6 +28,7 @@ private:
int m_iTotalThreads;
int m_iFlagIsWorkingTime;
int m_iFlagIsCapturing;
int m_iFlagIsCapturing_Signal;
int m_iFlagIsCapturing_Dark;

View File

@ -25,10 +25,11 @@ void Scheduler::SetAcqTimeParams(AcqTimeSettings struAcqTime)
void Scheduler::Preheating()
{
qDebug() << "Start Preheating";
//QThread::msleep(5000);
#ifdef _DEBUG
QThread::msleep(5000);
#else
QThread::msleep(900000);//NEED TO CHANGE BEFOR HAND TO CUSTOM
QThread::msleep(900000);//NEED TO CHANGE BEFOR HAND TO CUSTOMER
#endif
qDebug() << "Preheating Finished";
}

View File

@ -43,14 +43,16 @@ int ZZ_ATPControl_Serial_Qt::Initialize(bool bIsUSBMode, std::string ucPortNumbe
//connect(this, &ZZ_ATPControl_Serial_Qt::SignalInit_Self, this, &ZZ_ATPControl_Serial_Qt::Init_Self);
//emit SignalInit_Self();
QString qstrPortName = QString::fromStdString(ucPortNumber);
qstrInitPortName = QString::fromStdString(ucPortNumber);
qstrInitDeviceSN = QString::fromStdString(strDeviceName);
m_pSerialPort->setPortName(qstrPortName);
m_pSerialPort->setPortName(qstrInitPortName);
m_pSerialPort->setReadBufferSize(512);
bool bRes = m_pSerialPort->setBaudRate(m_iBaudRate);
if (!bRes)
{
qDebug() << "Err:setBaudRate Failed.Exit Code:1";
qDebug() << "FS Err:setBaudRate Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
//std::cout << "Err.setBaudRate Failed" << std::endl;
return 1;
}
@ -58,7 +60,8 @@ int ZZ_ATPControl_Serial_Qt::Initialize(bool bIsUSBMode, std::string ucPortNumbe
bRes = m_pSerialPort->open(QIODevice::ReadWrite);
if (!bRes)
{
qDebug() << "Err:open Failed.Exit Code:2";
qDebug() << "FS Err:open Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
//std::cout << "Err.open Failed" << std::endl;
return 2;
}
@ -78,6 +81,7 @@ int ZZ_ATPControl_Serial_Qt::Initialize(bool bIsUSBMode, std::string ucPortNumbe
if (szPostion == std::string::npos)
{
qDebug() << "Err:FS serial number not match.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
else
@ -102,18 +106,21 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceInfo(DeviceInfo &Info)
if (iRes != 0)
{
qDebug() << "Err:GetDeviceInfo Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceInfo Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceInfo Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
m_diDeviceInfo.strPN = qbRecv.data();
@ -125,18 +132,21 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceInfo(DeviceInfo &Info)
if (iRes != 0)
{
qDebug() << "Err:GetDeviceInfo Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceInfo Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceInfo Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
m_diDeviceInfo.strSN = qbRecv.data();
@ -157,18 +167,21 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceAttribute(DeviceAttribute &Attr)
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
m_daDeviceAttr.iMinIntegrationTimeInMS = (ZZ_U8)qbRecv[1] + (ZZ_U8)qbRecv[0] * 256;
@ -180,18 +193,21 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceAttribute(DeviceAttribute &Attr)
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
m_daDeviceAttr.iMaxIntegrationTimeInMS = (ZZ_U8)qbRecv[1] + (ZZ_U8)qbRecv[0] * 256;
@ -204,12 +220,14 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceAttribute(DeviceAttribute &Attr)
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Call SetExposureTime error.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
//return 2;
}
iRes = SingleShot(m_daDeviceAttr.iPixels);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Call SingleShot error.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
@ -225,18 +243,21 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceAttribute(DeviceAttribute &Attr)
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceAttribute Failed,Communication error.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
float fWaveLengthCoef[4];
@ -269,18 +290,21 @@ int ZZ_ATPControl_Serial_Qt::SetAvgTimes(int iTimes /*= 1*/)
if (iRes != 0)
{
qDebug() << "Err:SetAvgTimes Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SetAvgTimes Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SetAvgTimes Failed.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
return 0;
@ -299,18 +323,21 @@ int ZZ_ATPControl_Serial_Qt::GetExposureTime_Init()
if (iRes != 0)
{
qDebug() << "Err:GetExposureTime Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetExposureTime Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetExposureTime Failed.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
@ -343,6 +370,7 @@ int ZZ_ATPControl_Serial_Qt::SendCommand(QByteArray qbCommand)
if (qi64Write != qbSend.size())
{
qDebug() << "Err:write Failed.Exit Code:1" << qi64Write;
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
@ -365,6 +393,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData(QByteArray &qbData)
if (iCounter > 150)
{
qDebug() << "Err:RecvData Failed,Not Enough Data.Exit Code:1" << qbData.size();
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iCounter++;
@ -373,6 +402,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData(QByteArray &qbData)
if ((ZZ_U8)qbData[0] != (ZZ_U8)0xaa || (ZZ_U8)qbData[1] != (ZZ_U8)0x55)
{
qDebug() << "Err:RecvData Failed,Wrong Header.Exit Code:2" << qbData.size();
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
@ -386,6 +416,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData(QByteArray &qbData)
if (iCounter > 200)
{
qDebug() << "Err:RecvData Failed,Incomplete Data.Exit Code:3" << qbData.size();
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
iCounter++;
@ -406,6 +437,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData(QByteArray &qbData)
if ((ZZ_U8)usCheckSum != ucTemp)
{
qDebug() << "Err:RecvData Failed,Incorrect Check Sum.Exit Code:4" << "Total Recv:" << qbData.size() << "Check Sum:" << usCheckSum << "Not Equal To" << ucTemp;
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
//qbData.clear();
//return 4;
return 0;
@ -429,6 +461,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData_ShortLag(QByteArray &qbData)
if (iCounter > 6)
{
qDebug() << "Err:RecvData_ShortLag Failed,Not Enough Data.Exit Code:1" << qbData.size();
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iCounter++;
@ -437,6 +470,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData_ShortLag(QByteArray &qbData)
if ((ZZ_U8)qbData[0] != (ZZ_U8)0xaa || (ZZ_U8)qbData[1] != (ZZ_U8)0x55)
{
qDebug() << "Err:RecvData_ShortLag Failed,Wrong Header.Exit Code:2" << qbData.size();
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
@ -450,6 +484,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData_ShortLag(QByteArray &qbData)
if (iCounter > 6)
{
qDebug() << "Err:RecvData_ShortLag Failed,Incomplete Data.Exit Code:3" << qbData.size();
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
iCounter++;
@ -470,6 +505,7 @@ int ZZ_ATPControl_Serial_Qt::RecvData_ShortLag(QByteArray &qbData)
if ((ZZ_U8)usCheckSum != ucTemp)
{
qDebug() << "Err:RecvData_ShortLag Failed,Incorrect Check Sum.Exit Code:4" << "Total Recv:" << qbData.size() << "Check Sum:" << usCheckSum << "Not Equal To" << ucTemp;
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
//qbData.clear();
//return 4;
return 0;
@ -483,6 +519,7 @@ int ZZ_ATPControl_Serial_Qt::ParseData(QByteArray &qbData)
if (qbData.size() < 6)
{
qDebug() << "Err:ParseData Failed,Not Enough Data.Exit Code:1" << qbData.size();
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
qbData.remove(0, 5);
@ -519,6 +556,7 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
if (iRes != 0)
{
qDebug() << "Err:PerformAutoExposure Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
@ -544,6 +582,7 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
if (iRes != 0)
{
qDebug() << "Err:PerformAutoExposure Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
@ -620,6 +659,7 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
if (iRes != 0)
{
qDebug() << "Err:PerformAutoExposure Failed.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
bFlagIsOverMaxExposureTime = true;
@ -630,6 +670,7 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
if (iRes != 0)
{
qDebug() << "Err:PerformAutoExposure Failed.Exit Code:4";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
}
@ -660,24 +701,28 @@ int ZZ_ATPControl_Serial_Qt::SetExposureTime(int iExposureTimeInMS)
if (iRes != 0)
{
qDebug() << "Err:SetExposureTime Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SetExposureTime Failed.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SetExposureTime Failed.Exit Code:4";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 4;
}
if ((ZZ_U8)qbRecv[0] != 0)
{
qDebug() << "Err:SetExposureTime Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
/*m_pSerialPort->waitForReadyRead(5000);
m_pSerialPort->clear();*/
//return 1;
@ -735,18 +780,21 @@ int ZZ_ATPControl_Serial_Qt::SingleShot(DataFrame &dfData)
if (iRes != 0)
{
qDebug() << "Err:SingleShot Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SingleShot Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SingleShot Failed.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
@ -755,6 +803,7 @@ int ZZ_ATPControl_Serial_Qt::SingleShot(DataFrame &dfData)
if ((ZZ_U8)qbRecv[0] != 0)
{
qDebug() << "Err:SingleShot Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
else
@ -794,24 +843,28 @@ int ZZ_ATPControl_Serial_Qt::SingleShot(int &iPixels)
if (iRes != 0)
{
qDebug() << "Err:SingleShotP Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SingleShotP Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:SingleShot Failed.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}
if ((ZZ_U8)qbRecv[0] != 0)
{
qDebug() << "Err:SingleShotP Failed.Exit Code:4";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 4;
}
else
@ -844,18 +897,21 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceTemperature(float &fTemperature)
if (iRes != 0)
{
qDebug() << "Err:GetDeviceTemperature Failed.Exit Code:1";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 1;
}
iRes = RecvData_ShortLag(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceTemperature Failed.Exit Code:2";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 2;
}
iRes = ParseData(qbRecv);
if (iRes != 0)
{
qDebug() << "Err:GetDeviceTemperature Failed.Exit Code:3";
qDebug() << "FS Init Port:" << qstrInitPortName << "FS Init Dev SN :" << qstrInitDeviceSN;
return 3;
}

View File

@ -70,6 +70,8 @@ public:
#else //
private:
#endif
//init
QString qstrInitPortName,qstrInitDeviceSN;
//port
int m_iBaudRate;
QSerialPort *m_pSerialPort;

View File

@ -37,9 +37,16 @@ void DataFileProcessor::SetData(std::vector<std::vector<DataFrame>> vecData)
bool DataFileProcessor::WriteDataFile()
{
//qDebug() << "start Thread Data Server GenerateFilePath";
GenerateFilePath();
//qDebug() << "start Thread Data Server WriteEnvironmentInfo";
WriteEnvironmentInfo();
//qDebug() << "start Thread Data Server WriteDeviceInfo";
WriteDeviceInfo();
//qDebug() << "start Thread Data Server WriteData";
WriteData();
return 1;
}

View File

@ -222,7 +222,7 @@ bool CVSMD12XControl::InitController()
bool CVSMD12XControl::GetStatus(MSInfo &stuMotorParam)
{
std::string strCMD = "cts\n";
std::string strCMD = "sts\n";
if (m_iProtocolType)
{
@ -1432,7 +1432,7 @@ bool CVSMD12XControl::IsMotionFinished()
QThread::msleep(200);
//Delay_MSec(200);
GetStatus(m_stuMSInfo);
ZZ_U8 ucFlag = m_stuMSInfo.uiFlags & 0x000000FF;
ZZ_U8 ucFlag = m_stuMSInfo.uiFlags & 0x00FFFFFF;
ucFlag = ucFlag & 0x10;
if (m_stuMSInfo.fVelocity == 0)
{
@ -1445,15 +1445,21 @@ bool CVSMD12XControl::IsMotionFinished()
}
if (iCountStopped>=50)
{
QString str = QString("%1").arg(m_stuMSInfo.uiFlags, 30, 2, QChar('0'));
qDebug() <<"Warning.Motion Err,should be stopped already.checking register and retry...";
qDebug() <<"motion status:"<<ucFlag<<"all status:"<<QString::number(m_stuMSInfo.uiFlags,2);
qDebug() << "velocity:" << m_stuMSInfo.fVelocity;
qDebug() << "position:" << m_stuMSInfo.iPosition;
qDebug() << "motion status:" << ucFlag << "all status:" << str;
bFlagIsStopped = true;
return false;
}
if (iCountTotal>1000)
{
qDebug() << "Err.Motor Hardware Err,should be stopped already";
qDebug() << "motion status:" << ucFlag << "all status:" << QString::number(m_stuMSInfo.uiFlags, 2);
QString str = QString("%1").arg(m_stuMSInfo.uiFlags, 30, 2, QChar('0'));
qDebug() << "Warning.Motion Err,should be stopped already.checking register and retry...";
qDebug() << "velocity:" << m_stuMSInfo.fVelocity;
qDebug() << "position:" << m_stuMSInfo.iPosition;
qDebug() << "motion status:" << ucFlag << "all status:" << str;
bFlagIsStopped = true;
return false;
}