前阵子写一个了概念验证项目,因为是概念验证嘛,用了最简单直接的方式,然后放到设备里面就给用户了,谁知道程序出了点小问题,结果就要用户那边提供远程方式,通过用户的电脑去修改设备,很麻烦。所以呢,这是一个教训。
现在手头上写的程序就以远程控制优先了,因为设备是使用MQTT的,首先在MQTT上完成了远程功能:
- 列出目录
- 比较文件
- 上传文件
- 下载文件
- 程序内部信息报告
- 热更新
MQTT的特点是:
- 消息式,比HTTP的无状态更松散,所以消息关联要自己加
- 最大消息限制,文件传输要限制消息大小,超过限制会失败
- 消息可能会被失败,从而导致接收方(订阅方)乱序
因为这些问题,设备发送文件的时候做了速度限制,以减少失败。电脑端没做限制,因为C#比C++慢?
后面准备做的是把web服务做上去,提供一个直连控制设备的标准途径,还计划做个串口控制的,这其实都是很基本的,做产品一开始就应该做的。
(这里是结束)