Esempio n. 1
0
void baro_bmp_event(void) {

  bmp085_event(&baro_bmp);

  if (baro_bmp.data_available) {

    float tmp = baro_bmp.pressure / 101325.0; // pressure at sea level
    tmp = pow(tmp, 0.190295);
    baro_bmp_alt = 44330 * (1.0 - tmp);

    float pressure = (float)baro_bmp.pressure;
    AbiSendMsgBARO_ABS(BARO_BMP_SENDER_ID, &pressure);
    baro_bmp.data_available = FALSE;

#ifdef SENSOR_SYNC_SEND
    DOWNLINK_SEND_BMP_STATUS(DefaultChannel, DefaultDevice, &baro_bmp.up,
                             &baro_bmp.ut, &baro_bmp.pressure,
                             &baro_bmp.temperature);
#else
    RunOnceEvery(10, DOWNLINK_SEND_BMP_STATUS(DefaultChannel, DefaultDevice,
                                              &baro_bmp.up, &baro_bmp.ut,
                                              &baro_bmp.pressure,
                                              &baro_bmp.temperature));
#endif
  }
}
Esempio n. 2
0
void bmp_baro_event(void)
{
  bmp085_event(&baro_bmp085);

  if (baro_bmp085.data_available) {
    float pressure = (float)baro_bmp085.pressure;
    AbiSendMsgBARO_ABS(BARO_BOARD_SENDER_ID, &pressure);
    baro_bmp085.data_available = FALSE;
#ifdef BARO_LED
    RunOnceEvery(10, LED_TOGGLE(BARO_LED));
#endif
  }
}
Esempio n. 3
0
void baro_event(void) {
  bmp085_event(&baro_bmp085);

  if (baro_bmp085.data_available) {
    float pressure = (float)baro_bmp085.pressure;
    AbiSendMsgBARO_ABS(BARO_BOARD_SENDER_ID, &pressure);
    float temp = baro_bmp085.temperature / 10.0f;
    AbiSendMsgTEMPERATURE(BARO_BOARD_SENDER_ID, &temp);
    baro_bmp085.data_available = FALSE;
#ifdef BARO_LED
    RunOnceEvery(10,LED_TOGGLE(BARO_LED));
#endif
  }
}