亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于PyQt5的動(dòng)態(tài)交通標(biāo)志牌管理軟件的設(shè)計(jì)與實(shí)現(xiàn)

        2020-02-04 02:03:22滕廣華
        電子技術(shù)與軟件工程 2020年20期
        關(guān)鍵詞:界面用戶設(shè)備

        滕廣華

        (山東奧邦交通設(shè)施工程有限公司 山東省濟(jì)南市 250000)

        1 背景

        隨著交通強(qiáng)國(guó)戰(zhàn)略的實(shí)施,我國(guó)高速公路里程不斷增加,人們對(duì)高速公路道路及交通安全設(shè)施的要求也在不斷提高。傳統(tǒng)的道路標(biāo)志牌大多為靜態(tài)的固定印刷標(biāo)志,僅能顯示兩地間距離等少量信息,無(wú)法高質(zhì)量地提供交通出行服務(wù),而近年來(lái)出現(xiàn)的動(dòng)態(tài)交通標(biāo)志牌則提供了更多交通信息,該動(dòng)態(tài)交通標(biāo)志牌設(shè)置在高速公路主線合流點(diǎn)之后,通過(guò)路段交通流檢測(cè)設(shè)備數(shù)據(jù)與第三方互聯(lián)網(wǎng)公司路況數(shù)據(jù)的融合,用于顯示實(shí)時(shí)交通流下的預(yù)估旅行時(shí)間信息。標(biāo)志由靜態(tài)標(biāo)志和 LED 顯示模塊兩部分組成。

        高速公路網(wǎng)所在環(huán)境具有封閉性,設(shè)備物理分布范圍廣,后期維護(hù)難度大等特點(diǎn),給標(biāo)志牌設(shè)備的安裝調(diào)試和維護(hù)管理帶來(lái)了挑戰(zhàn)。本文針對(duì)以上特點(diǎn),結(jié)合該管理軟件的基本需求,基于目前熱度比較大的Python語(yǔ)言和Qt 界面框架,設(shè)計(jì)并開(kāi)發(fā)完成了一款動(dòng)態(tài)交通標(biāo)志牌設(shè)備管理軟件。

        2 關(guān)鍵技術(shù)

        2.1 PyQt5

        Qt 是一組C ++庫(kù)和開(kāi)發(fā)工具,包括用于圖形用戶界面,網(wǎng)絡(luò),多線程,正則表達(dá)式,SQL 數(shù)據(jù)庫(kù),SVG,OpenGL,XML,用戶和應(yīng)用程序設(shè)置,定位和位置服務(wù),短距離通信( NFC 和藍(lán)牙),網(wǎng)頁(yè)瀏覽,3D 動(dòng)畫,圖表,3D 數(shù)據(jù)可視化以及與應(yīng)用商店的接口。PyQt5 是來(lái)自Qt 公司的一組結(jié)合Python 環(huán)境和Qt 應(yīng)用程序框架的開(kāi)發(fā)庫(kù)集合,將Qt 類中的1000 多個(gè)組件實(shí)現(xiàn)為一組Python 模塊,支持以Python 的方式開(kāi)發(fā)Qt 應(yīng)用程序。不僅如此,PyQt 還支持諸如Windows,Linux,UNIX,Android,macOS 和iOS 等多個(gè)平臺(tái),開(kāi)發(fā)快捷友好,應(yīng)用前景廣泛。

        2.2 QR code

        QR code 是一種矩陣式二維條碼(又稱棋盤式二維條碼)。它是在一個(gè)矩形空間通過(guò)黑、白像素在矩陣中的不同分布進(jìn)行編碼。在矩陣相應(yīng)元素位置上,用點(diǎn)(方點(diǎn)、圓點(diǎn)或其他形狀)的出現(xiàn)表示二進(jìn)制”1”,點(diǎn)的不出現(xiàn)表示二進(jìn)制的”0”,點(diǎn)的排列組合確定了矩陣式二維條碼所代表的意義。[1]

        圖1:動(dòng)態(tài)交通標(biāo)志牌管理軟件總體功能框圖

        圖2:軟件注冊(cè)流程

        3 軟件需求分析

        3.1 軟件功能分析

        軟件在功能上主要包括軟件注冊(cè)模塊、串口通信模塊、網(wǎng)絡(luò)通信模塊、設(shè)備管理模塊等四部分。軟件整體功能框圖見(jiàn)圖1所示。

        軟件注冊(cè)模塊:該模塊主要包括軟件驗(yàn)證和軟件注冊(cè)等功能,在軟件正式運(yùn)行前進(jìn)行軟件注冊(cè)狀態(tài)的驗(yàn)證,驗(yàn)證通過(guò)則進(jìn)入主界面,否則進(jìn)入軟件注冊(cè)界面,引導(dǎo)用戶獲取注冊(cè)碼并進(jìn)行軟件注冊(cè)。考慮高速公路網(wǎng)封閉性的特點(diǎn),軟件將在非互聯(lián)網(wǎng)環(huán)境下運(yùn)行。

        圖3:串口通信流程

        圖4:網(wǎng)絡(luò)通信流程

        串口通信模塊:該模塊主要包括本地串口檢測(cè)、串口參數(shù)配置、串口開(kāi)啟與關(guān)閉、串口數(shù)據(jù)發(fā)送與接收等功能,可通過(guò)連接設(shè)備的485 串口和設(shè)備進(jìn)行通信。

        網(wǎng)絡(luò)通信模塊:該模塊實(shí)現(xiàn)了一個(gè)TCP 服務(wù)器,負(fù)責(zé)通過(guò)網(wǎng)絡(luò)和設(shè)備進(jìn)行遠(yuǎn)程通信。主要包括本地IP 地址綁定和端口監(jiān)聽(tīng)、TCP 客戶端維護(hù)、TCP 數(shù)據(jù)收發(fā)等功能。

        設(shè)備管理模塊:該模塊是設(shè)備管理軟件的主要功能模塊,基于以上基礎(chǔ)功能模塊,該模塊實(shí)現(xiàn)的功能主要包括設(shè)備搜索、設(shè)備地址修改、設(shè)備信息獲取、設(shè)備內(nèi)容及亮度設(shè)置、設(shè)備重啟、設(shè)備升級(jí)等,可選擇通過(guò)串口直接收發(fā)數(shù)據(jù),或者通過(guò)網(wǎng)絡(luò)進(jìn)行串口數(shù)據(jù)的負(fù)載傳輸。

        表1:獲取設(shè)備型號(hào)協(xié)議命令及說(shuō)明

        3.2 非功能需求

        (1)可靠性需求:對(duì)程序中可能出現(xiàn)錯(cuò)誤的代碼段使用trycatch 異常捕獲機(jī)制,避免拋出錯(cuò)誤導(dǎo)致系統(tǒng)退出;軟件不應(yīng)出現(xiàn)崩潰等問(wèn)題。

        (2)安全性需求:軟件初次使用前需要注冊(cè)碼進(jìn)行注冊(cè),將軟件與所在運(yùn)行環(huán)境的硬件綁定,軟件再次運(yùn)行時(shí)要校驗(yàn)是否注冊(cè),未注冊(cè)軟件不能運(yùn)行;用戶密碼采用單向加密算法(包括但不限于MD5,SHA-1,SHA-256)加密,不存儲(chǔ)明文密碼;傳輸?shù)臄?shù)據(jù)都采用高強(qiáng)度的加密算法加密(DES),使得數(shù)據(jù)即使泄漏、被截獲后,也無(wú)法識(shí)別相關(guān)的數(shù)據(jù)內(nèi)容,確保數(shù)據(jù)安全;軟件中使用到的關(guān)鍵數(shù)據(jù)如密鑰,特征碼等信息禁止在代碼中硬編碼,軟件從密鑰文件中讀取,密鑰文件對(duì)用戶不可見(jiàn),密鑰文件混淆加密存儲(chǔ)。

        (3)物理需求:采用2 臺(tái)服務(wù)器,實(shí)現(xiàn)冗余備份處理和內(nèi)部業(yè)務(wù)的負(fù)載平衡。性能指標(biāo)要求是:主頻2GHz 以上,內(nèi)存4G 以上或采用更高檔的專業(yè)服務(wù)器,硬盤1TB 以上。

        (4)實(shí)施需求:服務(wù)器運(yùn)行平臺(tái)操作系統(tǒng)使用Windows Server2016,使用Viso 作為建模和分析工具,制圖工具采用ProcessOn,使用PyCharm+Qt Designer 作為軟件開(kāi)發(fā)工具。

        (5)易用性需求:關(guān)于易用性方面我們從以下幾個(gè)方面進(jìn)行分析并確定初步方案 :

        數(shù)據(jù)的接收和發(fā)送窗口實(shí)時(shí)顯示當(dāng)前收發(fā)的數(shù)據(jù),并可以選擇顯示模式為字符串編碼顯示或16 進(jìn)制HEX 碼顯示;數(shù)據(jù)發(fā)送時(shí)可選擇自動(dòng)添加CRC 校驗(yàn)碼,省去手動(dòng)計(jì)算的繁瑣;可創(chuàng)建自動(dòng)定時(shí)發(fā)送任務(wù),發(fā)送頻率可選,以滿足數(shù)據(jù)定時(shí)發(fā)送的場(chǎng)景需求;系統(tǒng)具有在線幫助說(shuō)明,能幫助用戶學(xué)習(xí)系統(tǒng)的使用;用戶操作過(guò)程中的任何系統(tǒng)提示都采用簡(jiǎn)體中文字體進(jìn)行提示,方便用戶理解。對(duì)于任何的系統(tǒng)性的錯(cuò)誤,在錄入過(guò)程中出現(xiàn)的錯(cuò)誤,錯(cuò)誤提示后返回原錄入焦點(diǎn)。

        4 軟件設(shè)計(jì)與實(shí)現(xiàn)

        4.1 軟件注冊(cè)模塊

        軟件開(kāi)始運(yùn)行時(shí),首先檢查是否已經(jīng)注冊(cè),具體流程為:獲取軟件運(yùn)行環(huán)境(服務(wù)器)的硬盤號(hào)及C 盤序列號(hào)作為機(jī)器碼MC;查看本地的注冊(cè)文件并根據(jù)注冊(cè)文件獲取內(nèi)容RC;對(duì)RC 進(jìn)行DES 解密,得到待驗(yàn)證的機(jī)器碼MC’;比較MC’和MC 的一致性,得出軟件是否已注冊(cè)的結(jié)論,若軟件已注冊(cè),則顯示軟件主界面,否則進(jìn)入軟件注冊(cè)界面。在軟件注冊(cè)界面,組合得到軟件注冊(cè)服務(wù)請(qǐng)求URL:http://serverip/register.do?code=MC,調(diào)用python 的qrcode 模塊將該URL 進(jìn)行編碼為二維碼并保存為圖片顯示在注冊(cè)界面的Label 上,用戶使用手機(jī)掃描二維碼,向服務(wù)器請(qǐng)求注冊(cè)服務(wù),服務(wù)器收到請(qǐng)求后對(duì)MC 進(jìn)行DES 加密并將加密字符串返回,用戶輸入注冊(cè)碼進(jìn)行軟件注冊(cè),軟件對(duì)注冊(cè)碼進(jìn)行DES 解密得到待驗(yàn)證的機(jī)器碼MC’,比較MC’和MC 的一致性,若兩者一致則表示注冊(cè)成功,將注冊(cè)碼寫入到注冊(cè)文件后隨即退出注冊(cè)界面并顯示軟件主界面,軟件注冊(cè)流程完成。若有中間過(guò)程不符合預(yù)期結(jié)果,則軟件重復(fù)顯示注冊(cè)窗口或直接退出。軟件注冊(cè)流程參照?qǐng)D2。

        4.2 串口通信模塊

        串口通信模塊提供了軟件和設(shè)備間通過(guò)串口方式進(jìn)行數(shù)據(jù)交換的能力,首先檢測(cè)本地機(jī)器串口并選擇,根據(jù)用戶配置的串口波特率,數(shù)據(jù)位,停止位,奇偶校驗(yàn)等參數(shù)配置并開(kāi)啟串口,然后定時(shí)循環(huán)讀取設(shè)備發(fā)往本機(jī)串口的數(shù)據(jù)。串口通信流程見(jiàn)圖3。

        4.3 網(wǎng)絡(luò)通信模塊

        該模塊在本地機(jī)器上實(shí)現(xiàn)TCP Server 服務(wù)器,具體來(lái)說(shuō),首先創(chuàng)建一個(gè)socket,用戶選擇綁定的本地IP 地址和端口Port,之后TCP Server 在該端口進(jìn)行Listen 監(jiān)聽(tīng),當(dāng)有客戶端連接成功后,Server 端調(diào)用accept()得到客戶端的socket,將該客戶端連接信息加入到維護(hù)列表,并創(chuàng)建一個(gè)新線程維護(hù)該客戶端會(huì)話,進(jìn)行和該客戶端間的數(shù)據(jù)收發(fā)。網(wǎng)絡(luò)通信模塊見(jiàn)圖4。

        4.4 設(shè)備管理模塊

        作為該管理軟件的核心功能模塊,該部分主要包括設(shè)備搜索,設(shè)備地址修改,設(shè)備信息獲取,設(shè)備內(nèi)容及亮度設(shè)置,設(shè)備重啟,設(shè)備升級(jí)等相關(guān)功能,根據(jù)協(xié)議進(jìn)行命令數(shù)據(jù)的組合,并將命令通過(guò)串口或網(wǎng)絡(luò)發(fā)送至設(shè)備端,從而實(shí)現(xiàn)設(shè)備的控制與管理。

        設(shè)備使用標(biāo)準(zhǔn)MODBUS 通訊協(xié)議,使用 RTU 模式。串口波特率為115200,8 位數(shù)據(jù)位,1 位停止位,無(wú)奇偶校驗(yàn)位,無(wú)流控;消息幀發(fā)送至少要以 3.5 個(gè)字符時(shí)間的停頓間隔開(kāi)始,即在傳輸完每幀的最后一個(gè)字節(jié),至少需要 3.5 個(gè)字符時(shí)間的停頓來(lái)標(biāo)定消息幀的結(jié)束。下一個(gè)新的消息幀可在此停頓后開(kāi)始,整個(gè)消息幀必須作為一連續(xù)的流傳輸。

        本設(shè)備主要操作指令說(shuō)明如表1(以獲取設(shè)備型號(hào)命令為例)。

        5 總結(jié)

        動(dòng)態(tài)交通標(biāo)志牌設(shè)備管理軟件是專為高速公路沿線動(dòng)態(tài)標(biāo)志牌設(shè)備安裝調(diào)試和后期管理維護(hù)而開(kāi)發(fā)的一款軟件,該軟件具有使用方便、管理高效等特點(diǎn),特別適合在網(wǎng)絡(luò)環(huán)境封閉、設(shè)備物理分布廣泛的環(huán)境下使用;另外本軟件基于PyQt5 開(kāi)發(fā),它結(jié)合了Python語(yǔ)言的簡(jiǎn)單高效和Qt Designer 動(dòng)態(tài)布局所見(jiàn)即所得的界面開(kāi)發(fā)方式,大大提高了軟件開(kāi)發(fā)效率,增強(qiáng)了軟件的可靠性和可修改性。

        猜你喜歡
        界面用戶設(shè)備
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        國(guó)企黨委前置研究的“四個(gè)界面”
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開(kāi)發(fā)方法研究
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        人機(jī)交互界面發(fā)展趨勢(shì)研究
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        国产对白国语对白| 亚洲精品精品日本日本| 字幕网中文字幕精品一区| 久久国语露脸国产精品电影| 人妻丝袜av中文系列先锋影音 | 亚洲日本一区二区在线观看| 亚洲国产中文字幕一区| 国产伦精品一区二区三区妓女| 久久久久久av无码免费看大片 | 国产精品一区二区三区成人| 欧美巨鞭大战丰满少妇| 日产国产精品亚洲系列| 精品亚洲少妇一区二区三区| 亚洲综合小综合中文字幕| 在线天堂av一区二区| 精品久久久久久无码人妻蜜桃 | 国产桃色在线成免费视频| 国产一区二区杨幂在线观看性色| av天堂精品久久综合网| 精品人妻无码一区二区三区蜜桃一 | 亚洲精品在线一区二区三区| 内射白浆一区二区在线观看| 亚洲中文字幕无码久久| 亚洲片在线视频| 在线精品亚洲一区二区三区| 国产精品女主播福利在线| 丰满人妻被黑人猛烈进入| 国产成人精品日本亚洲语音1| 久久中文字幕国产精品| 丰满少妇弄高潮了www| 亚洲av成人无码网天堂| 亚洲视频在线播放免费视频 | 国产成人高清在线观看视频| 午夜毛片不卡免费观看视频| 揄拍成人国产精品视频| 日本视频一区二区三区三州| 国产精品理论片在线观看| 少妇内射高潮福利炮| 国产亚洲一区二区三区夜夜骚| 亚洲最大中文字幕熟女| 尤物在线精品视频|