102 virtual bool transfer(
const uint8_t *send, uint32_t send_len,
103 uint8_t *recv, uint32_t recv_len) = 0;
116 return transfer(&first_reg, 1, recv, recv_len);
127 uint8_t buf[2] = { reg, val };
131 return transfer(buf,
sizeof(buf),
nullptr, 0);
156 bool read(uint8_t *recv, uint32_t recv_len)
158 return transfer(
nullptr, 0, recv, recv_len);
static uint32_t make_bus_id(enum BusType bus_type, uint8_t bus, uint8_t address, uint8_t devtype)
virtual bool unregister_callback(PeriodicHandle h)
FUNCTOR_TYPEDEF(PeriodicCb, void)
static uint32_t change_bus_id(uint32_t old_id, uint8_t devtype)
virtual PeriodicHandle register_periodic_callback(uint32_t period_usec, PeriodicCb)=0
uint32_t get_bus_id(void) const
void set_device_bus(uint8_t bus)
virtual AP_HAL::Semaphore * get_semaphore()=0
virtual void set_retries(uint8_t retries)
uint8_t get_bus_address(void) const
virtual void register_completion_callback(AP_HAL::Proc proc)
uint32_t get_bus_id_devtype(uint8_t devtype)
struct DeviceStructure devid_s
uint8_t bus_num(void) const
bool setup_checked_registers(uint8_t num_regs, uint8_t frequency=10)
Device(enum BusType type)
struct AP_HAL::Device::@38 _checked
void set_device_type(uint8_t devtype)
virtual bool set_speed(Speed speed)=0
virtual void register_completion_callback(AP_HAL::MemberProc proc)
enum BusType bus_type(void) const
virtual bool adjust_periodic_callback(PeriodicHandle h, uint32_t period_usec)=0
virtual bool set_chip_select(bool set)
virtual bool transfer(const uint8_t *send, uint32_t send_len, uint8_t *recv, uint32_t recv_len)=0
void set_checked_register(uint8_t reg, uint8_t val)
virtual void set_address(uint8_t address)
void set_read_flag(uint8_t flag)
bool check_next_register(void)
bool read_registers(uint8_t first_reg, uint8_t *recv, uint32_t recv_len)
void uint32_t uint32_t uint32_t flag
bool read(uint8_t *recv, uint32_t recv_len)
void set_device_address(uint8_t address)
bool write_register(uint8_t reg, uint8_t val, bool checked=false)