casio dt-930无线扫描器程序自己写![特别需要并一时之间没找到资料的入]
2011-11-08 08:34
267 查看
因本人工作是一个打杂性质的电脑维护职位,近段来要全公司的电脑盘点,要把所有序列号抄下来,上面一句话,下面做死人。虽然先用电脑的同事先抄下来,但是很多是不正确的。又因其它部门有这个dt930的无线扫描枪。同事从他们那里借过来,网上百度下,还是有些这方面的资料的 。
http://download.csdn.net/detail/zjhiphop2006/1738454 这里下载编译器,并且里面已有可以运行的源码。
上传程序操作,按 s + . + pw 键会出一个英文菜单,选择 传输,再选 程序安装,再选择 A驱动器。然后在930带的程序里按执行即可上传上去。 不过之前要设置上传程序的目录。
我改的代码如下,合适自己的扫描[其实就是控制台程序] [改自上面。感谢上面这位兄弟放出源码同编译器]
http://download.csdn.net/detail/zjhiphop2006/1738454 这里下载编译器,并且里面已有可以运行的源码。
上传程序操作,按 s + . + pw 键会出一个英文菜单,选择 传输,再选 程序安装,再选择 A驱动器。然后在930带的程序里按执行即可上传上去。 不过之前要设置上传程序的目录。
我改的代码如下,合适自己的扫描[其实就是控制台程序] [改自上面。感谢上面这位兄弟放出源码同编译器]
#include <stdio.h> #include <string.h> #include <math.h> #include "itron.h" #include "cmndef.h" #include "bios1mac.h" void Wait2(UW); void MainMenu(void); void FNC_Init( void ); /* 1996.11.12 casio */ int getkey(void); void Work(void); void clear(void); unsigned char oper[7]; extern UB oper[7]; void ap_start( void ) { Wait2( 5L ); s_sound( 2250, 5 ); Wait2( 5L ); s_sound( 2250, 5 ); FNC_Init(); lcd_cls(); /* screen clear 1996.11.26.casio */ obr_change( 0 ); /* obr_change( OBR_ALL ) */ while(1) { MainMenu(); } exit( 0 ); /* application end */ } void MainMenu(void) { unsigned char msg[][22]={"欢迎使用资产采集系统", "", "by onepc 153785587", "", "1.采集 2.上传 3.删除"}; short x,y,cnt,code; int i; H fhnd; while (1) { key_clear(); lcd_cls(); for( x=0,y=1,cnt=0; cnt<5; y+=3,cnt++ ) { { lcd_csr_put( y, x ); cputstr(LCD_ATTR_NORMAL,msg[cnt]); } } /**/ code=getkey(); if(code==0x0c) break; if(code >= '1' && code <= '3') code -= 0x30; switch(code) { case 1: Work(); break; case 2: if(( fhnd = open("data.txt", O_RDWR ))== E_LOWERR ) { lcd_cls(); lcd_csr_put( 1, 0 ); cputstr(LCD_ATTR_NORMAL,"无采集数据! "); getkey(); break; } close(fhnd); lcd_cls(); lcd_csr_put( 1, 0 ); cputstr(LCD_ATTR_NORMAL,"将采集器放在通讯座上"); lcd_csr_put( 5, 5 ); cputstr(LCD_ATTR_NORMAL,"按任意键..."); getkey(); sendfile(); /*lcd_cls(); lcd_csr_put( 5, 5 ); cputstr(LCD_ATTR_NORMAL,"按任意键删除文件"); getkey(); clear();*/ break; case 3: lcd_cls(); /*cputstr(LCD_ATTR_NORMAL,"删除[ENT] 取消[CLR]");*/ clear(); break; } } } /****************************************************************************** ** Routine name: FNC_Initialize ** ** Detail : function key initialize set (return default) ** ** Parameter : None ** ** Return value: None ** ** Author : casio ** ******************************************************************************/ void FNC_Init( void ) { KEYFORM kcode; kcode.attr = 0x0; kcode.code = 0x2d; key_fnc( FNC_SET, FNC_1, &kcode); kcode.attr = 0x0; kcode.code = 0x1d; key_fnc( FNC_SET, FNC_2, &kcode); kcode.attr = 0x0; kcode.code = 0x1c; key_fnc( FNC_SET, FNC_3, &kcode); kcode.attr = 0x0; kcode.code = 0x10; key_fnc( FNC_SET, FNC_4, &kcode); kcode.attr = 0x0; kcode.code = 0x20; key_fnc( FNC_SET, FNC_5, &kcode); kcode.attr = 0xff; kcode.code = 0x0; key_fnc( FNC_SET, FNC_6, &kcode); kcode.attr = 0xff; kcode.code = 0x1; key_fnc( FNC_SET, FNC_7, &kcode); kcode.attr = 0xff; kcode.code = 0x02; key_fnc( FNC_SET, FNC_8, &kcode); } /****************************************************************************** ** Routine name: Wait2 ** ** Detail : specified second wait routine 2 (31.25ms) ** ** Parameter : tmcnt : timer count ** ** Return value: none ** ** Author : Fuji Software Inc. ** ******************************************************************************/ void Wait2( UW tmcnt ) { ER ercd; UW p_flg; ercd = s_settimer2( FL_TM2_INT_ID, FL_TM2_INT_ITU0, tmcnt ); wai_flg( &p_flg, FL_TM2_INT_ID, FL_TM2_INT_ITU0, TWF_ANDW | TWF_CLR ); s_timerend2( ercd ); } int getkey(void) { KEY_INP kinp; int code; kinp.ext = KEY_OBR_EXT; kinp.echo = ECHO_OFF; kinp.font_size = LCD_ANK_LIGHT; kinp.type = LCD_ATTR_NORMAL; kinp.column_pos =0; kinp.line_pos = 2; code=key_read(&kinp); return (code); } void Work(void) { H fmode,fhnd; ER ret; char dnname[10],dnbar[32],disbar[32],cr[3],allbind[100],splitdh[2],dissize[3]; /*filename[11],*/ int i,j; /*W fp;*/ cr[0]=0x0d; cr[1]=0x0a; cr[2]=0x0; splitdh[0]=0x2c; splitdh[1]=0x0; /*memset(filename,0x0,11);*/ /*memcpy(filename,"data.txt",10);*/ while(1) { lcd_cls(); lcd_csr_put( 3, 0 ); cputstr(LCD_ATTR_NORMAL,"请扫描员工号六位:"); memset(oper,0x0,7); i=read_str(0,5,0,oper,7); if(i==1) continue; if(i==E_KEY_CLR) return; if((strlen(oper)==0)||(strlen(oper)>6)) continue; if(strlen(oper)<6) { for(i=strlen(oper);i<6;i++) { oper[i]=0x20; } } /**/ while(1) { lcd_cls(); lcd_csr_put( 3, 0 ); cputstr(LCD_ATTR_NORMAL,"请扫描电脑名称:"); /*lcd_csr_put( 6, 0 ); cputstr(LCD_ATTR_NORMAL,"扫描或者输入:");*/ memset(dnname,0x0,10); i=read_str(0,5,0,dnname,10); if(i==1) continue; if(i==E_KEY_CLR) return; if((strlen(dnname)==0)||(strlen(dnname)>9)) continue; break; /*若是输入正常则跳出这个循环*/ } /**/ while(1) { lcd_cls(); lcd_csr_put( 3, 0 ); memset(dnbar,0x0,32); cputstr(LCD_ATTR_NORMAL,"请扫描主机条码:"); i=read_str(0,5,0,dnbar,32); if(i==1) continue; if (strlen(dnbar)==0) { continue; } if (strlen(dnbar)>30) { continue; } break; /*扫描成功则跳出循环*/ } /**/ while(1) { lcd_cls(); lcd_csr_put( 3, 0 ); cputstr(LCD_ATTR_NORMAL,"请输入显示器大小:"); memset(dissize,0x0,3); i=read_str(0,5,2,dissize,3); if(i==1) continue; if(i==E_KEY_CLR) return; if((strlen(dissize)==0)||(strlen(dissize)>2)) continue; break; /*若是输入正常则跳出这个循环*/ } while(1) { lcd_cls(); lcd_csr_put( 3, 0 ); memset(disbar,0x0,32); cputstr(LCD_ATTR_NORMAL,"请扫描显示器条码:"); i=read_str(0,5,0,disbar,32); if(i==1) continue; if (strlen(disbar)==0) { continue; } if (strlen(disbar)>30) { continue; } break; /*扫描成功则跳出循环*/ } /**/ lcd_csr_put( 7, 0 ); cputstr(LCD_ATTR_NORMAL,"保存[ENT] 放弃[CLR]"); j=getkey(); if(j==0x0d) /*OK*/ { memset(allbind,0x0,100); memcpy(allbind,oper,6); strcat(allbind,splitdh); strcat(allbind,dnname); strcat(allbind,splitdh); strcat(allbind,dnbar); strcat(allbind,splitdh); strcat(allbind,dissize); strcat(allbind,splitdh); strcat(allbind,disbar); if((fhnd=open("data.txt",O_CREAT | O_RDWR | O_APPEND ))==E_LOWERR) { lcd_cls(); lcd_csr_put( 1, 0 ); cputstr(LCD_ATTR_NORMAL,"文件打开错误!"); getkey(); lcd_cls(); return; } lseek(fhnd,0L,2); write(fhnd,allbind,99); write(fhnd,cr,2); Wait2( 5L ); close(fhnd); break; } /* if(j==E_KEY_CLR) { break; }else { continue; }*/ /**/ } } void clear(void) { int k; lcd_csr_put( 7,0); cputstr(LCD_ATTR_NORMAL,"删除[ENT] 取消[CLR]"); k=getkey(); if(k==0x0d) { /*memset(oper,0x0,7);*/ dat_fdel("data.txt"); dat_fdel("galan.txt"); } return; } /* void Submenu(short attr) { short code; while(1) { lcd_cls(); Scan(attr); break; } } void Scan(short attr) { H fmode,fhnd; ER ret; char dnname[10],dnbar[32],disbar[32],cr[3],filename[11]; int num,i,j; W fp; cr[0]=0x0d; cr[1]=0x0a; cr[2]=0x0; memset(filename,0x0,11); memset(filename,"galanz.txt",10); input computer name while(1) { lcd_cls(); lcd_csr_put( 3, 0 ); cputstr(LCD_ATTR_NORMAL,"请输电脑名称(不能超过9位):"); memset(dnname,0x0,10);); i=read_str(0,5,2,dnname,10); if(i==E_KEY_CLR) break; if((strlen(dnname)==0)||(strlen(dnname)>9)) continue; } } */
相关文章推荐
- 使卡西欧(CASIO)DT930程序不会断电丢失的方法
- casio dt-930程序
- Casio DT930扫描程序
- CASIO DT930程序编写(例子程序)
- CASIO DT930程序编写(例子程序头文件)
- 如何快速的找到自己需要的资料
- 突然想要做个新闻内容的分页,网上查了下资料,找到了一个可以用的类(代码需要自己研究下,我已经试验成功了)
- CASIO DT930数据采集器
- 错误“ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄”解决方法
- Vue.js特别需要注意的细节(仅对自己参考)
- 自己写的在服务器上一段重试次数的程序,对于TAIR操作需要加乐观锁版本号防止集群上数据安全
- 支付宝小程序你什么时候需要自己开发?4大维度详细分析支付宝,微信小程序区别
- 自己编写脚本启动hadoop各个守护进程需要的特别配置
- 在卡西欧(CASIO)DT930上显示中文的方法
- C#之使用NotifyIcon实现任务栏托盘菜单,图标闪烁效果及气泡提示 很多程序是只需要后台运行的,甚至不需要自己的应用界面。NotifyIcon提供了程序在任务栏的显示功能 程序下载链接如下
- 错误“ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄”解决方法
- java-面向对象之继承(感言:经过第一天和Java中类的继承和接口的实现的接触,自己需要学习的还很多,还要从基础抓起,尽管有点迷糊,但学到很多很喜欢这种时光!加油!)下面是查到的相关资料以备查看。
- 08-R包那么多,怎么才能快速找到自己需要的包呢?
- 一份旨在帮助 Android 初学者快速入门以及找到适合自己学习的资料
- 近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘: