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

正文內(nèi)容

基于嵌入式linux的車輛稽查系統(tǒng)設(shè)計(jì)書(shū)-在線瀏覽

2025-08-09 16:43本頁(yè)面
  

【正文】 要經(jīng)過(guò)加解密,因此需要借助加解密算法進(jìn)行數(shù)據(jù)的封轉(zhuǎn),和服務(wù)器的通信需要遵循一定的協(xié)議,這個(gè)協(xié)議是架設(shè)在TCP協(xié)議之上的應(yīng)用層協(xié)議,是本系統(tǒng)專有的。注意如果需要和服務(wù)器通信的數(shù)據(jù)一般需要加解密,而數(shù)據(jù)如果本地使用,則不需要加解密。QT/Embedded是一個(gè)為嵌入式設(shè)備上的圖形用戶接口和應(yīng)用開(kāi)發(fā)而定做的C++開(kāi)發(fā)包,它通??梢赃\(yùn)行在多種不同的處理器平臺(tái)上。Qt/Embeded可以運(yùn)行在不同的處理器上部署的Linux系統(tǒng)。這些封轉(zhuǎn)好的函數(shù)如下表所示:函數(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的長(zhǎng)度返回值:成功返回0,失敗返回1,錯(cuò)誤原因存放在result變量中 int update( char *number, char *item, int value )功能:更新數(shù)據(jù)庫(kù)車輛信息,供開(kāi)罰單使用參數(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長(zhǎng)度 返回值:成功返回0,失敗返回1,錯(cuò)誤原因存放在result變量中 void call( char *number ) 功能:撥打電話參數(shù):number存放電話號(hào)碼返回值:無(wú)void send_msg( char *number, char *buf, int len )功能:發(fā)送短消息參數(shù):number為電話號(hào)碼,buf存放要發(fā)送的信息,len為發(fā)送信息的長(zhǎng)度返回值:無(wú)int send_gps(char *buf,int *len)功能:發(fā)送GPS定位信息到服務(wù)器參數(shù):buf存放GPS定位信息,len存放buf長(zhǎng)度返回值:成功返回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為位置信息返回值:無(wú) 加解密引擎加解密算法采用標(biāo)準(zhǔn)DES算法,分別在服務(wù)器和終端實(shí)現(xiàn)。保證每個(gè)終端的加解密信息均不一樣。加解密只需要三條函數(shù) void get_key(unsigned char *key)功能:取得密鑰信息參數(shù):key存放密鑰 返回值:無(wú)void data_encrypt( unsigned char *buf,int len,unsigned char *buf2,int *len2)功能:加密數(shù)據(jù)參數(shù):buf存放需要加密的數(shù)據(jù),len存放加密數(shù)據(jù)長(zhǎng)度,buf2存放已經(jīng)加密的數(shù)據(jù),len2存放buf2長(zhǎng)度返回值:無(wú)void data_decrypt( unsigned char *buf,int len,unsigned char *buf2,int *len2)功能:解密數(shù)據(jù)參數(shù):buf存放需要解密的數(shù)據(jù),len存放解密數(shù)據(jù)長(zhǎng)度,buf2存放已經(jīng)解密的數(shù)據(jù),len2存放buf2長(zhǎng)度返回值:無(wú) GPS/GPRS通用函數(shù)除了Linux系統(tǒng)自帶的API外,本系統(tǒng)為了操作的方便,將許多功能性的操作集成在一起,設(shè)計(jì)了一些供上層使用的函數(shù),比如操作串口函數(shù),與GPRS通信函數(shù),與GPS通信函數(shù),在這里列舉了一些做為代表。本系統(tǒng)開(kāi)發(fā)的時(shí)候會(huì)用到這些函數(shù)。extern speed_t cfgetispeed (struct termios *termios_p)。extern speed_t cfgetospeed (struct termios *termios_p)。extern int cfsetispeed (struct termios *termios_p, speed_t speed)。extern int cfsetospeed (struct termios *termios_p, speed_t speed)。extern int tcdrain (int fildes)。extern int tcflow (int fildes, int action)。extern int tcflush (int fildes, int queue_selector)。extern int tcgetattr (int fildes, struct termios *termios_p)。extern int tcsendbreak (int fildes, int duration)。extern int tcsetattr (int fildes, int optional_actions, struct termios *termios_p)。define TCOON 1 // 重啟被掛起的輸出。define TCION 3 // 系統(tǒng)傳輸一個(gè)START 字符,使設(shè)備開(kāi)始向系統(tǒng)傳輸數(shù)據(jù)。define TCOFLUSH 1 // 清已寫(xiě)的數(shù)據(jù)但不傳送。清已寫(xiě)的數(shù)據(jù)但不傳送。define TCSADRAIN 1 // 改變?cè)谒幸褜?xiě)的輸出被傳輸之后發(fā)生。除了以上需要使用到的API之外,我們要需要通用的open()、close()、read()、write() 終端和服務(wù)器通信協(xié)議通過(guò)定義雙方通信協(xié)議,可以大大簡(jiǎn)化操作,減少雙方依賴性,達(dá)到通用接口的目的。首先,從socket取得TCP數(shù)據(jù),然后讀取前4字節(jié),取得數(shù)據(jù)長(zhǎng)度,再進(jìn)行解密,得出原本信息,之后根據(jù)條目數(shù)和條目?jī)?nèi)容分別進(jìn)行操作即可。看下圖。歸納如下: 標(biāo)識(shí)符宏定義含義00LOGIN登陸01NAME用戶名02PASSWD密碼………………10LG_RESULT登陸結(jié)果11LG_FAIL權(quán)限不足12LG_SUCCESS登陸成功………………20SEARCH查詢21CAR_NUMBER車牌號(hào)22PERSONAL_ID身份證23 LICENSE_ID駕照ID………………30SEARCH_RESULT查詢結(jié)果31INVALID_NUM無(wú)效車牌號(hào)32CAR_CONTENT查詢得出汽車內(nèi)容………………40UPDATE更新41ITEM1更新數(shù)據(jù)庫(kù)ITEM141ITEM2更新數(shù)據(jù)庫(kù)ITEM2………………50UPDATE_RESULT更新結(jié)果51UPDATE_SUCCESS更新成功………………60GPSGPS數(shù)據(jù)61GPS_JINGDUGPS經(jīng)度62GPS_WEIDUGPS緯度………………70OTHER其他終端信息71NAME終端用戶72TELEPHONE號(hào)碼73LOCATION位置………………80MYSELF本終端信息81IDENTITY終端標(biāo)志符號(hào) 下面是個(gè)例子,講述登陸過(guò)程如何封轉(zhuǎn)成協(xié)議包,并進(jìn)行加密和發(fā)送的,其他協(xié)議過(guò)程類似。10017401test0251234510017401test02512345最后將總共長(zhǎng)達(dá)23B的數(shù)據(jù)進(jìn)行加密,注意DES算法是8B加密的,所以需要填充到24B,然后進(jìn)行加密,加密后得出下面的的數(shù)據(jù)。服務(wù)器首先讀取前面4字節(jié),得出數(shù)據(jù)長(zhǎng)達(dá)24B,然后將24B解密,然后分別解析里面的內(nèi)容。接著讀取LOGIN內(nèi)容為17字節(jié),那么解析前面2個(gè)字節(jié),得出NAME,根據(jù)長(zhǎng)度信息,提取用戶名出來(lái),指針跳到下個(gè)ITEM開(kāi)始出,即到了PASSWD開(kāi)始處,依次解析,直到17字節(jié)解析完。如圖56。如圖57。Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡(jiǎn)稱API)構(gòu)成。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。我們使用的是J2SE體系。NetBeans是一個(gè)全功能的開(kāi)放源碼的Java IDE,可以幫助開(kāi)發(fā)人員編寫(xiě)、編譯、調(diào)試和部署Java應(yīng)用,并將版本控制和XML編輯融入其眾多功能之中。NetBeans當(dāng)前可以在So
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1