在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  嵌入式/ 嵌入式芯片與java后臺(tái)如何數(shù)據(jù)交互?

嵌入式芯片與java后臺(tái)如何數(shù)據(jù)交互?

遇到一個(gè)項(xiàng)目,有一個(gè)SpringBoot的后臺(tái),終端是一個(gè)嵌入式芯片,兩者間數(shù)據(jù)交互要求是二進(jìn)制。第一次接觸這種需求,和以前與手機(jī)APP交互不一樣,不知道怎么和嵌入式芯片進(jìn)行數(shù)據(jù)交互,像傳統(tǒng)的controller里返回json數(shù)據(jù)?還是說(shuō)要用socket協(xié)議?另外,怎么將數(shù)據(jù)分包發(fā)送?希望大家給予指導(dǎo),謝謝!

回答
編輯回答
陪我終

看你的嵌入式芯片的資源情況。如果是內(nèi)存只有十幾k字節(jié)或者幾k字節(jié)的單片機(jī),使用json應(yīng)該是不行的,單json的解析器就會(huì)占用很大一部分芯片資源??尚械姆桨敢环N是自行定義協(xié)議,包括消息格式、每個(gè)字段的作用、每個(gè)消息type對(duì)應(yīng)的工鞥呢,在嵌入式c代碼里通常用struct結(jié)構(gòu)體表示一個(gè)消息,在你的后臺(tái)程序中也要保持和嵌入式程序中同樣的方法定義數(shù)據(jù)結(jié)構(gòu),通常使用TLV方式進(jìn)行定義,方便雙方解析,并且考慮日后的升級(jí)情況。還有一種方案就是用google protobuf (或者 ASN.1)這種序列化工具(庫(kù)),它可以讓你用一種特定的語(yǔ)言描述你的協(xié)議(就是后臺(tái)程序和終端要通信的各類(lèi)消息),并根據(jù)這個(gè)協(xié)議自動(dòng)生成在不同平臺(tái)下的序列化和反序列化代碼,最終達(dá)到在不同編程語(yǔ)言的程序中通信的目的。

2017年6月15日 17:19