CASIO DT930程序编写(C语言开发)

下面的例子是DT930最简单的程序界面,其他的程序在此基础上编程即可。其调用的文件因为比较多,所以未能上传,希望能对从事此PDA开发的人有所帮助。

/***********************************************************************************/
/* USB口程序                                                                       */ 
/***********************************************************************************/ 
#include "mainfun.h" 
#define     SAVEFILE        "stockwj.txt"   /* 文件名 */ 
#define     SCANCODE        15      /* 条码长度 */ 
#define     COUNT       5            /* 数量长度 */   
#define     VERSION     "Version 1.0" 
void MainMenu(void);/* 程序的主菜单 */ 
void Menu_A(void);  
void Menu_B(void);  
void Menu_C(void);  
void Menu_D(void);  
/****************************************************************************** 
**     程序名称    : ap_start                                                  ** 
**     描述        : 程序开始处                                                          ** 
**     参数        : 无                                                                  ** 
**     返回值      : 无                                                                 ** 
******************************************************************************/ 
void ap_start(void)  
{  
    lcd_cls();/* SysFunction screen clear 1996.11.26.casio */ 
    SetFont();  
    FNC_Init();  
    obr_change(0);  
    while (1)  
    {  
        MainMenu();  
        break;  
    }  
}  
void MainMenu(void)  
{  
    int KEY;  
    int Flag = 1;  
    while (1)  
    {  
        if (Flag == 1)  
        {  
            lcd_cls();  
            display("     测试程序", 0, 1); 
            display("    1-条码扫描", 0, 3);  
            display("    2-数据上传", 0, 5);  
            display("    3-数据下载", 0, 7); 
            display("    4-数据删除", 0, 9);  
            Flag = 0;  
        }  
        KEY = getkey();  
        switch (KEY)  
        {  
            case '1':  
                Menu_A(); 
                Flag = 1;  
                break;  
            case '2':  
                Menu_B();  
                Flag = 1;  
                break;  
            case '3':  
                Menu_C();  
                Flag = 1;  
                break;  
            case '4':   
                Menu_D();  
                Flag = 1;  
                break;  
            case CLR_KEY: 
                return;  
        }  
    }  
}  
   
void Menu_A(void)  
{  
    ER ret;  
    W lno;  
    ER OpenStock;  
    char sSumQty[6], sScanArray[20];  
    char sSaveQty[6], sInputQty[6], sTempData[30];  
    int iBegin, iFindLong, i, j;  
    int iIsAdd;  
    /* 将stock.txt文件打开 */ 
    if ((OpenStock = open(SAVEFILE, O_CREAT | O_RDWR | O_APPEND)) == E_LOWERR)  
    {  
        lcd_cls();  
        display(SAVEFILE, 0, 1);  
        display("无法打开或不存在!", 0, 3);  
        getkey();  
        return; /* No Files */ 
    }  
    /* 开始入库 */ 
    while(1)  
    {  
        lcd_cls();  
        memset(sScanArray, 0x0, sizeof(sScanArray));  
        display("条码:", 0, 1);  
        ret = getstring(5, 1, 0, SCANCODE, sScanArray);  
        if (ret==E_KEY_CLR)  
            break;  
        if (strlen(sScanArray)==0)  
            continue; 
        display(sScanArray, 5, 1);  
        iBegin = 0;  
        iFindLong = SCANCODE;   /* 条码长度 */ 
        if (strlen(sScanArray) < sizeof(sScanArray))  
            AddSpace(sScanArray, sizeof(sScanArray));  
        memset(sTempData, 0x0, sizeof(sTempData));  
        memset(sSaveQty, 0x0, sizeof(sSaveQty));  
        /* 文本数量+回车换行 */ 
        ret = dat_F_Search(SAVEFILE,0L,SCANCODE+COUNT+2,iBegin,iFindLong,sScanArray,sTempData,&lno);  
        if(ret == E_OK)  
        {  
            lseek(OpenStock, lno, 0);  
            for(i=0,j=SCANCODE; i<COUNT; i++,j++)  
                sSaveQty[i] = sTempData[j];  
            sSaveQty[i] = 0x0;  
        }  
        else  
        {  
            lseek(OpenStock, 0L, 2);  
             sSaveQty[0]='0';  
        }  
        display("已扫数量:", 0, 7);  
        display(sSaveQty, 9, 7);  
        display("本次数量:", 0, 9);  
        memset(sInputQty, 0x0, 6);  
        strcpy(sInputQty, "1");  
        ret = GetInt(9, 9, COUNT, sInputQty, 1, &iIsAdd);  
        if (ret==CLR_KEY)  
            continue;  
        memset(sSumQty, 0x0, sizeof(sSumQty));  
        if (iIsAdd==1)  
        {  
            sprintf(sSumQty, "%d", atoi(sInputQty)+atoi(sSaveQty));  
        }  
        else  
        {  
            sprintf(sSumQty, "%d", atoi(sSaveQty)-atoi(sInputQty));  
        }  
        if (strlen(sSumQty) < sizeof(sSumQty))  
            AddSpace(sSumQty, sizeof(sSumQty));  
        write(OpenStock, sScanArray,    SCANCODE);  
        write(OpenStock, sSumQty,       COUNT);  
        write(OpenStock, ENTERNEWLINE,  2); /* 回车换行 */ 
    }   /* end while */ 
        /* 入库结束 */ 
    close(OpenStock);   
}  
 
void Menu_B(void)   
{  
    int ret;  
    lcd_cls();  
    display("打开通讯口...", 0, 1);  
        lcd_cls();  
        display("     发送文件...", 0, 3);  
        /*ret = SendFile("a:\\pass    .txt", "c:\\dt900\\down\\");*/ 
        ret = SendFile("a:\\stockwj.txt", "c:\\dt900\\down\\");  
        lcd_cls();  
        switch (ret)  
        {  
            case 0: 
                display("    文件发送成功!", 0, 3);  
                break;  
            case FILE_SEND_ERR:  
                display("    文件发送错误!", 0, 3);  
                break;  
        }  
}  
void Menu_C(void)    
{  
    int ret;  
    lcd_cls();  
    display("打开通讯口...", 0, 1);  
        lcd_cls();  
        display("     接收文件...", 0, 3);  
        ret = RecvFile("c:\\dt900\\up\\product.txt", "a:\\");  
        /*ret = RecvFile("c:\\dt900\\up\\stockwj.txt", "a:\\");*/ 
        lcd_cls();  
        switch (ret)  
        {  
            case 0: 
                display("    文件接收成功!", 0, 3);  
                break;  
            case FILE_REC_ERR:  
                display("    文件接收错误!", 0, 3);  
                break;  
        }  
    display("    关闭通讯口...", 0, 7);   
}  
void Menu_D(void)  
{  
    char password[10];  
    ER ret;  
    while (1)  
    {  
        lcd_cls();  
        memset(password, 0x0, sizeof(password));  
        display("密码:", 0, 1);  
        display(VERSION, 0, 9);  
        ret = getstring(5, 1, 0, 6, password);  
        if (ret==E_KEY_CLR)  
            break;  
        if (strlen(password)==0)  
            continue;  
        ret = CheckPassword(password);  
        switch(ret)  
        {  
            case 0: 
                display("    是否需要删除", 0, 3);  
                display("1.确定         9.取消", 0, 9);  
                do  
                {  
                    ret = getkey();  
                    switch (ret)  
                    {  
                         case '1':  
                            dat_fdel(SAVEFILE);  
                            lcd_cls();  
                            display("    清 除 完 成 !", 0, 5);  
                            display("    按任意键继续", 0, 7);  
                            return;  
                        case '9':  
                            return;  
                    }  
                }while(ret);  
            case E_NOOPEN:  
                lcd_cls();  
                display(PASSFILE, 0, 1);  
                display("  无法打开或不存在!", 0, 3);  
                display("    按任意键继续", 0, 7);  
                getkey();  
                break;  
            case E_PWERR:  
                lcd_cls();  
                display("      密码错误!", 0, 5);  
                display("    按任意键继续", 0, 7);  
                getkey();  
                break;  
        }  
    }   /* end while */ 

=============================

关键字:casio dt930 程序开发 编译环境 开发资料 开发工具 编译器

posted @ 2008-11-17 20:03  宁静以致远  阅读(1997)  评论(0编辑  收藏  举报