#include "usbcontrol.h" #include "QDebug" #include usbcontrol::usbcontrol(QObject* parent): QObject{parent} { device = NULL; bulkinPoint = NULL; initEndPoint(); } int usbcontrol::sendMessage(char *msg, int msglen) { if(msglen!=8){ return -1; } msg[7]=0; for(int i = 1;i<7;i++){ msg[7] +=msg[i]; } if(bulkinPoint==NULL){ initEndPoint(); } if(bulkinPoint==NULL){ emit signalSendMessage(QString::fromLocal8Bit("未找到设备或端口,请检查硬件")); return -4; } long len = bulkinPoint->MaxPktSize; memset(buffer,0,len); int ret = 0; contexts = bulkinPoint->BeginDataXfer(buffer,len,&inOvLap); if(!bulkinPoint->WaitForXfer(&inOvLap,1500)) ret = - 1; if(!bulkinPoint->FinishDataXfer(buffer,len,&inOvLap,contexts)) ret = -2; if(ret !=0){ device = new CCyUSBDevice(NULL); int vid,pid; int d = 0; int devices = device->DeviceCount(); do{ device->Open(d); vid = device->VendorID; pid = device->ProductID; d++; }while((dEndPointOf(0x01); if(bulkinPoint == NULL){ return -3; } } memcpy(buffer,msg,msglen); contexts = bulkinPoint->BeginDataXfer(buffer,len,&inOvLap); if(!bulkinPoint->WaitForXfer(&inOvLap,1500)) return -1; if(!bulkinPoint->FinishDataXfer(buffer,len,&inOvLap,contexts)) return -2; return 0; } void usbcontrol::initEndPoint() { device = new CCyUSBDevice(NULL); int vid,pid; int d = 0; int devices = device->DeviceCount(); do{ device->Open(d); vid = device->VendorID; pid = device->ProductID; d++; }while((dEndPointOf(0x01); if(bulkinPoint == NULL){ return; } long len = bulkinPoint->MaxPktSize; buffer = (unsigned char*)malloc(len); inOvLap.hEvent = CreateEventW(NULL,false,false,NULL); } void usbcontrol::bit14(bool b) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x05; if(b) msg[3] = 0x01; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log; if(b) log = t.toString()+QString::fromLocal8Bit("设置14bit输出"); else log = t.toString()+QString::fromLocal8Bit("设置8bit输出"); // emit signalSendMessage(log); } void usbcontrol::tec(bool b) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x01; msg[2] = 0x07; if(b) msg[3] = 0x01; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString(); if(b) log = log+QString::fromLocal8Bit("开启TEC"); else log = log+QString::fromLocal8Bit("关闭TEC"); emit signalSendMessage(log); } void usbcontrol::onepoint() { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x03; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("单点校正"); emit signalSendMessage(log); } void usbcontrol::savelow() { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x01; msg[2] = 0x00; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("存低温图像"); emit signalSendMessage(log); } void usbcontrol::savehigh() { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x01; msg[2] = 0x01; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("存高温图像"); emit signalSendMessage(log); } void usbcontrol::calck() { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x01; msg[2] = 0x02; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("计算K"); emit signalSendMessage(log); } void usbcontrol::savek() { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x01; msg[2] = 0x03; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("保存K"); emit signalSendMessage(log); } void usbcontrol::openk(bool b) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x01; if(b) msg[2] = 0x05; else msg[2] = 0x04; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString(); if(b) log+= QString::fromLocal8Bit("开启K值"); else log+= QString::fromLocal8Bit("关闭K值"); emit signalSendMessage(log); } void usbcontrol::saveb() { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x03; msg[3]= 0x01; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("存储B"); emit signalSendMessage(log); } void usbcontrol::openb(bool b) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x03; if(b) msg[3]= 0x02; else msg[3] = 0x03; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString(); if(b) log+= QString::fromLocal8Bit("开启B值"); else log+= QString::fromLocal8Bit("关闭B值"); emit signalSendMessage(log); } void usbcontrol::openbila(bool b) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x04; if(b) msg[3] = 0x01; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString(); if(b) log+=QString::fromLocal8Bit("开启机芯双边滤波"); else log+= QString::fromLocal8Bit("关闭机芯双边滤波"); emit signalSendMessage(log); } void usbcontrol::setDDE(int v) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x0A; msg[3] = v/256; msg[4] = v%256; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString(); log+= QString::fromLocal8Bit("设置DDE系数为")+QString::number(v); emit signalSendMessage(log); } void usbcontrol::setGPOL(int value) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x12; int v= 16*value; // int v = ui->spinBox_GPOL->value()*16; msg[3] = v/256; msg[4] = v%256; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("设置GPOL为") + QString::number( value) +"mv"; emit signalSendMessage(log); } void usbcontrol::setIT(double value) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x10; // int v = value*6250/4;//转换为int型 int v = value*6250/5; msg[3] = v/256; msg[4] = v%256; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString() +QString::fromLocal8Bit("设置积分时间为")+QString::number( value) +"ms"; emit signalSendMessage(log); } void usbcontrol::setkf(int v) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x02; msg[3] = v; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("设置数字滤波系数为")+QString::number(v); emit signalSendMessage(log); } void usbcontrol::sethist(int gray) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x01; msg[3] = gray/256; msg[4] = gray%256; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString()+QString::fromLocal8Bit("设置直方图平台值")+QString::number(gray) ; emit signalSendMessage(log); } void usbcontrol::setsag(bool b ) { char msg[8] = {0}; msg[0] = 0x44; msg[1] = 0x02; msg[2] = 0x14; if(b) msg[3] = 0x01; sendMessage(msg,8); QDateTime t = QDateTime::currentDateTime(); QString log = t.toString(); if(b) log+=QString::fromLocal8Bit("开启自适应增强"); else log += QString::fromLocal8Bit("关闭自适应增强"); emit signalSendMessage(log); }