Skip to content

Commit 6c9c6cb

Browse files
committed
LP-556 Change settings uavo to have two fields matching FirmwareIAPObj.
1 parent 51923bb commit 6c9c6cb

3 files changed

Lines changed: 26 additions & 17 deletions

File tree

flight/modules/FirmwareIAP/firmwareiap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ int32_t FirmwareIAPInitialize()
9898

9999
PIOS_BL_HELPER_FLASH_Read_Description(data.Description, FIRMWAREIAPOBJ_DESCRIPTION_NUMELEM);
100100
PIOS_SYS_SerialNumberGetBinary(data.CPUSerial);
101-
if (data.BoardRevision == 0 && data.BoardType == 0) {
101+
if (data.BoardType == 0) {
102102
data.BoardRevision = bdinfo->board_rev;
103103
data.BoardType = bdinfo->board_type;
104104
}

flight/targets/boards/discoveryf4bare/firmware/pios_board.c

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,19 @@ uintptr_t pios_user_fs_id;
6565
uint32_t pios_ws2811_id;
6666
#endif
6767

68+
static HwDiscoveryF4BareSettingsData boardHwSettings;
69+
70+
static void hwDiscoveryF4BareSettingsUpdatedCb(__attribute__((unused)) UAVObjEvent *ev)
71+
{
72+
HwDiscoveryF4BareSettingsData currentBoardHwSettings;
73+
74+
HwDiscoveryF4BareSettingsGet(&currentBoardHwSettings);
75+
76+
if (memcmp(&currentBoardHwSettings, &boardHwSettings, sizeof(HwDiscoveryF4BareSettingsData)) != 0) {
77+
ExtendedAlarmsSet(SYSTEMALARMS_ALARM_BOOTFAULT, SYSTEMALARMS_ALARM_CRITICAL, SYSTEMALARMS_EXTENDEDALARMSTATUS_REBOOTREQUIRED, 0);
78+
}
79+
}
80+
6881
static const PIOS_BOARD_IO_UART_Function flexiio_function_map[] = {
6982
[HWSETTINGS_RM_RCVRPORT_PPMTELEMETRY] = PIOS_BOARD_IO_UART_TELEMETRY,
7083
[HWSETTINGS_RM_RCVRPORT_PPMDEBUGCONSOLE] = PIOS_BOARD_IO_UART_DEBUGCONSOLE,
@@ -196,25 +209,20 @@ void PIOS_Board_Init(void)
196209
UAVObjInitialize();
197210
SETTINGS_INITIALISE_ALL;
198211

199-
HwPikoBLXSettingsInitialize();
200-
HwSPRacingF3EVOSettingsInitialize();
201-
HwSPRacingF3SettingsInitialize();
202-
HwTinyFISHSettingsInitialize();
203-
204-
HwDiscoveryF4BareSettingsInitialize();
212+
HwDiscoveryF4BareSettingsConnectCallback(hwDiscoveryF4BareSettingsUpdatedCb);
213+
HwDiscoveryF4BareSettingsGet(&boardHwSettings);
205214

206-
uint16_t boardId;
207-
HwDiscoveryF4BareSettingsBoardIdGet(&boardId);
215+
if (boardHwSettings.BoardType != 0) {
216+
FirmwareIAPObjInitialize();
208217

209-
FirmwareIAPObjInitialize();
218+
FirmwareIAPObjData iap;
219+
FirmwareIAPObjGet(&iap);
210220

211-
FirmwareIAPObjData iap;
212-
FirmwareIAPObjGet(&iap);
221+
iap.BoardType = boardHwSettings.BoardType;
222+
iap.BoardRevision = boardHwSettings.BoardRevision;
213223

214-
iap.BoardType = boardId >> 8;
215-
iap.BoardRevision = boardId & 0xff;
216-
217-
FirmwareIAPObjSet(&iap);
224+
FirmwareIAPObjSet(&iap);
225+
}
218226

219227
/* Initialize the alarms library */
220228
AlarmsInitialize();

shared/uavobjectdefinition/hwdiscoveryf4baresettings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<xml>
22
<object name="HwDiscoveryF4BareSettings" singleinstance="true" settings="true" category="System">
33
<description>DiscoveryF4 Bare hardware configuration</description>
4-
<field name="BoardId" units="" type="uint16" elements="1" defaultvalue="0x0904" />
4+
<field name="BoardRevision" units="" type="uint16" elements="1" defaultvalue="0"/>
5+
<field name="BoardType" units="" type="uint8" elements="1" defaultvalue="0"/>
56
<access gcs="readwrite" flight="readwrite"/>
67
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
78
<telemetryflight acked="true" updatemode="onchange" period="0"/>

0 commit comments

Comments
 (0)