十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
首先:
鶴山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),鶴山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鶴山上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的鶴山做網(wǎng)站的公司定做!
textbox里沒(méi)有顯示,是因?yàn)镾erialPort1和TextBox2不是同一線程創(chuàng)建的,需要跨線程操作。需要用到委托,這樣才能顯示出來(lái)。
其次:
我覺(jué)得用串口的接收數(shù)據(jù)事件更好一些。
下面代碼供參考:
'----------------------
'串口接收數(shù)據(jù)事件,其實(shí)比用定時(shí)器更好,
'觸發(fā)事件的條件可以自己在form_load中設(shè)置ReceivedBytesThreshold屬性數(shù)值,默認(rèn)為ReceivedBytesThreshold=1
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim strRecvData As String = ""
strRecvData = SerialPort1.ReadExisting
Call disPlayComData(strRecvData)
End Sub
Delegate Sub callback(ByVal strT As String) '定義委托
Sub showString(ByVal comdata As String) '顯示結(jié)果
Me.TextBox1.Text = "結(jié)果:" comdata
End Sub
Sub disPlayComData(ByVal strTmp As String) '判定是否為跨線程
If Me.TextBox1.InvokeRequired Then
Dim d As New callback(AddressOf showString)
Me.Invoke(d, New Object() {strTmp})
Else
Me.TextBox1.Text = strTmp
End If
End Sub
1、發(fā)送數(shù)據(jù)需要協(xié)議支持
自己設(shè)計(jì)一個(gè)協(xié)議,協(xié)議是什么,是兩個(gè)通信段之間的約定。比如我說(shuō),我打一個(gè)奧特曼的手勢(shì)表示已經(jīng)看到美女了,這就是一個(gè)協(xié)議。協(xié)議完成將bit轉(zhuǎn)換為對(duì)應(yīng)的含義。
2、需要編程技術(shù)的支持
你怎樣獲取數(shù)據(jù),將數(shù)據(jù)如何處理,怎樣保存。這個(gè)需要你自己的技術(shù)支持,這里的回答沒(méi)法幫你?;ㄥX報(bào)個(gè)班吧,如果你還在上大學(xué),那么選個(gè)選修課好好聽課。下課多做小程序,就會(huì)學(xué)會(huì)了。
看方法名就應(yīng)該能猜出來(lái)了嘛~
ReadLine 只讀一行,而 ReadExisting 讀取現(xiàn)有的全部。
假如下位機(jī)上送了三行數(shù)據(jù),ReadExisting會(huì)連回車一起全部返回給你。
你可以預(yù)先約定一個(gè)截止附,讀取的字節(jié)統(tǒng)統(tǒng)放到緩存區(qū)里,直到讀到截止附再處理、顯示。
1.用picturebox 控件可以實(shí)現(xiàn)
2.可以使用Scale方法移動(dòng)坐標(biāo)原始位置和改變坐標(biāo)軸方向,以下該方法:
Scale(x1,y1)-(x2,y2)
X1和y1為對(duì)象左上角的新坐標(biāo)位置;
X2和y2為對(duì)象右下角的新坐標(biāo)位置;
現(xiàn)在讓我們看看一些范例。這一方法將使原點(diǎn)處于左上角,但將坐標(biāo)系統(tǒng)單位改變?yōu)榇绑w大小的1/100:
Picture1.Scale(0,0)-(100,100)
以下調(diào)用將移動(dòng)原點(diǎn)到窗體的左下角,并旋轉(zhuǎn)Y軸:
Picture1.Scale(0,100)-(100, 0)
以下調(diào)用將移動(dòng)原點(diǎn)到窗體的正中心,并旋轉(zhuǎn)Y軸,然后將坐標(biāo)單位轉(zhuǎn)換為窗體大小的1/5000:
Picture1.Scale(-2500,2500)-(2500,2500)
用Picture1.Line (x1,y1)-(x2,y2)
如果不指定(x1,y1)則line方法默認(rèn)為上次line方法的(x2,y2)為當(dāng)前l(fā)ine方法(x1,y1)
For i = 1 To 100
j = i + 10
Me.Picture1.Line -(i, j), vbRed '可以指定畫線的顏色
Next
3.如果畫到最右邊的時(shí)候,可以清掉picturebox 的內(nèi)容,從頭再畫。
給段代碼,供參考:
Private Sub Form_Load()
Dim i, j As Integer
Me.Picture1.Scale (0, Me.Picture1.Height)-(Me.Picture1.Width, 0)
Me.Picture1.AutoRedraw = True
Me.Picture1.Line (0, 0)-(0, 0), vbRed
For i = 1 To 1000
j = i + 10
Me.Picture1.Line -(i, j), vbRed
Next
End Sub
我這樣畫過(guò)曲線,大概思路就是這樣吧,希望能幫到你