2个不稳定版本
0.6.0 | 2021年6月23日 |
---|---|
0.4.2 | 2021年6月17日 |
#2080 in 嵌入式开发
15KB
313 行
风扇控制协议 (FCP)
一个用于传输风扇控制消息的小型协议。
为资源不被默认的系统编写的。
例如,绝对没有stdlib依赖(no_std)。此crate也不假设任何类型的堆分配器;所有操作都使用堆栈,并且非常节省。
FCP不使用浮点数。微调是通过假设值是,例如,毫伏而不是伏来完成的。这样做的原因是,并非所有微控制器都配备有浮点单元。
稳定性和版本控制
任何主要版本都不是向下兼容的。
任何新的次要版本,直到1.0可能或可能不破坏向后兼容性。1.0之后的任何新的次要版本将不会破坏向后兼容性,除非版本是安全相关或关键的。
任何新的补丁版本始终是向后兼容的。
请求
SET
SET请求用于设置变量,例如操作速度百分比。
SET请求的语法是
SET <CHAR>[VALUE]
其中
- CHAR: 一个字节字符,表示要设置的目标。字母必须是小写。
- VALUE: 任何没有空格字符的ASCII编码字符串。
SET %<u8> # set speed percentage
SET v<u16> # set voltage in millivolts
SET a # let the device decide
ADJ
ADJ(调整)请求用于根据当前设置调整设备参数。ADJ请求的语法是
ADJ <CHAR><VALUE>
其中
- CHAR: 一个字节字符,表示要设置的目标。字母必须是小写。
- VALUE: 由数字组成的数值,可以是正号(
+
)或负号(-
)。
ADJ v<i16> # adjust the voltage in millivolts
ADJ %<i8> # adjust the speed percentage
GET
GET请求用于从操作设备获取各种读数,例如温度。GET请求的语法是
GET <PARAMETER>
其中
PARAMETER: 读取或设置,无空格字符的ASCII字符串。
GET volt # get current voltage in millivolts
get cfg # get if manual or auto
GET temp # get temperature in celcius
GET % # get speed percentage
GET all # get all possible readings
编码
ASCII。
连接
任何无损连接,如TCP或通过蓝牙的串行连接。
消息以分号(;
)终止。
响应
有两种响应类型
- Ok: 状态码0。
- Err: 状态码1。
响应格式是 CODE:MSG
,其中
- CODE: 状态码
- MSG: 消息字符串
示例响应
0:电压设置为3.3v