This commit is contained in:
2021-11-03 17:45:16 +08:00
parent 617a16002f
commit 5e421006e0
5 changed files with 141 additions and 11 deletions

View File

@ -57,12 +57,23 @@ int ZZ_ATPControl_Serial_Qt::ATPClose()
}
int ZZ_ATPControl_Serial_Qt::GetDeviceInfo()
{
QByteArray qbSend, qbRecv;
qbSend.clear();
qbRecv.clear();
qbSend.append(GET_PN_NUMBER);
SendCommand(qbSend);
RecvData(qbRecv);
ParseData(qbRecv);
m_adiDeviceInfo.strPN = qbRecv.data();
qbSend.clear();
qbRecv.clear();
qbSend.append(GET_SN_NUMBER);
SendCommand(qbSend);
RecvData(qbRecv);
ParseData(qbRecv);
m_adiDeviceInfo.strSN = qbRecv.data();
return 0;
@ -70,18 +81,44 @@ int ZZ_ATPControl_Serial_Qt::GetDeviceInfo()
int ZZ_ATPControl_Serial_Qt::GetDeviceAttribute()
{
QByteArray qbSend,qbRecv;
qbSend.append(GET_WAVELENGTH_CALIBRATION_COEF);
qbSend.resize(2);
qbSend[0] = 0x00;
qbSend[1] = 0x01;
QByteArray qbSend, qbRecv;
qbSend.clear();
qbRecv.clear();
qbSend.append(GET_MIN_INTEGRATION_TIME);
SendCommand(qbSend);
RecvData(qbRecv);
//ParseData(qbRecv);
ParseData(qbRecv);
m_adaDeviceAttr.iMinIntegrationTime = (ZZ_U8)qbRecv[1] + (ZZ_U8)qbRecv[0] * 256;
float a[4];
memcpy(a, (ZZ_U8*)(qbRecv[5]+16), 4 * 4);
qbSend.clear();
qbRecv.clear();
qbSend.append(GET_MAX_INTEGRATION_TIME);
SendCommand(qbSend);
RecvData(qbRecv);
ParseData(qbRecv);
m_adaDeviceAttr.iMaxIntegrationTime = (ZZ_U8)qbRecv[1] + (ZZ_U8)qbRecv[0] * 256;
SetExposureTime(m_adaDeviceAttr.iMinIntegrationTime);
SingleShot(m_adaDeviceAttr.iPixels);
qbSend.clear();
qbRecv.clear();
qbSend.append(GET_WAVELENGTH_CALIBRATION_COEF);
qbSend.resize(3);
qbSend[1] = 0x00;
qbSend[2] = 0x01;
SendCommand(qbSend);
RecvData(qbRecv);
ParseData(qbRecv);
float fWaveLengthCoef[4];
memcpy(fWaveLengthCoef, qbRecv.data()+16, 4 * sizeof(float));
// for ()
// {
// }
return 0;
}
@ -189,7 +226,93 @@ int ZZ_ATPControl_Serial_Qt::ParseData(QByteArray &qbData)
return 0;
}
int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fMaxScaleFactor, float &fPredictedExposureTime)
{
return 0;
}
int ZZ_ATPControl_Serial_Qt::SetExtShutter(int iShutterA, int iShutterB)
{
return 0;
}
int ZZ_ATPControl_Serial_Qt::SetExposureTime(int iExposureTimeInMS)
{
QByteArray qbExposureTime,qbRecv;
qbExposureTime.append(SET_INTEGRATION_TIME);
qbExposureTime.resize(3);
qbExposureTime[1] = iExposureTimeInMS >> 8;
qbExposureTime[2] = iExposureTimeInMS & 0xFF;
SendCommand(qbExposureTime);
RecvData(qbRecv);
ParseData(qbRecv);
if ((ZZ_U8)qbRecv[0] != 0)
{
qDebug() << "Err:SetExposureTime Failed.Exit Code:1" ;
return 1;
}
return 0;
}
int ZZ_ATPControl_Serial_Qt::SingleShot(ATPDataFrame &dfData)
{
QByteArray qbSend, qbRecv;
qbSend.clear();
qbRecv.clear();
qbSend.append(SYNC_GET_DATA);
qbSend.resize(3);
qbSend[1] = 0x00;
qbSend[2] = 0x01;
SendCommand(qbSend);
RecvData(qbRecv);
ParseData(qbRecv);
if ((ZZ_U8)qbRecv[0] != 0)
{
qDebug() << "Err:SingleShot Failed.Exit Code:1";
return 1;
}
else
{
int iDataSizeInPixel = (qbRecv.size() - 1) / 2;
memcpy(dfData.usData, qbRecv.data() + 1, iDataSizeInPixel * 2);
}
//int isize = qbRecv.size();
//m_adaDeviceAttr.iPixels = isize / 2;
return 0;
}
int ZZ_ATPControl_Serial_Qt::SingleShot(int &iPixels)
{
QByteArray qbSend, qbRecv;
qbSend.clear();
qbRecv.clear();
qbSend.append(SYNC_GET_DATA);
qbSend.resize(3);
qbSend[1] = 0x00;
qbSend[2] = 0x01;
SendCommand(qbSend);
RecvData(qbRecv);
ParseData(qbRecv);
if ((ZZ_U8)qbRecv[0] != 0)
{
qDebug() << "Err:SingleShot Failed.Exit Code:1";
return 1;
}
else
{
iPixels = (qbRecv.size() - 1) / 2;
}
return 0;
}
//void ZZ_ATPControl_Serial_Qt::ReadMessage()
//{

View File

@ -13,12 +13,16 @@ public:
ZZ_ATPControl_Serial_Qt();
virtual ~ZZ_ATPControl_Serial_Qt();
//////////////////////////////////////////////////////////////////////////shutter control stub code s
int SetExtShutter(int iShutterA,int iShutterB); //0:close 1:open
//////////////////////////////////////////////////////////////////////////shutter control stub code e
public:
int SetBaudRate(int iBaud);
int ATPInitialize( ZZ_U8 ucPortNumber);
int ATPClose();
int SingleShot(int &iPixels);
int SingleShot(ATPDataFrame &dfData);
int SingleShotDark(ATPDataFrame &dfData);
int SingleShotDeducted(ATPDataFrame &dfData);

View File

@ -48,7 +48,7 @@ namespace ZZ_MISCDEF
typedef struct tagATPDataFrame
{
unsigned short usExposureTime;
int iData[4096];
ZZ_U16 usData[4096];
float fTemperature;
double dTimes = 0;
}ATPDataFrame;

View File

@ -1,6 +1,7 @@
#pragma once
#include <iostream>
#include <QtCore/QCoreApplication>
#include <QtCore/QTime>
#include <QString>
#include <QDebug>
#include <QtSerialPort/QSerialPort>