evb3.0开发pda读取全站仪数据程序(可以追加分),evb3.0开发pda读取全站仪数据程序(可以追加分),evb3.0开发pda读取全站仪数据程序(可以追加分),pda与全站仪进行串口通讯,全站议是topcon的,pda是siemens sx66, 基于evb3.0 。程序编辑完成,模拟器测试通过,但连接全站仪时读不出数据。具体问题搞不定。请教高手。50分。可以追加。 qq:304802327 天天在线 lqchangmx@hotmail.com 注: 单位用这款pda与rtk连接(串口),用于差分数据的传输,能够实现。 程序源码: Option Explicit Private Sub Form_Load() Comm1.Settings = 1200,n,8,1 Comm1.CommPort = 1 采用COM1端口 Comm1.InputLen = 0 Comm1.InBufferSize = 128 接收缓冲区 默认为1024个字节 Comm1.OutBufferSize = 128 发送缓冲区 默认为1024个字节 Comm1.InBufferCount = 0 Comm1.InputMode = 0 文本接收 Comm1.NullDiscard = False NULL字符从端口传送到接受缓冲区 Comm1.DTREnable = False DTR线无效 Comm1.EOFEnable = False 不寻找EOF符 Comm1.RTSEnable = False RTS线无效 Comm1.InBufferCount = 0 清空接受缓冲区 Comm1.OutBufferCount = 0 清空传输缓冲区 Comm1.SThreshold = 0 如果传输缓冲区完全空时产生MSComm事件 Comm1.PortOpen = True Comm1.RThreshold = 1 就是说每接收到一个字符,就触发一个OnComm事件 End Sub Private Sub Comm1_OnComm() If Comm1.InBufferCount > 0 Then Textreceive.Text = Textreceive.Text + Comm1.Input + Chr(13) & Chr(10) Else: MsgBox (no datas input) End If End Sub Private Sub cmdSave_Click() Dim tempfile As file 打开文件 Set tempfile = CreateObject(FILECTL.File) tempfile.Open \\storage card\\tempfile.txt, fsModeAppend tempfile.LinePrint (Textreceive.Text) tempfile.Close Comm1.InBufferCount = 0 清空接受缓冲区 Textreceive.Text = MsgBox (datas saved) End Sub Private Sub cmdClear_Click() Textreceive.Text = End Sub Private Sub cmdStop_Click() 关闭端口 If Comm1.PortOpen = True Then Comm1.InBufferCount = 0 清空缓冲区 Comm1.PortOpen = False End If MsgBox (port stopped) End Sub Private Sub Form_OKClick() App.End End Sub Private Sub cmdSend_Click() Comm1.Output = Textsend.Text End Sub
股票入门 我的第一次 你在做什么 往期内容 休闲牧场预告 设猫扑虎为首页|收藏猫扑虎
evb3.0开发pda读取全站仪数据程序(可以追加分)
来源:网络收集 作者:解语人 时间:2008-4-28 12:44:45

pda与全站仪进行串口通讯,全站议是topcon的,pda是siemens sx66, 基于evb3.0 。程序编辑完成,模拟器测试通过,但连接全站仪时读不出数据。具体问题搞不定。请教高手。50分。可以追加。 qq:304802327 天天在线 lqchangmx@hotmail.com 注: 单位用这款pda与rtk连接(串口),用于差分数据的传输,能够实现。 程序源码: Option Explicit Private Sub Form_Load() Comm1.Settings = 1200,n,8,1 Comm1.CommPort = 1 采用COM1端口 Comm1.InputLen = 0 Comm1.InBufferSize = 128 接收缓冲区 默认为1024个字节 Comm1.OutBufferSize = 128 发送缓冲区 默认为1024个字节 Comm1.InBufferCount = 0 Comm1.InputMode = 0 文本接收 Comm1.NullDiscard = False NULL字符从端口传送到接受缓冲区 Comm1.DTREnable = False DTR线无效 Comm1.EOFEnable = False 不寻找EOF符 Comm1.RTSEnable = False RTS线无效 Comm1.InBufferCount = 0 清空接受缓冲区 Comm1.OutBufferCount = 0 清空传输缓冲区 Comm1.SThreshold = 0 如果传输缓冲区完全空时产生MSComm事件 Comm1.PortOpen = True Comm1.RThreshold = 1 就是说每接收到一个字符,就触发一个OnComm事件 End Sub Private Sub Comm1_OnComm() If Comm1.InBufferCount > 0 Then Textreceive.Text = Textreceive.Text + Comm1.Input + Chr(13) & Chr(10) Else: MsgBox (no datas input) End If End Sub Private Sub cmdSave_Click() Dim tempfile As file 打开文件 Set tempfile = CreateObject(FILECTL.File) tempfile.Open \\storage card\\tempfile.txt, fsModeAppend tempfile.LinePrint (Textreceive.Text) tempfile.Close Comm1.InBufferCount = 0 清空接受缓冲区 Textreceive.Text = MsgBox (datas saved) End Sub Private Sub cmdClear_Click() Textreceive.Text = End Sub Private Sub cmdStop_Click() 关闭端口 If Comm1.PortOpen = True Then Comm1.InBufferCount = 0 清空缓冲区 Comm1.PortOpen = False End If MsgBox (port stopped) End Sub Private Sub Form_OKClick() App.End End Sub Private Sub cmdSend_Click() Comm1.Output = Textsend.Text End Sub
MsComm控件的OnComm事件有7种:
OnComm 常数
常数 值 描述
comEvSend 1 发送事件。
comEvReceive 2 接收事件。
comEvCTS 3 clear-to-send 线变化。
comEvDSR 4 data-set ready 线变化。
comEvCD 5 carrier detect 线变化。
comEvRing 6 振铃检测。
comEvEOF 7 文件结束。
你的OnComm代码未指明
comEvReceive 2 接收事件。

Option Explicit
Dim strData As String

Private Sub Form_Load()
Comm1.Settings = "1200,n,8,1"
Comm1.CommPort = 1 '采用COM1端口
Comm1.InputLen = 0
Comm1.InBufferCount = 0
Comm1.InputMode = 0 '文本接收
Comm1.PortOpen = True
Comm1.RThreshold = 1
Textreceive = ""
End Sub

Private Sub Comm1_OnComm()
Static sum As Integer
Select Case Comm1.CommEvent
Case comEvReceive
sum = sum + 1
Print sum
strData = Comm1.Input
Textreceive = Textreceive & strData + Chr(13) & Chr(10)
End Select
End Sub
  • 上一篇文章:
  • 下一篇文章:

  • 更多友情链接>>>