Browse Source

树莓派测试

master
Bai 4 years ago
parent
commit
d8f4bc4b9c
  1. 2
      QCPShow.pro.user
  2. 3
      deviceservice.cpp
  3. 2
      deviceservice.h
  4. 61
      mainwidget.cpp
  5. 3
      mainwidget.h

2
QCPShow.pro.user

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.2.1, 2021-11-07T20:57:44. --> <!-- Written by QtCreator 4.2.1, 2021-11-21T23:21:14. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>

3
deviceservice.cpp

@ -38,6 +38,8 @@ DeviceService::DeviceService(QObject *parent) : QObject(parent)
// ledSet(m_ledStatus); // ledSet(m_ledStatus);
// }); // });
//扫描按键状态,发送
timer2.setInterval(50); timer2.setInterval(50);
timer2.start(); timer2.start();
connect(&timer2,&QTimer::timeout,[=](){ connect(&timer2,&QTimer::timeout,[=](){
@ -55,6 +57,7 @@ DeviceService::DeviceService(QObject *parent) : QObject(parent)
key.flag = (KeyFlag)keyDetection(); key.flag = (KeyFlag)keyDetection();
if(key.flag != None){ if(key.flag != None){
emit keyWorked(key.flag); emit keyWorked(key.flag);
qDebug()<<"keyWorked is "<<key.flag;
} }
}); });
} }

2
deviceservice.h

@ -34,9 +34,9 @@ public:
explicit DeviceService(QObject *parent = 0); explicit DeviceService(QObject *parent = 0);
int m_ledStatus,m_keyStatus; int m_ledStatus,m_keyStatus;
QTimer timer1; QTimer timer1;
KeyType key;
private: private:
KeyType key;
QTimer timer2; QTimer timer2;
QTime lastFlagTime, lastStateTime; QTime lastFlagTime, lastStateTime;
signals: signals:

61
mainwidget.cpp

@ -22,6 +22,7 @@ MainWidget::MainWidget(HttpService *httpService,
m_wsConnectedStatus = 0; m_wsConnectedStatus = 0;
m_maxPatientNum = MainConfig::maxPatientNum.toInt(); m_maxPatientNum = MainConfig::maxPatientNum.toInt();
m_switchPatientInterval = MainConfig::switchPatientInterval.toInt(); m_switchPatientInterval = MainConfig::switchPatientInterval.toInt();
keyDownPInfo = Q_NULLPTR;//zhixiang kongzhizhen
//1s倒计时 //1s倒计时
m_countDownTimer.setInterval(1000); m_countDownTimer.setInterval(1000);
@ -46,6 +47,13 @@ MainWidget::MainWidget(HttpService *httpService,
m_curX = 0; m_curX = 0;
}); });
//LED闪烁
m_ledTurnTimer.setInterval(1000);
connect(&m_ledTurnTimer, &QTimer::timeout,[=](){
m_deviceService->m_ledStatus ^= 1;
m_deviceService->ledSet(m_deviceService->m_ledStatus);
});
//显示连接状态 //显示连接状态
ui->statusLabel->setText("Not Connected"); 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); PatientEmergencyInfo *pInfo = new PatientEmergencyInfo(firstAidId,name,content,realCountDownInSeconds);
addPatientToList(pInfo); addPatientToList(pInfo);
qDebug() << "MainWidget::onNewPatientMergencyInfo " << firstAidId << name << content << realCountDownInSeconds; qDebug() << "MainWidget::onNewPatientMergencyInfo " << firstAidId << name << content << realCountDownInSeconds;
m_deviceService->timer1.start(); m_ledTurnTimer.start();
m_deviceService->m_ledStatus ^= 1;
m_deviceService->ledSet(m_deviceService->m_ledStatus);
} }
void MainWidget::onPatientMergencyStatusChanged(QString firstAidId,QString time, QString status) void MainWidget::onPatientMergencyStatusChanged(QString firstAidId,QString time, QString status)
@ -231,19 +236,32 @@ void MainWidget::onKeyClicked()
void MainWidget::onKeyDown() void MainWidget::onKeyDown()
{ {
keyDownPInfo = m_patientEmergencyInfos[m_patientIndex]; if(m_patientEmergencyInfos.length() > 0){
keyDownPInfo = m_patientEmergencyInfos[m_patientIndex];
}
} }
void MainWidget::onKeyWorked(KeyFlag flag) void MainWidget::onKeyWorked(KeyFlag flag)
{ {
m_deviceService->timer1.stop();
if(flag == Click){ if(flag == Click){
m_ledTurnTimer.stop();
m_deviceService->m_ledStatus = 0; m_deviceService->m_ledStatus = 0;
m_deviceService->ledSet(m_deviceService->m_ledStatus); m_deviceService->ledSet(m_deviceService->m_ledStatus);
onKeyClicked();
}else if(flag == Dbl_Click){ }else if(flag == Dbl_Click){
qDebug()<<"Key Dbl_Clicked";
//切换病人
if(++m_patientIndex >= m_patientEmergencyInfos.length()){
m_patientIndex = 0;
}
updateUi(); updateUi();
m_curX = 0;
}else if(flag == Press){ }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->m_ledStatus = 1;
m_deviceService->ledSet(m_deviceService->m_ledStatus); m_deviceService->ledSet(m_deviceService->m_ledStatus);
} }
@ -262,6 +280,8 @@ void MainWidget::addPatientToList(PatientEmergencyInfo *info)
//3.加入链表 //3.加入链表
m_patientEmergencyInfos.push_back(info); m_patientEmergencyInfos.push_back(info);
onKeyDown();//模拟按键按下
} }
void MainWidget::deletePatientFromList(QString firstAidId) 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) void MainWidget::mouseDoubleClickEvent(QMouseEvent *event)
{ {
if(event->button()==Qt::LeftButton){ if(event->button()==Qt::LeftButton){
//TODO //TODO
m_deviceService->key.flag = Click;
onKeyWorked(m_deviceService->key.flag);
} }
else if(event->button()==Qt::RightButton){ 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);
}
}

3
mainwidget.h

@ -26,6 +26,8 @@ public:
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
void resizeEvent(QResizeEvent *event); void resizeEvent(QResizeEvent *event);
void mouseDoubleClickEvent(QMouseEvent *event); void mouseDoubleClickEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void wheelEvent(QWheelEvent *event);
private: private:
HttpService *m_httpService; HttpService *m_httpService;
@ -38,6 +40,7 @@ private:
qint32 m_patientIndex; qint32 m_patientIndex;
QTimer m_countDownTimer; QTimer m_countDownTimer;
QTimer m_switchPatientTimer; QTimer m_switchPatientTimer;
QTimer m_ledTurnTimer;
int m_wsConnectedStatus; int m_wsConnectedStatus;
QFont font1, font2, font3; QFont font1, font2, font3;
QTimer m_lableScrollTimer; QTimer m_lableScrollTimer;

Loading…
Cancel
Save