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 } }
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 } }
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 } }