PCA9685::PCA9685(int bus, uint8_t address) : I2C("pca9685", PCA9685_DEVICE_PATH, bus, address, 100000), _mode(IOX_MODE_OFF), _running(false), _i2cpwm_interval(SEC2TICK(1.0f / 60.0f)), _should_run(false), _comms_errors(perf_alloc(PC_COUNT, "actuator_controls_1_comms_errors")), _control_subs{-1}, _poll_fds_num(0), _armed_sub(-1), _servo_armed(false), _mixers(nullptr), _groups_required(0), _groups_subscribed(0), _mode_on_initialized(false) { _control_topics[0] = ORB_ID(actuator_controls_0); _control_topics[1] = ORB_ID(actuator_controls_1); _control_topics[2] = ORB_ID(actuator_controls_2); _control_topics[3] = ORB_ID(actuator_controls_3); memset(&_work, 0, sizeof(_work)); memset(_msg, 0, sizeof(_msg)); memset(_controls, 0, sizeof(_controls)); memset(_poll_fds, 0, sizeof(_poll_fds)); memset(_outputs, 0, sizeof(_outputs)); memset(_rates, 0, sizeof(_rates)); }
PCA9685::PCA9685(int bus, uint8_t address) : I2C("pca9685", PCA9685_DEVICE_PATH, bus, address, 100000), _mode(IOX_MODE_OFF), _running(false), _i2cpwm_interval(SEC2TICK(1.0f/60.0f)), _should_run(false), _comms_errors(perf_alloc(PC_COUNT, "actuator_controls_2_comms_errors")), _actuator_controls_sub(-1), _actuator_controls(), _mode_on_initialized(false) { memset(&_work, 0, sizeof(_work)); memset(_msg, 0, sizeof(_msg)); memset(_current_values, 0, sizeof(_current_values)); }