您的位置:首页 > 其它

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 */

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: