遇到一个项目,有一个SpringBoot的后台,终端是一个嵌入式芯片,两者间数据交互要求是二进制。第一次接触这种需求,和以前与手机APP交互不一样,不知道怎么和嵌入式芯片进行数据交互,像传统的controller里返回json数据?还是说要用socket协议?另外,怎么将数据分包发送?希望大家给予指导,谢谢!
遇到一个项目,有一个SpringBoot的后台,终端是一个嵌入式芯片,两者间数据交互要求是二进制。第一次接触这种需求,和以前与手机APP交互不一样,不知道怎么和嵌入式芯片进行数据交互,像传统的controller里返回json数据?还是说要用socket协议?另外,怎么将数据分包发送?希望大家给予指导,谢谢!
3 回答3.7k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
2 回答1.8k 阅读
1 回答796 阅读✓ 已解决
1 回答1.6k 阅读
2k 阅读
看你的嵌入式芯片的资源情况。如果是内存只有十几k字节或者几k字节的单片机,使用json应该是不行的,单json的解析器就会占用很大一部分芯片资源。可行的方案一种是自行定义协议,包括消息格式、每个字段的作用、每个消息type对应的工鞥呢,在嵌入式c代码里通常用struct结构体表示一个消息,在你的后台程序中也要保持和嵌入式程序中同样的方法定义数据结构,通常使用TLV方式进行定义,方便双方解析,并且考虑日后的升级情况。还有一种方案就是用google protobuf (或者 ASN.1)这种序列化工具(库),它可以让你用一种特定的语言描述你的协议(就是后台程序和终端要通信的各类消息),并根据这个协议自动生成在不同平台下的序列化和反序列化代码,最终达到在不同编程语言的程序中通信的目的。