static void _OnRx(OS_U8 Data) { #if 0 int Key; switch (Data) { case 'y': Key = GUI_KEY_LEFT; break; case 'x': Key = GUI_KEY_RIGHT; break; case 'q': Key = GUI_KEY_UP; break; case 'a': Key = GUI_KEY_DOWN; break; case 'w': Key = GUI_KEY_BACKSPACE; break; default: Key = Data; } GUI_StoreKeyMsg(Key, 1); #else GUI_StoreKeyMsg(Data, 1); #endif }
void UART0_IRQHandler(void) { uint8_t tmpc; uint32_t tmp, tmp1; tmp = ((LPC_UART0->IIR) & UART_IIR_BITMASK) & UART_IIR_INTID_MASK; if (tmp == UART_IIR_INTID_RLS) // Receive Line Status { tmp1 = UART_GetLineStatus(UART_0);// Check line status tmp1 &= (UART_LSR_OE | UART_LSR_PE | UART_LSR_FE | UART_LSR_BI | UART_LSR_RXFE);// Mask out the Receive Ready and Transmit Holding empty status } if ((tmp == UART_IIR_INTID_RDA) || (tmp == UART_IIR_INTID_CTI)) // Receive Data Available or Character time-out { UART_Receive(UART_0, &tmpc, 1, NONE_BLOCKING); if(tmpc >= GUI_KEY_MENU && tmpc <= GUI_KEY_PGDOWN) { isKeyTrigged = 1; switch(tmpc) { case GUI_KEY_TRACE_ENABLE: break; case GUI_KEY_TRACE_DISABLE: break; default: GUI_StoreKeyMsg(tmpc, 1); break; } } else if(tmpc >= 0x80 && tmpc <(0x80+21)) { GUI_StoreKeyMsg(GUI_KEY_RELEASE, 1); } else { } } }
/******************************************************************* * * _cbKeyDown Callback for the down-key */ static void _cbKeyDown(int key, int state) { GUI_StoreKeyMsg(GUI_KEY_DOWN, state); };
/******************************************************************* * * _cbKeyUp Callback for the up-key */ static void _cbKeyUp(int key, int state) { GUI_StoreKeyMsg(GUI_KEY_UP, state); };
static void mylistview(WM_MESSAGE *pMsg) { WM_HWIN hWin; CHAR RowNum; CHAR RowLineIndex; const WM_KEY_INFO *pInfo; int16_t i = 0; static char addrow = 0; hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch (pInfo->Key) { case GUI_KEY_MENU: WM_BringToTop(Menuwin); WM_SetFocus(WM_GetDialogItem(Menuwin,ID_MENU)); MENU_SetSel(WM_GetDialogItem(Menuwin,ID_MENU),0); MenuSel = 0; break; case GUI_KEY_PRINT: WM_BringToTop(PrintWin); WM_SetFocus(WM_GetDialogItem(PrintWin,ID_PrintMenu)); break; case GUI_KEY_LOC1: pCannel = " 490 横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_LOC2: pCannel = "4209.5横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_CHS: pCannel = " 486 横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_LOCK: SelRow = LISTVIEW_GetSel(hListview); LISTVIEW_GetItemText(hListview,0,SelRow,pStrBuf,5); InfoId = atoi(pStrBuf); Info = pInfoHeader; if (pInfoHeader) do { if (Info->ID == InfoId) { if (Info->isLocked == 0) { LISTVIEW_SetItemText(hListview,6,SelRow," 锁"); Info->isLocked = 1; } else if (Info->isLocked == 1) { LISTVIEW_SetItemText(hListview,6,SelRow,""); Info->isLocked = 0; } break; } }while (Info = Info->pNext); break; case GUI_KEY_DOWN: SelRow = LISTVIEW_GetSel(hListview); if (thispage < pageNum) { if (SelRow == 7) { thispage++; InfoSel(InfoType,thispage); DisPage(); //WM_InvalidateRect(mainwin,&PageRect); } } break; case GUI_KEY_UP: SelRow = LISTVIEW_GetSel(hListview); if(SelRow == 0 && thispage == 1) WM_SetFocus(hButton); if (thispage>1) { if(SelRow == 0) { SelBottom = 1; thispage--; InfoSel(InfoType,thispage); DisPage(); GUI_StoreKeyMsg(GUI_KEY_RIGHT,1); //选择列表中最后一行 } } break; case GUI_KEY_RIGHT: if (SelBottom == 1) { LISTVIEW_SetSel(hListview,7); SelBottom = 0; } break; case GUI_KEY_ESCAPE: SelRow = LISTVIEW_GetSel(hListview); WM_SetFocus(hButton); break; case GUI_KEY_ENTER: SelRow = LISTVIEW_GetSel(hListview); LISTVIEW_GetItemText(hListview,0,SelRow,pStrBuf,5); InfoId = atoi(pStrBuf); Info = pInfoHeader; if (pInfoHeader) do { if (Info->ID == InfoId) { if (Info->state == INFO_STT_New) LISTVIEW_SetItemBitmap(hListview,6,SelRow,10,7,NULL); if (Info->isLocked == 0) TEXT_SetText(WM_GetDialogItem(InfoText,ID_TEXT_0),""); else TEXT_SetText(WM_GetDialogItem(InfoText,ID_TEXT_0),"锁"); Info->state = INFO_STT_Choosen; sprintf(pStrBuf,"%s",pStrBuf); BUTTON_SetText(WM_GetDialogItem(InfoText,ID_BUTTON_0),pStrBuf); MULTIEDIT_SetText(WM_GetDialogItem(InfoText, ID_MULTIEDIT_0),Info->pContent); break; } }while (Info = Info->pNext); WM_BringToTop (InfoText); WM_SetFocus (InfoText); break; } case WM_POST_PAINT: //行分割线 RowNum = LISTVIEW_GetNumRows(hListview); GUI_SetColor(GUI_BLACK); for (RowLineIndex = 0; RowLineIndex<RowNum; RowLineIndex++) GUI_DrawLine(0,(68+40*(RowLineIndex)),720,(68+40*(RowLineIndex))); default : LISTVIEW_Callback(pMsg); break; } }
__task void phase_KEY (void) { static GPIO_InitTypeDef GPIO_InitStruct; GPIO_PinState bitstatus; __GPIOF_CLK_ENABLE(); __GPIOA_CLK_ENABLE(); while(1) { // 1 TOUCH GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); bitstatus = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_6); if(bitstatus==GPIO_PIN_RESET) { os_dly_wait (2); bitstatus = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_6); if(bitstatus==GPIO_PIN_RESET) { do{ bitstatus = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_6); }while(bitstatus==GPIO_PIN_RESET); GUI_StoreKeyMsg(GUI_KEY_ENTER, 1); os_tsk_create (KEY_Sound,0); LEDCURRENTTIME =0; // 清除掉关闭背光标识 Time3Enable(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1)); } } // 2 TOUCH GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); bitstatus = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8); if(bitstatus==GPIO_PIN_RESET) { os_dly_wait (2); bitstatus = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8); if(bitstatus==GPIO_PIN_RESET) { do{ bitstatus = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8); }while(bitstatus==GPIO_PIN_RESET); GUI_StoreKeyMsg(GUI_KEY_DOWN, 1); os_tsk_create (KEY_Sound,0); LEDCURRENTTIME =0; // 清除掉关闭背光标识 Time3Enable(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1)); } } // 3 TOUCH GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); bitstatus = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); if(bitstatus==GPIO_PIN_RESET) { os_dly_wait (2); bitstatus = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); if(bitstatus==GPIO_PIN_RESET) { do{ bitstatus = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0); }while(bitstatus==GPIO_PIN_RESET); GUI_StoreKeyMsg(GUI_KEY_UP, 1); os_tsk_create (KEY_Sound,0); LEDCURRENTTIME =0; // 清除掉关闭背光标识 Time3Enable(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1)); } } // 4 TOUCH GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); bitstatus = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); if(bitstatus==GPIO_PIN_RESET) { os_dly_wait (2); bitstatus = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); if(bitstatus==GPIO_PIN_RESET) { do{ bitstatus = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); }while(bitstatus==GPIO_PIN_RESET); GUI_StoreKeyMsg(GUI_KEY_ESCAPE, 1); os_tsk_create (KEY_Sound,0); LEDCURRENTTIME =0; // 清除掉关闭背光标识 Time3Enable(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1)); } } os_tsk_pass(); } }
/******************************************************************* * * _cbKeyDown * * Function description * Callback for the down-key */ static void _cbKeyDown(int key, int state) { GUI_USE_PARA(key); GUI_StoreKeyMsg(GUI_KEY_DOWN, state); }
/******************************************************************* * * _cbKeyUp * * Function description * Callback for the up-key */ static void _cbKeyUp(int key, int state) { GUI_USE_PARA(key); GUI_StoreKeyMsg(GUI_KEY_UP, state); }