亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創(chuàng)信息技術Android雙應用進程Demo程序設計

英創(chuàng)信息技術 ? 來源:英創(chuàng)信息技術 ? 作者:英創(chuàng)信息技術 ? 2020-02-06 11:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Android是移動設備的主流操作系統(tǒng),近年來越來越多的工業(yè)領域的客戶開始關注基于Android操作系統(tǒng)的設備在工控領域的應用。鑒于Android是基于Linux內核的事實,我們發(fā)展了一種以雙應用進程為特色的Android工控應用方案,并在ESM6802工控主板上加以實現(xiàn)。具體說來,就是在Linux平臺上運行一個直接操作硬件接口的控制通訊管理進程,為保證運行效率,該進程采用C/C++語言編寫(以下簡稱C進程或控制進程);另一方面在Android平臺采用標準Java語言編寫一個人機界面進程(以下簡稱Java進程)。底層的控制進程并不依賴與上層的Java進程而獨立運行,兩個進程之間通過本地IP進行通訊,控制進程處于服務器偵聽模式,Java進程則為客戶端模式。本方案的主要優(yōu)點是客戶可以直接繼承已有的現(xiàn)成應用程序作為底層控制進程的基礎,僅僅增加標準的Socket偵聽功能,即可快速完成新的底層應用程序的設計。而界面的Java程序,由于不再涉及具體的工控硬件接口,屬于單純的Android程序,編程難度也大大降低。

設計Android雙應用進程Demo程序的目的就是驗證“雙應用進程”Android工控應用方案的可行性,同時起到一個拋磚引玉的作用。本設計文檔將具體講解設計思路,約束通信協(xié)議和接口。

本文PDF下載:Android雙應用進程工控方案(二)——Android雙應用進程Demo程序設計

1、總體描述

總體要求如下:

●采用C/S(客戶端/服務端)模式,通過socket連接,通信需要自定義通信協(xié)議

●客戶端使用Java語言開發(fā),主要是人機交互,查詢以及簡單的設置功能

●服務端使用C/C++語言開發(fā),主要是各個功能模塊的業(yè)務邏輯正常運行,以及接收處理客戶端的人機交互請求

●服務端各個功能模塊的業(yè)務邏輯部分始終正常運行,客戶端連接與否,不影響各個模塊的工作

●客戶端接入后,固定周期向服務端發(fā)出刷新數據請求,服務端響應后,客戶端僅刷新有改變的UI部件

圖1C/S工作模式示意圖

如圖1所示,Android開機后,服務端C/C++程序自動運行,此時整個控制系統(tǒng)已經運轉起來,各個功能模塊下的設備都已進入正常工作模式。這里以GPIO和串口設備作為示例,其中GPIO模擬開關狀態(tài)變量,串口模擬通信設備。server模塊監(jiān)聽client的連接,當有client接入后,響應client的請求,將GPIO狀態(tài)、串口的數據統(tǒng)計信息,按照自定義的通信協(xié)議封裝成協(xié)議包,通過socket發(fā)送給client。如果沒有client接入,或者client接入斷開,各個功能模塊依然正常工作。也就是說,服務端C/C++程序完全可以在沒有客戶端的情況下,自動運轉各個功能模塊;客戶端的接入,主要是為了方便人為監(jiān)控。

2、模擬業(yè)務描述

在上一節(jié)的描述下,我們模擬某個控制系統(tǒng)(控制進程)的實際控制設備如下:

●設備1:兩個GPIO,其中GPIO0作為警報輸入,GPIO1作為消防輸出??刂七M程啟動后一直監(jiān)聽GPIO0,當GPIO0輸入高電平時,控制進程設置GPIO1輸出低電平;當GPIO0輸入低電平時,GPIO1輸出高電平

●設備2:1個串口設備,控制進程開啟后,串口設備周期性自動發(fā)送固定字符串,接收線程一直開啟

在Android的人機界面進程(Java進程)中,需要做的有:

●查詢并顯示GPIO0和GPIO1的狀態(tài)

●查詢并顯示串口設備的發(fā)送/接收計數值、底層串口的自動發(fā)送周期值

●設置底層串口的自動發(fā)送周期

●清零底層串口的發(fā)送/接收計數值

3、自定義通信協(xié)議

客戶端與服務端之間通過socket連接通信,由于socket流傳輸是沒有邊界概念的,可能存在“分包”或“黏包”的情況,這就要求用戶自定義通信協(xié)議,用以從socket字節(jié)流中提取出完整的通信包,解析此通信包,完成通信。

根據模擬業(yè)務描述,在此Demo程序中,采用下圖所示的通信包結構:

圖2自定義通信協(xié)議包

Head:包頭,2字節(jié),固定0xFF0x02

Len:包剩余(ID+Type+Data+Csum)長度,4字節(jié),范圍0~1018(1024-2-4)

ID:設備標號,1字節(jié),表明此包來自于客戶端還是服務端(可以不用)

‘S’-- 服務端

‘C’-- 客戶端

Type:數據類型,1字節(jié),表明此包的具體指令目的

‘q’-- 來自客戶端,查詢所有參數(gpio狀態(tài)、串口發(fā)送/接收字節(jié)數、自動發(fā)送周期)

‘r’-- 來自服務端,應答客戶端‘q’查詢

‘s’-- 來自客戶端,設置底層串口自動發(fā)送的周期

‘c’-- 來自客戶端,底層串口發(fā)送接收計數清零

Data:數據內容,長度不定字節(jié),長度范圍0~1015字節(jié)

Type=‘q’時,data沒有意義,長度可以為0

Type=‘r’時,data長度14字節(jié),gpio0狀態(tài)(1字節(jié))+gpio1狀態(tài)(1字節(jié))+串口rx計數(4字節(jié))+ 串口tx計數(4字節(jié))+串口自動發(fā)送周期(4字節(jié))

Type=‘s’時,data長度4字節(jié),表示設置底層串口自動發(fā)送的周期

Type=‘c’時,data沒有意義,長度可以為0

Csum:校驗和,1字節(jié),從ID到Data結束的校驗和(反碼),接收端ID+Type+data+Csum=0即為正確接收

4、服務端C/C++程序

服務端C/C++程序是“雙應用進程”模式中的控制進程,其主要功能有兩個方面:一是能夠自動運轉各個功能模塊,控制完成主要的業(yè)務邏輯;二是監(jiān)聽客戶端連接,解析響應客戶端請求。

4.1自動運轉各個功能模塊

在此demo程序中,功能模塊主要是gpio和串口,gpio模擬開關量,串口模擬通信設備。因此,創(chuàng)建MyGPIO和MySerial兩個類。下面簡單介紹下這兩個類的public接口。

圖3MyGPIO類

MyGPIO的init接口主要是打開/dev/esm6800_gpio這個設備節(jié)點。run接口主要是新建線程開啟GPIO相關的業(yè)務工作,這里假設GPIO0作為輸入,GPIO1作為輸出,當檢測到GPIO0為低電平狀態(tài)時,GPIO1輸出高電平;反之,當GPIO0位高電平時,GPIO1輸出低電平。stop接口為停止GPIO業(yè)務,退出GPIO業(yè)務線程。getGPIOStateByIndex接口可以讀取gpio-index的輸入/輸出電平狀態(tài)。

同樣,對于MySerial類,也提供init、run、stop接口,另外提供了getCountInfo接口,讀取傳送計數信息,clearCount接口對計數清零。run接口開啟串口業(yè)務線程,這里模擬業(yè)務為周期性的向串口發(fā)送數據(接收線程一直接收串口數據),因此還提供了一個設置周期的公共接口setPeriod和查詢接口getPeriod。

圖4MySerial類部分公共接口

4.2監(jiān)聽客戶端連接,解析響應客戶端請求

此部分主要對應圖1中的Server模塊,為此創(chuàng)建一個MyServer類,其頭文件如圖5所示。其中,registerDev接口用于向MyServer類注冊設備,主要是將設備類(MyGPIO、MySerial)的指針傳遞給MyServer類,當MyServer類解析通信包后,可以通過設備類的指針調用其公共接口,查詢/設置相關參數。run函數開啟服務器,監(jiān)聽本地網絡(127.0.0.1)的默認端口9733,進入accept等待連接狀態(tài)。

圖5MyServer類

4.3main函數工作流程

在main函數中,首先將GPIO設備和串口設備注冊到Server模塊中;然后初始化并運行GPIO和串口的具體工作任務;最后運行Server模塊,開始監(jiān)聽本地端口9733,如果有連接到來,就建立新連接,解析來自客戶端的協(xié)議幀,根據協(xié)議棧中的信息,調用GPIO、串口設備的公共接口得到響應信息,響應客戶端請求。main函數的流程如下圖所示:

圖6main函數

5、客戶端Android Java程序

圖7客戶端初始化

圖8客戶端連接本地端口

客戶端啟動后,新建socket連接本地IP地址的默認端口(127.0.0.1:9733),如圖7和圖8所示。建立連接后,以固定周期向服務器發(fā)送查詢請求,然后刷新界面。

圖9客戶端界面(正常狀態(tài))

圖10客戶端界面(報警狀態(tài))

如圖9和圖10所示,“警報輸入狀態(tài)”和“消防栓輸出狀態(tài)”分別讀取的GPIO0和GPIO1的狀態(tài),當GPIO0輸入高電平時(報警輸入狀態(tài)OFF),服務端自動控制GPIO1輸出低電平(消防栓輸出狀態(tài)OFF);反之,當GPIO0輸入低電平時(報警輸入狀態(tài)ON),服務端控制GPIO1輸出高電平(消防栓輸出狀態(tài)ON)。

“串口設備”模擬通信設備,這里僅獲取了發(fā)送和接收計數值。為了模擬通信設備的自動獨立運行,我們讓串口周期自動發(fā)送字符串,而這個周期值可以在點擊“串口設備”彈出的對話框中的設置。如圖11所示,在彈出的對話框中,還可以選擇清零底層串口的發(fā)送/接收計數值。這樣就加入了人為的控制。

最后,“設置”項主要設置UI進程相關的屬性,比如訪問服務器獲取信息的“刷新周期”等。

圖11串口設置對話框

6、總結

“雙應用進程”方案設計的應用程序,在原來的C/C++程序基礎上,添加一個server模塊,將工作設備(GPIO、串口)的運轉信息通過本地網絡(127.0.0.1)的socket傳送給了Android UI端顯示;同時,server模塊又能接收UI端的人機交互命令,并設置到對應工作設備。這其中,主要工作是抽象出server與各工作設備間的通信方式,以及server與UI端的自定義通信協(xié)議及解析。此方案充分利用了原有的C/C++程序,加快了底層業(yè)務邏輯的開發(fā)進度;同時,也降低了Java端界面開發(fā)的難度。

本文在server與各工作設備間的通信方式,以及server與UI端的自定義通信協(xié)議及解析方面只是針對第二節(jié)中簡單模擬業(yè)務而設定的,其目的在于驗證方案的可行性,起到拋磚引玉的作用。如果用戶對此方案感興趣,英創(chuàng)會提供此demo程序的源碼,供客戶參考。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6101

    瀏覽量

    36303
  • 安卓
    +關注

    關注

    5

    文章

    2154

    瀏覽量

    58689
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    DEKRA德凱成為沙特通信和信息技術設備技術法規(guī)認證機構

    近日,DEKRA德凱成功獲得沙特標準、計量和質量組織(SASO)認可,正式成為沙特通信和信息技術設備技術法規(guī)(Technical Regulation for Communications
    的頭像 發(fā)表于 07-15 14:27 ?195次閱讀

    科普|信創(chuàng)是什么?一文讀懂“信息技術應用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術應用創(chuàng)新”,是國家推動IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術層面的創(chuàng)新,更承載著保障國家網絡安全、推動產業(yè)升級和實現(xiàn)數字主權的重任。簡單來
    的頭像 發(fā)表于 06-13 10:06 ?1980次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術</b>應用創(chuàng)新”戰(zhàn)略

    龍芯中科榮獲2024年度信息技術應用創(chuàng)新工作委員會卓越貢獻成員單位

    近日,中國電子工業(yè)標準化技術協(xié)會信息技術應用創(chuàng)新工作委員會(以下簡稱“信創(chuàng)工委會”)在北京召開2024年度工作總結座談會暨信創(chuàng)“大比武”總結大會。中國工程院院士、信
    的頭像 發(fā)表于 01-23 10:50 ?703次閱讀

    芯盛智能榮獲2024年信息技術應用創(chuàng)新工作委員會卓越貢獻成員單位

    日前,中國電子工業(yè)標準化技術協(xié)會信息技術應用創(chuàng)新工作委員會(以下簡稱 “信創(chuàng)工委會”)2024 年度總結座談會于北京隆重舉行。此次會議對在信創(chuàng)工作中作出突出貢獻的成員單位予以表彰。江蘇
    的頭像 發(fā)表于 01-20 09:56 ?639次閱讀

    飛騰助力首屆教育信息技術應用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術協(xié)會主辦,教育部教育管理信息中心教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標準化技術協(xié)會信創(chuàng)工委會支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?516次閱讀

    有方科技參編的信息技術團體標準發(fā)布

    近日,有方科技參編的《信息技術產品供應鏈成熟度 共性指標 第1部分:企業(yè)背景評價》《信息技術產品供應鏈成熟度 共性指標 第2部分:技術掌控評價》《信息技術產品供應鏈成熟度 共性指標 第
    的頭像 發(fā)表于 12-23 10:44 ?603次閱讀

    龍芯中科助力2024首屆教育信息技術應用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術應用創(chuàng)新大賽在北京航空航天大學成功舉辦。本次大賽由中國教育技術協(xié)會主辦,教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標準化技術協(xié)會信
    的頭像 發(fā)表于 12-19 17:02 ?571次閱讀

    深入解析Linux程序進程

    什么是程序 一組計算機能識別和執(zhí)行的指令,用于指導計算機執(zhí)行特定任務或解決特定問題。程序通常由代碼、數據和資源文件組成,涉及語法、算法和數據結構。為二進制文件 什么是進程 是一個具有獨立功能的
    的頭像 發(fā)表于 12-18 11:01 ?479次閱讀
    深入解析Linux<b class='flag-5'>程序</b>與<b class='flag-5'>進程</b>

    程序進程的區(qū)別

    比如: 開發(fā)寫的代碼我們稱為程序,那么將開發(fā)的代碼運行起來。我們稱為進程。
    的頭像 發(fā)表于 11-25 16:03 ?1235次閱讀
    <b class='flag-5'>程序</b>和<b class='flag-5'>進程</b>的區(qū)別

    中科創(chuàng)達榮獲2024年軟件和信息技術服務優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術服務競爭力百強企業(yè)”以及“2024年軟件和信息技術服務優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?970次閱讀

    第5章 MATLAB程序設計.ppt

    第5章 MATLAB程序設計
    發(fā)表于 10-24 16:40 ?1次下載

    android系統(tǒng)使用appe播放audio資源,相關進程被kill之后appe無法再次打開的原因?

    android系統(tǒng)使用appe播放audio資源,相關進程被kill之后appe無法再次打開,原因是appe資源被占用。 在Ti提供的demo中,通過 signal(SIGKILL
    發(fā)表于 10-23 07:56

    【軟件干貨】Android應用進程如何保活?

    Android應用程序中,為了保證應用的正常運行和穩(wěn)定性,有時需要對應用進程進行保活。以下是一些實現(xiàn)進程?;畹姆椒ǎ?/div>
    的頭像 發(fā)表于 10-15 17:05 ?1210次閱讀
    【軟件干貨】<b class='flag-5'>Android</b>應用<b class='flag-5'>進程</b>如何?;??

    創(chuàng)國產化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術應用創(chuàng)新產業(yè)的簡稱,于2016年“信創(chuàng)工委會”(信息技術應用創(chuàng)新工作委員會)提出,目的就是要推動我們國內軟硬件關鍵技術的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?880次閱讀

    梯度科技入選2023年信息技術應用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網絡安全產業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術應用創(chuàng)新發(fā)展大會暨解決方案應用推廣大會。會上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?761次閱讀