跳到主要内容

单位验证

OSynaptic-TX 在编码时通过 OSTX_UNIT() 宏验证单位字符串。传入无效单位时,编码函数返回 0(不发出数据包)。

OSTX_UNIT()

/* 如果 "xyz" 不是已知单位代码,编译失败 */
#define MY_UNIT OSTX_UNIT("Cel")

/* 在 pack 调用中使用 */
ostx_sensor_pack(aid, "T1", OSTX_UNIT("Cel"), tid, ts, scaled, out);

支持 _Static_assert(C11)的编译器会在编译时报错。C89 目标则回退为运行时检查,失败时返回 0。

已知单位代码(部分)

完整列表见 ostx_unit_table.h。常见类别:

温度

代码全称
Cel摄氏度
K开尔文
[degF]华氏度

湿度与气压

代码全称
Pct百分比(0–100)
kPa千帕
hPa百帕(毫巴)
Pa帕斯卡
mm[Hg]毫米汞柱

浓度与空气质量

代码全称
ppm百万分之一
ppb十亿分之一
mg/m3毫克/立方米
ug/m3微克/立方米

电气量

代码全称
V伏特
mV毫伏
A安培
mA毫安
W瓦特
Wh瓦时
kWh千瓦时
Ohm欧姆
Hz赫兹
kHz千赫兹

长度、速度、加速度

代码全称
m
cm厘米
mm毫米
m/s米/秒
km/h千米/时
m/s2米/二次方秒

光照与辐射

代码全称
lx勒克斯
uW/cm2微瓦/平方厘米
mSv毫希沃特

计数与无量纲

代码全称
1无量纲(比率)
{count}原始计数
{rpm}转/分钟

SI 前缀规则

所有 UCUM SI 前缀均被接受:

前缀符号数量级
P10¹⁵
T10¹²
G10⁹
M10⁶
k10³
h10²
d10⁻¹
c10⁻²
m10⁻³
u10⁻⁶
n10⁻⁹