35
35
ChronosESP32 watch (" Chronos Nav" ); // set the bluetooth name
36
36
37
37
bool change = false ;
38
+ uint32_t nav_crc = 0xFFFFFFFF ;
38
39
39
40
void connectionCallback (bool state)
40
41
{
@@ -70,13 +71,41 @@ void configCallback(Config config, uint32_t a, uint32_t b)
70
71
Serial.println (nav.duration );
71
72
Serial.println (nav.distance );
72
73
Serial.println (nav.title );
74
+ Serial.println (nav.speed );
73
75
}
74
76
break ;
75
77
case CF_NAV_ICON:
76
78
Serial.print (" Navigation Icon data, position: " );
77
79
Serial.println (a);
78
80
Serial.print (" Icon CRC: " );
79
81
Serial.printf (" 0x%04X\n " , b);
82
+ if (a == 2 ){
83
+ Navigation nav = watch.getNavigation ();
84
+ if (nav_crc != nav.iconCRC )
85
+ {
86
+ nav_crc = nav.iconCRC ;
87
+
88
+ for (int y = 0 ; y < 50 ; y++) { Serial.print (" -" ); } // draw top border
89
+ Serial.println ();
90
+
91
+ for (int y = 0 ; y < 48 ; y++)
92
+ {
93
+ Serial.print (" |" ); // draw left border
94
+ for (int x = 0 ; x < 48 ; x++)
95
+ {
96
+ int byte_index = (y * 48 + x) / 8 ;
97
+ int bit_pos = 7 - (x % 8 );
98
+ bool px_on = (nav.icon [byte_index] >> bit_pos) & 0x01 ;
99
+ // example to draw a pixel on a TFT display
100
+ // tft.drawPixel(x, y, px_on ? TFT_WHITE : TFT_BLACK);
101
+ Serial.print (px_on ? " X" : " " );
102
+ }
103
+ Serial.println (" |" ); // draw right border
104
+ }
105
+ for (int y = 0 ; y < 50 ; y++) { Serial.print (" -" ); } // draw bottom border
106
+ Serial.println ();
107
+ }
108
+ }
80
109
break ;
81
110
}
82
111
}
@@ -114,6 +143,7 @@ void loop()
114
143
// Serial.println(nav.duration);
115
144
// Serial.println(nav.distance);
116
145
// Serial.println(nav.title);
146
+ // Serial.println(nav.speed);
117
147
// }
118
148
// }
119
149
}
0 commit comments