Esempio n. 1
0
int GetNode::OpenINA231()
{
    if (open_sensor(DEV_SENSOR_ARM, &sensor[SENSOR_ARM]) < 0)
        return -1;
    if (open_sensor(DEV_SENSOR_MEM, &sensor[SENSOR_MEM]) < 0)
        return -1;
    if (open_sensor(DEV_SENSOR_KFC, &sensor[SENSOR_KFC]) < 0)
        return -1;
    if (open_sensor(DEV_SENSOR_G3D, &sensor[SENSOR_G3D]) < 0)
        return -1;

    if (read_sensor_status(&sensor[SENSOR_ARM]))
        return -1;
    if (read_sensor_status(&sensor[SENSOR_MEM]))
        return -1;
    if (read_sensor_status(&sensor[SENSOR_KFC]))
        return -1;
    if (read_sensor_status(&sensor[SENSOR_G3D]))
        return -1;

    if (!sensor[SENSOR_ARM].data.enable)
        enable_sensor(&sensor[SENSOR_ARM], 1);
    if (!sensor[SENSOR_MEM].data.enable)
        enable_sensor(&sensor[SENSOR_MEM], 1);
    if (!sensor[SENSOR_KFC].data.enable)
        enable_sensor(&sensor[SENSOR_KFC], 1);
    if (!sensor[SENSOR_G3D].data.enable)
        enable_sensor(&sensor[SENSOR_G3D], 1);

    return 0;
}
/**
 * Open all the sensor device files, check their status, and enable them.
 */
static inline int open_all_sensors(energymon_odroid_ioctl* em) {
  unsigned int i;
  for (i = 0; i < SENSOR_COUNT; i++) {
    if ((em->sensor[i].fd = open(dev_sensor[i], O_RDWR)) <= 0 ||
        read_sensor_status(&em->sensor[i]) ||
        (!em->sensor[i].data.enable && set_sensor_enable(&em->sensor[i], 1))) {
      perror(dev_sensor[i]);
      return -1;
    }
  }
  return 0;
}