3.5.7 传感器
传感器的目的是感知或检测它所处环境的特征,并提供一个相应的输出。根据被测量变的东西相关,通常输出一个电信号或者光信号。
Contiki中的传感器以下面的方式实现:
SENSORS_SENSOR (sensor, SENSOR_NAME, value, configure, status);
configure是传感器的配置方法,status是传感器的轮训状态,value是需要实现的值。传感器结构体包含了指向这些函数的指针。每个函数的参数如下:
struct sensors_sensor {
char * type;
int (* value) (int type);
int (* configure) (int type, int value);
int (* status) (int type);
};
想要更深入理解传感器内容,请参考platform/zoul/dev/adc-sensors.c。该文件实现了一个外部模拟传感器(我们将在下一节进行更深入的讨论)。
下列函数和宏用于传感器中:
SENSORS_ACTIVATE(sensor)
SENSORS_DEACTIVATE(sensor)
sensor.value(type);
- <1>使能传感器,进行典型配置,打开传感器
- <2>禁能传感器,用于节电
- <3>请求一个传感器值。因为传感器新品可能读取不同的类型,比如温度、湿度等,所以该表达式用于指定进行那种测量。