1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

LP-556 Change settings uavo to have two fields matching FirmwareIAPObj.

This commit is contained in:
Vladimir Zidar 2017-10-26 13:28:44 +02:00
parent 51923bb67f
commit 6c9c6cb3f3
3 changed files with 26 additions and 17 deletions

View File

@ -98,7 +98,7 @@ int32_t FirmwareIAPInitialize()
PIOS_BL_HELPER_FLASH_Read_Description(data.Description, FIRMWAREIAPOBJ_DESCRIPTION_NUMELEM);
PIOS_SYS_SerialNumberGetBinary(data.CPUSerial);
if (data.BoardRevision == 0 && data.BoardType == 0) {
if (data.BoardType == 0) {
data.BoardRevision = bdinfo->board_rev;
data.BoardType = bdinfo->board_type;
}

View File

@ -65,6 +65,19 @@ uintptr_t pios_user_fs_id;
uint32_t pios_ws2811_id;
#endif
static HwDiscoveryF4BareSettingsData boardHwSettings;
static void hwDiscoveryF4BareSettingsUpdatedCb(__attribute__((unused)) UAVObjEvent *ev)
{
HwDiscoveryF4BareSettingsData currentBoardHwSettings;
HwDiscoveryF4BareSettingsGet(&currentBoardHwSettings);
if (memcmp(&currentBoardHwSettings, &boardHwSettings, sizeof(HwDiscoveryF4BareSettingsData)) != 0) {
ExtendedAlarmsSet(SYSTEMALARMS_ALARM_BOOTFAULT, SYSTEMALARMS_ALARM_CRITICAL, SYSTEMALARMS_EXTENDEDALARMSTATUS_REBOOTREQUIRED, 0);
}
}
static const PIOS_BOARD_IO_UART_Function flexiio_function_map[] = {
[HWSETTINGS_RM_RCVRPORT_PPMTELEMETRY] = PIOS_BOARD_IO_UART_TELEMETRY,
[HWSETTINGS_RM_RCVRPORT_PPMDEBUGCONSOLE] = PIOS_BOARD_IO_UART_DEBUGCONSOLE,
@ -196,25 +209,20 @@ void PIOS_Board_Init(void)
UAVObjInitialize();
SETTINGS_INITIALISE_ALL;
HwPikoBLXSettingsInitialize();
HwSPRacingF3EVOSettingsInitialize();
HwSPRacingF3SettingsInitialize();
HwTinyFISHSettingsInitialize();
HwDiscoveryF4BareSettingsConnectCallback(hwDiscoveryF4BareSettingsUpdatedCb);
HwDiscoveryF4BareSettingsGet(&boardHwSettings);
HwDiscoveryF4BareSettingsInitialize();
if (boardHwSettings.BoardType != 0) {
FirmwareIAPObjInitialize();
uint16_t boardId;
HwDiscoveryF4BareSettingsBoardIdGet(&boardId);
FirmwareIAPObjData iap;
FirmwareIAPObjGet(&iap);
FirmwareIAPObjInitialize();
iap.BoardType = boardHwSettings.BoardType;
iap.BoardRevision = boardHwSettings.BoardRevision;
FirmwareIAPObjData iap;
FirmwareIAPObjGet(&iap);
iap.BoardType = boardId >> 8;
iap.BoardRevision = boardId & 0xff;
FirmwareIAPObjSet(&iap);
FirmwareIAPObjSet(&iap);
}
/* Initialize the alarms library */
AlarmsInitialize();

View File

@ -1,7 +1,8 @@
<xml>
<object name="HwDiscoveryF4BareSettings" singleinstance="true" settings="true" category="System">
<description>DiscoveryF4 Bare hardware configuration</description>
<field name="BoardId" units="" type="uint16" elements="1" defaultvalue="0x0904" />
<field name="BoardRevision" units="" type="uint16" elements="1" defaultvalue="0"/>
<field name="BoardType" units="" type="uint8" elements="1" defaultvalue="0"/>
<access gcs="readwrite" flight="readwrite"/>
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
<telemetryflight acked="true" updatemode="onchange" period="0"/>