为什么Spcomm在有的磁条读写器里面不能触发onReceiveData事件(200分)

  • 主题发起人 主题发起人 vine
  • 开始时间 开始时间
V

vine

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个写磁卡的程序,用Spcomm控制对其通讯
我用FComm.WriteCommData()去写数据
然后在其FCommReceiveData()事件去接收返回的状态码看写数据是否成功

在某些磁条读写器是能成功的

可现在手中的一台常州三晶电子有限公司的磁条读写器SJE353B就是不成功

经查FComm.WriteCommData()已经往磁卡里面写进数据了
可就是不触发FCommReceiveData()事件,也就是说我不能判断是否操作成功

奇怪,为什么在有的读写器能成功,这个却不行,而Spcomm又有什么限制,导致ReceiveData()事件不会触发 ?

谢谢
 
如果不是设备本身不返回状态数据的的话,那么肯定是串口线的问题了,有的串口设备
在用3线,或者7线都可以工作但不会送出应答数据,你检查一下串口线主要是RTS/CTS
是不是有特殊的接法...
 
谢谢tseug
我只看见它的说明上有这么一段:
使用时将读写器的九芯孔电缆头连接到PC机或终端串口,如终端无+5V电源,接好键盘口取电电缆,便可进行正常操作

不知串口线是什么问题,你能讲清楚点吗??谢谢
 
我见过一个设备,它可以用3线或者标准7线来通信,但是不可靠,丢数据,必须要把设备端的
CTS和RTS短接才正常.很有意思的...
 
是在程序运行中来读取返回信息,还是在发送完了后等待返回信息,如果是前者要将系统中断,进行延时然后进行判断.我也不知道对你有没有帮助,还有就是参数要设置正确,我就是由于校验位错了,搞了一个星期才搞好.中断响应是: Application.ProcessMessages
希望对你有帮助。有什么困难大家可以讨论讨论。
 
TO,楼主,小弟刚刚写完一个磁卡的测试程序!

我在读数据是用spcomm,完全正确。但在写数据库不正常。

也许我们的问题是一样的。建议你换个控件测试一下。因为我换了一个,就OK了!
 
首先谢谢大家。

to tseug:
它没有什么线让你接的,都已经标准化了。

to hnxiong:
是在发送完了后等待返回信息时,得不到返回信息。

to doll_paul:
你后面换了什么控件?

奇怪,我这个程序是据353(B)写出来的,在这个版本的读写器上是成功的,
可在它的后续版本上即353(H)上是不可以。
 
to 楼主,小弟因DEMO程序出的比较急,所以没有细查,为什么spcomm,在我的程序不能正常写入。所以就暂时换了TurboPower Async Prof 4.06。

希望进一步联系。以共同解决问题!

另,我开始也不能写入数据,主要原因是写入数据的格式与说明书上不同。不知道老兄是否为这个问题?
 
谢谢各位
问题已解决,原来这款型号要求在发送数据后要再发一条状态回送命令才可以返回状态

真郁闷,以前的型号倒不用
 
to 楼主,能否把你写数据的部份代码COPY一下!

我想知道,为什么我的代码在spcomm下不能使用,谢谢!
 
后退
顶部