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

📄 s_integratemodel.c

📁 dragon ball vz328 上的一个例子程序。 用于做手持仪表用。
💻 C
📖 第 1 页 / 共 3 页
字号:
**查询相应记录编号是否存在
******************************************************/
U16 SearchRec(U8 SearchRecNo[12])
{
    U8     tmpLen,tmpDataLen,FoundRecFlag;
    U16    i,j,ReturnBackNo;
    TEXT   NowSearchingTxt[]={'正','在','查','找',',','请','稍','候','..','. ',0};

    ClearScreen(WHITE);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 120, (P_U8)NowSearchingTxt);
    tmpDataLen=U8len(SearchRecNo);
    if (TestRecCount==0) {
        ReturnBackNo=0xFFFF;
    }
    for (i=0;i<TestRecCount;i++) {
        FoundRecFlag=1;
        tmpLen=U8len(TestRecData[i].RecNo);
        if (tmpLen==tmpDataLen) {
            for (j=0;j<tmpLen;j++) {
                if (SearchRecNo[j]!=TestRecData[i].RecNo[j]) {
                    FoundRecFlag=0;
                    break;
                }
            }
        } else {
            FoundRecFlag=0;
        }
        if (FoundRecFlag==1) {
            ReturnBackNo=i;
            break;
        } else {
            ReturnBackNo=0xFFFF;
        }
    }
    return ReturnBackNo;

}
/******************************************************
**添加到内存记录中
******************************************************/
void AddRec(U8 AddRecNo[12],U8 AddRecData[12])
{
    U8 tmpLen,i;

    for (i=0;i<12;i++) {
        TestRecData[TestRecCount].RecNo[i]=0;
        TestRecData[TestRecCount].RecData[i]=0;
    }
    tmpLen=U8len(AddRecNo);
    for (i=0;i<tmpLen;i++) {
        TestRecData[TestRecCount].RecNo[i]=AddRecNo[i];
    }
    tmpLen=U8len(AddRecData);
    for (i=0;i<tmpLen;i++) {
        TestRecData[TestRecCount].RecData[i]=AddRecData[i];
    }
    if (TestRecCount<MAXRECCOUNT) {
        TestRecCount++;
    }
}
/******************************************************
**列表记录任务
******************************************************/
void LstRecApp(void)
{
    P_U16   inData;
    U32     size, id;
    S16     xSrc, ySrc, xDest, yDest;
    U16     PageNum,i;
    U32     UpPageId,NextPageId,DeleteRecId,ReturnBackId,RecItemId[MENUNUM];
    TEXT    ReturnBackTxt[]={'返','回',0};
    TEXT    UpPageTxt[]={'上','页',0};
    TEXT    NextPageTxt[]={'下','页',0};
    TEXT    RecNoTitleTxt[]={'编','号',0};
    TEXT    RecDataTitleTxt[]={'数','据',0};
    TEXT    RecStatusTxt[]={'状','态',0};
    TEXT    RecDeletedTxt[]={'删','除',0};
    TEXT    RecNormalTxt[]={'正','常',0};

    PageNum=0;
ReDisPlay:
    ClearScreen(WHITE);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 5, (P_U8)RecNoTitleTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 85, 5, (P_U8)RecDataTitleTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 200, 5, (P_U8)RecStatusTxt);
    for (i=0;i<(TestRecCount>=(PageNum+1)*10 ? MENUNUM:(TestRecCount-PageNum*10));i++) {
        Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 2, 30+i*25, (P_U8)TestRecData[i].RecNo); 
        Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 82, 30+i*25, (P_U8)TestRecData[i].RecData);
        if (TestRecData[i].DelFlag) {
            Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 200, 30+i*25, (P_U8)RecDeletedTxt);
        } else {
            Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 200, 30+i*25, (P_U8)RecNormalTxt);
        }
        if (ActiveAreaEnable((P_U32)&RecItemId[i],ICON_AREA,CONTINUOUS_MODE, i*25+25, 2, (i+1)*25+25, 237)!=PPSM_OK) rv=PPSM_ERROR;
    }
    if (TextButton(&UpPageId, GB_NORMAL_FONT,(P_TEXT)UpPageTxt, 2, 280, 78, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&NextPageId, GB_NORMAL_FONT,(P_TEXT)NextPageTxt, 82, 280, 78, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&ReturnBackId, GB_NORMAL_FONT,(P_TEXT)ReturnBackTxt, 162, 280, 78, 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==UpPageId) {
                    if (PageNum>0) {
                        for (i=0;i<MENUNUM;i++) {
                            ActiveAreaDisable(RecItemId[i]);
                        }
                        PageNum--;
                        goto ReDisPlay;
                    }
                    break;
                } else if (id==NextPageId) {
                    if ((PageNum+1)*10<TestRecCount){
                        for (i=0;i<MENUNUM;i++) {
                            ActiveAreaDisable(RecItemId[i]);
                        }
                        PageNum++;
                        goto ReDisPlay;
                    }
                    break;
                } else if (id==ReturnBackId) {
                    if (AdvMessageDelete(LstRecAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(IntegrateModelAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                } else {
                    for (i=0;i<MENUNUM;i++) {
                        if (id==RecItemId[i]) {
                            CurrRecPoint=PageNum*10+i;
                            if (AdvMessageDelete(LstRecAppID, IRPT_ICON, -1)
                                != PPSM_OK) rv = PPSM_ERROR;
                            if (AdvSendMessage(LstRecContentAppID, NULL, SWAP_TASK)
                                != PPSM_OK) rv= PPSM_ERROR;
                        }
                    }
                    break;
                }
            }
        default:
            break;
        }
    }
}

void LstRecContentApp(void)
{
    P_U16   inData;
    U32     size, id;
    S16     xSrc, ySrc, xDest, yDest;
    U32     ReturnBackId,DeleteRecId,TurnBackId;
    TEXT    ReturnBackTxt[]={'返','回',0};
    TEXT    TurnBackTxt[]={'还','原',0};
    TEXT    DeleteRecTxt[]={'删','除',0};
    TEXT    TitleHintTxt[]={'当','前','记','录','信','息',':',0};
    TEXT    RecNoTitleTxt[]={'编','号',':',0};
    TEXT    RecDataTitleTxt[]={'数','据',':',0};
    TEXT    RecStatusTxt[]={'状','态',':',0};
    TEXT    RecDeletedTxt[]={'删','除',0};
    TEXT    RecNormalTxt[]={'正','常',0};

ReStartFlag:
    ClearScreen(WHITE);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 5, 5, (P_U8)TitleHintTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 60, (P_U8)RecNoTitleTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 60, 60, (P_U8)TestRecData[CurrRecPoint].RecNo);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 120, (P_U8)RecDataTitleTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 60, 120, (P_U8)TestRecData[CurrRecPoint].RecData);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 20, 180, (P_U8)RecStatusTxt);
    if (TestRecData[CurrRecPoint].DelFlag) {
        Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 60, 180, (P_U8)RecDeletedTxt);
    } else {
        Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 60, 180, (P_U8)RecNormalTxt);
    }
    if (TextButton(&DeleteRecId, GB_NORMAL_FONT,(P_TEXT)DeleteRecTxt, 2, 280, 78, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&TurnBackId, GB_NORMAL_FONT,(P_TEXT)TurnBackTxt, 82, 280, 78, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&ReturnBackId, GB_NORMAL_FONT,(P_TEXT)ReturnBackTxt, 162, 280, 78, 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==DeleteRecId) {
                    /**
                    if (AdvMessageDelete(LstRecContentAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(DelRecAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                    **/
                    AppSwap(FALSE);
                    if (MessageDelete(-1)!= PPSM_OK) rv= PPSM_ERROR;
                    TestRecData[CurrRecPoint].DelFlag=1;
                    AppSwap(TRUE);
                    goto ReStartFlag;
                } else if (id==TurnBackId) {
                    AppSwap(FALSE);
                    if (MessageDelete(-1)!= PPSM_OK) rv= PPSM_ERROR;
                    TestRecData[CurrRecPoint].DelFlag=0;
                    AppSwap(TRUE);
                    goto ReStartFlag;
                } else if (id==ReturnBackId) {
                    if (AdvMessageDelete(LstRecContentAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(LstRecAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                }
            }
        default:
            break;
        }
    }
}
/****************************************************************
**
****************************************************************/
void SaveRecApp(void)
{
    P_U16   inData;
    U32     size, id;
    S16     xSrc, ySrc, xDest, yDest;
    U32     BtnOkId,BtnCancelId;
    TEXT    BtnOkTxt[]={'确','定',0};
    TEXT    BtnCancelTxt[]={'取','消',0};
    TEXT    LostHintTxt[]={'当','前','删','除','记','录','将','彻','底','删','除','!',0};
    TEXT    SaveHintTxt[]={'您','确','定','要','保','存','记','录','吗','?',0};
    TEXT    ReStartHintTxt[]={'系','统','将','重','新','启','动','来','加','载','信','息',0};

    ClearScreen(WHITE);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 10, 80, (P_U8)SaveHintTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 10, 120, (P_U8)LostHintTxt);
    Typing(GB_NORMAL_FONT, REPLACE_STYLE, BLACK, 10, 160, (P_U8)ReStartHintTxt);
    if (TextButton(&BtnOkId, GB_NORMAL_FONT,(P_TEXT)BtnOkTxt, 20, 200, 90, 35, 1)
        != PPSM_OK) rv=PPSM_ERROR;
    if (TextButton(&BtnCancelId, GB_NORMAL_FONT,(P_TEXT)BtnCancelTxt, 130, 200, 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;
                    SaveData();
                    AppSwap(TRUE);
                    /**
                    if (AdvMessageDelete(SaveRecAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(IntegrateModelAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    **/
                    asm("    JSR START");
                    break;
                } else if (id==BtnCancelId) {
                    if (AdvMessageDelete(SaveRecAppID, IRPT_ICON, -1)
                        != PPSM_OK) rv = PPSM_ERROR;
                    if (AdvSendMessage(IntegrateModelAppID, NULL, SWAP_TASK)
                        != PPSM_OK) rv= PPSM_ERROR;
                    break;
                }
            }
        default:
            break;
        }
    }
}

⌨️ 快捷键说明

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