#include
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSerialPort serial;
serial.setPortName("/dev/ttyUSB0");
//设置波特率
serial.setBaudRate(QSerialPort::Baud9600);
//设置数据位数
serial.setDataBits(QSerialPort::Data8);
//设置奇偶校验
serial.setParity(QSerialPort::NoParity);
//设置停止位
serial.setStopBits(QSerialPort::OneStop);
//设置流控制
serial.setFlowControl(QSerialPort::NoFlowControl);
//打开串口
bool bRet = serial.open(QIODevice::ReadWrite);
if(bRet){
printf("open success");
serial.clear();
serial.flush();
bool bClosed = true;
bool m_bDistinguish = true;
time_t startTime = time(NULL);
unsigned char btCMD_OpenDoor[4] = {0xa0, 0x01, 0x01, 0xa2};
unsigned char btCMD_CloseDoor[4] = {0xa0, 0x01, 0x00, 0xa1};
while(true){
if(m_bDistinguish && bClosed){
bool bRet = serial.waitForBytesWritten(5000);
long nRet = serial.write((char*)btCMD_OpenDoor, 4);
printf("open:%d %d\n", bRet, nRet);
startTime = time(NULL);
bClosed = false;
m_bDistinguish = false;
}
if(!m_bDistinguish && !bClosed){
long fDuration = time(NULL) - startTime;
if(fDuration >= 5){
bool bRet = serial.waitForBytesWritten(5000);
long nRet = serial.write((char*)btCMD_CloseDoor, 4);
printf("close:%d %d\n", bRet, nRet);
bClosed = true;
m_bDistinguish = true;
}
}
}
serial.close();
}
else{
printf("open fail\n");
}
return a.exec();
}
QT += serialport