299分求购串行通讯源代码(要求如下)(299分)

  • 主题发起人 主题发起人 lp414
  • 开始时间 开始时间
何必writetext,writebuf(b, 11)最简单
即使writetext也应该s:=s+chr(b);
 
to iie:writebuf(b,11)也没用。我试过。因为和例子不同,所以没说
 
to iie:现在可以了。用ASYNC32能通讯拉。但是如何对多设备查询,以及如何清空缓冲区。

发送了几个,就会触发onTxEmpty事件。好象是缓冲满了。如何清。
 
To iie:
Async32控件For D5如果有源码,给我一份好吗?
 
天哪,不是要我帮你一步一步做项目吧[:(!]
对多设备查询是什么意思:多串口访问还是单串口交替?
清空缓冲是purgeread/purgewrite
触发ontxempty是表明writebuf/writetext的数据已经完全发送出去了
(这两个方法是异步执行的)并不是你所说的发送缓冲满

toqdshen:async32据我所知公开源码直到D3为止,以后就需要注册得到了
每个许可是$49
 
哎,可惜我不懂![:(][:(][:(]
 
可用api函数及线程!
 
to iie:呵呵。。。我想呀,可我知道你没那么多时间。所以没有这个意思。

因为你以前说过接受完后就发,可我在接受完后发送,发现要轮寻设备后,才能发送。所以
我不懂你怎么不间断发送的。

多设备是我通过一个串口访问多个设备。

我的思路是这样的,在接受事件中,发送字符串(因为我这里的设备比较怪,如发读电流的命令后
,就要POLLBUFFER轮寻一下,才能得到正确数据)。我跟踪了程序,发现在接受事件中只能
对串口发一次,第二个POLLBUFFER命令就失效了。另外在接受字符串后解析时,发现少了一部分
没有收到,一定要等到接受事件结束时才能收到余下的数据。
虽然能连续发送,一开始读写很快,可越来越慢,照语法来说,前后的读写应该是频率相同的,
也就是差不多的时间间隔读写。

不知道你以前有没有遇到这样的情况。由于我第一次做串行通讯,而且本人编程能力所限,所以
希望大虾你多多指教。
 
接收事件处理时,应先解析,再发送下一轮询问。
如果期待的的接收串长度已知,则应加判断:
if count >= expectedLength 使得事件响应在数据完全被接收到缓冲之后再处理
我不太了解你现在面对的是什么设备,不过依我经验,这样的问题是可解的
 
对不起。返回的字符串不定长度。
使用的设备是ALSTOM的KCEG142。
 
那就稍微累一些,要用一个缓冲存已经收到的字串,解析发现字串不足则返回,
下次触发onrxchar后继续读入并解析,直到满足条件,然后取值,再发问
 
to: lp414
我做的监控系统就是轮询多设备,现在已经在多家公司使用,很有名的公司,说出来大家都知道
不过就不说了:)
如果如果你还没有解决,就给我发Email: ccwtt@btamail.net.cn,我会尽我所能帮你
 
这样吧,你把源代码发给我,晚上我看看 tseug@263.net
 
他是通过OICQ告诉我的。
 
后退
顶部