如何让mscomm接收从餐饮机上传来的信号,为什么我的计算机和餐饮机挂上后,总是得不到从餐饮机发过来的信号.当IC卡在上面划过后,怎么会没有信息呢??
硬件都是好的. 哪位大哥,过来帮帮忙.给一个IC卡的小例子.
硬件都是好的. 哪位大哥,过来帮帮忙.给一个IC卡的小例子.
解决方案 »
- 有什么办法可以解决这个问题?
- 用vb做的一个登陆器问题~~ 急!!!!
- 我写的语句!!关于ACCESS的连接! 请帮忙看一下.
- SQL中传参数问题,非常火急,在线等~
- 帮忙,MSHFlexGrid1 控件连数据库的问题
- 怎样读取注册表中指定项目的键值?(在线等待)
- vb打开时出错
- 像VB工具箱上的那个标题栏(蓝条),如果双击的话,它则会好像脱离VB环境似的,再双击的话,就又与VB环境连接在一起了,这种效果是怎么做
- 怎样判断一个picture[i]对象已被unload?
- 有关ado编程的问题,请各位高手指教
- 怎样在发送的HTML邮件中附带图片呢,图片不是作为附件,而是直接显示
- 请问如何建立一个真正的透明窗体?
发送代码:
Public Sub SendData()
Dim str As String
buffer2(0) = CByte((Val(s)) Mod 256)
str = Hex(buffer2(0))
MainForm.MSComm2.Output = buffer2
End Sub
接收代码:
我用下面的程序获得数据
Private Sub MSComm2_OnComm()
Dim str As String
Select Case MSComm2.CommEvent
Case comEvReceive
MSComm2.InputMode = comInputModeBinary
Dim i, j As Integer
j = MSComm2.InBufferCount
ReDim buffer(0 To j - 1)
buffer = MSComm2.Input
For i = 0 To j - 1
If startcommunication = 1 Then
buffertem(buffercount) = buffer(i)
buffercount = buffercount + 1
End If
Next i
End Select
End Sub
其中mscomm控件的inbuffersize设置为1,outbuffersize设置为1,RThreshold为1
有没有办法哟. 消费机(餐饮机)和电脑连在一起,用MSCOMM控件,在窗口中的文本显示一下接到消费机传来的信号,说明有数据给计算机,最基本的发送和接收功能.
1、 计算机要求收费机上传最近一次刷卡的卡号及扣款额:计算机向收费机发送 16 + 2 + 1 三个整数字节。此命令也用于发卡。
收费机返回
(a)无刷卡状态:16+11字节BBh+AAh(十六进制数)
(b)有效刷卡状态:16 + 5个字节的压缩BCD码卡号 + 6个字节的十进制码扣款额(每个字节大小为0- 9之间的数,前5个字节为整数,后1个字节为小数)+ CRC。所有数据高位均在前面,CRC是它前面11个字节的异或,CRC用于校验,实际应用中可忽略。
2、 下传余额: 格式:地址 + 5 + 2 + 3个字节的十进制码余额,整数在前。以16号机,卡中余额 853元为例,就是:计算机向串口发送:16、5、2、0、85、30 共六个整数字节。
3、 余额不 足: 格式:地址 + 2 + 3
4、 规定时间内的重复消费: 格式:地址 + 2 + 4
5、 非法卡(非本系统卡、挂失卡):格式:地址 + 2 + 56、 修改日期:格式:地址+5+6+3个字节的日期码。返回:地址+96。
7、 修改时间:格式:地址+5+7+3个字节的时间码。返回:地址+96。
8、 网络通讯测试: 格式:地址+02+08 返回:地址+96。
工作流程: A: 上位机 (PC),B: 下位机(收费终端,a为地址) 1. A 发送指令1(a+02+01) => B
2. B返回(a+BB+BB+BB+BB+BB+BB+BB+BB+BB+BB+AA) =>A (状态1,无刷卡)
B返回(a+5个字节的压缩BCD码卡号 + 6个字节的十进制码扣款额(每个字节大小为0- 9之间的数,前5个字节为整数,后1个字节为小数)+ CRC。) >=A (状态2,有效刷卡)
B返回(无) =>A (状态3无返回,机器未连接,超时)3. A接收后,在数据库中查询,处理后,分以下几种情况下发给B
A => B(见指令2,刷卡有效,下传余额)
A => B(见指令3,4,5,下传出错提示)
转下一地址(到指令1)这是它的协,有没有用哟,比如说要传个命给消费机就座如何写。是不是要用到什么进制的转化哟