You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
4.5 KiB
C++
175 lines
4.5 KiB
C++
#include "rastersdg20.h"
|
|
#include "muban.h"
|
|
#include "CMySerialPort.h"
|
|
#include "Raster.h"
|
|
#include "QIcon"
|
|
#pragma execution_character_set("utf-8")
|
|
RASTERSDG20_EXPORT IRasterSDG20* RasterSDG20Create(const QString filepath){
|
|
return new RasterSDG20(filepath);
|
|
}
|
|
RASTERSDG20_EXPORT void RasterSDG20Delete(IRasterSDG20* p){
|
|
if (p){
|
|
delete p;
|
|
}
|
|
p = NULL;
|
|
}
|
|
|
|
RasterSDG20::RasterSDG20(const QString filepath)
|
|
{
|
|
m_SerialPort = new CMySerialPort();
|
|
m_pmuBan = new muban();
|
|
// Qt::WindowFlags flags = Qt::Dialog;
|
|
// m_pmuBan->setWindowFlags(flags);
|
|
m_pmuBan->setWindowFlags(Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
|
|
m_pRaster = new CRaster(filepath);
|
|
connect(m_SerialPort, SIGNAL(sendShowData(QByteArray)), this, SLOT(onRecvData(QByteArray)));
|
|
connect(this, SIGNAL(sgSendData(QByteArray)), m_SerialPort, SLOT(onSendData(QByteArray)));
|
|
connect(m_pmuBan, SIGNAL(SignalByteData2Parent(QByteArray)), this, SIGNAL(sgSendData(QByteArray)));
|
|
connect(m_SerialPort, SIGNAL(sendShowData(QByteArray)), m_pmuBan, SLOT(SlotRecvDataByParent(QByteArray)));
|
|
connect(m_pmuBan, SIGNAL(sgThress(int)), this, SLOT(onRecvThress(int)));
|
|
connect(m_pmuBan, SIGNAL(sgSaveData(int)), this, SLOT(onSaveRaster(int)));
|
|
connect(this, SIGNAL(sgShowComState(QString, int)), m_pmuBan, SLOT(onShowComState(QString, int)));
|
|
connect(m_pmuBan, SIGNAL(sgCtrolDevice(int)), this, SLOT(onCtrolDevice(int)));
|
|
//connect(this, SIGNAL(sgShowThress(QString)), m_pmuBan, SLOT(onShowThrenss(QString)));
|
|
m_pmuBan->setWindowTitle(tr("光栅标定和设置"));
|
|
m_pmuBan->setWindowIcon(QIcon(":/image/leaper"));
|
|
RasterCom* m_pRasterCom = m_pRaster->getRasterCom();
|
|
if (m_pRasterCom->m_UseRaster){
|
|
onCtrolDevice(0);
|
|
}
|
|
else{
|
|
QString str = tr("未打开任何串口设备!!!");// .arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
|
|
emit(sgShowComState(str, 3));
|
|
}
|
|
}
|
|
|
|
RasterSDG20::~RasterSDG20()
|
|
{
|
|
if (m_pmuBan){
|
|
delete m_pmuBan;
|
|
m_pmuBan = NULL;
|
|
}
|
|
if (m_SerialPort){
|
|
delete m_SerialPort;
|
|
m_SerialPort = NULL;
|
|
}
|
|
if (m_pRaster){
|
|
delete m_pRaster;
|
|
m_pRaster = NULL;
|
|
}
|
|
}
|
|
|
|
Q_SLOT void RasterSDG20::onRecvData(QByteArray m_RecvData)
|
|
{
|
|
int a = 0;
|
|
}
|
|
|
|
Q_SLOT void RasterSDG20::onRecvThress(int value)
|
|
{
|
|
if (m_pRaster){
|
|
m_pRaster->addThicknessValue(value);
|
|
}
|
|
}
|
|
|
|
void RasterSDG20::onStartSampling()
|
|
{
|
|
m_pmuBan->onStartSampling();
|
|
}
|
|
|
|
void RasterSDG20::onShowWidget(QWidget* parent)
|
|
{
|
|
m_pmuBan->setParent(parent);
|
|
m_pmuBan->SetData2UI(m_pRaster->getRasterSt());
|
|
m_pmuBan->SetData2UI(m_pRaster->getRasterCom());
|
|
m_pmuBan->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
m_pmuBan->setWindowIcon(QIcon(":/image/leaper"));
|
|
m_pmuBan->setAttribute(Qt::WA_ShowModal, true);
|
|
m_pmuBan->setWindowModality(Qt::ApplicationModal);
|
|
m_pmuBan->show();
|
|
|
|
}
|
|
|
|
void RasterSDG20::addThicknessValue(double dValue)
|
|
{
|
|
if (m_pRaster){
|
|
m_pRaster->addThicknessValue(dValue);
|
|
}
|
|
}
|
|
|
|
QString RasterSDG20::getThicknessValueStr() const{
|
|
return m_pRaster->getThicknessListStr();
|
|
}
|
|
|
|
double RasterSDG20::getThicknessValue() const
|
|
{
|
|
if (m_pRaster){
|
|
|
|
return m_pRaster->getThicknessValue();
|
|
}
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
Q_SLOT void RasterSDG20::onSaveRaster(int ntype)
|
|
{
|
|
if (m_pRaster){
|
|
switch (ntype)
|
|
{
|
|
case EMTYPE_RASTER:
|
|
m_pRaster->saveRasterJson(EMTYPE_RASTER);
|
|
break;
|
|
case EMTYPE_COM:
|
|
m_pRaster->saveRasterJson(EMTYPE_COM);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
Q_SLOT void RasterSDG20::onCtrolDevice(int nValue)
|
|
{
|
|
RasterCom* m_pRasterCom = m_pRaster->getRasterCom();
|
|
if (nValue == int(EMTYPE_OPENCOM)){
|
|
if (m_SerialPort->OpenCom(m_pRasterCom->m_ComName, m_pRasterCom->m_Baute)){
|
|
QString str = tr("串口%1 %2 打开成功 ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
|
|
emit(sgShowComState(str, int(EMTYPE_OPENCOM)));
|
|
}
|
|
else{
|
|
QString str = tr("串口%1 %2 打开失败!!! ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
|
|
emit(sgShowComState(str, int(EMTYPE_OPENERROR)));
|
|
}
|
|
}
|
|
else if(nValue==int(EMTYPE_CLOSECOM)){
|
|
m_SerialPort->CloseCom();
|
|
QString str = tr("串口%1 %2 关闭!!! ").arg(m_pRasterCom->m_ComName).arg(m_pRasterCom->m_Baute);
|
|
emit(sgShowComState(str, int(EMTYPE_CLOSECOM)));
|
|
}
|
|
}
|
|
|
|
double RasterSDG20::getDiameterValue()
|
|
{
|
|
double dDiameter = 0.0;
|
|
if (getfunc_)
|
|
{
|
|
Dia2ThPara st = getfunc_();
|
|
float mK = st.mk_, mB = st.mb_;
|
|
dDiameter = getThicknessValue()*mK + mB;
|
|
}
|
|
return dDiameter;
|
|
}
|
|
|
|
void RasterSDG20::setSetDiaParaFunc(SetDiaParaFunc func)
|
|
{
|
|
setfunc_ = func;
|
|
if (m_pmuBan)
|
|
m_pmuBan->setSetDiaParaFunc(func);
|
|
}
|
|
|
|
void RasterSDG20::setGetDiaParaFunc(GetDiaParaFunc func)
|
|
{
|
|
getfunc_ = func;
|
|
if (m_pmuBan)
|
|
m_pmuBan->setGetDiaParaFunc(func);
|
|
}
|