Browse Source

树莓派测试

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

2
QCPShow.pro.user

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<data>
<variable>EnvironmentId</variable>

3
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 "<<key.flag;
}
});
}

2
deviceservice.h

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

57
mainwidget.cpp

@ -22,6 +22,7 @@ MainWidget::MainWidget(HttpService *httpService,
m_wsConnectedStatus = 0;
m_maxPatientNum = MainConfig::maxPatientNum.toInt();
m_switchPatientInterval = MainConfig::switchPatientInterval.toInt();
keyDownPInfo = Q_NULLPTR;//zhixiang kongzhizhen
//1s倒计时
m_countDownTimer.setInterval(1000);
@ -46,6 +47,13 @@ MainWidget::MainWidget(HttpService *httpService,
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");
@ -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()
{
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){
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);
}
}

3
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;

Loading…
Cancel
Save