Watch
0
0
Fork
You've already forked esp32-c_its-companion
0

Compare commits

..
Author SHA1 Message Date
96cf9aeaa2 WIP FIXUP: Show DENMS for a minimum time 2026-09-25 11:16:04 +02:00
Jannik Beyerstedt
7ec7ebda8a WIP denm: Show warning symbol
TODO: Show distance to DENM?
2026-09-24 21:13:29 +02:00
Jannik Beyerstedt
9d2a8d31e7 Hardware: Add housing 2026-09-24 21:11:37 +02:00
Jannik Beyerstedt
dc3c3937b7 Hardware: Create 3D model of display module 2026-09-21 12:08:27 +02:00
Jannik Beyerstedt
f5665ed0f2 PCB: Move coordinate origin, export STEP file 2026-09-21 12:07:19 +02:00
813ee3723c screen: Add missing feature flag 2026-09-19 18:22:15 +02:00
15 changed files with 240279 additions and 22 deletions

3
.gitignore vendored
View file

@ -28,3 +28,6 @@ target/
# Ignore KiCad backups and lock files
hardware/c_its-companion/c_its-companion-backups/
*.kicad_pro.lck
# Ignore FreeCAD backups
*.FCBak

View file

@ -120,6 +120,24 @@ The unit tests in this project are meant to be run on the host:
cargo test --target host-tuple --bin test --no-default-features -F std,spat
```
## PCB and Housing
A simple PCB to combine the u-blox SAM-M10Q, a XIAO ESP32-C5 and the screen can be found in [hardware/c_its-companion/](./hardware/c_its-companion/) including finished gerber files.
Additional hardware:
- SMD Pin-Header 8 pos.: Amphenol 10129380-908001BLF
- Snap-in stand-off 8mm: WE 702910000
(You may try to put the display lower with header Samtech TSM-108-04-T-SV and stand-off WE 702917000, but antenna needs to be plugged in before putting the display on then.)
The housing is a FreeCAD model at [hardware/housing/c_its-companion-housing.FCStd](./hardware/housing/c_its-companion-housing.FCStd), but the same folder also contains finished 3mf models that can be loaded into a 3D printer slicer.
Exports are available for:
- 2mm: no battery (just display standoffs)
- 7mm: EREMIT 654060 (6.5x40x60 mm) LiPo battery
- 9mm: Some 9x40x60 mm LiPo battery, e.g. LP803860 (2000 mAh)
The display is expected to be soldered to the pin header directly to save height.
## Tips and Tricks
### Create TGA Assets

View file

@ -99,6 +99,7 @@
)
(capping no)
(filling no)
(aux_axis_origin 80 169)
(pcbplotparams
(layerselection 0x00000000_00000000_55555555_5755f5ff)
(plot_on_all_layers_selection 0x00000000_00000000_00000000_00000000)
@ -562,8 +563,8 @@
(xy -3.020759 1.67015) (xy -2.902296 1.799665) (xy -2.80614 1.946593) (xy -2.735551 2.107712) (xy -2.716425 2.170804)
(xy -2.698044 2.270947) (xy -2.689557 2.388431) (xy -2.690963 2.510483) (xy -2.702263 2.624336)
(xy -2.716425 2.693699) (xy -2.77566 2.856203) (xy -2.861703 3.007451) (xy -2.970947 3.143618) (xy -3.099784 3.260884)
(xy -3.244606 3.355425) (xy -3.401806 3.423421) (xy -3.406737 3.425031) (xy -3.51052 3.449266) (xy -3.63247 3.463095)
(xy -3.760725 3.466236) (xy -3.883419 3.458403) (xy -3.988688 3.43931) (xy -3.989598 3.439065) (xy -4.154266 3.380019)
(xy -3.244606 3.355424) (xy -3.401806 3.423421) (xy -3.406737 3.425031) (xy -3.51052 3.449266) (xy -3.63247 3.463095)
(xy -3.760725 3.466236) (xy -3.883419 3.458403) (xy -3.988688 3.43931) (xy -3.989598 3.439065) (xy -4.154267 3.380019)
(xy -4.303264 3.295183) (xy -4.440833 3.182095) (xy -4.454033 3.169227) (xy -4.572775 3.033788)
(xy -4.661492 2.89078) (xy -4.721491 2.737075) (xy -4.754073 2.569545) (xy -4.761303 2.432252) (xy -4.167311 2.432252)
(xy -4.152257 2.536497) (xy -4.110172 2.636271) (xy -4.045673 2.72544) (xy -3.963374 2.797871) (xy -3.867894 2.84743)
@ -573,7 +574,7 @@
(xy -3.525746 2.046501) (xy -3.630353 2.009563) (xy -3.740415 1.997868) (xy -3.848554 2.012415)
(xy -3.924207 2.041274) (xy -4.006823 2.09932) (xy -4.077345 2.179239) (xy -4.130646 2.272782) (xy -4.161596 2.371703)
(xy -4.167311 2.432252) (xy -4.761303 2.432252) (xy -4.748663 2.252944) (xy -4.70981 2.089807) (xy -4.643347 1.939497)
(xy -4.547876 1.798667) (xy -4.452659 1.693534) (xy -4.31628 1.579375) (xy -4.163124 1.489123) (xy -3.999316 1.426267)
(xy -4.547876 1.798667) (xy -4.452658 1.693534) (xy -4.31628 1.579375) (xy -4.163124 1.489123) (xy -3.999316 1.426267)
(xy -3.969878 1.418311) (xy -3.883859 1.40358) (xy -3.77933 1.396204) (xy -3.668608 1.396182)
)
(stroke
@ -591,19 +592,19 @@
(xy 6.803727 2.037089) (xy 6.830589 2.107423) (xy 6.855054 2.205848) (xy 6.870081 2.323058) (xy 6.875185 2.447441)
(xy 6.869883 2.567382) (xy 6.854007 2.669931) (xy 6.813031 2.805683) (xy 6.755203 2.927307) (xy 6.676058 3.042494)
(xy 6.571128 3.158938) (xy 6.56849 3.161579) (xy 6.462413 3.258894) (xy 6.360114 3.332673) (xy 6.252438 3.388308)
(xy 6.13023 3.431194) (xy 6.093984 3.441175) (xy 5.992929 3.459437) (xy 5.874732 3.467883) (xy 5.752404 3.466428)
(xy 5.638968 3.454984) (xy 5.585658 3.444542) (xy 5.42618 3.390141) (xy 5.277218 3.308399) (xy 5.142273 3.202873)
(xy 6.13023 3.431194) (xy 6.093984 3.441175) (xy 5.992929 3.459437) (xy 5.874733 3.467883) (xy 5.752404 3.466428)
(xy 5.638968 3.454984) (xy 5.585658 3.444542) (xy 5.42618 3.390141) (xy 5.277218 3.3084) (xy 5.142273 3.202873)
(xy 5.024848 3.077127) (xy 4.928443 2.934723) (xy 4.856563 2.779222) (xy 4.823972 2.669931) (xy 4.807942 2.565727)
(xy 4.802794 2.445638) (xy 4.803359 2.432252) (xy 5.40394 2.432251) (xy 5.418595 2.549248) (xy 5.461436 2.652939)
(xy 5.530774 2.740594) (xy 5.624919 2.809483) (xy 5.643233 2.819114) (xy 5.711573 2.849154) (xy 5.771665 2.864046)
(xy 5.838989 2.867997) (xy 5.907387 2.863892) (xy 5.96748 2.848772) (xy 6.034746 2.819114) (xy 6.128982 2.755368)
(xy 6.201818 2.671708) (xy 6.250892 2.57337) (xy 6.273842 2.465588) (xy 6.268306 2.353598) (xy 6.260436 2.318842)
(xy 6.216702 2.214791) (xy 6.148741 2.126763) (xy 6.06148 2.058537) (xy 5.959841 2.013888) (xy 5.84875 1.996595)
(xy 6.216702 2.214791) (xy 6.148741 2.126763) (xy 6.06148 2.058537) (xy 5.959841 2.013888) (xy 5.848749 1.996595)
(xy 5.840136 1.996506) (xy 5.726105 2.011219) (xy 5.623684 2.052887) (xy 5.536582 2.117807) (xy 5.468506 2.202275)
(xy 5.423165 2.302586) (xy 5.404265 2.415036) (xy 5.40394 2.432251) (xy 4.803359 2.432252) (xy 4.808046 2.321278)
(xy 4.823213 2.204255) (xy 4.84739 2.107422) (xy 4.915607 1.952101) (xy 5.009378 1.80597) (xy 5.108782 1.692104)
(xy 4.823213 2.204255) (xy 4.84739 2.107421) (xy 4.915607 1.952101) (xy 5.009378 1.80597) (xy 5.108782 1.692104)
(xy 5.227529 1.588985) (xy 5.353843 1.509207) (xy 5.499074 1.445614) (xy 5.500936 1.444936) (xy 5.551179 1.427688)
(xy 5.595672 1.415871) (xy 5.642441 1.408486) (xy 5.699516 1.404534) (xy 5.774919 1.403016) (xy 5.838989 1.402863)
(xy 5.595672 1.415871) (xy 5.64244 1.408486) (xy 5.699516 1.404534) (xy 5.774919 1.403016) (xy 5.838989 1.402863)
)
(stroke
(width 0)
@ -620,9 +621,9 @@
(xy 0.38529 -2.153105) (xy 0.422645 -2.126534) (xy 0.447277 -2.101608) (xy 0.451031 -2.095582) (xy 0.454427 -2.08621)
(xy 0.457484 -2.071964) (xy 0.460219 -2.051314) (xy 0.462651 -2.022731) (xy 0.464797 -1.984688)
(xy 0.466677 -1.935655) (xy 0.468307 -1.874104) (xy 0.469706 -1.798505) (xy 0.470893 -1.707331)
(xy 0.471885 -1.599052) (xy 0.472699 -1.472141) (xy 0.473356 -1.325065) (xy 0.473871 -1.1563) (xy 0.474265 -0.964317)
(xy 0.471885 -1.599052) (xy 0.472699 -1.472141) (xy 0.473356 -1.325065) (xy 0.473871 -1.1563) (xy 0.474265 -0.964318)
(xy 0.474554 -0.747584) (xy 0.474756 -0.504574) (xy 0.474891 -0.233759) (xy 0.474975 0.06639) (xy 0.475006 0.24164)
(xy 0.475358 2.551091) (xy -0.522895 2.551091) (xy -1.521148 2.551091) (xy -1.521148 0.238895) (xy -1.521147 -0.929276)
(xy 0.475358 2.551091) (xy -0.522895 2.551091) (xy -1.521148 2.551091) (xy -1.521148 0.238895) (xy -1.521146 -0.929276)
(xy -1.204242 -0.929276) (xy -1.204144 -0.800708) (xy -1.203653 -0.699729) (xy -1.202479 -0.622239)
(xy -1.20033 -0.564137) (xy -1.196913 -0.521322) (xy -1.191937 -0.489693) (xy -1.18511 -0.465149)
(xy -1.17614 -0.44359) (xy -1.16859 -0.428392) (xy -1.138226 -0.378967) (xy -1.102126 -0.343806)
@ -637,10 +638,10 @@
(xy 0.072506 -1.466584) (xy 0.036101 -1.496396) (xy -0.015148 -1.517264) (xy -0.086182 -1.530941)
(xy -0.181945 -1.53918) (xy -0.225795 -1.541247) (xy -0.411978 -1.548656) (xy -0.411978 -0.924858)
(xy -0.665501 -0.924858) (xy -0.665502 -1.532219) (xy -0.830709 -1.541574) (xy -0.935156 -1.54482)
(xy -1.013902 -1.540428) (xy -1.072228 -1.527432) (xy -1.115413 -1.504867) (xy -1.137021 -1.48552)
(xy -1.013902 -1.540428) (xy -1.072228 -1.527432) (xy -1.115412 -1.504867) (xy -1.137021 -1.48552)
(xy -1.156155 -1.462999) (xy -1.171293 -1.43833) (xy -1.182897 -1.407684) (xy -1.191429 -1.367229)
(xy -1.197354 -1.313136) (xy -1.201133 -1.241574) (xy -1.203229 -1.148712) (xy -1.204106 -1.03072)
(xy -1.204242 -0.929276) (xy -1.521147 -0.929276) (xy -1.521148 -2.073302) (xy -1.480126 -2.122054)
(xy -1.204242 -0.929276) (xy -1.521146 -0.929276) (xy -1.521148 -2.073302) (xy -1.480126 -2.122054)
(xy -1.439104 -2.170805) (xy -0.544212 -2.170805)
)
(stroke
@ -657,7 +658,7 @@
(xy 3.758519 -1.796373) (xy 3.813961 -1.782842) (xy 3.865837 -1.765225) (xy 3.918162 -1.743043)
(xy 3.970277 -1.718132) (xy 3.998375 -1.702797) (xy 4.031507 -1.681607) (xy 4.071624 -1.652945)
(xy 4.120678 -1.615192) (xy 4.180618 -1.566731) (xy 4.253398 -1.505941) (xy 4.340968 -1.431207)
(xy 4.445277 -1.340909) (xy 4.56828 -1.23343) (xy 4.711926 -1.107151) (xy 4.790186 -1.038144) (xy 4.919767 -0.924138)
(xy 4.445277 -1.340909) (xy 4.56828 -1.23343) (xy 4.711926 -1.107151) (xy 4.790186 -1.038144) (xy 4.919766 -0.924138)
(xy 5.044022 -0.815478) (xy 5.160619 -0.714156) (xy 5.267232 -0.622165) (xy 5.361533 -0.541497)
(xy 5.441194 -0.474144) (xy 5.503887 -0.422099) (xy 5.547285 -0.387355) (xy 5.567732 -0.372633)
(xy 5.611519 -0.352992) (xy 5.683694 -0.328238) (xy 5.78152 -0.299205) (xy 5.902257 -0.266724) (xy 5.983755 -0.246127)
@ -687,11 +688,11 @@
(xy 2.602471 2.161395) (xy 2.602063 2.012563) (xy 2.601756 1.843069) (xy 2.601554 1.65475) (xy 2.601459 1.449444)
(xy 2.601476 1.228989) (xy 2.601606 0.995223) (xy 2.601852 0.749985) (xy 2.602218 0.495111) (xy 2.602477 0.348596)
(xy 2.605615 -1.317759) (xy 2.955146 -1.317759) (xy 2.955146 -0.763538) (xy 2.955216 -0.616152)
(xy 2.955542 -0.497162) (xy 2.956302 -0.403273) (xy 2.957672 -0.33119) (xy 2.959831 -0.277617) (xy 2.962955 -0.239262)
(xy 2.955542 -0.497162) (xy 2.956302 -0.403273) (xy 2.957672 -0.33119) (xy 2.959831 -0.277617) (xy 2.962955 -0.239263)
(xy 2.967222 -0.212827) (xy 2.972808 -0.195018) (xy 2.97989 -0.182542) (xy 2.986837 -0.174092) (xy 3.021094 -0.143478)
(xy 3.050218 -0.125897) (xy 3.0722 -0.12321) (xy 3.122548 -0.120668) (xy 3.197938 -0.118332) (xy 3.295047 -0.116264)
(xy 3.410551 -0.114524) (xy 3.541125 -0.113174) (xy 3.683446 -0.112277) (xy 3.805947 -0.111922)
(xy 4.529986 -0.110917) (xy 4.574444 -0.14912) (xy 4.5922 -0.165305) (xy 4.604601 -0.18197) (xy 4.612777 -0.204936)
(xy 4.529986 -0.110917) (xy 4.574444 -0.14912) (xy 4.592199 -0.165305) (xy 4.604601 -0.18197) (xy 4.612777 -0.204936)
(xy 4.61786 -0.240027) (xy 4.620984 -0.29306) (xy 4.623282 -0.369858) (xy 4.624125 -0.404463) (xy 4.625383 -0.487394)
(xy 4.62515 -0.56159) (xy 4.623544 -0.619924) (xy 4.620683 -0.655272) (xy 4.619902 -0.659238) (xy 4.606064 -0.678508)
(xy 4.571452 -0.715461) (xy 4.519312 -0.767112) (xy 4.45289 -0.830475) (xy 4.375435 -0.902563) (xy 4.290192 -0.980391)
@ -738,7 +739,7 @@
(xy -1.737183 -1.730301) (xy -1.738548 -1.593847) (xy -1.739713 -1.434015) (xy -1.740685 -1.249698)
(xy -1.741473 -1.039789) (xy -1.742087 -0.803179) (xy -1.742534 -0.538761) (xy -1.742824 -0.245426)
(xy -1.742965 0.077933) (xy -1.742982 0.252618) (xy -1.742982 2.551091) (xy -2.025776 2.551091)
(xy -2.30857 2.551092) (xy -2.318325 2.380597) (xy -2.345454 2.170031) (xy -2.401206 1.970426) (xy -2.484079 1.784062)
(xy -2.30857 2.551093) (xy -2.318325 2.380597) (xy -2.345454 2.170031) (xy -2.401206 1.970426) (xy -2.484079 1.784062)
(xy -2.592573 1.613221) (xy -2.725189 1.460182) (xy -2.880426 1.327227) (xy -3.056784 1.216635)
(xy -3.097754 1.195783) (xy -3.289659 1.119032) (xy -3.487713 1.072201) (xy -3.688712 1.054929)
(xy -3.889457 1.066856) (xy -4.086743 1.107622) (xy -4.277367 1.176867) (xy -4.458126 1.274231)
@ -762,7 +763,7 @@
(xy -4.028433 -0.526412) (xy -3.95776 -0.4867) (xy -3.894178 -0.450473) (xy -3.816412 -0.406572)
(xy -3.748466 -0.369481) (xy -3.694936 -0.341606) (xy -3.660412 -0.32535) (xy -3.649512 -0.322374)
(xy -3.638054 -0.339418) (xy -3.61475 -0.377855) (xy -3.582859 -0.431997) (xy -3.545632 -0.496155)
(xy -3.506328 -0.564639) (xy -3.468202 -0.631762) (xy -3.434509 -0.69183) (xy -3.408505 -0.739159)
(xy -3.506328 -0.564639) (xy -3.468202 -0.631763) (xy -3.434509 -0.69183) (xy -3.408505 -0.739159)
(xy -3.393447 -0.768057) (xy -3.391009 -0.774085) (xy -3.404141 -0.784864) (xy -3.440476 -0.808347)
(xy -3.495537 -0.841806) (xy -3.564848 -0.882507) (xy -3.628572 -0.919027) (xy -3.706151 -0.963539)
(xy -3.773122 -1.002933) (xy -3.825012 -1.034498) (xy -3.857348 -1.055523) (xy -3.866134 -1.062977)
@ -785,7 +786,7 @@
(xy -7.288713 -1.354772) (xy -7.288656 -1.576176) (xy -7.28853 -1.829676) (xy -7.288333 -2.057246)
(xy -7.288048 -2.260328) (xy -7.287658 -2.440361) (xy -7.287147 -2.598785) (xy -7.286497 -2.737041)
(xy -7.286487 -2.738455) (xy -6.718403 -2.738455) (xy -6.71632 -2.64197) (xy -6.709211 -2.572017)
(xy -6.695784 -2.523654) (xy -6.674746 -2.491944) (xy -6.649253 -2.47406) (xy -6.619687 -2.467824)
(xy -6.695784 -2.523654) (xy -6.674746 -2.491944) (xy -6.649253 -2.47406) (xy -6.619686 -2.467824)
(xy -6.561212 -2.463351) (xy -6.476559 -2.460748) (xy -6.368465 -2.460125) (xy -6.308983 -2.460562)
(xy -6.002557 -2.463943) (xy -5.964348 -2.508401) (xy -5.947373 -2.530542) (xy -5.936323 -2.554353)
(xy -5.929941 -2.586969) (xy -5.92697 -2.635531) (xy -5.926154 -2.707173) (xy -5.926139 -2.72539)
@ -811,8 +812,8 @@
(xy -2.354218 -2.997367) (xy -2.411725 -2.998243) (xy -2.52783 -2.999894) (xy -2.616461 -3.000787)
(xy -2.681834 -3.000486) (xy -2.728164 -2.998557) (xy -2.759668 -2.994567) (xy -2.78056 -2.98808)
(xy -2.795057 -2.978662) (xy -2.807373 -2.965879) (xy -2.81526 -2.956655) (xy -2.831694 -2.934926)
(xy -2.842382 -2.910842) (xy -2.848545 -2.877307) (xy -2.851394 -2.827231) (xy -2.852144 -2.753522)
(xy -2.852152 -2.741384) (xy -5.926248 -2.741384) (xy -5.926667 -2.802648) (xy -5.929089 -2.855359)
(xy -2.842382 -2.910842) (xy -2.848545 -2.877307) (xy -2.851394 -2.827231) (xy -2.852143 -2.753522)
(xy -2.852152 -2.741384) (xy -5.926248 -2.741384) (xy -5.926667 -2.802648) (xy -5.929088 -2.855359)
(xy -5.934666 -2.890659) (xy -5.944653 -2.915685) (xy -5.960307 -2.937575) (xy -5.964377 -2.942377)
(xy -6.002616 -2.986832) (xy -6.30109 -2.996639) (xy -6.397268 -2.999082) (xy -6.484282 -2.999951)
(xy -6.556481 -2.999292) (xy -6.608213 -2.997158) (xy -6.633616 -2.99368) (xy -6.66858 -2.974935)
@ -825,7 +826,7 @@
(xy -7.162357 -3.444481) (xy -7.153911 -3.447159) (xy -7.142305 -3.449641) (xy -7.126454 -3.451938)
(xy -7.105275 -3.454055) (xy -7.077685 -3.456) (xy -7.042598 -3.457781) (xy -6.998933 -3.459402)
(xy -6.945605 -3.460874) (xy -6.88153 -3.462203) (xy -6.805626 -3.463396) (xy -6.716807 -3.464461)
(xy -6.613992 -3.465405) (xy -6.496094 -3.466235) (xy -6.362033 -3.466958) (xy -6.210722 -3.467583)
(xy -6.613993 -3.465405) (xy -6.496094 -3.466235) (xy -6.362033 -3.466958) (xy -6.210722 -3.467583)
(xy -6.04108 -3.468115) (xy -5.852022 -3.468563) (xy -5.642465 -3.468934) (xy -5.411324 -3.469235)
(xy -5.157517 -3.469473) (xy -4.879959 -3.469656) (xy -4.577567 -3.469791) (xy -4.249257 -3.469885)
(xy -3.893946 -3.469946) (xy -3.51055 -3.46998) (xy -3.097985 -3.469996) (xy -2.655167 -3.47) (xy -2.503555 -3.47)

View file

@ -622,7 +622,7 @@
"netlist": "",
"plot": "",
"specctra_dsn": "",
"step": "",
"step": "../housing/c_its-companion-v1.0.step",
"vrml": ""
},
"page_layout_descr_file": ""

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -585,6 +585,7 @@ async fn main(spawner: Spawner) -> ! {
.update(screen::ScreenState::DenmWarning(cc))
.inspect_err(log_screen_error);
}
// TODO: cancel screen, if None?
_ => {}
}

View file

@ -7,6 +7,9 @@ use embedded_graphics::{geometry, mono_font, pixelcolor, primitives, text};
use crate::applogic;
#[cfg(feature = "denm")]
const DENM_MIN_DISPLAY_TIME: esp_hal::time::Duration = esp_hal::time::Duration::from_secs(5);
pub struct DisplaySize {
width: u16,
height: u16,
@ -25,6 +28,8 @@ where
prev_state: ScreenState,
hb_state: bool,
gnss_hb_state: bool,
#[cfg(feature = "denm")]
denm_display_start_time: esp_hal::time::Instant,
// assets
#[cfg(feature = "spat")]
@ -135,6 +140,8 @@ where
prev_state: ScreenState::Uninitialized,
hb_state: false,
gnss_hb_state: false,
#[cfg(feature = "denm")]
denm_display_start_time: esp_hal::time::Instant::EPOCH,
#[cfg(feature = "spat")]
bike_image,
// #[cfg(feature = "denm")]
@ -149,6 +156,27 @@ where
}
pub fn update(&mut self, state: ScreenState) -> Result<(), D::Error> {
#[cfg(feature = "denm")]
let now = esp_hal::time::Instant::now();
#[cfg(feature = "denm")]
// when a DENM was shown before, make sure it's shown for a minimum time
if let ScreenState::DenmWarning(_) = self.prev_state {
use core::ops::Sub;
// update DENM display, if there are updates
if self.prev_state != state
&& let ScreenState::DenmWarning(cause_code_choice) = &state
{
return self.draw_denm_warning(cause_code_choice);
}
// otherwise early return when timer isn't expired yet
if now.sub(self.denm_display_start_time) < DENM_MIN_DISPLAY_TIME {
return Ok(());
}
}
if self.prev_state != state {
match &state {
ScreenState::Uninitialized | ScreenState::Initial => self.draw_slash_screen()?,
@ -167,6 +195,7 @@ where
ScreenState::Error(msg) => self.draw_message(msg)?,
#[cfg(feature = "denm")]
ScreenState::DenmWarning(cause_code_choice) => {
self.denm_display_start_time = now;
self.draw_denm_warning(cause_code_choice)?
}
}
@ -205,6 +234,7 @@ where
}
// on big screns: uses full screen width and height from 250 to 280 pixels
#[cfg(feature = "gnss_ubx")]
pub fn update_gnss(
&mut self,
pvt: &ublox::nav_pvt::proto27::NavPvtRef,