📄 s_menutask.c
字号:
#ifndef VZ328
#define VZ328
#endif
#include <stdlib.h>
#include <M68328.h>
#include <ppsm.h>
#include <errors.h>
#include <proto.h>
#include "sample.h"
#include "tools.h"
#include "main.h"
#include "Sunray.h"
void MenuTaskApp(void)
{
P_U16 inData;
U32 size, id;
S16 xSrc, ySrc, xDest, yDest;
U16 ShowNowTime[7];
U8 tmpVal;
U32 ReadMeterDataId,MeterDataManageId,TestCommunicateId,SystemSetId,CloseId,IntegrateModelId;
TEXT welcomtxt[]={'欢','迎','使','用','抄','表','系','统',0};
// TEXT ReadMeterDataTxt[]={'实','例','一',0};
// TEXT MeterDataManageTxt[]={'实','例','二',0};
TEXT TestCommunicateTxt[]={'通','信','实','例',0};
TEXT IntegrateModelTxt[]={'数','据','实','例',0};
TEXT SystemSetTxt[]={'系','统','设','置',0};
TEXT CloseTxt[]={'关','机',0};
ReStartFlag:
ClearScreen(WHITE);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 50, 2, (P_U8)welcomtxt);
/**
if (TextButton(&ReadMeterDataId, GB_NORMAL_FONT,(P_TEXT)ReadMeterDataTxt, 30, 30, 180, 35, 1)
!= PPSM_OK) rv=PPSM_ERROR;
if (TextButton(&MeterDataManageId, GB_NORMAL_FONT,(P_TEXT)MeterDataManageTxt, 30, 70, 180, 35, 1)
!= PPSM_OK) rv=PPSM_ERROR;
**/
if (TextButton(&TestCommunicateId, GB_NORMAL_FONT,(P_TEXT)TestCommunicateTxt, 30, 30, 180, 35, 1)
!= PPSM_OK) rv=PPSM_ERROR;
if (TextButton(&IntegrateModelId, GB_NORMAL_FONT,(P_TEXT)IntegrateModelTxt, 30, 70, 180, 35, 1)
!= PPSM_OK) rv=PPSM_ERROR;
if (TextButton(&SystemSetId, GB_NORMAL_FONT,(P_TEXT)SystemSetTxt, 30, 190, 180, 35, 1)
!= PPSM_OK) rv=PPSM_ERROR;
if (TextButton(&CloseId, GB_NORMAL_FONT,(P_TEXT)CloseTxt, 30, 230, 180, 35, 1)
!= PPSM_OK) rv=PPSM_ERROR;
PreVoltageProcess2();
CkeckCutButtonFlag=0;
ElWorkCount=0;
SetPeriod(RTC_PERI_SECOND);
while (1) {
switch (IrptGetData((P_U32)&id, (P_U32*)&inData, (P_U32)&size)) {
case IRPT_RTC:
tmpVal=ReadPenIRQFlagValue();
if (tmpVal==0) {
VoltageProcess2();
}
AnyGetTime(ShowNowTime);
DisplayTimeOt(ShowNowTime);
Elcheck();
CutDownCheck();
break;
case IRPT_ICON:
if (ActiveAreaRead(id,&xSrc,&ySrc,&xDest,&yDest)
!= PPSM_OK) rv = PPSM_ERROR;
if (InvRec(xSrc+1,ySrc+1,(xDest-(xSrc+1)),(yDest-(ySrc+1)))
!= PPSM_OK) rv = PPSM_ERROR;
if (*inData == PPSM_ICON_PEN_UP) {
EL_Open();
BUZZER_ON();
if (id==ReadMeterDataId) {
if (AdvMessageDelete(MenuTaskAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(QueryDataAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
} else if (id==TestCommunicateId) {
ASDPLength=CommPackage();
AppSwap(FALSE);
if (MessageDelete(-1)!= PPSM_OK) rv= PPSM_ERROR;
CommunicationApp();
AppSwap(TRUE);
goto ReStartFlag;
} else if (id==MeterDataManageId) {
if (AdvMessageDelete(MenuTaskAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(ListUserAllDataAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
} else if (id==IntegrateModelId) {
if (AdvMessageDelete(MenuTaskAppID, IRPT_ICON, -1)
!= PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(IntegrateModelAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
} else if (id==SystemSetId) {
if (AdvMessageDelete(MenuTaskAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(SystemSetAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
} else if (id==CloseId) {
if (AdvMessageDelete(MenuTaskAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(ShutDownAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
}
}
default:
break;
}
}
}
void QueryDataApp(void)
{
P_U16 inData;
U32 size, id;
S16 xSrc, ySrc, xDest, yDest;
U16 gCursorXPos;
U16 gCursorYPos;
U8 tmpRecId[12],i;
U8 KeyVal,StarNum;
U32 ButtonOkId, ButtonCancelId, ShowAllDataId;
TEXT ButtonOkTxt[]={'确','定',0};
TEXT ButtonCancelTxt[]={'取','消',0};
TEXT InputMeterTxt[]={'请','输','入','要','查','询','的','编','号',':',0};
TEXT InputErrorTxt[]={'输','入','错','误',',','请','重','新','输','入','!',0};
ReStartFlag:
ClearScreen(WHITE);
for (i=0;i<12;i++) {
tmpRecId[i]=0;
}
gCursorXPos=38;
gCursorYPos=160;
StarNum=0;
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 10, (P_U8)InputMeterTxt);
ClearRec(WHITE,35,80,20,90,REPLACE_STYLE);
DrawRec(BLACK, 35,80,55,170,0,REPLACE_STYLE);
CursorInit(16,8);
CursorSetStatus(PPSM_CURSOR_REVERSED);
CursorSetBlink(5);
CursorSetPos(gCursorXPos,gCursorYPos);
//创建数字软键盘
KeyPadFunction_letter (150);
if (TextButton(&ButtonOkId,GB_NORMAL_FONT,(P_TEXT)ButtonOkTxt,40, 284, 60, 35, 1)
!=PPSM_OK) rv=PPSM_ERROR;
if (TextButton(&ButtonCancelId,GB_NORMAL_FONT,(P_TEXT)ButtonCancelTxt,140, 284, 60, 35, 1)
!=PPSM_OK) rv=PPSM_ERROR;
CkeckCutButtonFlag=0;
ElWorkCount=0;
SetPeriod(RTC_PERI_SECOND);
while (1) {
switch (IrptGetData((P_U32)&id, (P_U32*)&inData, (P_U32)&size)) {
case IRPT_RTC:
Elcheck();
CutDownCheck();
break;
case IRPT_ICON:
if (ActiveAreaRead(id,&xSrc,&ySrc,&xDest,&yDest)
!= PPSM_OK) rv = PPSM_ERROR;
if (InvRec(xSrc+1,ySrc+1,(xDest-(xSrc+1)),(yDest-(ySrc+1)))
!= PPSM_OK) rv = PPSM_ERROR;
if (*inData == PPSM_ICON_PEN_UP) {
EL_Open();
BUZZER_ON();
if (id==ButtonOkId) {
//确定事件
break;
} else if (id==ButtonCancelId) {
CursorOff();
if (AdvMessageDelete(QueryDataAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(MenuTaskAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
} else {
KeyVal=GetKeyChar_Letter(id);
if (KeyVal!=0) {
if (KeyVal==11) {
if (StarNum>0) {
ClearRec(WHITE,36,81,18,88,REPLACE_STYLE);
StarNum--;
tmpRecId[StarNum]=0;
gCursorYPos=gCursorYPos+8;
CursorSetPos(gCursorXPos,gCursorYPos);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 72, 38, (P_U8)tmpRecId);
}
} else {
if (StarNum<11) {
tmpRecId[StarNum]=KeyVal;
StarNum++;
ClearRec(WHITE,36,81,18,88,REPLACE_STYLE);
gCursorYPos=gCursorYPos-8;
CursorSetPos(gCursorXPos,gCursorYPos);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 72, 38, (P_U8)tmpRecId);
}
}
}
break;
}
}
default:
break;
}
}
}
void ListUserAllDataApp(void)
{
U32 i,j;
P_U16 inData;
U32 size, id;
U8 Title1Txt[12],Title2Txt[12];
S16 xSrc, ySrc, xDest, yDest;
U32 UserItemId[MENUNUM], UpPageId, DownPageId, CancelId;
TEXT ElecMeterTxt[]={'电','子','表','号',0};
TEXT CollectorTxt[]={'集','中','器','号',0};
TEXT UpPageTxt[]={'上','页',0};
TEXT DownPageTxt[]={'下','页',0};
TEXT CancelTxt[]={'取','消',0};
U8 tmpCount;
U8 PageNum;
PageNum=0;
tmpCount=15;
CurrRecIndex=0;
for (i=0;i<12;i++) {
Title1Txt[i]=0;
Title2Txt[i]=0;
}
for (i=0;i<10;i++) {
Title1Txt[i]='1';
Title2Txt[i]='2';
}
ReDisPlay:
ClearScreen(WHITE);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 2, (P_U8)ElecMeterTxt);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 100, 2, (P_U8)CollectorTxt);
TextButton(&UpPageId, GB_NORMAL_FONT, (P_TEXT)UpPageTxt, 2, 284, 75, 35, 1);
TextButton(&DownPageId, GB_NORMAL_FONT, (P_TEXT)DownPageTxt, 82, 284, 75, 35, 1);
TextButton(&CancelId, GB_NORMAL_FONT, (P_TEXT)CancelTxt, 162, 284, 75, 35, 1);
/**
for (i=0;i<(UserDataBaseNumber>=(PageNum+1)*10 ? MENUNUM:(UserDataBaseNumber-PageNum*10) );i++) {
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 2, 30+i*25, (P_U8)UserbaseData[i+PageNum*10].elecmeterid);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 100, 30+i*25, (P_U8)UserbaseData[i+PageNum*10].collecter);
if (ActiveAreaEnable((P_U32)&UserItemId[i],ICON_AREA,CONTINUOUS_MODE, i*25+30, 2, (i+1)*25+28, 237)!=PPSM_OK) rv=PPSM_ERROR;
}
**/
for (i=0;i<(tmpCount>=(PageNum+1)*10 ? MENUNUM:(tmpCount-PageNum*10) );i++) {
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 2, 30+i*25, (P_U8)Title1Txt);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 100, 30+i*25, (P_U8)Title2Txt);
if (ActiveAreaEnable((P_U32)&UserItemId[i],ICON_AREA,CONTINUOUS_MODE, i*25+30, 2, (i+1)*25+28, 237)!=PPSM_OK) rv=PPSM_ERROR;
}
CkeckCutButtonFlag=0;
ElWorkCount=0;
SetPeriod(RTC_PERI_SECOND);
while (1) {
switch (IrptGetData((P_U32)&id, (P_U32*)&inData, (P_U32)&size)) {
case IRPT_RTC:
Elcheck();
CutDownCheck();
break;
case IRPT_ICON:
ActiveAreaRead(id, &xSrc, &ySrc, &xDest, &yDest);
InvRec(xSrc+1, ySrc+1, (xDest-(xSrc+1)), (yDest-(ySrc+1)));
if (*inData == PPSM_ICON_PEN_UP) {
EL_Open();
BUZZER_ON();
if (id==UpPageId) {
if (PageNum>=1) {
PageNum--;
goto ReDisPlay;
}
break;
} else if (id==DownPageId) {
if ((PageNum+1)*10<tmpCount) {
PageNum++;
goto ReDisPlay;
}
break;
} else if (id==CancelId) {
if (AdvMessageDelete(ListUserAllDataAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(MenuTaskAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
} else {
for (i=0;i<MENUNUM;i++) {
if (PageNum*10+i<tmpCount) {
if (id==UserItemId[i]) {
CurrRecIndex=PageNum*10+i;
if (AdvMessageDelete(ListUserAllDataAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(ListItemContentAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
}
}
}
break;
}
}
default:
break;
}
}
}
void ListItemContentApp(void)
{
P_U16 inData;
U32 size, id;
U8 Title2Txt[8],i;
S16 xSrc, ySrc, xDest, yDest;
U32 CancelBtnId;
TEXT CancelBtnTxt[]={'返','回',0};
TEXT CurrRecTxt[]={'当','前','记','录',':',0};
ClearScreen(WHITE);
for (i=0;i<8;i++) {
Title2Txt[i]=0;
}
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 60, (P_U8)CurrRecTxt);
UTL_Word2Deci(CurrRecIndex, Title2Txt);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 100, 60, (P_U8)Title2Txt);
TextButton(&CancelBtnId, GB_NORMAL_FONT, (P_TEXT)CancelBtnTxt, 65, 280, 75, 35, 1);
CkeckCutButtonFlag=0;
ElWorkCount=0;
SetPeriod(RTC_PERI_SECOND);
while (1) {
switch (IrptGetData((P_U32)&id, (P_U32*)&inData, (P_U32)&size)) {
case IRPT_RTC:
Elcheck();
CutDownCheck();
break;
case IRPT_ICON:
ActiveAreaRead(id, &xSrc, &ySrc, &xDest, &yDest);
InvRec(xSrc+1, ySrc+1, (xDest-(xSrc+1)), (yDest-(ySrc+1)));
if (*inData == PPSM_ICON_PEN_UP) {
EL_Open();
BUZZER_ON();
if (id==CancelBtnId) {
if (AdvMessageDelete(ListItemContentAppID, IRPT_ICON, -1)
!=PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(ListUserAllDataAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -