
sensor_create(SENSOR_DS18B20):应用只需要指定传感器类型,工厂返回对应驱动指针;如果换成 NTC,只需要改参数为 SENSOR_NTC,下面 init/read 代码完全不用改,这就是接口抽象的价值。
空指针判断:工厂返回 NULL 代表硬件不支持该传感器,程序报错退出。
sensor->init():C 语言实现多态,同一个函数调用,指针是 DS18B20 就执行。 ds18b20_init,指针是 NTC 就执行 ntc_init;上层代码不用改任何初始化逻辑。
sensor->read():同理多态读取,统一返回 float 温度,业务层不用区分不同传感器的采集算法。