📄 s_integratemodel.c
字号:
} else if (id==BtnCancelId) {
if (AdvMessageDelete(DelRecAppID, IRPT_ICON, -1)
!= PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(LstRecContentAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
break;
}
}
default:
break;
}
}
}
/******************************************************
**查询记录任务
******************************************************/
void QryRecApp(void)
{
P_U16 inData;
U32 size, id;
S16 xSrc, ySrc, xDest, yDest;
U16 gCursorXPos;
U16 gCursorYPos;
U8 tmpRecId[12],i,ErrorFlag;
U8 KeyVal,StarNum;
U32 ButtonOkId, ButtonCancelId, ShowAllDataId;
TEXT ButtonOkTxt[]={'确','定',0};
TEXT ButtonCancelTxt[]={'取','消',0};
TEXT InputMeterTxt[]={'请','输','入','要','查','询','的','编','号',':',0};
TEXT InputErrorTxt[]={'输','入','错','误',',','请','重','新','输','入','!',0};
TEXT NoFoundInputRecTxt[]={'没','有','要','查','找','的','记','录','!',0};
ErrorFlag=0;
ReStartFlag:
ClearScreen(WHITE);
if (ErrorFlag==0) {
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 10, (P_U8)InputMeterTxt);
} else if (ErrorFlag==1) {
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 10, (P_U8)InputErrorTxt);
} else if (ErrorFlag==2) {
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 10, (P_U8)NoFoundInputRecTxt);
}
for (i=0;i<12;i++) {
tmpRecId[i]=0;
}
gCursorXPos=38;
gCursorYPos=160;
StarNum=0;
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) {
if (StarNum==0) {
ErrorFlag=1;
goto ReStartFlag;
} else {
CurrRecPoint=SearchRec(tmpRecId);
if (CurrRecPoint==0xFFFF) {
ErrorFlag=2;
goto ReStartFlag;
} else {
CursorOff();
if (AdvMessageDelete(QryRecAppID, IRPT_ICON, -1)
!= PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(LstRecContentAppID, NULL, SWAP_TASK)
!= PPSM_OK) rv= PPSM_ERROR;
}
}
break;
} else if (id==ButtonCancelId) {
CursorOff();
if (AdvMessageDelete(DelRecAppID, IRPT_ICON, -1)
!= PPSM_OK) rv = PPSM_ERROR;
if (AdvSendMessage(IntegrateModelAppID, 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;
}
}
}
/******************************************************
**保存数据函数
**存储数据格式:!!RecNo@@RecData??????
******************************************************/
void SaveData(void)
{
U16 i,j,tmpVal,tmpLen,DataFullFlag;
U32 IncDataAddr;
TEXT NowSavingTxt[]={'正','在','存','储','数','据',',','请','稍','候','..','. ',0};
ClearScreen(WHITE);
Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 150, (P_U8)NowSavingTxt);
ram_perase_sector(16);
IncDataAddr=0;
DataFullFlag=0;
if (TestRecCount>0) {
for (i=0;i<TestRecCount;i++) {
if (RECDATAADDR+IncDataAddr+24>MAXRECDATAADDR) {
for (j=0;j<6;j++) {
if (j%2==0) {
tmpVal=0x3F;
} else {
tmpVal<<=8;
tmpVal|=0x3F;
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
DataFullFlag=1;
break;
} else {
if (TestRecData[i].DelFlag==0) {
tmpVal='!';
tmpVal<<=8;
tmpVal|='!';
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
tmpLen=U8len(TestRecData[i].RecNo);
tmpVal=0;
if (tmpLen%2==0) {
for (j=0;j<tmpLen;j++) {
if (j%2==0) {
tmpVal=TestRecData[i].RecNo[j];
} else {
tmpVal<<=8;
tmpVal|=TestRecData[i].RecNo[j];
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
} else {
if (tmpLen==1) {
tmpVal=TestRecData[i].RecNo[0];
} else {
for (j=0;j<tmpLen-1;j++) {
if (j%2==0) {
tmpVal=TestRecData[i].RecNo[j];
} else {
tmpVal<<=8;
tmpVal|=TestRecData[i].RecNo[j];
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
}
tmpVal<<=8;
tmpVal|=0;
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
tmpVal='@';
tmpVal<<=8;
tmpVal|='@';
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
tmpLen=U8len(TestRecData[i].RecData);
tmpVal=0;
if (tmpLen%2==0) {
for (j=0;j<tmpLen;j++) {
if (j%2==0) {
tmpVal=TestRecData[i].RecData[j];
} else {
tmpVal<<=8;
tmpVal|=TestRecData[i].RecData[j];
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
} else {
if (tmpLen==1) {
tmpVal=TestRecData[i].RecData[0];
} else {
for (j=0;j<tmpLen-1;j++) {
if (j%2==0) {
tmpVal=TestRecData[i].RecData[j];
} else {
tmpVal<<=8;
tmpVal|=TestRecData[i].RecData[j];
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
}
tmpVal<<=8;
tmpVal|=0;
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
}
}
if (DataFullFlag==0) {
for (j=0;j<6;j++) {
if (j%2==0) {
tmpVal=0x3F;
} else {
tmpVal<<=8;
tmpVal|=0x3F;
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
}
} else {
for (j=0;j<6;j++) {
if (j%2==0) {
tmpVal=0x3F;
} else {
tmpVal<<=8;
tmpVal|=0x3F;
ram_pwrite_word(RECDATAADDR+2*IncDataAddr, (U16)tmpVal);
IncDataAddr++;
}
}
}
return;
}
/******************************************************
**初始化数据函数,加载到内存结构中
******************************************************/
void InitData(void)
{
U32 IncDataAddr,i;
IncDataAddr=RECDATAADDR;
TestRecCount=0;
while (*(P_U8)IncDataAddr!=0xFF && *(P_U8)IncDataAddr!='?' && IncDataAddr < MAXRECDATAADDR) {
for (i=0;i<12;i++) {
TestRecData[TestRecCount].RecNo[i]=0;
TestRecData[TestRecCount].RecData[i]=0;
}
TestRecData[TestRecCount].DelFlag=0;
if (*(P_U8)IncDataAddr=='!' && *(P_U8)(IncDataAddr+1)=='!') {
IncDataAddr++;
IncDataAddr++;
i=0;
while (*(P_U8)IncDataAddr!='!' && *(P_U8)IncDataAddr!='@' && *(P_U8)IncDataAddr!='?' &&
*(P_U8)IncDataAddr!=0xFF && i<10) {
TestRecData[TestRecCount].RecNo[i]=*(P_U8)IncDataAddr;
IncDataAddr++;
i++;
}
}
if (*(P_U8)IncDataAddr=='@' && *(P_U8)(IncDataAddr+1)=='@') {
IncDataAddr++;
IncDataAddr++;
i=0;
while (*(P_U8)IncDataAddr!='!' && *(P_U8)IncDataAddr!='@' && *(P_U8)IncDataAddr!='?' &&
*(P_U8)IncDataAddr!=0xFF && i<10) {
TestRecData[TestRecCount].RecData[i]=*(P_U8)IncDataAddr;
IncDataAddr++;
i++;
}
TestRecCount++;
} else {
IncDataAddr++;
}
}
}
/******************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -