PMW3901::~PMW3901() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); }
HMC5883::~HMC5883() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) delete[] _reports; // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_buffer_overflows); }
PX4FLOW::~PX4FLOW() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_buffer_overflows); }
BMI160::~BMI160() { /* make sure we are truly inactive */ stop(); /* delete the gyro subdriver */ delete _gyro; /* free any existing reports */ if (_accel_reports != nullptr) { delete _accel_reports; } if (_gyro_reports != nullptr) { delete _gyro_reports; } if (_accel_class_instance != -1) { unregister_class_devname(ACCEL_BASE_DEVICE_PATH, _accel_class_instance); } /* delete the perf counter */ perf_free(_sample_perf); perf_free(_accel_reads); perf_free(_gyro_reads); perf_free(_bad_transfers); perf_free(_bad_registers); perf_free(_good_transfers); perf_free(_reset_retries); perf_free(_duplicates); }
UavcanNode::~UavcanNode() { fw_server(Stop); if (_task != -1) { /* tell the task we want it to go away */ _task_should_exit = true; unsigned i = 10; do { /* wait 5ms - it should wake every 10ms or so worst-case */ usleep(5000); /* if we have given up, kill it */ if (--i == 0) { task_delete(_task); break; } } while (_task != -1); } /* clean up the alternate device node */ // unregister_driver(PWM_OUTPUT_DEVICE_PATH); ::close(_armed_sub); // Removing the sensor bridges auto br = _sensor_bridges.getHead(); while (br != nullptr) { auto next = br->getSibling(); delete br; br = next; } _instance = nullptr; perf_free(_perfcnt_node_spin_elapsed); perf_free(_perfcnt_esc_mixer_output_elapsed); perf_free(_perfcnt_esc_mixer_total_elapsed); pthread_mutex_destroy(&_node_mutex); sem_destroy(&_server_command_sem); }
HMC5883::~HMC5883() { /* make sure we are truly inactive */ stop(); if (_reports != nullptr) delete _reports; if (_class_instance != -1) unregister_class_devname(MAG_DEVICE_PATH, _class_instance); // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_buffer_overflows); }
MPU9250_mag::~MPU9250_mag() { if (_mag_class_instance != -1) { unregister_class_devname(MAG_BASE_DEVICE_PATH, _mag_class_instance); } if (_mag_reports != nullptr) { delete _mag_reports; } perf_free(_mag_reads); perf_free(_mag_errors); perf_free(_mag_overruns); perf_free(_mag_overflows); perf_free(_mag_duplicates); }
SF0X::~SF0X() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } if (_class_instance != -1) { unregister_class_devname(RANGE_FINDER_BASE_DEVICE_PATH, _class_instance); } perf_free(_sample_perf); perf_free(_comms_errors); }
LidarLitePWM::~LidarLitePWM() { stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } if (_class_instance != -1) { unregister_class_devname(RANGE_FINDER_BASE_DEVICE_PATH, _class_instance); } /* free perf counters */ perf_free(_sample_perf); perf_free(_sensor_zero_resets); }
L3GD20::~L3GD20() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) delete _reports; if (_class_instance != -1) unregister_class_devname(GYRO_DEVICE_PATH, _class_instance); /* delete the perf counter */ perf_free(_sample_perf); perf_free(_reschedules); perf_free(_errors); }
LSM303D::~LSM303D() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_accel_reports != nullptr) delete _accel_reports; if (_mag_reports != nullptr) delete _mag_reports; delete _mag; /* delete the perf counter */ perf_free(_accel_sample_perf); perf_free(_mag_sample_perf); }
Airspeed::~Airspeed() { /* make sure we are truly inactive */ stop(); if (_class_instance != -1) unregister_class_devname(AIRSPEED_DEVICE_PATH, _class_instance); /* free any existing reports */ if (_reports != nullptr) delete _reports; // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_buffer_overflows); }
AirspeedSim::~AirspeedSim() { /* make sure we are truly inactive */ stop(); if (_class_instance != -1) { unregister_class_devname(AIRSPEED_BASE_DEVICE_PATH, _class_instance); } /* free any existing reports */ if (_reports != nullptr) { delete _reports; } // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); }
PX4IO_serial::~PX4IO_serial() { if (_tx_dma != nullptr) { stm32_dmastop(_tx_dma); stm32_dmafree(_tx_dma); } if (_rx_dma != nullptr) { stm32_dmastop(_rx_dma); stm32_dmafree(_rx_dma); } /* reset the UART */ rCR1 = 0; rCR2 = 0; rCR3 = 0; /* detach our interrupt handler */ up_disable_irq(PX4IO_SERIAL_VECTOR); irq_detach(PX4IO_SERIAL_VECTOR); /* restore the GPIOs */ stm32_unconfiggpio(PX4IO_SERIAL_TX_GPIO); stm32_unconfiggpio(PX4IO_SERIAL_RX_GPIO); /* and kill our semaphores */ sem_destroy(&_completion_semaphore); sem_destroy(&_bus_semaphore); perf_free(_pc_txns); perf_free(_pc_dmasetup); perf_free(_pc_retries); perf_free(_pc_timeouts); perf_free(_pc_crcerrs); perf_free(_pc_dmaerrs); perf_free(_pc_protoerrs); perf_free(_pc_uerrs); perf_free(_pc_idle); perf_free(_pc_badidle); if (g_interface == this) { g_interface = nullptr; } }
void logbuffer_free(struct logbuffer_s *lb) { if (lb->data) { free(lb->data); lb->write_ptr = 0; lb->read_ptr = 0; lb->data = NULL; perf_free(lb->perf_dropped); } }
MB12XX::~MB12XX() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } if (_class_instance != -1) { unregister_class_devname(RANGE_FINDER_DEVICE_PATH, _class_instance); } // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_buffer_overflows); }
QMC5883::~QMC5883() { /* make sure we are truly inactive */ stop(); if (_reports != nullptr) { delete _reports; } if (_class_instance != -1) { unregister_class_devname(MAG_BASE_DEVICE_PATH, _class_instance); } // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_range_errors); perf_free(_conf_errors); }
LidarLiteI2C::~LidarLiteI2C() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } if (_class_instance != -1) { unregister_class_devname(RANGE_FINDER_BASE_DEVICE_PATH, _class_instance); } // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_sensor_resets); perf_free(_sensor_zero_resets); }
LPS25H::~LPS25H() { /* make sure we are truly inactive */ stop(); if (_class_instance != -1) { unregister_class_devname(BARO_BASE_DEVICE_PATH, _class_instance); } if (_reports != nullptr) { delete _reports; } // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_buffer_overflows); delete _interface; }
FXAS21002C::~FXAS21002C() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } if (_class_instance != -1) { unregister_class_devname(GYRO_BASE_DEVICE_PATH, _class_instance); } /* delete the perf counter */ perf_free(_sample_perf); perf_free(_errors); perf_free(_bad_registers); perf_free(_duplicates); }
L3GD20::~L3GD20() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) delete _reports; /* delete the perf counter */ perf_free(_sample_perf); }
SF1XX::~SF1XX() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != nullptr) { delete _reports; } if (_distance_sensor_topic != nullptr) { orb_unadvertise(_distance_sensor_topic); } if (_class_instance != -1) { unregister_class_devname(RANGE_FINDER_BASE_DEVICE_PATH, _class_instance); } /* free perf counters */ perf_free(_sample_perf); perf_free(_comms_errors); }
BAROSIM::~BAROSIM() { /* make sure we are truly inactive */ stop_cycle(); if (_class_instance != -1) { unregister_class_devname(get_devname(), _class_instance); } /* free any existing reports */ if (_reports != nullptr) { delete _reports; } // free perf counters perf_free(_sample_perf); perf_free(_measure_perf); perf_free(_comms_errors); perf_free(_buffer_overflows); delete _interface; }
leddar_one::~leddar_one() { stop(); free((char *)_serial_port); if (_fd > -1) { ::close(_fd); } if (_reports) { delete _reports; } if (_topic) { orb_unadvertise(_topic); } perf_free(_sample_perf); perf_free(_collect_timeout_perf); perf_free(_comm_error); }
LIS3MDL::~LIS3MDL() { /* make sure we are truly inactive */ stop(); if (_mag_topic != nullptr) { orb_unadvertise(_mag_topic); } if (_reports != nullptr) { delete _reports; } if (_class_instance != -1) { unregister_class_devname(MAG_BASE_DEVICE_PATH, _class_instance); } // free perf counters perf_free(_sample_perf); perf_free(_comms_errors); perf_free(_range_errors); perf_free(_conf_errors); }
LSM303D::~LSM303D() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_accel_reports != nullptr) delete _accel_reports; if (_mag_reports != nullptr) delete _mag_reports; if (_class_instance != -1) unregister_class_devname(ACCEL_DEVICE_PATH, _class_instance); delete _mag; /* delete the perf counter */ perf_free(_accel_sample_perf); perf_free(_mag_sample_perf); perf_free(_reg1_resets); perf_free(_reg7_resets); perf_free(_extreme_values); }
IIS328DQ::~IIS328DQ() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_reports != NULL) { ringbuf_deinit(_reports); vPortFree(_reports); } if (_class_instance != -1) unregister_class_devname(ACCEL_BASE_DEVICE_PATH, _class_instance); spi_deregister_node(&iis328dq_spi); /* delete the perf counter */ perf_free(_sample_perf); perf_free(_errors); perf_free(_bad_registers); perf_free(_bad_values); perf_free(_duplicates); }
BMI055::~BMI055() { /* delete the perf counter */ perf_free(_sample_perf); perf_free(_bad_transfers); perf_free(_bad_registers); perf_free(_good_transfers); perf_free(_reset_retries); perf_free(_duplicates); }
BMI055_gyro::~BMI055_gyro() { /* make sure we are truly inactive */ stop(); /* free any existing reports */ if (_gyro_reports != nullptr) { delete _gyro_reports; } if (_gyro_class_instance != -1) { unregister_class_devname(GYRO_BASE_DEVICE_PATH, _gyro_class_instance); } /* delete the perf counter */ perf_free(_gyro_reads); }
MPU9250::~MPU9250() { /* make sure we are truly inactive */ stop(); _call_interval = 0; if (!_magnetometer_only) { orb_unadvertise(_accel_topic); orb_unadvertise(_gyro->_gyro_topic); } /* delete the accel subdriver */ delete _accel; /* delete the gyro subdriver */ delete _gyro; /* delete the magnetometer subdriver */ delete _mag; /* free any existing reports */ if (_accel_reports != nullptr) { delete _accel_reports; } if (_gyro_reports != nullptr) { delete _gyro_reports; } /* delete the perf counter */ perf_free(_sample_perf); perf_free(_accel_reads); perf_free(_gyro_reads); perf_free(_bad_transfers); perf_free(_bad_registers); perf_free(_good_transfers); perf_free(_reset_retries); perf_free(_duplicates); }