17.RT-thread 项目实战--TouchGfx添加时钟控件

在工业设备中,时间是必不可少的,我们在之前的项目中我们也添加了RTC,和网络校时功能,现在我们要在屏幕上添加时钟控件,可以方便查看时间。

一.我们在页面布局的时候添加了两种时钟。

一个是图形的,一个是数字显示的,那么怎么让他走起来,怎么校时呢?当我们拖入控件之后,已经帮我们完成了一部分的代码了。

1.打开menu_1View.cpp(我们添加空间的那个界面对应的文件)

void menu_1View::setupScreen()
{
    menu_1ViewBase::setupScreen();
//数字时钟
    digitalClock1.setTime24Hour(12, 10, 10);//校时
    digitalHours = digitalClock1.getCurrentHour();
    digitalMinutes = digitalClock1.getCurrentMinute();
    digitalSeconds = digitalClock1.getCurrentSecond();
//图形时钟
analogClock1.setTime24Hour(12, 10, 10);
    analogHours = analogClock1.getCurrentHour();
    analogMinutes = analogClock1.getCurrentMinute();
    analogSeconds = analogClock1.getCurrentSecond();
}

//添加
void menu_1View::handleTickEvent()
{
    tickCounter++;

    if (tickCounter % 60 == 0)
    {
        if (++digitalSeconds >= 60)
        {
            digitalSeconds = 0;
            if (++digitalMinutes >= 60)
            {
                digitalMinutes = 0;
                if (++digitalHours >= 24)
                {
                    digitalHours = 0;
                }
            }
        }

        if (++analogSeconds >= 60)
        {
            analogSeconds = 0;
            if (++analogMinutes >= 60)
            {
                analogMinutes = 0;
                if (++analogHours >= 24)
                {
                    analogHours = 0;
                }
            }
        }

        // Update the clocks
        digitalClock1.setTime24Hour(digitalHours, digitalMinutes, digitalSeconds);
        analogClock1.setTime24Hour(analogHours, analogMinutes, analogSeconds);
    }
}

setupScreen()函数,当我们切换到当前界面后,就会触发这个函数,实现时钟的校时。

handleTickEvent()为定时器,周期性的进行触发,用来使时钟走时。

当然还需要在对应的.hpp文件中添加函数和参数定义menu_1View.hpp

2.这个时候可以走,但是怎么将屏幕时间,与我的本地时间进行同步呢??

注:我的本地时间上电已经进行了网络校时。

在mian.c中添加上电自动校时功能

time_t cur_time;

cur_time = ntp_sync_to_rtc(NULL);

在menu_1View.cpp中进行本地时间获取,并设置屏幕显示时钟。

这个时候发现时钟可以正常的走了,但是我的每个界面都有数字时钟,该怎样让每个界面的时钟都能够同步的刷新呢???

目前电池电量,时钟,wifi属于共用的,之后使用共用组件,将这部分进行统一制作为一个控件。

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、概述: 在做产品开发的时候我们总是需要用到各种常用调试设备,比如:万用表、示波器、can分析仪等常见设备。有些比较特殊的场景比如在做汽车某一部分的功能开发前需要对can数据进行破解时往往需要对can数据进行过滤方便破解因此就有必要自制过滤板; 再有在产品完成研发进行测试时测试工程师往往只能反馈有bug但是并不能直接定位问题所在,而如果在产品上加非易失存储电路会增加硬件成本,总是接着电脑采集数据也不现实,毕竟还有进行开发,因此就需要有一款调试设备能实时抓取数据并进行保存了。综上所述,就是希望把电子工程师常用的工具整合起来。当前设计仅为第一步,实现了电压测量及电压历史变化曲线的记录,当我们需要检测一系列电平信号时会比万用表有优势。 二、开发环境: 硬件:ART-Pi,正点原子7寸电容屏,Industry_IO扩展板。 RT-Thread版本:RT-Thread V4.0.2 开发工具:RT-Thread Studio 三:RT-Thread使用情况概述内核部分:线程。 调度器:创建多个线程来实现不同的工作。 组件部分:ft5426(触摸驱动),I2C(触摸芯片通信),ADC1,LCD(显示屏通信),TouchGFX(图形库)、PIN(IO输入输出)。 四:硬件框架五:软件框架说明 六、实物展示: 七、具体功能: 1、CPU使用率显示: 左上角显示了当前CPU的使用率。 当点击该图标后还能实现显示方式的切换。 2、硬件交互 当按下开发板上的用户按键,显示屏的小绿点状态取反(亮/灭);当点击右边的按钮时扩展板的蜂鸣器状态也取反(响/不响)从而实现显示屏与开发板的双向交互。 3、电压测量 左侧的件显示当前电压在0-3.3V间所占的百分比;右侧的表能显示之前的电压值与当前的电压值便于根据一系列电压状态判断产品逻辑是否正确,滑动右侧的滑条可以实现当前显示数值的放大和缩小。 八、比赛感悟: 因为刚学习RT-Thread没多久,而网上关于使用touchGFX的资料实在太少了所以在上面花了大量的时间,但是也算是有所收获得到了大家的肯定。 最近CSDN上写的4篇博客有3篇阅读量已过千。 上过RTT的公众号 成功打入内部交流群 虽然由于时间关系本次的比赛要结束了,但是后续会继续在CSDN更新相关系列教程。 九、演示视频

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值