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