diff --git a/QCPShow.pro.user b/QCPShow.pro.user index 789e5c6..f6a85bf 100644 --- a/QCPShow.pro.user +++ b/QCPShow.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/deviceservice.cpp b/deviceservice.cpp index 8e8fb4e..c407d82 100644 --- a/deviceservice.cpp +++ b/deviceservice.cpp @@ -38,6 +38,8 @@ DeviceService::DeviceService(QObject *parent) : QObject(parent) // ledSet(m_ledStatus); // }); + + //扫描按键状态,发送 timer2.setInterval(50); timer2.start(); connect(&timer2,&QTimer::timeout,[=](){ @@ -55,6 +57,7 @@ DeviceService::DeviceService(QObject *parent) : QObject(parent) key.flag = (KeyFlag)keyDetection(); if(key.flag != None){ emit keyWorked(key.flag); + qDebug()<<"keyWorked is "<m_ledStatus ^= 1; + m_deviceService->ledSet(m_deviceService->m_ledStatus); + }); + //显示连接状态 ui->statusLabel->setText("Not Connected"); @@ -192,10 +200,7 @@ void MainWidget::onNewPatientMergencyInfo(QString firstAidId, QString name, QStr PatientEmergencyInfo *pInfo = new PatientEmergencyInfo(firstAidId,name,content,realCountDownInSeconds); addPatientToList(pInfo); qDebug() << "MainWidget::onNewPatientMergencyInfo " << firstAidId << name << content << realCountDownInSeconds; - m_deviceService->timer1.start(); - m_deviceService->m_ledStatus ^= 1; - m_deviceService->ledSet(m_deviceService->m_ledStatus); - + m_ledTurnTimer.start(); } void MainWidget::onPatientMergencyStatusChanged(QString firstAidId,QString time, QString status) @@ -231,19 +236,32 @@ void MainWidget::onKeyClicked() void MainWidget::onKeyDown() { - keyDownPInfo = m_patientEmergencyInfos[m_patientIndex]; + if(m_patientEmergencyInfos.length() > 0){ + keyDownPInfo = m_patientEmergencyInfos[m_patientIndex]; + } } void MainWidget::onKeyWorked(KeyFlag flag) { - m_deviceService->timer1.stop(); if(flag == Click){ + m_ledTurnTimer.stop(); m_deviceService->m_ledStatus = 0; m_deviceService->ledSet(m_deviceService->m_ledStatus); + onKeyClicked(); }else if(flag == Dbl_Click){ + qDebug()<<"Key Dbl_Clicked"; + //切换病人 + if(++m_patientIndex >= m_patientEmergencyInfos.length()){ + m_patientIndex = 0; + } updateUi(); + m_curX = 0; }else if(flag == Press){ - deletePatientFromList(keyDownPInfo->id); + qDebug()<<"Key Press"; + if(keyDownPInfo != Q_NULLPTR){ + deletePatientFromList(keyDownPInfo->id); + keyDownPInfo = Q_NULLPTR; + } m_deviceService->m_ledStatus = 1; m_deviceService->ledSet(m_deviceService->m_ledStatus); } @@ -262,6 +280,8 @@ void MainWidget::addPatientToList(PatientEmergencyInfo *info) //3.加入链表 m_patientEmergencyInfos.push_back(info); + + onKeyDown();//模拟按键按下 } void MainWidget::deletePatientFromList(QString firstAidId) @@ -275,12 +295,37 @@ void MainWidget::deletePatientFromList(QString firstAidId) } } +void MainWidget::mousePressEvent(QMouseEvent *event) +{ + + if(event->button()==Qt::LeftButton){ + //TODO + } + else if(event->button()==Qt::RightButton){ + + } +} +//鼠标左键双击,代替按键一下 +//鼠标右键双击,代替按键两下 void MainWidget::mouseDoubleClickEvent(QMouseEvent *event) { if(event->button()==Qt::LeftButton){ //TODO + m_deviceService->key.flag = Click; + onKeyWorked(m_deviceService->key.flag); } else if(event->button()==Qt::RightButton){ - onKeyClicked(); + m_deviceService->key.flag = Dbl_Click; + onKeyWorked(m_deviceService->key.flag); } } +//鼠标滚动,代替长按 +void MainWidget::wheelEvent(QWheelEvent *event) +{ // 当滚轮远离使用者时 + if(event->delta() > 0){ + //TODO + }else{//当滚轮向使用者方向旋转时 + m_deviceService->key.flag = Press; + onKeyWorked(m_deviceService->key.flag); + } +} diff --git a/mainwidget.h b/mainwidget.h index 7660c2d..9b07e9c 100644 --- a/mainwidget.h +++ b/mainwidget.h @@ -26,6 +26,8 @@ public: void paintEvent(QPaintEvent *event); void resizeEvent(QResizeEvent *event); void mouseDoubleClickEvent(QMouseEvent *event); + void mousePressEvent(QMouseEvent *event); + void wheelEvent(QWheelEvent *event); private: HttpService *m_httpService; @@ -38,6 +40,7 @@ private: qint32 m_patientIndex; QTimer m_countDownTimer; QTimer m_switchPatientTimer; + QTimer m_ledTurnTimer; int m_wsConnectedStatus; QFont font1, font2, font3; QTimer m_lableScrollTimer;