菜鸟一枚,从未接触过VB代码思路是VB作为客户端,读取WiFi服务器的数据,读取的数据格式是fre:**MVPP:****mv;并在坐标轴上绘制成幅频曲线,求求大神帮帮忙啊
Dim receive_data(257) As String
Dim myArray(2) As String
Dim X(20) As String
Dim MyCaption(20) As String
Dim X1 As Single, Y1 As Single
Dim X2 As Single, Y2 As Single
Public Sub RefreshGraph()
Dim MyColor(2) As Long
Dim MyLegend(0) As String
Dim i As Integer
For i = 1 To 20
MyCaption(i) = i
Next i
MyColor(0) = vbRed
Chart1.MinValue = 0
Chart1.Rows = 20
Chart1.Cols = 20
Chart1.DrawGraph myArray, MyColor, MyCaption
MyLegend(0) = "幅频采集图"
Chart1.DrawLegend MyLegend, MyColor
End Sub
Private Function InsertDB(ByVal table_name As String, ByVal value As String) As Byte
On Error GoTo gperror
Dim objCn As New ADODB.Connection
Dim objRs As New ADODB.Recordset
Dim strCn As String
Dim strSQL As String
' 定义数据库连接参数变量 myArray(0) = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
Dim i As Integer
For i = 1 To 20
X(20) = "0"
Next i
Chart1.MaxValue = 2000
RefreshGraph
Dim db_host As String
Dim db_user As String
Dim db_pass As String
Dim db_data As String
' 初始化数据库连接变量
db_host = "127.0.0.1"
db_user = "root"
db_pass = "root"
db_data = "fupin"
objCn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=" & db_host & ";" & _
"DATABASE=" & db_data & ";" & _
"UID=" & db_user & ";PWD=" & db_pass & ";" & _
"OPTION=3;stmt=SET NAMES GB2312"
objCn.Open
strSQL = "INSERT INTO " + fupinshuju + "(Fre,VPP) VALUES(" + Chr(34) + Fre + Chr(34) + "," + Chr(34) + VPP + Chr(34) + ");"
Set objRs.ActiveConnection = objCn
objRs.Open (strSQL)
'关闭数据库连接,释放对象
objCn.Close
Set objRs = Nothing
Set objCn = Nothing
Exit Function
gperror:
Check_PassWord = 255
Set objRs = Nothing
Set objCn = Nothing
End Function
Private Sub CmdSend_Click()
If (tcpserver.State = 7) Then
tcpserver.SendData txtSend.Text
txtSend.Text = ""
End If
End Sub
Private Sub CmdStart_Click()
If (tcpserver.State <> 7) Then
tcpserver.Close
tcpserver.Connect txtIP.Text, txtPort.Text
'tcpserver.Connect "127.0.0.1", txtPort
Else
tcpserver.Close
CmdStart.Caption = "连接服务"
txtIP.Enabled = True
txtPort.Enabled = True
txtIP.BackColor = &H80000005
txtPort.BackColor = &H80000005
End If
End Sub
Private Sub Form_Load()
Me.Left = Screen.Width / 2 - Me.Width / 2
Me.Top = Screen.Height / 2 - Me.Height / 2 '全屏下让窗体居中
'txtIP.Text = tcpserver.LocalIP
txtIP.Text = "192.168.4.1"
txtPort.Text = 8086
If (tcpserver.State <> 7) Then
CmdStart.Caption = "连接服务"
txtIP.Enabled = True
txtPort.Enabled = True
txtIP.BackColor = &H80000005
txtPort.BackColor = &H80000005
Else
CmdStart.Caption = "断开服务"
End If
MyCaption(0) = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
Dim i As Integer
For i = 1 To 20
X(i) = "0"
Next i
Chart1.MaxValue = 2000
RefreshGraph '刷新
'txtMQ2.Text = pm25(1) + "," + pm25(2) + "," + pm25(3) + "," + pm25(4) + "," + pm25(5) + "," + pm25(6) + "," + pm25(7) + "," + pm25(8) + "," + pm25(9) + "," + pm25(10)
End Sub
Private Sub Form_Unload(Cancel As Integer)
tcpserver.Close
End Sub
Private Sub tcpserver_Close()
tcpserver.Close
CmdStart.Caption = "连接服务"
txtIP.Enabled = True
txtPort.Enabled = True
txtIP.BackColor = &H80000005
txtPort.BackColor = &H80000005
End Sub
Private Sub tcpserver_Connect()
CmdStart.Caption = "断开服务"
txtIP.Enabled = False
txtPort.Enabled = False
txtIP.BackColor = &H80000000
txtPort.BackColor = &H80000000
End Sub
Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
If tcpserver.State <> sckClosed Then
tcpserver.Close
End If
tcpserver.Accept requestID
End Sub
Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
Dim value As String
Static k As Integer
Dim j As Integer
Dim f As String
Dim v As String
k = tcpserver.BytesReceived
tcpserver.GetData receive_data(0), vbByte, k '从k读取的存放在receive_data中,读取数据的类型是字节
value = receive_data(0)
If (StrComp(Mid(value, 1, 3), "Fre") = 0 And StrComp(Left(Right(value, 10), 3), "VPP") = 0) Then 'strcomp字符串比较函数
f = Mid(value, 1, Len(value) - 10) 'fre的值fre:___20M
End If
txtRecv.Text = txtRecv.Text + Mid(value, 1, InStr(7, value, "M")) 'instr 返回要截取的字符串
f = Mid(value, 5, InStr(5, value, "M") - 5) '频率单独数值
v = Mid(value, 12, 4)
strSQL = "INSERT INTO " + fupinshuju + "(Fre,VPP) VALUES (" + Chr(34) + Trim(f) + Chr(34) + "," + Chr(34) + Trim(v) + Chr(34) + ");" '插入幅频数据至MySQL
'Set objRs.ActiveConnection = objCn
'objRs.Open (strSQL)
X(20) = Trim(f)
MyCaption(20) = Trim(v)
Chart1.CurrentX = Trim(f)
Chart1.CurrentX = Trim(v)
Chart1.Print "Trim(f),Trim(v)"
Circle (Trim(f), Trim(v)), 5
End Sub
帮帮忙啊,最后不知道怎么在坐标轴上描点画曲线,求求大神帮帮忙