#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); }