Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BSP_DISCO_F746NG_patch_fixed LCD_DISCO_F746NG TS_DISCO_F746NG FATFileSystem TinyJpgDec_interwork mbed-src
UI_Time.cpp
00001 #include "WakeupLight.h" 00002 00003 #include "Images/ic_date_range_white_48dp_1x.h" 00004 extern BYTE ic_query_builder_white_48dp_1x[]; 00005 00006 UI_STRUCT uiTimeAdjust; 00007 bool isDateAdjust; 00008 UI_BOX_LIST_ITEM_STRUCT uiTimeItems[]= 00009 { 00010 { "Date", ic_date_range_white_48dp_1x }, { "Time", ic_query_builder_white_48dp_1x } 00011 }; 00012 00013 void UI_TimeAdjustHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui) 00014 { 00015 struct tm *tmStruct; 00016 00017 switch (reason) 00018 { 00019 case UR_CLICK: 00020 DPrintf_("UI_WakeupAdjustHandler: %u.\r\n",index); 00021 if (index==-1) 00022 { 00023 if (isDateAdjust==true) 00024 { 00025 RTC_Get(&tmStruct); 00026 00027 tmStruct->tm_mday=uiTimeAdjust.data.valueAdjust.values[0]; 00028 tmStruct->tm_mon=uiTimeAdjust.data.valueAdjust.values[1]-1; 00029 tmStruct->tm_year=uiTimeAdjust.data.valueAdjust.values[2]+2000-1900; 00030 00031 RTC_Set(tmStruct); 00032 } 00033 else 00034 { 00035 RTC_Get(&tmStruct); 00036 00037 tmStruct->tm_hour=uiTimeAdjust.data.valueAdjust.values[0]; 00038 tmStruct->tm_min=(uiTimeAdjust.data.valueAdjust.values[1]*10) + (uiTimeAdjust.data.valueAdjust.values[2]); 00039 00040 RTC_Set(tmStruct); 00041 } 00042 00043 UI_TimeShow(); 00044 break; 00045 } 00046 else if (index==0) 00047 { 00048 uiTimeAdjust.data.valueAdjust.values[0]++; 00049 if (isDateAdjust==true) 00050 { 00051 if (uiTimeAdjust.data.valueAdjust.values[0]>=32) 00052 uiTimeAdjust.data.valueAdjust.values[0]=1; 00053 } 00054 else 00055 { 00056 if (uiTimeAdjust.data.valueAdjust.values[0]>=23) 00057 uiTimeAdjust.data.valueAdjust.values[0]=0; 00058 } 00059 } 00060 else if (index==1) 00061 { 00062 uiTimeAdjust.data.valueAdjust.values[1]++; 00063 if (isDateAdjust==true) 00064 { 00065 if (uiTimeAdjust.data.valueAdjust.values[1]>=13) 00066 uiTimeAdjust.data.valueAdjust.values[1]=1; 00067 } 00068 else 00069 { 00070 if (uiTimeAdjust.data.valueAdjust.values[1]>=6) 00071 uiTimeAdjust.data.valueAdjust.values[1]=0; 00072 } 00073 } 00074 else if (index==2) 00075 { 00076 uiTimeAdjust.data.valueAdjust.values[2]++; 00077 if (isDateAdjust==true) 00078 { 00079 if (uiTimeAdjust.data.valueAdjust.values[2]>=31) 00080 uiTimeAdjust.data.valueAdjust.values[2]=16; 00081 } 00082 else 00083 { 00084 if (uiTimeAdjust.data.valueAdjust.values[2]>=10) 00085 uiTimeAdjust.data.valueAdjust.values[2]=0; 00086 } 00087 } 00088 else if (index==3) 00089 { 00090 uiTimeAdjust.data.valueAdjust.values[0]--; 00091 if (isDateAdjust==true) 00092 { 00093 if (uiTimeAdjust.data.valueAdjust.values[0]<1) 00094 uiTimeAdjust.data.valueAdjust.values[0]=31; 00095 } 00096 else 00097 { 00098 if (uiTimeAdjust.data.valueAdjust.values[0]<0) 00099 uiTimeAdjust.data.valueAdjust.values[0]=23; 00100 } 00101 } 00102 else if (index==4) 00103 { 00104 uiTimeAdjust.data.valueAdjust.values[1]--; 00105 if (isDateAdjust==true) 00106 { 00107 if (uiTimeAdjust.data.valueAdjust.values[1]<1) 00108 uiTimeAdjust.data.valueAdjust.values[1]=12; 00109 } 00110 else 00111 { 00112 if (uiTimeAdjust.data.valueAdjust.values[1]<0) 00113 uiTimeAdjust.data.valueAdjust.values[1]=5; 00114 } 00115 } 00116 else if (index==5) 00117 { 00118 uiTimeAdjust.data.valueAdjust.values[2]--; 00119 if (isDateAdjust==true) 00120 { 00121 if (uiTimeAdjust.data.valueAdjust.values[2]<16) 00122 uiTimeAdjust.data.valueAdjust.values[2]=30; 00123 } 00124 else 00125 { 00126 if (uiTimeAdjust.data.valueAdjust.values[2]<0) 00127 uiTimeAdjust.data.valueAdjust.values[2]=9; 00128 } 00129 } 00130 break; 00131 00132 case UR_SHOW: 00133 break; 00134 } 00135 } 00136 00137 void UI_TimeHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui) 00138 { 00139 struct tm *tmStruct; 00140 00141 switch (reason) 00142 { 00143 case UR_CLICK: 00144 if (index==-1) 00145 { 00146 // back button 00147 UI_Show(&uiMain); 00148 } 00149 else if (index==0) 00150 { 00151 // date 00152 isDateAdjust=true; 00153 00154 memset(&uiTimeAdjust,0,sizeof(uiTimeAdjust)); 00155 uiTimeAdjust.flags=UI_FLAG_TYPE_VALUE_ADJUST; 00156 uiTimeAdjust.handler=UI_TimeAdjustHandler; 00157 uiTimeAdjust.data.valueAdjust.count=3; 00158 00159 RTC_Get(&tmStruct); 00160 uiTimeAdjust.data.valueAdjust.values[0]=tmStruct->tm_mday; 00161 uiTimeAdjust.data.valueAdjust.values[1]=tmStruct->tm_mon+1; 00162 uiTimeAdjust.data.valueAdjust.values[2]=tmStruct->tm_year+1900-2000; 00163 00164 UI_Show(&uiTimeAdjust); 00165 } 00166 else if (index==1) 00167 { 00168 // time 00169 isDateAdjust=false; 00170 00171 memset(&uiTimeAdjust,0,sizeof(uiTimeAdjust)); 00172 uiTimeAdjust.flags=UI_FLAG_TYPE_VALUE_ADJUST; 00173 uiTimeAdjust.handler=UI_TimeAdjustHandler; 00174 uiTimeAdjust.data.valueAdjust.count=3; 00175 uiTimeAdjust.data.valueAdjust.isTime=true; 00176 00177 RTC_Get(&tmStruct); 00178 uiTimeAdjust.data.valueAdjust.values[0]=tmStruct->tm_hour; 00179 uiTimeAdjust.data.valueAdjust.values[1]=tmStruct->tm_min / 10; 00180 uiTimeAdjust.data.valueAdjust.values[2]=tmStruct->tm_min % 10; 00181 00182 UI_Show(&uiTimeAdjust); 00183 } 00184 break; 00185 00186 case UR_TIMER: 00187 break; 00188 } 00189 } 00190 00191 void UI_TimeShow(void) 00192 { 00193 uiWakeup.flags=UI_FLAG_TYPE_BOX_LIST | UI_FLAG_HAS_BACK_BUTTON; 00194 uiWakeup.handler=UI_TimeHandler; 00195 uiWakeup.data.boxList.items=uiTimeItems; 00196 uiWakeup.data.boxList.count=2; 00197 00198 UI_Show(&uiWakeup); 00199 }
Generated on Tue Jul 12 2022 21:40:04 by
1.7.2