论文部分内容阅读
摘 要:本文主要介绍了通过使用VisualFoxPro数据库,将数据通过USB口与打印机相连接,然后用通过程序实现各种数据的输出打印。解决了校内一些又vfox编写的软件无法打印的问题。
关键词:打印机;USB口;控制命令
一、系统硬件构成
其中打印机使用的是惠普(Hewlett-Packard Development Company, L.P)公司 1020plus黑白激光打印机,最大打印幅面为A4,打印分辨率600x600dpi。其处理器频率是234MHz,内存2MB,不支持有线网络打印,接口为普通A型USb接口。其自带ASCII字符集,以及2级汉字字库。可以打印普通纸,激光打印纸,相纸,投影胶片,信封,明信片,标签,卡片。
USB是目前最常见的异种PC接口,它只有4根线,其中分别是两根电源,两根信号,虽然我们每天都在使用USB接口,但是需要注意的是千万不要把正负极弄反了,否则会烧掉USB设备或者电脑的南桥芯片!其中ID脚在OTG功能中才使用。系统控制器会自行判断ID脚的电平判断是什么样的设备插入,如果是高电平,则是B接头插入,此时系统就做主模式(master mode)如果ID为低,则是A接口插入,然后系统就会使用HNP对话协议来决定哪个做Master,哪个做Slave。详细情况如图1.1所示。
二、VFOX软件设计
1.关于VisualFoxPro制作的系统与打印相关的命令有,进入与退出,执行与取消,字符间距和打印位置等。有如下几个常用命令:(1)进入打印命令二进制: F S & ; 1 6进制: 1 C26;退出打印命令二进制: F S & ; 1 6 进制: 1 C26;(2)执行打印命令:二进制:FS SO;16进制:1C OE取消打印命令二进制:FS DC4;16进制:(3)放大命令:1C 14命令是将字符横向放大,大小是原来的一倍,但是倍宽方式只能保持一行。2.在除了汉字打印外还要能输出字符,这款打印机正好还提供了字符集1。在字符集1中有6×8点阵字符224个,包括二进制字符还有一些图形及字符。(1)选择字符集1命令二进制:ESC 6;16进制:使用字符集1命令1B 36。(2)设置n点行间距命令二进制:ESC I n;16进制:1B 31 n,其中n为行与行之间的距离数据,n的值在0-255之间,一般情况下通过ESC/K命令打印点阵图形的话,设置n=0。本文中将n设置为4。
三、关于打印机命令在VisualFoxPro上的实现
1.关于计算机USB端口的控制命令主要用于打开计算机USB接口,首先这是USB差分信号的频率以及数据位,然后制作“开始打印”按钮的click事件并将信号放入其中。#define USB1 1 &&此段程序由于串口初始化部分
USB1=createobject("mscommlib.mscomm.1")&&创建Microsoft Communicationscontrol控件对像USB1.commport=USB1 &&指定USB 1口工作,也可以是其它端口。USB1.portopen=.t. &&打开USB 1口。USB1.settings="2400,n,8,1"&&设置传输速率,无奇偶校验,数据位8,停止位1
2.通过函数chr(X)打印机就可以接收来自软件发出的16进制的命令了。首先通过VisualFoxPro向打印机发出下列控制码chr(0x1c)+chr(0x26)让打印机进入汉字模式。再发出命令:chr(0x1b)+chr(0x36)导出字符集1;这时打印机就可以输出了。
3.打印图像的实现
我校目前使用的学生录取软件需要根据实际需要在录取通知书上打印考生姓名、考号、省市、照片等项目。在此选用Visual FoxPro来实现照片打印。首先要将学生照片保存到表文件的字段中,并转存为bmp格式。假设保存与d:\xs目录下。使用如下命令将考生照片批量保存到表文件“考生信息.dbf”的“zp”字段中。
USE d:\tzs\考生信息.dbf
Scan
If File("d:\xs\"+alltrim(ksh)+".bmp")
Append General zp From "d:\xs\"+alltrim(ksh)+".bmp"
Endif
Endscan
还可以通过一下代码将学生照片保存到字段中。并将照片的文件名批量改成dbf格式。
Scan
If File("d:\xs\"+alltrim(ksh)+".jpg")
Replace zpwjm with "d:\xs\"+alltrim(ksh)+".jpg"
Else
Replace zpwjm with "d:\xs\no.jpg"
Endif
Endscan
照片存放目录修改之后还需要修改表文件的地址。
4.程序实例分析
在目前我校所用的办公程序中,多用USB口/或LPT1口来进行数据的传输的,只有少数通过串口运行的软件。本例通过VisualFoxPro以及校内较为普遍的USB接口打印机实现了,将VFP中的教学数据与校内普遍的打印机输出的作用。实现了利用USB1串口让微型票据打印机实现打印输出数据表格的作用。
本例主要是通过使用VisualFoxPro自带的表单按钮功能,来针对数据表的操作,实现USB口打印的,其中的text属性直接和数据表相关联,所有按钮的click事件过程都有相对应的功能代码。而且由于是通过VFP所编程,有一定的移植性,可以对校内的使用VFP编辑的软件实现答应功能。
参考文献
[1] 杨书涛. USB接口技术与应用研究
[2] 宫会杰. 基于Wince6.0 USBTMC协议的研究与实现[J]. 科技视界. 2013(08)
作者简介:
白云鹏,男,辽宁工程职业学院,职称:助理教师。
关键词:打印机;USB口;控制命令
一、系统硬件构成
其中打印机使用的是惠普(Hewlett-Packard Development Company, L.P)公司 1020plus黑白激光打印机,最大打印幅面为A4,打印分辨率600x600dpi。其处理器频率是234MHz,内存2MB,不支持有线网络打印,接口为普通A型USb接口。其自带ASCII字符集,以及2级汉字字库。可以打印普通纸,激光打印纸,相纸,投影胶片,信封,明信片,标签,卡片。
USB是目前最常见的异种PC接口,它只有4根线,其中分别是两根电源,两根信号,虽然我们每天都在使用USB接口,但是需要注意的是千万不要把正负极弄反了,否则会烧掉USB设备或者电脑的南桥芯片!其中ID脚在OTG功能中才使用。系统控制器会自行判断ID脚的电平判断是什么样的设备插入,如果是高电平,则是B接头插入,此时系统就做主模式(master mode)如果ID为低,则是A接口插入,然后系统就会使用HNP对话协议来决定哪个做Master,哪个做Slave。详细情况如图1.1所示。
二、VFOX软件设计
1.关于VisualFoxPro制作的系统与打印相关的命令有,进入与退出,执行与取消,字符间距和打印位置等。有如下几个常用命令:(1)进入打印命令二进制: F S & ; 1 6进制: 1 C26;退出打印命令二进制: F S & ; 1 6 进制: 1 C26;(2)执行打印命令:二进制:FS SO;16进制:1C OE取消打印命令二进制:FS DC4;16进制:(3)放大命令:1C 14命令是将字符横向放大,大小是原来的一倍,但是倍宽方式只能保持一行。2.在除了汉字打印外还要能输出字符,这款打印机正好还提供了字符集1。在字符集1中有6×8点阵字符224个,包括二进制字符还有一些图形及字符。(1)选择字符集1命令二进制:ESC 6;16进制:使用字符集1命令1B 36。(2)设置n点行间距命令二进制:ESC I n;16进制:1B 31 n,其中n为行与行之间的距离数据,n的值在0-255之间,一般情况下通过ESC/K命令打印点阵图形的话,设置n=0。本文中将n设置为4。
三、关于打印机命令在VisualFoxPro上的实现
1.关于计算机USB端口的控制命令主要用于打开计算机USB接口,首先这是USB差分信号的频率以及数据位,然后制作“开始打印”按钮的click事件并将信号放入其中。#define USB1 1 &&此段程序由于串口初始化部分
USB1=createobject("mscommlib.mscomm.1")&&创建Microsoft Communicationscontrol控件对像USB1.commport=USB1 &&指定USB 1口工作,也可以是其它端口。USB1.portopen=.t. &&打开USB 1口。USB1.settings="2400,n,8,1"&&设置传输速率,无奇偶校验,数据位8,停止位1
2.通过函数chr(X)打印机就可以接收来自软件发出的16进制的命令了。首先通过VisualFoxPro向打印机发出下列控制码chr(0x1c)+chr(0x26)让打印机进入汉字模式。再发出命令:chr(0x1b)+chr(0x36)导出字符集1;这时打印机就可以输出了。
3.打印图像的实现
我校目前使用的学生录取软件需要根据实际需要在录取通知书上打印考生姓名、考号、省市、照片等项目。在此选用Visual FoxPro来实现照片打印。首先要将学生照片保存到表文件的字段中,并转存为bmp格式。假设保存与d:\xs目录下。使用如下命令将考生照片批量保存到表文件“考生信息.dbf”的“zp”字段中。
USE d:\tzs\考生信息.dbf
Scan
If File("d:\xs\"+alltrim(ksh)+".bmp")
Append General zp From "d:\xs\"+alltrim(ksh)+".bmp"
Endif
Endscan
还可以通过一下代码将学生照片保存到字段中。并将照片的文件名批量改成dbf格式。
Scan
If File("d:\xs\"+alltrim(ksh)+".jpg")
Replace zpwjm with "d:\xs\"+alltrim(ksh)+".jpg"
Else
Replace zpwjm with "d:\xs\no.jpg"
Endif
Endscan
照片存放目录修改之后还需要修改表文件的地址。
4.程序实例分析
在目前我校所用的办公程序中,多用USB口/或LPT1口来进行数据的传输的,只有少数通过串口运行的软件。本例通过VisualFoxPro以及校内较为普遍的USB接口打印机实现了,将VFP中的教学数据与校内普遍的打印机输出的作用。实现了利用USB1串口让微型票据打印机实现打印输出数据表格的作用。
本例主要是通过使用VisualFoxPro自带的表单按钮功能,来针对数据表的操作,实现USB口打印的,其中的text属性直接和数据表相关联,所有按钮的click事件过程都有相对应的功能代码。而且由于是通过VFP所编程,有一定的移植性,可以对校内的使用VFP编辑的软件实现答应功能。
参考文献
[1] 杨书涛. USB接口技术与应用研究
[2] 宫会杰. 基于Wince6.0 USBTMC协议的研究与实现[J]. 科技视界. 2013(08)
作者简介:
白云鹏,男,辽宁工程职业学院,职称:助理教师。