freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于嵌入式linux的車輛稽查系統(tǒng)設(shè)計(jì)書-文庫吧資料

2024-12-01 16:32本頁面
  

【正文】 融入其眾多功能之中。 我們使用的是 J2SE 體系。這樣 Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè) Java 平臺(tái)之后, Java 應(yīng)用程序就可運(yùn)行。 Java 平臺(tái)由 Java 虛擬機(jī)( Java Virtual Machine)和 Java 應(yīng)用編程接口( Application Programming Interface、簡(jiǎn)稱 API)構(gòu)成。如圖 57。如圖 56。接著讀取 LOGIN 內(nèi)容為 17 字節(jié),那么解析前面 2 個(gè)字節(jié),得出 NAME,根據(jù)長度信息,提取用戶名出來,指針跳到下個(gè) ITEM 開始出,即到了 PASSWD 開始處,依次解析,直到 17 字節(jié)解析完。服務(wù)器首先讀取前面 4 字節(jié),得出數(shù)據(jù)長達(dá) 24B,然后將 24B 解密,然后分別解析里面的內(nèi)容。 最后將總共長達(dá) 23B 的數(shù)據(jù)進(jìn)行加密,注意 DES 算法是 8B 加密的,所以需要填充到24B,然后進(jìn)行加密,加密后得出下面的的數(shù)據(jù)。 歸納如下: 標(biāo)識(shí)符 宏定義 含義 00 LOGIN 登陸 01 NAME 用戶名 02 PASSWD 密碼 ?? ?? ?? 10 LG_RESULT 登陸結(jié)果 11 LG_FAIL 權(quán)限不足 12 LG_SUCCESS 登陸成功 ?? ?? ?? 20 SEARCH 查詢 21 CAR_NUMBER 車牌號(hào) 22 PERSONAL_ID 身 份證 23 LICENSE_ID 駕照 ID ?? ?? ?? 30 SEARCH_RESULT 查詢結(jié)果 31 INVALID_NUM 無效車牌號(hào) 32 CAR_CONTENT 查詢得出汽車內(nèi)容 ?? ?? ?? 40 UPDATE 更新 41 ITEM1 更新數(shù)據(jù)庫 ITEM1 41 ITEM2 更新數(shù)據(jù)庫 ITEM2 ?? ?? ?? 50 UPDATE_RESULT 更新結(jié)果 51 UPDATE_SUCCESS 更新成功 ?? ?? ?? 60 GPS GPS 數(shù)據(jù) 第五屆省長杯工業(yè)設(shè)計(jì)大賽 項(xiàng)目編號(hào) D00018 21 61 GPS_JINGDU GPS 經(jīng)度 62 GPS_WEIDU GPS 緯度 ?? ?? ?? 70 OTHER 其他終端信息 71 NAME 終端用戶 72 TELEPHONE 號(hào)碼 73 LOCATION 位置 ?? ?? ?? 80 MYSELF 本終端信息 81 IDENTITY 終端標(biāo)志符號(hào) 下面是個(gè)例子,講述登陸過程如何封轉(zhuǎn)成協(xié)議包,并進(jìn)行加密和發(fā)送的,其他協(xié)議過程類似。 看下圖 。 首先, 從 socket 取得 TCP 數(shù)據(jù),然后讀取前 4 字節(jié),取得數(shù)據(jù)長度,再進(jìn)行解密,得出原本信息,之后根據(jù)條目數(shù)和條目?jī)?nèi)容分別進(jìn)行操作即可。 除了以上需要使用到的 API 之外,我們要需要通用的 open()、 close()、 read()、 write() 終端和服務(wù)器通信協(xié)議 通過定義雙方通信協(xié)議,可以大大簡(jiǎn)化操作,減少雙方依賴性,達(dá)到通用接口的目的。 define TCSADRAIN 1 // 改變?cè)谒幸褜懙妮敵霰粋鬏斨蟀l(fā)生。清已寫的數(shù)據(jù)但不傳送。 define TCOFLUSH 1 // 清已寫的數(shù)據(jù)但不傳送。 define TCION 3 // 系統(tǒng)傳輸一個(gè) START 字符,使設(shè)備開始向系統(tǒng)傳輸數(shù)據(jù)。 define TCOON 1 // 重啟被掛起的輸出。 extern int tcsetattr (int fildes, int optional_actions, struct termios *termios_p)。 extern int tcsendbreak (int fildes, int duration)。 extern int tcgetattr (int fildes, struct termios *termios_p)。 extern int tcflush (int fildes, int queue_selector)。 extern int tcflow (int fildes, int action)。 extern int tcdrain (int fildes)。 extern int cfsetospeed (struct termios *termios_p, speed_t speed)。 extern int cfsetispeed (struct termios *termios_p, speed_t speed)。 extern speed_t cfgetospeed (struct termios *termios_p)。 extern speed_t cfgetispeed (struct termios *termios_p)。本系統(tǒng)開發(fā)的時(shí)候會(huì)用到這些函數(shù),這些函數(shù)是定義在 文件里面。 加解密只需要三條函數(shù) void get_key(unsigned char *key) 功能 :取得密鑰信息 參數(shù): key 存放 密鑰 返回值:無 void data_encrypt( unsigned char *buf,int len,unsigned char *buf2,int *len2) 功能:加密數(shù)據(jù) 參數(shù): buf 存放需要加密的數(shù)據(jù), len 存放加密數(shù)據(jù)長度, buf2 存放 已經(jīng)加密的數(shù)據(jù), len2存放 buf2 長度 返回值:無 void data_decrypt( unsigned char *buf,int len,unsigned char *buf2,int *len2) 功能: 解密 數(shù)據(jù) 參數(shù): buf 存放需要 解 密的數(shù)據(jù), len 存放 解 密數(shù)據(jù)長度, buf2 存放已經(jīng) 解 密的數(shù)據(jù), len2存放 buf2 長度 返回值:無 GPS/GPRS 通用函數(shù) 除了 Linux 系統(tǒng)自帶的 API 外,本系統(tǒng)為了操作的方便,將許多功能性的操作集成在一起,設(shè)計(jì)了一些供 上層 使用的函數(shù),比如操作串 口函數(shù),與 GPRS 通信函數(shù),與 GPS通信函數(shù),在這里列舉了一些做為代表 。保證每個(gè) 終端 的加解密信息均不一樣 。 這些封轉(zhuǎn)好的函數(shù)如下 表所示: 第五屆省長杯工業(yè)設(shè)計(jì)大賽 項(xiàng)目編號(hào) D00018 15 函數(shù)原型 功能描述 int login(char *name, char *passwd ) 功能: 用戶登錄 參數(shù): name 存放用戶名稱, passwd 存放密碼 返回值:成功返回 0,失敗返回 1,錯(cuò)誤原因存放在 result 變量中 int search(char *number, char *buf, int len ) 功能: 查詢車輛 參數(shù): number 存放車輛號(hào)碼, buf 存放查洵得到的數(shù)據(jù), len 存放 buf 的長度 返回值: 成功返回 0,失敗返回 1,錯(cuò)誤原因存放在 result 變量中 int update( char *number, char *item, int value ) 功能:更新 數(shù)據(jù)庫 車輛信息 ,供開罰單使用 參數(shù): number 存放車輛號(hào)碼, item 指定要更新的條目, value 是對(duì)應(yīng)的值 返回值: 成功返回 0,失敗返回 1,錯(cuò)誤原因存放在 result 變量中 int get_gps( char *buf, int *len) 功能 :取得 GPS定位信息 參數(shù): buf 存放 GPS 定位信息, len 存放 buf 長度 返回值: 成功返回 0,失敗返回 1,錯(cuò)誤原因存放在 result 變量中 void call( char *number ) 功能 :撥打電話 參數(shù): number 存放電話號(hào)碼 返回值:無 void send_msg( char *number, char *buf, int len ) 功能 :發(fā)送短消息 參數(shù): number 為電話號(hào)碼, buf 存放要發(fā)送的信息, len 為發(fā)送信息的長度 返回值:無 int send_gps(char *buf, int *len) 功能 :發(fā)送 GPS 定位信息 到服務(wù)器 參數(shù) : buf 存放 GPS 定位 信息, len 存放 buf 長度 返回值: 成功返回 0,失敗返回 1,錯(cuò)誤原因存放在 result 變量中 void get_all( void **ip, void **number, void **name, void **location ) 功能 :取得其他終端的信息 參數(shù): ip為聯(lián)網(wǎng)的終端 IP 表, number 為手機(jī)號(hào)碼表, name 為名字列表, location 為位置信息 返回值:無 第五屆省長杯工業(yè)設(shè)計(jì)大賽 項(xiàng)目編號(hào) D00018 16 加解密引擎 加解密算法采用標(biāo)準(zhǔn) DES 算法,分別在服務(wù)器和終端實(shí)現(xiàn)。 Qt/Embeded 可以運(yùn)行在不同的處理器上部署的 Linux 系統(tǒng) 。 QT/Embedded 是一個(gè)為嵌入式設(shè)備上的圖形用戶接口和應(yīng)用開發(fā)而定做的 C++開 發(fā)包,它通??梢赃\(yùn)行在多種不同的處理器平臺(tái)上。注意如果需要和服務(wù)器通信的數(shù)據(jù)一般需要加解密,而數(shù)據(jù)如果本地使用,則不需要加解密。 應(yīng)用程序與服務(wù)器的數(shù)據(jù)需要經(jīng)過加解密,因此需要借助加解密算法進(jìn)行數(shù)據(jù)的封轉(zhuǎn),和服務(wù)器的通信需要遵循一定的協(xié)議,這個(gè)協(xié)議是架設(shè)在 TCP 協(xié)議之上的應(yīng)用層協(xié)議,是本系統(tǒng)專有的。 主要完成系統(tǒng)的大部分功能,利用 Linux 系統(tǒng)調(diào)用,可以直接通過串口和 GPS、 GPRS 通信,從而完成無線上網(wǎng)、全球?qū)Ш降裙δ?,利用GSM 功能,還可以實(shí)現(xiàn)撥打電話、發(fā)送短息等等。 開源的操作系統(tǒng)和驅(qū)動(dòng)程序,為終端的開發(fā)縮短了周期。本系統(tǒng)采用嵌入式 Linux 為軟件開發(fā)平臺(tái),采用了 內(nèi)核,沿襲了主流 Linux 的絕大部分特性,是一個(gè) 完全免費(fèi)的、開放源代碼的系統(tǒng),用戶可以根據(jù)用戶自己的不同要求對(duì)操作系統(tǒng)進(jìn)行裁減,以節(jié)省不必要的開銷。 操作系統(tǒng) 隨著消費(fèi)類電子產(chǎn)品的快速發(fā)展,嵌入式操作系統(tǒng)得到了廣泛的應(yīng)用。 uboot 是德國 DENX 小組開發(fā)的用于多種嵌入式 CPU的 bootloader 程序,它可以運(yùn)行在基于 ARM、 PowerPC、 MIPS 等多種嵌入式開發(fā)板上。 通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。而應(yīng)用程序借助操作系統(tǒng),實(shí)現(xiàn)了車輛查詢、更新、撥打電話、加解密、圖形界面顯示等功能。其中〈 CR〉代表回車控制符 ,〈 LF〉 代表換行控制符。根據(jù)項(xiàng)目的實(shí)際需求 ,本設(shè)計(jì)只提取 GGA 數(shù)據(jù)。 其輸出語句采用的是 NMEA 0183 即 ASCII 格式碼,包括 GG A、 GSA、 RMC、 G
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1