CASIO DT930程序编写(例子程序)
2008-06-29 14:31
232 查看
下面的例子是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程序编写(例子程序头文件)
- 使卡西欧(CASIO)DT930程序不会断电丢失的方法
- casio dt-930无线扫描器程序自己写![特别需要并一时之间没找到资料的入]
- Casio DT930扫描程序
- casio dt-930程序
- 编写控制面板程序的一个例子
- 编写android程序调用jni本地方法的实现(详细例子)
- 如何快速地编写和运行一个属于自己的MapReduce例子程序
- 编写基于DirectShow流媒体播放器程序可以值得参考的资料和源码例子
- 编写一个简单的jdbc例子程序
- 编写一个简单的jdbc例子程序_模版_CRUD_SQL注入
- 11.4.8 使用SOCK_PACKET编写ARP请求程序的例子
- ARM程序工程Makefile 讲解及通用版例子编写
- 使用SOCK_PACKET编写ARP请求程序的例子
- 利用安卓源码的例子程序编写调用JNI
- 用OpenSSL编写SSL,TLS程序(例子windows下的)
- Ubuntu14.04中eclipse下编写mapreduce例子程序WordCount
- CASIO DT900/dt930数据采集器设置安装使用操作
- CASIO dt900/dt930 手持数据采集终端解决方案
- CASIO DT930数据采集器