• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于PyQt的實驗室開放管理系統(tǒng)客戶端的設(shè)計與實現(xiàn)

    2022-09-01 11:33:34
    通信電源技術(shù) 2022年9期
    關(guān)鍵詞:數(shù)據(jù)類型服務(wù)器端串口

    于 倩

    (中國電子科技集團公司第五十四研究所,河北 石家莊 050000)

    0 引 言

    隨著網(wǎng)絡(luò)信息技術(shù)蓬勃發(fā)展,其使用范圍越來越廣泛,通過以互聯(lián)網(wǎng)信息技術(shù)為主導(dǎo)的綜合信息管理平臺對實驗室的各種信息實施集中管理的技術(shù)手段已經(jīng)成為一種主要的解決的渠道。實驗室是學(xué)校推行素質(zhì)教育、實施“重視實踐、激勵創(chuàng)新能力”教學(xué)模式的主要基地。由于實驗室面對中小學(xué)生對外開放,可以最大限度使用教師教學(xué)的實驗資料,拓寬中小學(xué)生的認識面,培養(yǎng)中小學(xué)生的創(chuàng)新能力和自主動手意識,因此實驗室對外開放是學(xué)校進一步提高教學(xué)質(zhì)量的主要內(nèi)容之一[1-6]。實驗室的開放管理是促進試驗室對外開放、提升對外開放效益與水平的關(guān)鍵技術(shù)手段??蒲腥藛T開展了實驗室開放管理,但各個學(xué)校開放管理都不盡相同,很多院校都設(shè)計或研發(fā)了自己的實驗室開放管理,并和其他的體系加以融合。

    1 高校實驗室管理難點

    1.1 大學(xué)試驗室種類多,試驗室儀器設(shè)備多

    為給研究生創(chuàng)造充分的實驗時間,大學(xué)通常設(shè)有大量的實驗室,同時各個實驗室都能配備足夠多的實驗器材。以南京大學(xué)軟件研究所為例,一個研究室通常有40~50個設(shè)備給本科生使用,而這樣的實驗室大約有幾十個。但是如果缺乏對實驗室開放管理的技術(shù)支持,將需要巨大的人工力量來控制實驗室的開放管理以及對儀器的維修,而且人工控制的錯誤風(fēng)險也將大大超過計算機軟件控制。

    1.2 高校實驗室使用人員身份信息復(fù)雜

    對于研究機構(gòu)或公司,其實驗室通常是關(guān)閉的,可供研究組織的內(nèi)部人員使用,并且使用的人員在一定時期內(nèi)相對穩(wěn)定。然而,大學(xué)實驗室的不同之處在于,公共實驗室通常向全校師生開放,人數(shù)眾多,而且工作人員的身份也是隨機的。由于身份不同,因此不同的實驗室工作人員使用實驗室的方式也不同。學(xué)生進入該系的研習(xí)班不收費,但教師進入其他學(xué)科的研習(xí)班必須收費。如果缺乏實驗室開放管理制度,就無法識別實驗人員的身份,無法了解實驗人員所使用實驗設(shè)施的情況,可能會影響到實驗室的正常使用。

    1.3 高校實驗室對外開放時間各不相同

    科研單位和專業(yè)的科研機構(gòu)一般有規(guī)定的辦公時間。大學(xué)實驗室的開放時間通常都比較復(fù)雜,一般本科生與碩士使用的實驗室開放時間不同,而一些單次實驗持續(xù)時間比較長的實驗室開放時間也與其他研究所不同。

    2 服務(wù)器端概述

    實驗室的系統(tǒng)分為服務(wù)器端和客戶端兩個部門,系統(tǒng)全部數(shù)據(jù)處理都存放在客戶端,同時由客戶端承擔(dān)全部的處理。系統(tǒng)服務(wù)器端管理與終端用戶的通信,包括提供從服務(wù)器端獲取的信息和修改內(nèi)容。系統(tǒng)客戶端與服務(wù)器端之間使用自定義的協(xié)議集實現(xiàn)通信。

    客戶端必須承擔(dān)對全部信息的保存和管理,并且只有客戶端才能進行更新信息。

    Spring能夠用來控制業(yè)務(wù)對象,因為利用Spring所提出的控制反轉(zhuǎn)(Inversion Of Control,IOC)容器,能夠直接把目標(biāo)間的依賴性問題交由Spring加以控制,從而減少了硬解碼所導(dǎo)致的過程耦合。由于利用Spring,開發(fā)者能夠不用再為單例模型類、屬性文件分析等很基礎(chǔ)的要求撰寫程序,從而能夠更加注重于上層應(yīng)用研究。Spring并不排斥所有優(yōu)秀的公開源代碼框架,能夠減少所有框架的應(yīng)用難度。Spring實現(xiàn)了對所有優(yōu)秀架構(gòu)的直接支援,并且能夠和MINA與Hibernate良好的協(xié)調(diào)運作。Hibernate實現(xiàn)了數(shù)據(jù)的持久化服務(wù),采用Hibernate,開發(fā)人員在運用數(shù)據(jù)庫系統(tǒng)時只要求操作面向?qū)ο?,而放棄了?shù)據(jù)庫系統(tǒng)中心的思想,并引入了完整的面向?qū)ο笏枷搿?/p>

    服務(wù)器端過程如圖1所示,以卡片掃描功能為例進行詳細說明。首先,服務(wù)器端發(fā)送卡片掃描消息。服務(wù)器端收到消息后,MINA對消息進行編碼,并分析消息表單和包含的信息。此傳入信息是卡號,然后由先前注冊的消息處理功能處理消息。在消息處理模式下,可以使用Spring對象池中的適當(dāng)對象算法編輯卡號,以進行Intranet分析和翻譯。此時,對象必須讀取慣性數(shù)據(jù)庫中的信息,以確定卡號是否顯示在數(shù)據(jù)庫中、是否報告為丟失。如果操作方面沒有足夠的信息,將返回對象彈簧箱中的數(shù)據(jù),并返回相應(yīng)的結(jié)果,在根據(jù)計算結(jié)果對數(shù)據(jù)進行編碼的同時進行挖掘,并將數(shù)據(jù)返回給客戶。

    圖1 服務(wù)器端處理過程示意

    3 系統(tǒng)客戶端的實現(xiàn)

    3.1 硬件控制層的實現(xiàn)

    3.1.1 網(wǎng)絡(luò)功能實現(xiàn)

    網(wǎng)絡(luò)功能主要依賴于PyQt IV的QtNetwork模塊,該模塊為開發(fā)人員所建立的可移植性應(yīng)用程式提供了許多類。該模塊既給出了Qhttp和Qftp等類型來實現(xiàn)更通用的應(yīng)用層協(xié)議定義;又提供了QtcpSocket、QtcpServer、QudpSocket等類型,實現(xiàn)更底層的應(yīng)用定義;還包括了QNetworkRequest、QnetworkReply和qnetwork Access Manager,為更高級別的應(yīng)用編程操作而提供,可以同時支援各種協(xié)議。

    在實際開發(fā)中,主要使用本模塊中的Qtcp Socket類。網(wǎng)絡(luò)模塊中維護了QtcpSocket類的一個示例,用于網(wǎng)絡(luò)操作。

    3.1.2 串口功能實現(xiàn)

    串口模塊主要用來控制PLT-485模塊,而PLT-485模塊則通過電力線載波控制,完成了對實驗儀器供電的管理。主機使用串口對PLT-485控制器發(fā)送操作命令的讀取工作。

    PySerial封裝了串口的操作,并可以根據(jù)本地平臺類型(Windows、Linux、BSD、Jython或IronPython)選擇后端串口應(yīng)用程序界面(Application Program Interface,API)。

    當(dāng)向串口寫入信息后,先確定串口能否開啟,若不能開機則啟動串口,并在寫入信息過程中捕捉異常值,如寫入錯誤則返回-1。最終不管寫入成功還是錯誤,在所有輸出結(jié)束后都必須關(guān)掉串口。

    3.2 服務(wù)層的實現(xiàn)

    3.2.1 數(shù)據(jù)幀編解碼實現(xiàn)

    數(shù)據(jù)幀是計算機與PLT-485系統(tǒng)實現(xiàn)交流的基礎(chǔ)數(shù)據(jù)類型,通過數(shù)據(jù)幀格式,可以確定出數(shù)據(jù)幀數(shù)據(jù)結(jié)構(gòu)。在編碼過程中首先按照對數(shù)據(jù)幀實例中各個屬性的設(shè)定,分別在數(shù)據(jù)幀字節(jié)上填寫對應(yīng)數(shù)據(jù),然后再進行校驗和比較,并返回已經(jīng)編碼好的數(shù)據(jù)字符串。解碼流程也與此相似,只是流程方向相反。

    3.2.2 消息編解碼實現(xiàn)

    消息的具體解碼型后,再根據(jù)消息類型分為2種方法,首先使用MessageHandler類分析出了消息的具體類型,其次再使用更具體的消息編碼函數(shù),最后采用Python語言中的Struct模型完成了消息解碼運算。Struct模型還可以作為Python字符串與原始二進制文件互相轉(zhuǎn)化。在Struct模型中,既通過格式字符串說明了轉(zhuǎn)換規(guī)則,也通過格式化字符串描述了在轉(zhuǎn)換時的文本字段的位置與內(nèi)容排布。

    當(dāng)解碼過程開始時,若消息長度低于8Byte,則表示消息不完全。如果消息類型未注冊,則無法解密。如果消息格式正確,首先分析消息數(shù)據(jù)的數(shù)據(jù)類型,然后通過Struct的解包功能完成從原始二進制信息到Python數(shù)據(jù)類型的轉(zhuǎn)換。消息格式字符串通常為“LIS”,第一個“L”表示模塊使用網(wǎng)絡(luò)字節(jié)順序執(zhí)行轉(zhuǎn)換過程?!癓IS”是指排列在消息數(shù)據(jù)塊中的2個整數(shù)字符串,它們最初是二進制信息。處理程序是一個信息字典。鍵是描述消息類型的整數(shù),該值表示為消息數(shù)據(jù)類型的示例。在分析消息數(shù)據(jù)類型之后,根據(jù)特定消息數(shù)據(jù)類型的對應(yīng)實例進一步說明文件。

    3.3 用戶界面層的實現(xiàn)

    用戶界面維護包含用戶界面的創(chuàng)建和控件的管理。

    卡有關(guān)的功能或與硬件有關(guān)的功能,都必須封裝在硬件層。但是,目前使用的磁卡系統(tǒng)的開發(fā)人員并不能實現(xiàn)這些設(shè)置。由于磁卡讀卡器利用USB端口可以直接連到電腦,而讀卡器在讀取卡片信息時會透過鍵盤事件的方式把卡號傳送至應(yīng)用程序,因此就等于使用者可以透過鼠標(biāo)直接輸入卡號,卡的功能在邏輯上并沒有完全和用戶功能分離。

    3.4 數(shù)據(jù)庫設(shè)計

    在對比了目前主要的數(shù)據(jù)庫管理系統(tǒng)以后,考慮選用MySQL,其特點如下。

    (1)MySQL是開放式源代碼數(shù)據(jù)庫系統(tǒng),具備很好的可移植功能,并在各個編譯平臺通過了穩(wěn)定能力試驗;

    (2)MySQL可以充分運用CPU資源,運用多線程編程,支撐多用戶、多任務(wù)。

    (3)MySQL通過如Java數(shù)據(jù)庫連接(Java Database Connectioity,JDBC)、開放數(shù)據(jù)庫連接(Open Datebase Connectivity,ODBC)或者TCP/IP等多種形式完成數(shù)據(jù)庫系統(tǒng)網(wǎng)站鏈接,便于程式設(shè)計。

    (4)MySQL有Navicat等相似的繪圖工具,便于使用者對數(shù)據(jù)庫信息系統(tǒng)管理、優(yōu)化、信息檢索等應(yīng)用。

    (5) MySQL為各種主流編程語言,如C、C++、Ruby、Java和Python等,開通了API端口,便于程序設(shè)計。

    (6) MySQL軟件系統(tǒng)小巧、特性強大、安裝方便,可以同步管理上千萬條實時記錄。

    (7) MySQL支援 Linux、Mac OS、Windows等各種操作系統(tǒng),并最終選定了 MySQL作為實驗室管理系統(tǒng)的主要數(shù)據(jù)庫系統(tǒng)。

    4 結(jié) 論

    綜上所述,本文的分析主要利用了實驗室開放系統(tǒng)的優(yōu)點。但經(jīng)過對比當(dāng)時市場上已有的實驗室開源操作系統(tǒng),操作系統(tǒng)必須具備高功能、可擴展性和通信穩(wěn)定性。系統(tǒng)使用Python編程語言開發(fā),并采用了PyQt作為圖形用戶界面架構(gòu),以便于進行拓展功能。而電源管理使用了電力線載波控制,既不需要另外的控制線,還可以直接和現(xiàn)有的供電線路系統(tǒng)集成,以減少部署成本。

    猜你喜歡
    數(shù)據(jù)類型服務(wù)器端串口
    詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
    淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
    如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
    淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
    成功(2018年10期)2018-03-26 02:56:14
    USB接口的多串口數(shù)據(jù)并行接收方法探索
    基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
    地礦測繪(2015年3期)2015-12-22 06:27:26
    在Windows中安裝OpenVPN
    基于并行控制的FPGA多串口拓展實現(xiàn)
    網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
    基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗證
    成武县| 吉首市| 外汇| 金阳县| 靖边县| 乌拉特前旗| 福泉市| 堆龙德庆县| 边坝县| 馆陶县| 泰来县| 镇宁| 汕尾市| 班戈县| 越西县| 连江县| 长泰县| 原阳县| 梓潼县| 兴业县| 麟游县| 罗甸县| 长葛市| 蕲春县| 南木林县| 镇远县| 会同县| 新丰县| 资溪县| 林西县| 江安县| 怀宁县| 察哈| 淅川县| 开阳县| 溧阳市| 聂拉木县| 梨树县| 吉首市| 平罗县| 杭州市|