int UavcanBarometerBridge::init() { int res = device::CDev::init(); if (res < 0) { return res; } /* allocate basic report buffers */ _reports = new ringbuffer::RingBuffer(2, sizeof(baro_report)); if (_reports == nullptr) { return -1; } res = _sub_air_pressure_data.start(AirPressureCbBinder(this, &UavcanBarometerBridge::air_pressure_sub_cb)); if (res < 0) { DEVICE_LOG("failed to start uavcan sub: %d", res); return res; } res = _sub_air_temperature_data.start(AirTemperatureCbBinder(this, &UavcanBarometerBridge::air_temperature_sub_cb)); if (res < 0) { DEVICE_LOG("failed to start uavcan sub: %d", res); return res; } return 0; }
int UavcanBarometerBridge::init() { int res = device::CDev::init(); if (res < 0) { return res; } res = _sub_air_pressure_data.start(AirPressureCbBinder(this, &UavcanBarometerBridge::air_pressure_sub_cb)); if (res < 0) { DEVICE_LOG("failed to start uavcan sub: %d", res); return res; } res = _sub_air_temperature_data.start(AirTemperatureCbBinder(this, &UavcanBarometerBridge::air_temperature_sub_cb)); if (res < 0) { DEVICE_LOG("failed to start uavcan sub: %d", res); return res; } return 0; }