新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 新型交互式射擊游藝控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

新型交互式射擊游藝控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

作者:盧滿懷* 電子科技大學(xué)中山學(xué)院 時(shí)間:2009-04-14 來源:電子產(chǎn)品世界 收藏

  創(chuàng)建服務(wù)器應(yīng)用程序時(shí),就應(yīng)相應(yīng)設(shè)置一個(gè)偵聽端口(LocalPort屬性)并調(diào)用Listen方法。當(dāng)客戶機(jī)需要連接時(shí)(connect),就會(huì)發(fā)生ConnectionRequest事件。由于系統(tǒng)有多個(gè)客戶端,因此要?jiǎng)討B(tài)管理客戶端的各個(gè)連接請(qǐng)求,參考如下程序設(shè)計(jì):

  Private sub sckserver_connectrequest(Index as Integer,Byval requestid as long)
  dim sip as string
  dim I as integer
  sip=sckserver(0).RemoteHostIP '獲得登錄者的IP地址
  I=1
  Do while I<=sckserver.ubound '檢查是否已經(jīng)有該地址的記錄
  If sckserver(I).RemoteHostIP=sip then '如有,不必加載新的控件
  Sckserver(I).Accept requestid
  Exit sub
  End if
  I=I+1
  Loop
  Load sckserver(I) '否則,加載新的控件
  Scksrver(I).accept requestID
  End sub

  為了完成連接,在ConnectionRequest事件中調(diào)用Accept方法。建立連接后,任何一方計(jì)算機(jī)都可以發(fā)送、接收對(duì)方數(shù)據(jù)。發(fā)送數(shù)據(jù)時(shí),需調(diào)用SendData方法。當(dāng)接收到數(shù)據(jù)時(shí),會(huì)發(fā)生DataArrival事件,調(diào)用DataArrival事件中的GetData方法就可以獲得對(duì)方傳送的數(shù)據(jù)。

本文引用地址:http://butianyuan.cn/article/93433.htm

  基于MSComm的串口通信程序設(shè)計(jì)

  MSComm通信控件提供了一系列標(biāo)準(zhǔn)通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備、還可以發(fā)送命令、進(jìn)行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種錯(cuò)誤和事件,從而可以用它創(chuàng)建全雙工的、事件驅(qū)動(dòng)的、高效實(shí)用的通信程序。

  在程序加載過程中,由于可能存在無線和CAN兩種通信方式,所以在Form_Load事件中要進(jìn)行初始化處理,參考以下程序:

主控制器初始化程序
For i = 0 To Comm_Port_Num - 1
    If CommSetups(i).commType = "CAN" Then
        MSComm1.CommPort =CInt(Mid(Trim(CommSetups(i).commID), 4))
        If MSComm1.PortOpen Then MSComm1.PortOpen = False
        MSComm1.Settings = Trim(CommSetups(i).commSetting)
        MSComm1.PortOpen = True            '打開串行口
        Text1.Text = "CAN通信端口初始化成功" & vbCrLf
        Exit For
    End If
Next i
‘nRF905射頻主控制器初始化程序
For i = 0 To Comm_Port_Num - 1
    If CommSetups(i).commType = "COM" Then
        MSComm1.CommPort =CInt(Mid(Trim(CommSetups(i).commID), 4))
        If MSComm1.PortOpen Then MSComm1.PortOpen = False
        MSComm1.Settings = Trim(CommSetups(i).commSetting)
        MSComm1.PortOpen = True            '打開串行口
        Text1.Text = "nRF905端口初始化成功" & vbCrLf
        Exit For
    End If
Next i

  在數(shù)據(jù)接收過程中,MSComm提供了兩種處理通信問題的方法,一是事件驅(qū)動(dòng)方法,一是查詢法。本系統(tǒng)采用事件驅(qū)動(dòng)方法,當(dāng)有新字符到達(dá)或端口狀態(tài)改變,或發(fā)生錯(cuò)誤時(shí),MSComm控件將觸發(fā)OnComm事件,而應(yīng)用程序在捕獲該事件后,通過檢查MSComm控件的CommEvent屬性可以獲知所發(fā)生的事件或錯(cuò)誤,從而采取相應(yīng)的操作。

矢量控制相關(guān)文章:矢量控制原理


關(guān)鍵詞: 射擊 無線射頻 CAN總線 200904

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉