InkWatchy项目:如何在表盘界面中正确显示当前日期

InkWatchy项目:如何在表盘界面中正确显示当前日期

InkWatchy A firmware for the open source Watchy - with some unique features InkWatchy 项目地址: https://gitcode.com/gh_mirrors/in/InkWatchy

背景介绍

InkWatchy是一款基于电子墨水屏的智能手表开源项目,开发者可以自定义各种表盘界面。在开发过程中,有用户反馈在taychron表盘界面中添加日期显示功能时遇到了日期不更新的问题,本文将深入分析问题原因并提供解决方案。

问题分析

当开发者尝试在taychron表盘界面中添加日期显示功能时,发现日期始终停留在4月13日,而不是更新到当前日期5月13日。这主要是因为使用了错误的时间源timeRTCLocal,该变量可能没有被正确同步更新。

正确的日期获取方法

在InkWatchy项目中,获取当前日期应该使用rM.wFTime结构体,它包含了以下有用的时间信息:

  • Day:当前日
  • Month:当前月
  • Year:当前年

实现方案

以下是正确显示日期的代码实现:

// 定义日期显示位置
#define DATE_CORD_Y (TIME_CORD_Y + 25)
#define DATE_CORD_X 64
#define DATE_FONT getFont("taychron/Mono13")

// 在表盘绘制函数中添加以下代码
String day = String(rM.wFTime.Day);
String month = getMonthName(rM.wFTime.Month);
String finalStr = day + " " + month;

setTextSize(1);
setFont(DATE_FONT);
writeTextReplaceBack(finalStr, DATE_CORD_X, DATE_CORD_Y, GxEPD_WHITE, GxEPD_BLACK);

注意事项

  1. 避免使用WatchyGSR相关代码:虽然项目中可能可以看到WatchyGSR的代码,但官方明确不建议使用,因为这会导致兼容性问题。

  2. 代码格式化:在修改代码时,应注意保持一致的代码风格,使用适当的缩进和格式。

  3. 贡献规范:如果要将修改贡献到主项目,需要:

    • 获得原作者许可
    • 通过配置宏定义使功能可选
    • 或者创建自己的表盘分支

扩展功能

开发者可以进一步扩展日期显示功能,例如:

  • 添加星期显示
  • 使用更美观的字体
  • 实现不同的日期格式(如"13 May"或"May 13")
  • 添加节日或特殊日期提醒

总结

在InkWatchy项目中添加日期显示功能时,关键是要使用正确的时间源rM.wFTime而非timeRTCLocal。通过本文提供的解决方案,开发者可以轻松实现日期显示功能,同时遵循项目的开发规范和最佳实践。

对于想要贡献代码的开发者,建议先了解项目的贡献规范,并与相关表盘的原作者沟通,确保修改能够被顺利合并。

InkWatchy A firmware for the open source Watchy - with some unique features InkWatchy 项目地址: https://gitcode.com/gh_mirrors/in/InkWatchy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙研青Landry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值