Mercurial > public > ostc4
diff Discovery/Src/tMenuEditSystem.c @ 720:4f70155362d2
Bugfix set date (year):
In the previous version the year selection was clipped to a range between 16 and 22. To avoid clipping issues in future the clipping is now done based on the firmware release date as lower limit and release date +10 years as upper limit.
author | Ideenmodellierer |
---|---|
date | Tue, 03 Jan 2023 19:47:12 +0100 |
parents | b456be1e152d |
children | 9c65d226f4f6 |
line wrap: on
line diff
--- a/Discovery/Src/tMenuEditSystem.c Sun Nov 27 15:18:00 2022 +0100 +++ b/Discovery/Src/tMenuEditSystem.c Tue Jan 03 19:47:12 2023 +0100 @@ -153,6 +153,8 @@ uint8_t day,month,year,hour,minute, dateFormat, ddmmyy, mmddyy, yymmdd; char text[32]; SSettings *pSettings; + SFirmwareData *pFirmwareInfo; + pFirmwareInfo = firmwareDataGetPointer(); const SDiveState * pStateReal = stateRealGetPointer(); pSettings = settingsGetPointer(); @@ -164,8 +166,8 @@ hour = Stime.Hours; minute= Stime.Minutes; - if(year < 16) - year = 16; + if(year < pFirmwareInfo->release_year) + year = pFirmwareInfo->release_year; if(month < 1) month = 1; @@ -226,6 +228,8 @@ uint32_t newDay, newMonth, newYear; RTC_DateTypeDef sdatestructure; + SFirmwareData *pFirmwareInfo; + pFirmwareInfo = firmwareDataGetPointer(); if(action == ACTION_BUTTON_ENTER) { @@ -261,28 +265,26 @@ tMenuEdit_newInput(editId, newDay, newMonth, newYear, 0); return UNSPECIFIC_RETURN; } - if(action == ACTION_BUTTON_NEXT) + if(action == ACTION_BUTTON_NEXT) /* clip values to a specific range e.g. 12 months */ { digitContentNew = digitContent + 1; if((blockNumber == 0) && (digitContentNew > '0' + 31)) digitContentNew = '1'; if((blockNumber == 1) && (digitContentNew > '0' + 12)) digitContentNew = '1'; - // year range 2017-2018 - if((blockNumber == 2) && (digitContentNew > '0' + 22)) - digitContentNew = '0' + 18; + if((blockNumber == 2) && (digitContentNew > '0' + pFirmwareInfo->release_year + 10)) + digitContentNew = '0' + pFirmwareInfo->release_year; return digitContentNew; } - if(action == ACTION_BUTTON_BACK) + if(action == ACTION_BUTTON_BACK) /* clip values to a specific range e.g. 12 months */ { digitContentNew = digitContent - 1; if((blockNumber == 0) && (digitContentNew < '1')) digitContentNew = '0' + 31; if((blockNumber == 1) && (digitContentNew < '1')) digitContentNew = '0' + 12; - // year range 2016-2018 - if((blockNumber == 2) && (digitContentNew < '0' + 17)) - digitContentNew = '0' + 18; + if((blockNumber == 2) && (digitContentNew < '0' + pFirmwareInfo->release_year)) + digitContentNew = '0' + pFirmwareInfo->release_year + 10; return digitContentNew; } /*