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>请求一个传感器值。因为传感器新品可能读取不同的类型,比如温度、湿度等,所以该表达式用于指定进行那种测量。