在數(shù)據(jù)采集監(jiān)視系統(tǒng)中,數(shù)據(jù)如何發(fā)送、接收、處理和應(yīng)用是一個(gè)系統(tǒng)的關(guān)鍵部分。在系統(tǒng)實(shí)施過(guò)程中,由于通信方式、通信協(xié)議、系統(tǒng)功能的變化,如何能快速簡(jiǎn)便進(jìn)行系統(tǒng)實(shí)施,又能在需求發(fā)生變化時(shí)有更強(qiáng)的適用性,是一個(gè)產(chǎn)品能否快速應(yīng)用的關(guān)鍵。本文總結(jié)自己在設(shè)計(jì)方面的經(jīng)驗(yàn),闡述了VB通信中數(shù)據(jù)處理方式的三層結(jié)構(gòu)模式。
為神池等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及神池網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站制作、神池網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
系統(tǒng)設(shè)計(jì)為通信層、數(shù)據(jù)處理層、應(yīng)用層。而每一層使用下層提供的服務(wù),并向其上一層提供服務(wù)。三層結(jié)構(gòu)分別對(duì)應(yīng)系統(tǒng)通信方式、通信協(xié)議、系統(tǒng)功能,當(dāng)需求發(fā)生變化時(shí)只用更改對(duì)應(yīng)的層次,而其他的層次則不用,或者只用進(jìn)行很少的改變。
通信層提供建立連接、接收、發(fā)送、誤碼重發(fā)、錯(cuò)誤處理等功能,保證通信的雙方的數(shù)據(jù)是可以信任的,正確的。對(duì)應(yīng)OSI模型的表示層以及下層。
數(shù)據(jù)處理層提供格式化的表示和轉(zhuǎn)換數(shù)據(jù)服務(wù),對(duì)數(shù)據(jù)進(jìn)行解析。對(duì)應(yīng)OSI模型的表示層。
應(yīng)用層提供網(wǎng)絡(luò)與用戶(hù)應(yīng)用軟件之間的接口服務(wù),應(yīng)用數(shù)據(jù)處理層的解析出來(lái)的數(shù)據(jù)進(jìn)行應(yīng)用,并且和用戶(hù)界面進(jìn)行交流。對(duì)應(yīng)OSI模型的應(yīng)用層。
可以考慮使用Cache(緩存)技術(shù),對(duì)于不經(jīng)常變化的數(shù)據(jù)可以采用靜態(tài)Cache,對(duì)于可能經(jīng)常被修改的數(shù)據(jù)可以采用數(shù)據(jù)庫(kù)依賴(lài)的通知Cache更新技術(shù)。
窗體是指由兩個(gè)列表框(ListBox1、ListBox2)和4個(gè)命令按鈕(Button1“”按鈕,Button2“”按鈕,Button3“”按鈕,Button4“”按鈕)所構(gòu)成的界面,代碼:
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Text = "選項(xiàng)移動(dòng)"
ListBox1.SelectionMode = SelectionMode.MultiSimple
ListBox2.SelectionMode = SelectionMode.One
For i = 1 To 10
ListBox1.Items.Add(Chr(Asc("a") + i - 1))
Next
For i = 1 To 10
ListBox2.Items.Add(i.ToString)
Next
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If ListBox1.SelectedItems Is Nothing Then Exit Sub
Dim b As ListBox.ObjectCollection
For i = 0 To Me.ListBox1.SelectedItems.Count - 1
Me.ListBox2.Items.Add(Me.ListBox1.SelectedItems(0))
Me.ListBox1.Items.RemoveAt(Me.ListBox1.SelectedIndices(0))
Next
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
If ListBox2.SelectedItems IsNot Nothing Then
ListBox1.Items.Add(ListBox2.SelectedItem)
ListBox2.Items.Remove(ListBox2.SelectedItem)
End If
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
For Each itm As Object In ListBox1.Items
ListBox2.Items.Add(itm)
Next
ListBox1.Items.Clear()
End Sub
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
For Each itm As Object In ListBox2.Items
ListBox1.Items.Add(itm)
Next
ListBox2.Items.Clear()
End Sub
End Class