📄 lcd_disp.c
字号:
/*
*********************************************************************************************************
* uC/GUI
* Universal graphic software for embedded applications
*
* (c) Copyright 2002, Micrium Inc., Weston, FL
* (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
* 礐/GUI is protected by international copyright laws. Knowledge of the
* source code may not be used to write a similar product. This file may
* only be used in accordance with a license and should not be redistributed
* in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File : GUIDEMO_Dialog.c
Purpose : Automotive samples
----------------------------------------------------------------------
*/
#include <stddef.h> /* needed for definition of NULL */
//#include "GUI.h"
//#include "GUIDEMO.h"
#include "..\GUIinc\GUI.h"
#include "..\uCGUIDemo\GUIDEMO.h"
//#include "LCD_ConfDefaults.h"
#include "..\GUIinc\LCD_ConfDefaults.h" /* valid LCD configuration */
#if GUI_SUPPORT_MEMDEV && GUI_WINSUPPORT
#include "..\GUIinc\WM.h"
#include "..\GUIinc\BUTTON.h"
#include "..\GUIinc\DIALOG.h"
#include "..\GUIinc\LISTBOX.h"
#include "..\GUIinc\EDIT.h"
#include "..\GUIinc\SLIDER.h"
#include "..\GUIinc\radio.h"
#include "..\GUIinc\FRAMEWIN.h"
#include "demo.h"
static void _OnValueChanged(WM_HWIN hDlg, int Id);
/*********************************************************************
*
* types
*
**********************************************************************
*/
WM_HWIN hWin;
WM_HWIN hListBox[8];
WM_HWIN text1,text2,text3,text4,text5,text6,text7,text8,bt[4],edit0,edit1,edit2,slider0,rd0;
GUI_COLOR DesktopColorOld;
const GUI_FONT* pFont = &GUI_FontComic24B_1;
const GUI_FONT* pFont18 = &GUI_FontComic18B_1;
//extern BUTTON_Handle _ahButton[7];
//extern unsigned char num;
typedef struct {
unsigned char Id;
int Time;
} KEYSIM;
/*********************************************************************
*
* static data
*
**********************************************************************
*/
#if GUIDEMO_LARGE
static const GUI_WIDGET_CREATE_INFO aDialogCreate[] = {
{ FRAMEWIN_CreateIndirect, "NRF24L01", 0, 0, 0, 240, 320, FRAMEWIN_CF_ACTIVE }, //FRAMEWIN_CF_MOVEABLE},
{ BUTTON_CreateIndirect, "SEND", GUI_ID_BUTTON0, 0, 236, 120, 55 },
{ BUTTON_CreateIndirect, "CLEAR", GUI_ID_BUTTON2, 120, 236, 120, 55 },
{ EDIT_CreateIndirect, "", GUI_ID_EDIT1, 0, 120, 230, 35, EDIT_CF_LEFT, 50 },
{ EDIT_CreateIndirect, "", GUI_ID_EDIT2, 0, 190, 230, 35, EDIT_CF_LEFT, 50 },
{ TEXT_CreateIndirect, "Send Text Area", GUI_ID_TEXT0, 1, 95, 230, 25, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Receive Text Area ", GUI_ID_TEXT1, 1, 163, 230, 25, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "2M bps", GUI_ID_TEXT2, 23, 12, 140, 25, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "1M bps", GUI_ID_TEXT3, 23, 32, 140, 25, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "", GUI_ID_TEXT4, 0, 60, 240, 25, TEXT_CF_LEFT },
{ RADIO_CreateIndirect, "Receive Mode", GUI_ID_RADIO0, 3, 23, 40, 40, RADIO_TEXTPOS_LEFT,2},
};
#endif
/*********************************************************************
*
* static code
*
**********************************************************************
*/
/*********************************************************************
*
* _cbCallback
*/
static void _cbCallback(WM_MESSAGE * pMsg) {
int i; int NCode, Id; WM_HWIN hDlg, hItem; hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
/* Initialize all widgets */
#if GUIDEMO_TINY
EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "EDIT");
#else
EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT0), "EDIT widget 0");
//EDIT_SetText(WM_GetDialogItem(hWin, GUI_ID_EDIT1), "EDIT widget 1");
#endif
{
#if GUIDEMO_LARGE
DesktopColorOld = GUIDEMO_SetBkColor(GUI_BLACK);
#else
GUI_RECT Rect;
int x, y, ySize;
ySize = LCD_GetYSize();
if (ySize < 120) {
WM_ResizeWindow(hWin, 0, -24);
}
WM_GetWindowRectEx(hWin, &Rect);
x = (LCD_GetXSize() - (Rect.x1 - Rect.x0 + 1)) >> 1;
y = (ySize - (Rect.y1 - Rect.y0 + 1)) >> 1;
#if GUIDEMO_TINY
WM_MoveTo(hWin, x, y);
#else
WM_MoveTo(hWin, x, y - 4);
#endif
#endif
}
break;
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {
case GUI_KEY_ESCAPE:
GUI_EndDialog(hWin, 1);
break;
case GUI_KEY_ENTER:
GUI_EndDialog(hWin, 0);
break;
}
break;
#if GUIDEMO_LARGE
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc); /* Id of widget */
NCode = pMsg->Data.v; /* Notification code */
switch (NCode) {
case WM_NOTIFICATION_RELEASED: /* React only if released */
if (Id == GUI_ID_BUTTON2) { /* Clear Button */
memcpy(status_buf, "", 20);
memcpy(rx_buf, "", 20);
TEXT_SetFont(text5,pFont18);
TEXT_SetText(text5,status_buf);
EDIT_SetFont(edit2,pFont18);
EDIT_SetText(edit2,rx_buf);
memcpy(tx_buf, "", 20);
NRF24L01_TXBUF();
//TEXT_SetFont(text5,pFont);
//TEXT_SetText(text5,status_buf);
RX_Mode();
}
else if (Id == GUI_ID_BUTTON0) { /* Send Mode Button */
memcpy(tx_buf, "1234567890abcdefghij", 20);
//memcpy(tx_buf, "", 20);
memcpy(rx_buf, "", 20);
EDIT_SetFont(edit2,pFont18);
EDIT_SetText(edit2,rx_buf);
NRF24L01_TXBUF();
memcpy(tx_buf, "", 20);
TEXT_SetFont(text5,pFont);
TEXT_SetText(text5,status_buf);
RX_Mode();
}
else if (Id == GUI_ID_RADIO0) { /* BAUD SELECT Button */
nrf_baud= RADIO_GetValue(rd0);
RADIO_SetValue(rd0,nrf_baud);
RX_Mode();
}
break;
/*case WM_NOTIFICATION_SEL_CHANGED: // Selection changed
FRAMEWIN_SetText(hWin, "Dialog - sel changed");
break;*/
case WM_NOTIFICATION_VALUE_CHANGED: /* Value has changed */ _OnValueChanged(hDlg, Id); break;
default:
}
break;
#endif
default:
WM_DefaultProc(pMsg);
}
}
/*********************************************************************** _OnValueChanged*/static void _OnValueChanged(WM_HWIN hDlg, int Id) { unsigned Index, v; WM_HWIN hSlider, hEdit;
}
/*********************************************************************
*
* public code
*
**********************************************************************
*/
/*********************************************************************
*
* GUIDEMO_Dialog
*/
void YM3_para(void) {
unsigned char c=1,b=1,cur=0;
int xCenter = LCD_GET_XSIZE() / 2;
int key=0;
//unsigned int Light;
unsigned char dat[202];
#if (GUI_SUPPORT_CURSOR|GUI_SUPPORT_TOUCH)
GUI_CURSOR_Show();
#endif
//GUIDEMO_HideInfoWin();
DesktopColorOld = WM_SetDesktopColor(GUI_BLUE); /* Automatically update desktop window */
hWin = GUI_CreateDialogBox(aDialogCreate, GUI_COUNTOF(aDialogCreate), _cbCallback, 0, 0, 0);
FRAMEWIN_SetFont(hWin, &GUI_FontComic18B_1);
FRAMEWIN_SetClientColor(hWin, GUI_BLACK);
memcpy(tx_buf, "1234567890abcdefghij", 20);
memcpy(rx_buf, "", 20);
//DesktopColorOld = GUIDEMO_SetBkColor(GUI_BLACK);
text1 = WM_GetDialogItem(hWin, GUI_ID_TEXT0);
text2 = WM_GetDialogItem(hWin, GUI_ID_TEXT1);
text3 = WM_GetDialogItem(hWin, GUI_ID_TEXT2);
text4 = WM_GetDialogItem(hWin, GUI_ID_TEXT3);
text5 = WM_GetDialogItem(hWin, GUI_ID_TEXT4);
TEXT_SetFont(text1,pFont);
TEXT_SetFont(text2,pFont);
TEXT_SetFont(text3,pFont18);
TEXT_SetFont(text4,pFont18);
TEXT_SetFont(text5,pFont);
TEXT_SetBkColor(text5,GUI_BLUE);
TEXT_SetTextColor(text1,GUI_GREEN);
TEXT_SetTextColor(text2,GUI_GREEN );
TEXT_SetTextColor(text3,GUI_YELLOW);
TEXT_SetTextColor(text4,GUI_YELLOW);
TEXT_SetTextColor(text5,GUI_YELLOW);
//slider0 = WM_GetDialogItem(hWin, GUI_ID_SLIDER0);
edit1 = WM_GetDialogItem(hWin, GUI_ID_EDIT1);
EDIT_SetFont(edit1,pFont18);
EDIT_SetText(edit1,tx_buf);
edit2 = WM_GetDialogItem(hWin, GUI_ID_EDIT2);
EDIT_SetFont(edit2,pFont18);
EDIT_SetText(edit2,rx_buf);
//EDIT_SetHexMode(edit1,0xffff,0x3fff,0xffff);
bt[0]=WM_GetDialogItem(hWin,GUI_ID_BUTTON0);
bt[1]=WM_GetDialogItem(hWin, GUI_ID_BUTTON1);
bt[2]=WM_GetDialogItem(hWin, GUI_ID_BUTTON2);
bt[3]=WM_GetDialogItem(hWin, GUI_ID_BUTTON3);
BUTTON_SetFont(bt[0],pFont);//GUI_Font16_ASCII
BUTTON_SetFont(bt[1],pFont);//GUI_Font16_ASCII
BUTTON_SetFont(bt[2],pFont);//GUI_Font16_ASCII
BUTTON_SetFont(bt[3],pFont);//GUI_Font16_ASCII
BUTTON_SetTextColor(bt[0],0,GUI_WHITE);
BUTTON_SetTextColor(bt[1],0,GUI_WHITE);
BUTTON_SetTextColor(bt[2],0,GUI_WHITE);
BUTTON_SetTextColor(bt[3],0,GUI_WHITE);
rd0 = WM_GetDialogItem(hWin, GUI_ID_RADIO0);
nrf_baud=0;
RADIO_SetValue(rd0,0);
RX_Mode();
//SLIDER_SetRange(slider0,0x3fff,0xffff);
//GUI_Line(0, 60, 239, 60, GUI_WHITE);
while (1)
{
c=NRF24L01_RxPacket();
if(led_flash==1){ Led_ON(); }
else if(led_flash==0){ Led_OFF();}
if(c==1){
EDIT_SetFont(edit2,pFont18);
EDIT_SetText(edit2,rx_buf);
TEXT_SetFont(text5,pFont);
TEXT_SetText(text5,status_buf);
c=0;
}
WM_Exec();
//NRF24L01_TX();
}
}
#endif /* GUI_SUPPORT_MEMDEV */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -