#include "titlewidget.h" #include "ui_titlewidget.h" #include #include #include #include "mainwindowpagecontrol.h" #include #include #include "icemodule.h" #include "ccommunicateapi.h" #include "currentuserdata.h" #include "loginwidget.h" #include "BCIManager.h" TitleWidget::TitleWidget(QWidget *parent) : QWidget(parent), ui(new Ui::TitleWidget), checkTimer(nullptr) { ui->setupUi(this); connect(ui->back1_Btn, SIGNAL(clicked()), this, SLOT(slotBackClicked())); connect(ui->back2_Btn, SIGNAL(clicked()), this, SLOT(slotBackClicked())); ui->user_Btn->setIcon(QIcon(":/DependFile/Source/User/user1.png")); ui->user_Btn->setIconSize(QSize(40, 40)); setBackBtnVisible(false); checkTimer = new QTimer(); checkTimer->setInterval(3000); connect(checkTimer, SIGNAL(timeout()), this, SLOT(slotCheckTimer())); checkTimer->start(); connect(CCommunicateAPI::getInstance(), SIGNAL(signalCommunicateChanged(QString)), this, SLOT(slotStateChanged(QString))); ui->signal_Label->setVisible(false); ui->wifiSignal2_Label->setVisible(true); ui->brainSignal_Labe->move(1550, 30); ui->sound_Button->move(1480, 30); ui->wifiSignal_Label->move(1620, 30); ui->title_Label->setText(tr("功能选择")); //默认汉字 ui->quit_Btn->setVisible(false); ui->back1_Btn->setVisible(true); ui->back2_Btn->setVisible(true); m_soundDialog = new SoundDialog(); connect(&BCIManager::getInstance(), &BCIManager::signalDeviceStatus, this, &TitleWidget::slotBciDeviceStatus); } TitleWidget::~TitleWidget() { if(m_soundDialog) { delete m_soundDialog; } delete ui; } void TitleWidget::slotBackClicked() { int currentPage = MainWindowPageControl::getInstance()->getCurrentPageIndex(); if(!(currentPage >= MainPage_E && currentPage <= visionTrain)) { currentPage = MainPage_E; //初始化异常值276795792,设置当前页索引为0 } qDebug() << "当前页" << currentPage; switch(currentPage) { case MainPage_E: { LoginWidget login;// login.setWindowModality(Qt::WindowModal);// login.exec(); // // MainWindowPageControl::getInstance()->setCurrentPage(LoginPage_E); // qDebug()<<"开始跳转"; } break; case BrainTraining: case UserPage_E: case SettingPage_E: case BicycleParamSet_E: case FesBicycleParamSet_E: MainWindowPageControl::getInstance()->setCurrentPage(MainPage_E); break; case FesParamSet_E: { //分两种情况 switch(m_trainType) { case 0://1、直接选择的FES训练跳到主界面 MainWindowPageControl::getInstance()->setCurrentPage(MainPage_E); break; case 1://2、从踏车界面跳转到FES界面,跳到踏车界面 MainWindowPageControl::getInstance()->setCurrentPage(BicycleParamSet_E); break; } } break; case BicycleToFes_E: MainWindowPageControl::getInstance()->setCurrentPage(FesBicycleParamSet_E); break; case TrainingParamSetting_E: { if(m_trainType == 0) { MainWindowPageControl::getInstance()->setCurrentPage(BicycleParamSet_E); } else if(m_trainType == 1) { MainWindowPageControl::getInstance()->setCurrentPage(FesBicycleParamSet_E); } //qDebug() <<"Hello"; } break; case visionTrain: MainWindowPageControl::getInstance()->setCurrentPage(BrainTraining); break; } } //设置当前用户 void TitleWidget::setUser(const ST_PatientMsg &st_patientMsg) { ui->user_Btn->setText(st_patientMsg.name); } //设置wifi信号强度 void TitleWidget::setSignalStrength(int value) { Q_UNUSED(value) } //设置标题 void TitleWidget::setTitleByPage(E_PAGENAME pageType) { QString title; switch(pageType) { case MainPage_E: title = tr("功能选择"); setBackBtnVisible(true); ui->quit_Btn->setVisible(false); //只修改pageIndex,不发送槽函数 MainWindowPageControl::getInstance()->setPageIndex(MainPage_E); break; case TrainingPage_E: title = tr("");//上肢、下肢、四肢训练 setBackBtnVisible(false); ui->quit_Btn->setVisible(false); break; case UserPage_E: title = tr("用户管理"); setBackBtnVisible(true); break; case SettingPage_E: title = tr("软件设置"); setBackBtnVisible(true); break; case BicycleParamSet_E: title = tr("参数设置"); setBackBtnVisible(true); break; case FesParamSet_E: setBackBtnVisible(true); title = tr("FES参数"); break; case FesBicycleParamSet_E: setBackBtnVisible(true); title = tr("踏车参数"); break; case TrainingParamSetting_E: setBackBtnVisible(true); title = tr("参数设置"); break; case BrainTraining: setBackBtnVisible(true); title = tr("脑控康复"); break; case visionTrain: setBackBtnVisible(true); title = tr("视觉脑机康复训练"); break; default: break; } ui->title_Label->setText(title); } void TitleWidget::setTrainType(int8_t type) { m_trainType = type; } void TitleWidget::on_user_Btn_clicked() { MainWindowPageControl::getInstance()->setCurrentPage(UserPage_E); } void TitleWidget::slotCheckTimer() { showWIFI(); } void TitleWidget::showWIFI() { #if 0 DWORD dwError = ERROR_SUCCESS; DWORD dwNegotiatedVersion; HANDLE hClientHandle = NULL; dwError = WlanOpenHandle(1, NULL, &dwNegotiatedVersion, &hClientHandle); if (dwError != ERROR_SUCCESS) { WlanCloseHandle(hClientHandle, NULL); return; } PWLAN_INTERFACE_INFO_LIST pInterfaceList = NULL; dwError = WlanEnumInterfaces(hClientHandle, NULL, &pInterfaceList); if ( dwError != ERROR_SUCCESS ) { WlanFreeMemory(pInterfaceList); WlanCloseHandle(hClientHandle, NULL); return; } GUID &guid = pInterfaceList->InterfaceInfo[0].InterfaceGuid; PWLAN_AVAILABLE_NETWORK_LIST pWLAN_AVAILABLE_NETWORK_LIST = NULL; dwError = WlanGetAvailableNetworkList(hClientHandle, &guid, 2, NULL, &pWLAN_AVAILABLE_NETWORK_LIST); if (dwError != ERROR_SUCCESS) { WlanFreeMemory(pInterfaceList); WlanFreeMemory(pWLAN_AVAILABLE_NETWORK_LIST); WlanCloseHandle(hClientHandle, NULL); return; } WLAN_AVAILABLE_NETWORK wlanAN; bool isConnected = false; int numberOfItems = pWLAN_AVAILABLE_NETWORK_LIST->dwNumberOfItems; if (numberOfItems > 0) { for(int i = 0; i < numberOfItems; i++) { wlanAN = pWLAN_AVAILABLE_NETWORK_LIST->Network[i]; if(wlanAN.dwFlags & 1) { isConnected = true; int wifiQuality = (int)wlanAN.wlanSignalQuality; if(wifiQuality > 75) { QPixmap pixmapWireless(":/DependFile/Source/signal/wifi3.png"); ui->wifiSignal_Label->setPixmap(pixmapWireless); } else if(wifiQuality > 50 && wifiQuality <= 75) { QPixmap pixmapWireless(":/DependFile/Source/signal/wifi2.png"); ui->wifiSignal_Label->setPixmap(pixmapWireless); } else if(wifiQuality > 25 && wifiQuality <= 50) { QPixmap pixmapWireless(":/DependFile/Source/signal/wifi1.png"); ui->wifiSignal_Label->setPixmap(pixmapWireless); } else if(wifiQuality > 0 && wifiQuality <= 25) { QPixmap pixmapWireless(":/icons/WirelessIcon3.png"); ui->wifiSignal_Label->setPixmap(pixmapWireless); } } } } if (!isConnected) { QPixmap pixmapWireless(":/icons/WirelessIcon4.png"); ui->wifiSignal_Label->setPixmap(pixmapWireless); } WlanFreeMemory(pInterfaceList); WlanFreeMemory(pWLAN_AVAILABLE_NETWORK_LIST); WlanCloseHandle(hClientHandle, NULL); #else QPixmap pixmap; if(IceModule::getInstance()->getBicycleDeviceState()) { pixmap.load(":/DependFile/Source/signal/deviceConnected.png"); } else { pixmap.load(":/DependFile/Source/signal/deviceDisconnected.png"); } ui->wifiSignal_Label->setPixmap(pixmap); #endif } void TitleWidget::setBackBtnVisible(bool visible) { ui->back1_Btn->setVisible(visible); ui->back2_Btn->setVisible(visible); ui->quit_Btn->setVisible(!visible); } void TitleWidget::on_quit_Btn_clicked() { emit signalCloseWindow(); //MainWindowPageControl::getInstance()->setCurrentPage(LoginPage_E); /* * */ } void TitleWidget::slotStateChanged(QString str) { ui->state_label->setText(str); } void TitleWidget::slotSaveUpPicture() { QPixmap upPicture = this->grab(); QString dirPath = QApplication::applicationDirPath() + "/DependFile/Source/trainDisplayPage"; QDir resultDir(dirPath); if(!resultDir.exists()) { qDebug() << "保存图片失败"; } if(upPicture.save(dirPath + "/upPicture.png")) { qDebug() << dirPath + "/upPicture.png"; } } void TitleWidget::changeEvent(QEvent *event) { switch (event->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: QWidget::changeEvent(event); break; } setUser(CurrentUserData::getInstace()->getCurrentPatientMsg()); } void TitleWidget::on_sound_Button_clicked() { m_soundDialog->show(); } void TitleWidget::slotBciDeviceStatus(bool bConnected) { if(bConnected) { ui->brainSignal_Labe->setStyleSheet("QLabel#brainSignal_Labe{border-image:url(:/DependFile/Source/signal/icon_brain_on.png);}"); } else { ui->brainSignal_Labe->setStyleSheet("QLabel#brainSignal_Labe{border-image:url(:/DependFile/Source/signal/icon_brain_off.png);}"); } }