Skip to content

Commit ee6352d

Browse files
committed
Display icon for given dynamic model.
1 parent 2b17de4 commit ee6352d

14 files changed

+142
-46
lines changed

Firmware/RTK_Surveyor/Display.ino

Lines changed: 85 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -325,42 +325,97 @@ void paintBaseState()
325325
systemState == STATE_ROVER_RTK_FLOAT ||
326326
systemState == STATE_ROVER_RTK_FIX)
327327
{
328-
//Normal rover for ZED-F9P, fusion rover for ZED-F9R
329-
if (zedModuleType == PLATFORM_F9P)
328+
//Display icon associated with current Dynamic Model
329+
switch (settings.dynamicModel)
330330
{
331-
oled.drawIcon(27, 3, Rover_Width, Rover_Height, Rover, sizeof(Rover), true);
332-
}
333-
else if (zedModuleType == PLATFORM_F9R)
334-
{
335-
//Blink fusion rover until we have calibration
336-
if (i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 0) //Initializing
337-
{
338-
//Blink Fusion Rover icon until sensor calibration is complete
339-
if (millis() - lastBaseIconUpdate > 500)
331+
case (DYN_MODEL_PORTABLE):
332+
{
333+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_1_Portable, sizeof(DynamicModel_1_Portable), true);
334+
}
335+
break;
336+
case (DYN_MODEL_STATIONARY):
340337
{
341-
lastBaseIconUpdate = millis();
342-
if (baseIconDisplayed == false)
338+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_2_Stationary, sizeof(DynamicModel_2_Stationary), true);
339+
}
340+
break;
341+
case (DYN_MODEL_PEDESTRIAN):
342+
{
343+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_3_Pedestrian, sizeof(DynamicModel_3_Pedestrian), true);
344+
}
345+
break;
346+
case (DYN_MODEL_AUTOMOTIVE):
347+
{
348+
//Normal rover for ZED-F9P, fusion rover for ZED-F9R
349+
if (zedModuleType == PLATFORM_F9P)
343350
{
344-
baseIconDisplayed = true;
345-
346-
//Draw the icon
347-
oled.drawIcon(27, 2, Rover_Fusion_Width, Rover_Fusion_Height, Rover_Fusion, sizeof(Rover_Fusion), true);
351+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_4_Automotive, sizeof(DynamicModel_4_Automotive), true);
348352
}
349-
else
350-
baseIconDisplayed = false;
353+
else if (zedModuleType == PLATFORM_F9R)
354+
{
355+
//Blink fusion rover until we have calibration
356+
if (i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 0) //Initializing
357+
{
358+
//Blink Fusion Rover icon until sensor calibration is complete
359+
if (millis() - lastBaseIconUpdate > 500)
360+
{
361+
lastBaseIconUpdate = millis();
362+
if (baseIconDisplayed == false)
363+
{
364+
baseIconDisplayed = true;
365+
366+
//Draw the icon
367+
oled.drawIcon(27, 2, Rover_Fusion_Width, Rover_Fusion_Height, Rover_Fusion, sizeof(Rover_Fusion), true);
368+
}
369+
else
370+
baseIconDisplayed = false;
371+
}
372+
}
373+
else if (i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 1) //Calibrated
374+
{
375+
//Solid fusion rover
376+
oled.drawIcon(27, 2, Rover_Fusion_Width, Rover_Fusion_Height, Rover_Fusion, sizeof(Rover_Fusion), true);
377+
}
378+
else if (i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 2 || i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 3) //Suspended or disabled
379+
{
380+
//Empty rover
381+
oled.drawIcon(27, 2, Rover_Fusion_Empty_Width, Rover_Fusion_Empty_Height, Rover_Fusion_Empty, sizeof(Rover_Fusion_Empty), true);
382+
}
383+
}
384+
351385
}
352-
}
353-
else if (i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 1) //Calibrated
354-
{
355-
//Solid fusion rover
356-
oled.drawIcon(27, 2, Rover_Fusion_Width, Rover_Fusion_Height, Rover_Fusion, sizeof(Rover_Fusion), true);
357-
}
358-
else if (i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 2 || i2cGNSS.packetUBXESFSTATUS->data.fusionMode == 3) //Suspended or disabled
359-
{
360-
//Empty rover
361-
oled.drawIcon(27, 2, Rover_Fusion_Empty_Width, Rover_Fusion_Empty_Height, Rover_Fusion_Empty, sizeof(Rover_Fusion_Empty), true);
362-
}
386+
break;
387+
case (DYN_MODEL_SEA):
388+
{
389+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_5_Sea, sizeof(DynamicModel_5_Sea), true);
390+
}
391+
break;
392+
case (DYN_MODEL_AIRBORNE1g):
393+
{
394+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_6_Airborne1g, sizeof(DynamicModel_6_Airborne1g), true);
395+
}
396+
break;
397+
case (DYN_MODEL_AIRBORNE2g):
398+
{
399+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_7_Airborne2g, sizeof(DynamicModel_7_Airborne2g), true);
400+
}
401+
break;
402+
case (DYN_MODEL_AIRBORNE4g):
403+
{
404+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_8_Airborne4g, sizeof(DynamicModel_8_Airborne4g), true);
405+
}
406+
break;
407+
case (DYN_MODEL_WRIST):
408+
{
409+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_9_Wrist, sizeof(DynamicModel_9_Wrist), true);
410+
}
411+
break;
412+
case (DYN_MODEL_BIKE):
413+
{
414+
oled.drawIcon(27, 0, DynamicModel_Width, DynamicModel_Height, DynamicModel_10_Bike, sizeof(DynamicModel_10_Bike), true);
415+
}
416+
break;
363417
}
418+
364419
}
365420
else if (systemState == STATE_BASE_TEMP_SETTLE ||
366421
systemState == STATE_BASE_TEMP_SURVEY_STARTED //Turn on base icon solid (blink crosshair in paintHorzAcc)

Firmware/RTK_Surveyor/RTK_Surveyor.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ HardwareSerial serialGNSS(2);
215215
#define RXD2 16
216216
#define TXD2 17
217217

218-
#define SERIAL_SIZE_RX (1024 * 4) //Should match buffer size in BluetoothSerial.cpp. Reduced from 16384 to make room for WiFi/NTRIP server capabilities
218+
#define SERIAL_SIZE_RX (1024 * 6) //Should match buffer size in BluetoothSerial.cpp. Reduced from 16384 to make room for WiFi/NTRIP server capabilities
219219
uint8_t rBuffer[SERIAL_SIZE_RX]; //Buffer for reading from F9P to SPP
220220
TaskHandle_t F9PSerialReadTaskHandle = NULL; //Store handles so that we can kill them if user goes into WiFi NTRIP Server mode
221221
const uint8_t F9PSerialReadTaskPriority = 1; //3 being the highest, and 0 being the lowest

Firmware/RTK_Surveyor/icons.h

Lines changed: 53 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@ uint8_t WiFi_Symbol [] = {
1515
int WiFi_Symbol_Height = 9;
1616
int WiFi_Symbol_Width = 13;
1717

18-
//uint8_t WiFi_Symbol [] = {
19-
//0x78, 0x04, 0x72, 0x09, 0x65, 0x15, 0xD5, 0xD5, 0x15, 0x65, 0x09, 0x72, 0x04, 0x78,
20-
//};
21-
//int WiFi_Symbol_Height = 8;
22-
//int WiFi_Symbol_Width = 13;
23-
2418
uint8_t CrossHair [] = {
2519
0x80, 0x80, 0xF0, 0x88, 0x84, 0x84, 0x84, 0x7F, 0x84, 0x84, 0x84, 0x88, 0xF0, 0x80, 0x80, 0x00,
2620
0x00, 0x07, 0x08, 0x10, 0x10, 0x10, 0x7F, 0x10, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00,
@@ -42,12 +36,6 @@ uint8_t SIV_Antenna [] = {
4236
int SIV_Antenna_Height = 13;
4337
int SIV_Antenna_Width = 12;
4438

45-
uint8_t Rover [] = {
46-
0x1E, 0x61, 0x91, 0x91, 0x61, 0x21, 0x21, 0x21, 0x21, 0x21, 0x62, 0x94, 0x94, 0x64, 0x1C,
47-
};
48-
int Rover_Height = 8;
49-
int Rover_Width = 15;
50-
5139
uint8_t Rover_Fusion [] = {
5240
0x3E, 0xC1, 0x21, 0x21, 0xC1, 0x7D, 0x55, 0x55, 0x45, 0x41, 0xC2, 0x24, 0x24, 0xC4, 0x3C, 0x00,
5341
0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
@@ -135,3 +123,56 @@ uint8_t Logging_0 [] = {
135123
};
136124
int Logging_0_Height = 12;
137125
int Logging_0_Width = 9;
126+
127+
int DynamicModel_Height = 12;
128+
int DynamicModel_Width = 15;
129+
130+
uint8_t DynamicModel_1_Portable [] = {
131+
0x00, 0x00, 0x00, 0x00, 0xFC, 0x02, 0x1A, 0x1A, 0x1A, 0x02, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
132+
0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00,
133+
};
134+
135+
uint8_t DynamicModel_2_Stationary [] = {
136+
0x00, 0x00, 0x00, 0x00, 0x82, 0xC6, 0x6E, 0xFE, 0x6E, 0xC6, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00,
137+
0x04, 0x06, 0x03, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x01, 0x03, 0x06, 0x04, 0x00,
138+
};
139+
140+
uint8_t DynamicModel_3_Pedestrian [] = {
141+
0x00, 0x00, 0x00, 0x00, 0x20, 0x32, 0x95, 0xF9, 0x95, 0x32, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
142+
0x00, 0x00, 0x04, 0x06, 0x03, 0x01, 0x00, 0x01, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00,
143+
};
144+
145+
uint8_t DynamicModel_4_Automotive [] = {
146+
0x78, 0x84, 0x44, 0x44, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x88, 0x50, 0x50, 0x90, 0x70, 0x00,
147+
0x01, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x00,
148+
};
149+
150+
uint8_t DynamicModel_5_Sea [] = {
151+
0x00, 0x60, 0xE0, 0x3C, 0x26, 0x3C, 0x20, 0x20, 0x20, 0xA0, 0xA0, 0x20, 0xE0, 0x60, 0x00, 0x00,
152+
0x00, 0x03, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06, 0x03, 0x00, 0x00,
153+
};
154+
155+
uint8_t DynamicModel_6_Airborne1g [] = {
156+
0x00, 0xFE, 0x0C, 0xF8, 0x08, 0x08, 0x88, 0x88, 0x88, 0x28, 0x08, 0x18, 0xB0, 0xE0, 0x00, 0x00,
157+
0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0x08, 0x07, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
158+
};
159+
160+
uint8_t DynamicModel_7_Airborne2g [] = {
161+
0x00, 0xFE, 0x0C, 0xF8, 0x08, 0x08, 0x88, 0xA8, 0x88, 0x28, 0x08, 0x18, 0xB0, 0xE0, 0x00, 0x00,
162+
0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0x08, 0x07, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
163+
};
164+
165+
uint8_t DynamicModel_8_Airborne4g [] = {
166+
0x00, 0xFE, 0x0C, 0xF8, 0x08, 0x28, 0x88, 0xA8, 0x88, 0x28, 0x08, 0x18, 0xB0, 0xE0, 0x00, 0x00,
167+
0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0x08, 0x07, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
168+
};
169+
170+
uint8_t DynamicModel_9_Wrist [] = {
171+
0x00, 0x00, 0x00, 0x00, 0x70, 0x88, 0x27, 0x27, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
172+
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
173+
};
174+
175+
uint8_t DynamicModel_10_Bike [] = {
176+
0x00, 0x80, 0x40, 0x50, 0x90, 0xB0, 0xC0, 0xC0, 0xC0, 0xA0, 0x98, 0x4C, 0x4C, 0x80, 0x00, 0x00,
177+
0x01, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x00,
178+
};
32 Bytes
Binary file not shown.

Graphics/DynamicModel-10-Bike.bmp

32 Bytes
Binary file not shown.
32 Bytes
Binary file not shown.
32 Bytes
Binary file not shown.
64 Bytes
Binary file not shown.

Graphics/DynamicModel-5-Sea.bmp

32 Bytes
Binary file not shown.
32 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)