⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s_integratemodel.c

📁 dragon ball vz328 上的一个例子程序。 用于做手持仪表用。
💻 C
📖 第 1 页 / 共 3 页
字号:

#ifndef VZ328
#define VZ328
#endif
#include <stdlib.h>         
#include <stdio.h>          
#include <M68328.h>
#include <ppsm.h>
#include <errors.h>
#include <proto.h>
#include "sample.h"
#include "main.h"
#include "tools.h"
#include "Sunray.h"

/*******************************************************
**记录添加、删除、存储演示程序主界面任务
*******************************************************/
void IntegrateModelApp(void)
{
    P_U16   inData;
    U32     size, id;
    S16     xSrc, ySrc, xDest, yDest;
    U32     AddRecId,LstRecId,QryRecId,SaveRecId,ReturnBackId;
    TEXT    AddRecTxt[]={'添','加','记','录',0};
    TEXT    QryRecTxt[]={'查','询','记','录',0};
    TEXT    LstRecTxt[]={'显','示','记','录',0};
    TEXT    SaveRecTxt[]={'保','存','记','录',0};
    TEXT    ReturnBackTxt[]={'返','回',0};

ReStartFlag:
    ClearScreen(WHITE);
    if (TextButton(&AddRecId, GB_NORMAL_FONT,(P_TEXT)AddRecTxt, 30, 30, 180, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&QryRecId, GB_NORMAL_FONT,(P_TEXT)QryRecTxt, 30, 70, 180, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&LstRecId, GB_NORMAL_FONT,(P_TEXT)LstRecTxt, 30, 110, 180, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&SaveRecId, GB_NORMAL_FONT,(P_TEXT)SaveRecTxt, 30, 150, 180, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&ReturnBackId, GB_NORMAL_FONT,(P_TEXT)ReturnBackTxt, 30, 280, 180, 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==AddRecId) {
                    if (AdvMessageDelete(IntegrateModelAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(AddRecAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                } else if (id==LstRecId) {
                    if (AdvMessageDelete(IntegrateModelAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(LstRecAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                } else if (id==QryRecId) {
                    if (AdvMessageDelete(IntegrateModelAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(QryRecAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                } else if (id==SaveRecId) {
                    if (AdvMessageDelete(IntegrateModelAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(SaveRecAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                } else if (id==ReturnBackId) {
                    if (AdvMessageDelete(IntegrateModelAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(MenuTaskAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                }
            }
        default:
            break;
        }
    }
}
/********************************************************
**添加记录任务
********************************************************/
void AddRecApp(void)
{
    P_U16   inData;
    U32     size, id;
    S16     xSrc, ySrc, xDest, yDest;
    U16     gCursorXPos1,gCursorXPos2;
    U16     gCursorYPos1,gCursorYPos2;
    U8      KeyVal,StarNum1,StarNum2,ButtonFlag,InputErrorFlag;
    U32     ButtonOkId, ButtonCancelId,InputRecNoId,InputRecDataId;
    U8      InputRecNo[12],InputRecData[12],i;
    TEXT    ButtonOkTxt[]={'确','定',0};
    TEXT    ButtonCancelTxt[]={'取','消',0};
    TEXT    InputRecNoTxt[]={'编','号',':',0};
    TEXT    InputRecDataTxt[]={'数','据',':',0};
    TEXT    InputHintTxt[]={'请','输','入','数','据',':',0};
    TEXT    InputErrorTxt[]={'输','入','错','误',',','请','重','新','输','入','!',0};
    TEXT    BlankTxt[]={'  ',0};

    ClearScreen(WHITE);
    for (i=0;i<12;i++) {
        InputRecNo[i]=0;
        InputRecData[i]=0;
    }
    KeyVal=0;
    StarNum1=0;
    StarNum2=0;
    InputErrorFlag=0;
    ButtonFlag=1;
    gCursorXPos1=38;
    gCursorYPos1=150;
    gCursorXPos2=68;
    gCursorYPos2=150;
    CursorInit(16,8);
    CursorSetStatus(PPSM_CURSOR_REVERSED);
    CursorSetBlink(5);
ReStartFlag:
    ClearScreen(WHITE);
    if (InputErrorFlag==0) {
        Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 5, (P_U8)InputHintTxt);
    } else {
        Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 5, (P_U8)InputErrorTxt);
    }
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 35, (P_U8)InputRecNoTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 65, (P_U8)InputRecDataTxt);
    if (TextButton(&InputRecNoId, GB_NORMAL_FONT,(P_TEXT)BlankTxt, 80, 35, 90, 20, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&InputRecDataId, GB_NORMAL_FONT,(P_TEXT)BlankTxt, 80, 65, 90, 20, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    ClearRec(WHITE,36,71,18,88,REPLACE_STYLE);
    ClearRec(WHITE,66,71,18,88,REPLACE_STYLE);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 82, 38, (P_U8)InputRecNo);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 82, 68, (P_U8)InputRecData);
    //DrawRec(BLACK, 35,80,55,170,0,REPLACE_STYLE);
    if (ButtonFlag==1) {
        CursorSetPos(gCursorXPos1,gCursorYPos1);
    }else{
        CursorSetPos(gCursorXPos2,gCursorYPos2);
    }
    //创建数字软键盘
    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 (StarNum1==0 || StarNum2==0) {
                        InputErrorFlag=1;
                        goto ReStartFlag;
                    } else {
                        CursorOff();
                        AppSwap(FALSE);
                        if (MessageDelete(-1)!= PPSM_OK) rv= PPSM_ERROR;
                        AddRec(InputRecNo,InputRecData);
                        AppSwap(TRUE);
                        if (AdvMessageDelete(AddRecAppID, IRPT_ICON, -1)
                            != PPSM_OK) rv = PPSM_ERROR;
                        if (AdvSendMessage(IntegrateModelAppID, NULL, SWAP_TASK)
                            != PPSM_OK) rv= PPSM_ERROR;
                    }
                    break;
                } else if (id==ButtonCancelId) {
                    CursorOff();
                    if (AdvMessageDelete(AddRecAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(IntegrateModelAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                } else if (id==InputRecNoId) {
                    ButtonFlag=1;
                    CursorSetPos(gCursorXPos1,gCursorYPos1);
                    break;
                } else if (id==InputRecDataId) {
                    ButtonFlag=2;
                    CursorSetPos(gCursorXPos2,gCursorYPos2);
                    break;
                } else {
                    if (ButtonFlag==1) {
                        KeyVal=GetKeyChar_Letter(id);
                        if (KeyVal!=0) {
                            if (KeyVal==11) {
                                if (StarNum1>0) {
                                    ClearRec(WHITE,36,71,18,88,REPLACE_STYLE);
                                    StarNum1--;
                                    InputRecNo[StarNum1]=0;
                                    gCursorYPos1=gCursorYPos1+8;
                                    CursorSetPos(gCursorXPos1,gCursorYPos1); 
                                    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 82, 38, (P_U8)InputRecNo);
                                }
                            } else {
                                if (StarNum1<10) {
                                    InputRecNo[StarNum1]=KeyVal;
                                    StarNum1++;
                                    ClearRec(WHITE,36,71,18,88,REPLACE_STYLE);
                                    gCursorYPos1=gCursorYPos1-8;
                                    CursorSetPos(gCursorXPos1,gCursorYPos1);
                                    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 82, 38, (P_U8)InputRecNo);
                                }
                            }
                        }
                        break;
                    } else if (ButtonFlag==2) {
                        KeyVal=GetKeyChar_Letter(id);
                        if (KeyVal!=0) {
                            if (KeyVal==11) {
                                if (StarNum2>0) {
                                    ClearRec(WHITE,66,71,18,88,REPLACE_STYLE);
                                    StarNum2--;
                                    InputRecData[StarNum2]=0;
                                    gCursorYPos2=gCursorYPos2+8;
                                    CursorSetPos(gCursorXPos2,gCursorYPos2); 
                                    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 82, 68, (P_U8)InputRecData);
                                }
                            } else {
                                if (StarNum2<10) {
                                    InputRecData[StarNum2]=KeyVal;
                                    StarNum2++;
                                    ClearRec(WHITE,66,71,18,88,REPLACE_STYLE);
                                    gCursorYPos2=gCursorYPos2-8;
                                    CursorSetPos(gCursorXPos2,gCursorYPos2);
                                    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 82, 68, (P_U8)InputRecData);
                                }
                            }
                        }
                        break;
                    }
                }
            }
        default:
            break;
        }
    }
}
/*******************************************************
**删除记录任务
*******************************************************/
void DelRecApp(void)
{
    P_U16   inData;
    U32     size, id;
    S16     xSrc, ySrc, xDest, yDest;
    U32     BtnOkId,BtnCancelId;
    TEXT    BtnOkTxt[]={'确','定',0};
    TEXT    BtnCancelTxt[]={'取','消',0};
    TEXT    DelHintTxt[]={'您','确','定','要','删','除','此','记','录','吗','?',0};

    ClearScreen(WHITE);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 10, 100, (P_U8)DelHintTxt);
    if (TextButton(&BtnOkId, GB_NORMAL_FONT,(P_TEXT)BtnOkTxt, 20, 150, 90, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&BtnCancelId, GB_NORMAL_FONT,(P_TEXT)BtnCancelTxt, 130, 150, 90, 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==BtnOkId) {
                    AppSwap(FALSE);
                    if (MessageDelete(-1)!= PPSM_OK) rv= PPSM_ERROR;
                    TestRecData[CurrRecPoint].DelFlag=1;
                    AppSwap(TRUE);
                    if (AdvMessageDelete(DelRecAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(LstRecContentAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -