HMI-45-【控制台】控制台代码迁移

简介: 今天实在是看不下去控制台了,多媒体先放一下,先搞一下控制台,说好听点就是优化一下控制台控制逻辑。

头图

HMI-45-【控制台】控制台代码迁移

​ 今天实在是看不下去控制台了,多媒体先放一下,先搞一下控制台,说好听点就是优化一下控制台控制逻辑。

image-20220327181619115

当前进度

​ 这个就是今天的成果,就是把转向灯控制和电话控制放到了一起,方便操控。

image-20220327181619115


[toc]

关键字: HMIControlPanelQtlight控制台

转向灯控制迁移

​ 转向灯控制迁移到主控制面板中,通过信号给到控制台。代码如下

主控制面板

void MainControl::on_radioButton_turnLight_off_clicked(bool checked)
{
    if(checked)
        emit signal_TurnLight(3);
}


void MainControl::on_radioButton_turnLight_left_clicked(bool checked)
{
    if(checked)
        emit signal_TurnLight(0);
}


void MainControl::on_radioButton_turnLight_right_clicked(bool checked)
{
    if(checked)
        emit signal_TurnLight(1);
}


void MainControl::on_radioButton_turnLightDouble_clicked(bool checked)
{
    if(checked)
        emit signal_TurnLight(2);
}

控制台

    connect(m_maincontrol,&MainControl::signal_TurnLight,[=](int light){
        switch (light) {
        case 0:
        {
            if(m_meterDisplay)
                m_meterDisplay->setTurnLight(turnLight::m_turnLightLeft);
            if(m_hud)
                m_hud->setTurnLight(turnLight::m_turnLightLeft);
            break;
        }
        case 1:
        {
            if(m_meterDisplay)
                m_meterDisplay->setTurnLight(turnLight::m_turnLightRight);
            if(m_hud)
                m_hud->setTurnLight(turnLight::m_turnLightRight);
            break;
        }
        case 2:
        {
            if(m_meterDisplay)
                m_meterDisplay->setTurnLight(turnLight::m_turnLightWarning);
            if(m_hud)
                m_hud->setTurnLight(turnLight::m_turnLightWarning);
            break;
        }
        case 3:
        {
            if(m_meterDisplay)
                m_meterDisplay->setTurnLight(turnLight::m_turnLightOff);
            if(m_hud)
                m_hud->setTurnLight(turnLight::m_turnLightOff);
            break;
        }
        }
    });

电话控制迁移

​ 同转向灯一样,把电话控制迁移到主控制面板中,通过信号传递给控制台。代码如下:

主控制面板代码

void MainControl::on_pushButton_phone_call_clicked()
{
    emit signal_Phone(0);
}


void MainControl::on_pushButton_phone_answer_clicked()
{
    emit signal_Phone(1);
}


void MainControl::on_pushButton_phone_hangUp_clicked()
{
    emit signal_Phone(2);
}

控制台代码

    connect(m_maincontrol,&MainControl::signal_Phone,[=](int type){
        switch (type) {
        case 0:
        {
            if(m_meterDisplay)
                m_meterDisplay->callIn("大模仿","12345678901",QPixmap(":/Comfort/Resources/MeterDisplay/Comfort/Phone/Picture.png"));
            break;
        }
        case 1:
        {
            if(m_meterDisplay)
                m_meterDisplay->setPhoneAnswer();
            break;
        }
        case 2:
        {
            m_meterDisplay->setPhoneHangUp();
            break;
        }
        }
    });

第三阶段成果展示

​ 目前已完成液晶仪表三种模式的初步显示,小模块后期根据精力更新了,主要还得找美术来搞资源,自己能力不够。暂未跟新计划。展示如下:

[video(video-yznBr6e3-1648369267384)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=679609061)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/4d157e1cb316b007a2cb9790cb2dbfde.png)(title-基于Qt的汽车仪表模拟 3.0)]

第二阶段成果展示

​ 目前以完成HUD界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:

[video(video-2AqJ88TY-1645273728489)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=594179292)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/e75563c3ce68bc980547dde8f6e265ba.png)(title-基于Qt的汽车仪表模拟 2.0)]

第一阶段成果展示

​ 目前以完成HUD界面及接口开发,液晶仪表舒适模式开发。展示如下:

[video(video-ArCvRvBQ-1642664938100)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=77197267)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/ccddd04e0cef191fd33d7f58d41adb24.png)(title-基于Qt的汽车仪表模拟 1.0))]


说明:

本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计吉利汽车HMI项目

多媒体部分是来自吉利博瑞2017旗舰版界面所有权和解释权都归吉利汽车所有。

设计图的所有权和解释权都归吉利汽车所有。

本项目所有资源文件均由打不死的小海复刻制作。

本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。

本项目仅限学习交流、禁止商业使用。


博客签名2021

相关文章
|
7月前
|
JavaScript
【vue】vue2 禁用控制台、右键 | 代码防扒
【vue】vue2 禁用控制台、右键 | 代码防扒
285 2
|
7月前
|
JavaScript 前端开发 算法
Node.js 艺术:用代码打印出绚丽多彩的控制台柱状图
Node.js 艺术:用代码打印出绚丽多彩的控制台柱状图
111 0
|
Java
【IntelliJ IDEA】中文乱码问题 ( 代码乱码 | 编译乱码 | 控制台乱码 )
【IntelliJ IDEA】中文乱码问题 ( 代码乱码 | 编译乱码 | 控制台乱码 )
2263 0
【IntelliJ IDEA】中文乱码问题 ( 代码乱码 | 编译乱码 | 控制台乱码 )
|
测试技术 Android开发
消失的Eclipse-控制台console、右侧项目导航Package Explorer、点击类不弹出内容、copy过来正确的测试单元类'废了'的解决措施、eclipse设置编译前自动保存代码
消失的Eclipse-控制台console、右侧项目导航Package Explorer、点击类不弹出内容、copy过来正确的测试单元类'废了'的解决措施、eclipse设置编译前自动保存代码
257 0
消失的Eclipse-控制台console、右侧项目导航Package Explorer、点击类不弹出内容、copy过来正确的测试单元类'废了'的解决措施、eclipse设置编译前自动保存代码
|
Java 关系型数据库 MySQL
Spring练习,使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。
Spring练习,使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。
212 0
Spring练习,使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。
|
Java Android开发
Android Studio知识储备之 ✨ 使用代码在控制台输出语句
使用AndroidStudio经常用的到一个地方就是用代码在控制台输出语句用于查看代码逻辑等 有些情况下,不方便使用断点的方式来调试,而是希望在控制台打印输出日志,使用过Eclipse的同学都知道Java可以使用 System.out.println(""); 来在控制台打印输出日志,但是在android studio中却是不行的,还是有差别的,那应该用什么呢?
Android Studio知识储备之 ✨ 使用代码在控制台输出语句
|
IDE Unix 机器人
platformio-用于使用不同开发平台构建代码的控制台工具
PlatformIO是面向嵌入式系统工程师和为嵌入式产品编写应用程序的软件开发人员的跨平台,跨体系结构,多框架的专业工具。 PlatformIO在嵌入式市场中的独特理念为开发人员提供了一个现代的集成开发环境(云和桌面IDE),该环境可以跨平台工作,支持许多不同的软件开发工具包(SDK)或框架,并包括复杂的调试(Debugging),单元测试(单元测试),自动代码分析(静态代码分析)和远程管理(远程开发)。它的架构旨在最大程度地提高开发人员的灵活性和选择范围,开发人员可以使用图形编辑器或命令行编辑器(PlatformIO Core(CLI)),或同时使用这两种编辑器。
platformio-用于使用不同开发平台构建代码的控制台工具
|
弹性计算 网络安全
【新功能】ECS控制台迁移专有网络支持安全组克隆
目前,在操作迁移实例到专有网络时,ECS控制台支持一键将实例的经典网络安全组克隆到专有网络。 适用条件 使用主账号操作,需要保有经典网络实例。 功能特点 在进行迁移经典网络实例到专有网络时,点击克隆实例的经典网络安全组到专有网络,克隆完成后,克隆的专有网络安全组回自动添加到已选择的迁移后安全组列表中。
1954 0
|
API C# Windows
C# Win32控制台线程计时器代码示例
在C#中提供了三种类型的计时器:1、基于 Windows 的标准计时器(System.Windows.Forms.Timer)2、基于服务器的计时器(System.Timers.Timer)3、线程计时器(System.
839 0