999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

拳擊比賽的雙屏顯示系統(tǒng)設(shè)計(jì)

2010-04-12 00:00:00楊廷雷,張子明,施遠(yuǎn)征,鞏金亮,田大軍
現(xiàn)代電子技術(shù) 2010年9期

摘 要:為滿足拳擊比賽的公平性,雙屏顯示比賽中的詳細(xì)信息成為關(guān)鍵。系統(tǒng)在VB 6.0的環(huán)境下,根據(jù)不同的硬件環(huán)境要求,通過調(diào)用API函數(shù)和MSComm控件,使用單機(jī)中的雙屏顯示和主從機(jī)的串行通信雙屏顯示。在場地顯示屏上可以顯示裁判員的姓名、單位,裁判員的有效點(diǎn)和打點(diǎn)信息,運(yùn)動員的姓名、單位,以及公斤級、場次、時(shí)間、比分等詳細(xì)內(nèi)容。主從機(jī)串行通信中使用RS 232串行口,在近距傳輸中系統(tǒng)的穩(wěn)定性好、通用性強(qiáng),能夠滿足比賽和拳聯(lián)的要求。從程序的界面設(shè)計(jì)到源代碼,都做了詳細(xì)的說明。

關(guān)鍵詞:Visual Basic 6.0; 雙屏顯示; API; MSComm控件; RS 232

中圖分類號:TP274 文獻(xiàn)標(biāo)識碼:A

文章編號:1004-373X(2010)09-0191-03

Design of Dual-screen Display System for Boxing Game

YANG Ting-lei, ZHANG Zi-ming, SHI Yuan-zheng, GONG Jin-liang, TIAN Da-jun

(College of Electronic Information and Control Engineering, Beijing University of Technology, Beijing 100124, China)

Abstract: In order to meet the fairness of a boxing game, dual-screen display details in a game become critical. The system in the VB 6.0 environment, by calling the API function and MSComm control unit respectively, achieves stand-alone function in the dual-screen display and relies on the master-slave serial communication dual-screen display. In the big screen it can display the referee names, units, the effective points of the referees, the small flash points, the athlete names, units, and kilograms, screenings, time, score and other details. The RS 232 serial port is used in master-slave serial communication. The system working in the short-range transmission has high stability and strong versatility, and can meet the requirements of competition and the International Boxing Federation. The details from the program interface design to the source code are explained.

Keywords: Visual Basic 6.0; dual-screen display; API; MSComm control unit; RS 232

0 引 言

在現(xiàn)代體育比賽中,特別是關(guān)系到裁判的打分、打點(diǎn)的體育項(xiàng)目,裁判的公平、公正性直接關(guān)系到比賽能否順利進(jìn)行和體育競技水平的高低。拳擊比賽中運(yùn)動員的得分是靠5個(gè)臺下裁判打的有效點(diǎn)計(jì)入的。由于有效點(diǎn)需要至少3名裁判同時(shí)判有效才有效,裁判的水平和裁判的公正性直接決定運(yùn)動員比分的高低。通過場地顯示屏的顯示,將裁判的詳細(xì)信息(姓名、單位、有效點(diǎn)和打點(diǎn)信息)公布于眾,能夠大大提高裁判的公平、公正性,保證比賽的質(zhì)量和水平。

Visual Basic是Microsoft公司推出的一種在Windows環(huán)境下的面向?qū)ο蟪绦蛟O(shè)計(jì)語言,他將Windows編程的復(fù)雜性封裝起來,使用可視化界面設(shè)計(jì)應(yīng)用程序,提高了應(yīng)用程序的開發(fā)效率,并且具有功能強(qiáng)大、易學(xué)易用、編程簡潔等特點(diǎn),是當(dāng)今世界上使用最廣泛的編程語言之一,它也被公認(rèn)為是編程效率最高的一種編程方法[1]。無論是開發(fā)功能強(qiáng)大、性能可靠的商務(wù)軟件,還是編寫能處理實(shí)際問題的實(shí)用小程序,VB都是最快速、最簡便的方法[2]。

該軟件是在Visual Basic 6.0環(huán)境下設(shè)計(jì)的,兩種實(shí)現(xiàn)方法:一是單機(jī)通過調(diào)用API函數(shù)實(shí)現(xiàn)雙屏顯示[3];二是主從機(jī)之間通過串行通信實(shí)現(xiàn)雙屏顯示,這樣能夠滿足不同硬件環(huán)境的需求[4]。

在VB 6.0中提供了完成串行通信的控件MSComm,該控件提供了標(biāo)準(zhǔn)的事件處理函數(shù)、過程,并通過屬性的方法提供了串行通信參數(shù)的設(shè)置,比較容易地解決了串行通信的問題[4]。

1 單機(jī)雙屏顯示設(shè)計(jì)

系統(tǒng)設(shè)計(jì)流程如圖1所示[5]。

1.1 調(diào)用API函數(shù)

API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件的以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。所有運(yùn)行在Windows平臺上的應(yīng)用程序包括Windows操作系統(tǒng)都可調(diào)用,VB是以Windows為編程環(huán)境的,所以可以利用API函數(shù)[1]。

圖1 系統(tǒng)設(shè)計(jì)流程

首先判斷雙屏標(biāo)志位doublescreen_flag,若為0,則啟用單機(jī)雙屏顯示:

聲明API函數(shù),各定義函數(shù)調(diào)用API函數(shù),例:

Public Declare Function UnhookWindowsHookEx Lib ″user32″ (ByVal hHook As Long) As Long

Public Declare Function GetWindowLong Lib ″user32″ Alias ″GetWindowLongA″ (ByVal hwnd As Long,ByVal nIndex As Long) As Long

Public Declare Function GetCurrentThreadId Lib ″kernel32″() As Long

Public Declare Function SetWindowsHookEx Lib ″user32″ Alias″SetWindowsHookExA″ (ByVal idHook As Long,ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

1.2 雙屏尺寸的設(shè)置

定義ChangeScreenSize()函數(shù)設(shè)置顯示界面在子屏中顯示尺寸的大小,例:

ZeroMemory dm, Len(dm)

dm.dmSize = Len(dm)

dm.dmFields=dm_pelswidth or dm_pelsheight

dm.dmPelsWidth = size.cx

dm.dmPelsHeight = size.cy

1.3 雙屏位置的設(shè)置

定義ChangeScreenPosition()函數(shù),設(shè)置畫面在子屏中的位置,例:

dm.dmPosition.x = Position.x

dm.dmPosition.y = Position.y

1.4 雙屏分辨率、頻率的設(shè)置

定義ChangeScreenFrequency()函數(shù),設(shè)置子屏的頻率和分辨率,例:

dm.dmPelsWidth = size.cx

dm.dmPelsHeight = size.cy

dm.dmDisplayFrequency = nFrequency

1.5 雙屏顯示的詳細(xì)內(nèi)容設(shè)計(jì)

根據(jù)比賽和拳聯(lián)的要求,場地顯示屏顯示的內(nèi)容主要有:裁判員的詳細(xì)信息(包括:姓名、單位、有效點(diǎn)以及打點(diǎn)信息)、運(yùn)動員的信息(包括:姓名、單位)以及比賽信息(包括:公斤級、場次、輪次、時(shí)間、比分)等。雙屏內(nèi)容的顯示直接從軟件數(shù)據(jù)庫中采集。6個(gè)顯示界面包含不同的顯示信息,可以按顯示要求選擇不同的界面,滿足比賽的需求。其中界面1的部分代碼為:

指示燈:Label15(0).Caption=CboRed.Text

回合:Label7.Caption=Trim(roundnum)

有效點(diǎn):Form1.Label10.Caption=recptt.Caption

2 主從機(jī)串行通信雙屏顯示設(shè)計(jì)

2.1 串行通信技術(shù)RS 232

串口通信技術(shù)采用了RS 232串口通信。目前RS 232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口,它被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS 232采取不平衡傳輸方式,即所謂單端通訊[6]。

圖2 RS 232接口端口圖

在通信中選用2、3引腳作為通信的輸入輸出端口,5引腳作為地,制作兩個(gè)串行口時(shí)2、3號接口跳線。由于需傳送的內(nèi)容短少且只有一幀,沒有使用奇偶校驗(yàn)位,采用判別幀頭幀尾的方式判斷接受信息,只是簡單的通信傳送,大大減少了系統(tǒng)的復(fù)雜程度。

2.2 MSComm控件

Microsoft Communications Control(以下簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。

MSComm 控件的常用屬性:

CommPort:設(shè)置并返回通訊端口號。

Settings:以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。

PortOpen:設(shè)置并返回通訊端口的狀態(tài),也可以打開和關(guān)閉端口。

Input:從接收緩沖區(qū)返回和刪除字符。

Output:向傳輸緩沖區(qū)寫一個(gè)字符串。

MSComm控件的設(shè)置:

With Info_Show_Form1.MSComm1

.CommPort=com_port

.Settings=″9600,n,8,1″

.InputMode=comInputModeText

.InBufferCount=0

.RThreshold=LEN_OF_FRAME_ALL

.InBufferSize=3000

.OutBufferSize=1000

.SThreshold=0

.InputLen=0

.OutBufferCount = 0

If .PortOpen = False Then .PortOpen = True

End With

2.3 串行通信的發(fā)送

首先判斷雙屏標(biāo)志位doublescreen_flag,若為1,則進(jìn)行串行通信。將需要發(fā)送的信息(裁判員的信息、運(yùn)動員的信息、比賽信息)連成一幀,以FFFF作為幀頭以EEEE作為幀尾發(fā)送[3]。根據(jù)發(fā)送幀長判斷接受緩沖區(qū)的大小。根據(jù)是英文名稱還是中文名稱判斷發(fā)送內(nèi)容。部分代碼如下:

For i = 0 To 4

send_msg=send_msgSendMsg_Trans(Trim(redplus1t(i).Caption))

Next i

For i = 0 To 4

send_msg=send_msgSendMsg_Trans(Trim(redacptt(i).Caption))

Next i

send_msg = send_msg Trim(roundnum)

使用英文單位名稱:

send_msg=send_msg Left(Trim(CboBlue.Text), 3)

send_msg=send_msg Left(Trim(cboJ1.Text), 3)

For i=1 To 119

send_msg=send_msg ″0″

Next i

使用中文單位名稱:

send_msg=send_msgSendMsg_Trans_Name(Cn_Judge_Unit_Cut(Cn_Space_Cut(Trim(cboJ1.Text))))

2.4 串行通信接受

在接受系統(tǒng)的顯示,采用從接受緩沖區(qū)截取的方法,將每部分賦給要顯示的文本,部分代碼如下:

控件的調(diào)用[7]:

Private Declare Function GetWindowLong Lib ″user32″ Alias ″GetWindowLongA″ (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib ″user32″ Alias ″SetWindowLongA″ (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Declare Function SetLayeredWindowAttributes Lib ″user32″ (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

串口初始化:

Ds_Fd_Module.Com_Int

字符及時(shí)鐘控件初始化:

Ds_Fd_Module.Val_Int

接收啟用串口通信[7]:

Select Case MSComm1.CommEvent

Case comEvReceive

recv_msg = MSComm1.Input

Label18.Caption=recv_msg

Label19.Caption=Len(recv_msg)

Test_Timer.Enabled = True

大屏信息:

Label11(0).Caption=Val(Mid(recv_msg,85,1))

Label15(0).Caption=Val(Mid(recv_msg,89,3))

Label15(1).Caption=Val(Mid(recv_msg,92,3))

Label28.Caption=Val(Mid(recv_msg, 95, 3))

Label29.Caption=Val(Mid(recv_msg, 98, 3))

For i=0 To 9

Label31(i).Caption=Val(Mid(recv_msg, 35+i*3, 3))

Next i

Label3(0).Caption=RecvMsg_Trans_Name(Mid(recv_msg, 101, 5))

For i = 0 To 4

Label32(i).Caption=RecvMsg_Trans_rep(Mid(recv_msg, 121 + i * 5, 5))

Next i

3 場地顯示屏顯示界面

場地顯示屏顯示界面如圖3所示[5]。

圖3 場地顯示屏顯示界面圖

該界面包含了:場次、級別、輪次、時(shí)間、比分、運(yùn)動員的信息、裁判員的信息、各有小點(diǎn)和指示燈等詳細(xì)信息,滿足比賽的要求。

4 結(jié) 語

詳細(xì)介紹了拳擊比賽場地顯示屏顯示系統(tǒng)設(shè)計(jì),并將各環(huán)節(jié)的代碼示出,VB語言的簡潔高效性顯得尤為突出。通過單機(jī)雙屏的介紹和主從節(jié)串口通信雙屏的介紹,從不同的角度實(shí)現(xiàn)雙屏顯示,該系統(tǒng)在全國運(yùn)動會上得到應(yīng)用。

參考文獻(xiàn)

[1]柳青.程序設(shè)計(jì)語言VB及開發(fā)應(yīng)用[M].北京.高等教育出版社,2004.

[2]龔沛曾.Visual Basic程序設(shè)計(jì)簡明教程[M].北京:高等教育出版社,2001.

[3][美]赫美爾.Visual Basic高效編程:改進(jìn)VB/COM+應(yīng)用程序[M].嚴(yán)靜東,郭文明,譯.北京:清華大學(xué)出版社,2007.

[4]范逸之.利用Visual Basic實(shí)現(xiàn)串并行通信技術(shù)[M].北京:清華大學(xué)出版社,2001.

[5]陳錦昌.VB計(jì)算機(jī)繪圖教程[M].華南:華南理工大學(xué)出版社,2003.

[6]王向陽,謝雙喜.利用VB實(shí)現(xiàn)計(jì)算機(jī)串口通信實(shí)例[J].現(xiàn)代計(jì)算機(jī),2002(10):92-94.

[7]源江科技.VB編程技巧280例[M].北京:高等教育出版社,2002.

[8]Siler B, Spotts J. Visual Basic 6開發(fā)使用手冊[M].北京:機(jī)械工業(yè)出版社,2000.

[9]曹妮娜.基于VB技術(shù)實(shí)現(xiàn)數(shù)據(jù)管理系統(tǒng)[J].才智,2009(18):26-27.

主站蜘蛛池模板: 亚洲丝袜中文字幕| 99热线精品大全在线观看| 免费人成黄页在线观看国产| 综合色区亚洲熟妇在线| 欧美日韩午夜视频在线观看| 67194在线午夜亚洲| 色噜噜久久| 18黑白丝水手服自慰喷水网站| 91网站国产| 中文字幕亚洲电影| 亚洲二三区| 秋霞国产在线| 美女毛片在线| 欧美性精品不卡在线观看| 成人日韩精品| 久久免费视频播放| 免费一看一级毛片| 高h视频在线| 一级不卡毛片| 国产亚洲成AⅤ人片在线观看| 国产99视频精品免费视频7| 看av免费毛片手机播放| 日韩在线播放中文字幕| 久久精品这里只有国产中文精品| 亚洲午夜国产精品无卡| 欧美成人综合视频| 国产在线欧美| 亚洲无线国产观看| 视频二区中文无码| 亚洲无码四虎黄色网站| 国产人前露出系列视频| 粉嫩国产白浆在线观看| 亚洲综合色区在线播放2019 | 视频一本大道香蕉久在线播放 | 国产超碰一区二区三区| 99久久精品国产自免费| 91福利免费视频| 精品一区二区久久久久网站| 久热这里只有精品6| 久久青青草原亚洲av无码| 欧美一区二区福利视频| 成人亚洲天堂| 中文字幕无码av专区久久| 国产乱肥老妇精品视频| 精品一区二区三区自慰喷水| www.亚洲天堂| 日韩乱码免费一区二区三区| 久久精品无码专区免费| 国产系列在线| 国产乱论视频| 国产自无码视频在线观看| 国内精品小视频在线| 九月婷婷亚洲综合在线| WWW丫丫国产成人精品| 自慰高潮喷白浆在线观看| 播五月综合| 九色免费视频| 亚洲第一区欧美国产综合 | 国产精品久久久久久搜索| 日韩东京热无码人妻| 欧美黑人欧美精品刺激| 青青草国产精品久久久久| 综合社区亚洲熟妇p| 成人免费黄色小视频| 国产精选自拍| 国产精品男人的天堂| v天堂中文在线| 91精品最新国内在线播放| 国产在线无码一区二区三区| 又黄又爽视频好爽视频| 欧洲亚洲一区| 99精品伊人久久久大香线蕉| 日本三级欧美三级| 1024你懂的国产精品| 久久久久久久久久国产精品| 天天激情综合| 午夜久久影院| 国产黄在线免费观看| 国产精品自在在线午夜区app| 日本不卡在线播放| 国产午夜不卡| 欧美在线黄|