smscontrol 控件发送信息,偶尔重复发送,求各位老大救命啊,vb中

czj82140886 2010-04-08 08:10:15
smscontrol 控件发送信息,偶尔重复发送,本来这个问题不大,但是我经过二次开发,改成了空中充值的软件,就是发送信息,充值话费,这个问题就严重了,重复发送等于重复充值啊。
发送事件代码如下:
Private Sub Smscontrol1_OnSndMsg()
Dim sndid As Long 'send out index
sndid = Smscontrol1.GetIndexOfLastSnd()

Do
If sndmsg(sndstart).sndid = sndid Then
'从数组中删除该条,表示该条已经成功发送到GSM网络
sndmsg(sndstart).sndid = -1
sndstart = sndstart + 1
If sndstart = 10000 Then
sndstart = 0
End If
Exit Do

End If

If sndstart = sndend Then '已经搜索完了数组
Exit Do
End If

Loop
...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqq_chen 2010-04-13
  • 打赏
  • 举报
回复
直接用mscomm来实现了
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 在Qt框架,QSerialPort类被视为一个关键组件,用于执行与串行端口之间的通信任务,它具备多样化的功能,涵盖了串口的开启与关闭操作,以及波特率、数据位、停止位和奇偶校验等参数的设定,同时还包括数据的发送和接收功能。在标题和描述提及的“Qt5的QSerialPort类通过信号槽实现串口读写”,这代表了一种在Qt编程普遍采用的事件驱动策略,借助信号槽机制,能够便捷地管理串口数据的传输与接收。 1. **QSerialPort类的基础操作**: - 初始化阶段:必须构建一个QSerialPort实例,并为其指定串口名称,例如"/dev/ttyUSB0"。 - 参数配置:利用`setPortName()`、`setBaudRate()`、`setDataBits()`、`setParity()`、`setStopBits()`、`setFlowControl()`等方法,依据具体需对串口参数进行配置。 - 串口开启/终止:借助`open()`方法启动串口,通过`close()`方法终止串口。务必验证`isOpen()`的返回状态,以确保操作的有效性。 2. **信号槽机制的应用**: - 信号的生成:QSerialPort类定义了若干信号,诸如`readyRead()`表明有数据可读,`error()`指示出现错误,`bytesWritten()`显示数据已传输等。当这些事件发生时,将触发相应的信号。 - 槽函数的关联:相应地,可以将这些信号与自定义的槽函数相连接,比如,当`readyRead()`信号被激活时,可以调用一个用于处理读取数据的函数。 3. **串口数据...

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧