The SZ / WakeupLight

Dependencies:   BSP_DISCO_F746NG_patch_fixed LCD_DISCO_F746NG TS_DISCO_F746NG FATFileSystem TinyJpgDec_interwork mbed-src

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers UI_Time.cpp Source File

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 }