/************************************************************************ Function: void UpdateTime(WORD force) Overview: This function updates the date and time variables. Input: none. Output: none ************************************************************************/ void UpdateTime(WORD force) { static char previousChar; char changeIndicator; OBJ_HEADER *pObject; char currentHour; char hourStr[3]; RTCCProcessEvents(); changeIndicator = _time_str[8]; if ((previousChar != changeIndicator) || (force == FORCE_UPDATE)) { previousChar = changeIndicator; if ((pObject = GOLFindObject(ID_TIME)) != NULL) { strncpy(CurrentTimeStr, _time_str, 9); // change hour to AM/PM format currentHour = mRTCCGetBinHour(); if (hour >= 12) strncpy(&CurrentTimeStr[10], DayNightItems[1], 3); else strncpy(&CurrentTimeStr[10], DayNightItems[0], 3); if (currentHour > 12) { currentHour = currentHour - 12; // now set the hour in the string NumberToString(currentHour, hourStr, 2, 0); CurrentTimeStr[4] = hourStr[0]; CurrentTimeStr[5] = hourStr[1]; } StSetText((STATICTEXT *)pObject, CurrentTimeStr); SetState( pObject, ST_DRAW ); } if ((pObject = GOLFindObject(ID_BATLEVEL)) != NULL) { PbSetPos( (PROGRESSBAR*)pObject, GetBatteryLevel()); SetState( pObject, PB_DRAW_BAR ); } } }
/***************************************************************************** * Function: TBannerChangeField * * Precondition: None. * * Overview: The function increases/decreases the selected clock field. * * Input: Direction of changing: 0 to decrement otherwise increment. * * Output: None. * *****************************************************************************/ void TBannerChangeField(char increment){ unsigned char data; if(_uTBannerSetup){ mRTCCUnlock(); switch(_uTBannerCurPos){ case TBNR_POS_WKDAY: break; case TBNR_POS_HOUR: data = mRTCCGetBinHour(); if(increment) data++; else data--; RTCCSetBinHour(data); break; case TBNR_POS_MIN: data = mRTCCGetBinMin(); if(increment) data++; else data--; RTCCSetBinMin(data); break; case TBNR_POS_SEC: data = mRTCCGetBinSec(); if(increment) data++; else data--; RTCCSetBinSec(data); break; case TBNR_POS_MONTH: data = mRTCCGetBinMonth(); if(increment) data++; else data--; RTCCSetBinMonth(data); RTCCCalculateWeekDay(); break; case TBNR_POS_DAY: data = mRTCCGetBinDay(); if(increment) data++; else data--; RTCCSetBinDay(data); RTCCCalculateWeekDay(); break; case TBNR_POS_YEAR: data = mRTCCGetBinYear(); if(increment) data++; else data--; RTCCSetBinYear(data); RTCCCalculateWeekDay(); break; default: ; }// End of switch(_uTBannerCurPos ... mRTCCSet(); } }