mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-27 17:43:34 +08:00
drivers: use updated I2C SPI driver interface
This commit is contained in:
@@ -38,13 +38,14 @@ static constexpr int16_t combine(uint8_t msb, uint8_t lsb)
|
||||
return (msb << 8u) | lsb;
|
||||
}
|
||||
|
||||
PAW3902::PAW3902(I2CSPIBusOption bus_option, int bus, int devid, int bus_frequency, spi_mode_e spi_mode,
|
||||
spi_drdy_gpio_t drdy_gpio, float yaw_rotation_degrees) :
|
||||
SPI(DRV_FLOW_DEVTYPE_PAW3902, MODULE_NAME, bus, devid, spi_mode, bus_frequency),
|
||||
I2CSPIDriver(MODULE_NAME, px4::device_bus_to_wq(get_device_id()), bus_option, bus),
|
||||
_drdy_gpio(drdy_gpio)
|
||||
PAW3902::PAW3902(const I2CSPIDriverConfig &config) :
|
||||
SPI(config),
|
||||
I2CSPIDriver(config),
|
||||
_drdy_gpio(config.drdy_gpio)
|
||||
{
|
||||
if (PX4_ISFINITE(yaw_rotation_degrees)) {
|
||||
float yaw_rotation_degrees = (float)config.custom1;
|
||||
|
||||
if (yaw_rotation_degrees >= 0.f) {
|
||||
PX4_INFO("using yaw rotation %.3f degrees (%.3f radians)",
|
||||
(double)yaw_rotation_degrees, (double)math::radians(yaw_rotation_degrees));
|
||||
|
||||
|
||||
@@ -62,12 +62,9 @@ using namespace PixArt_PAW3902JF;
|
||||
class PAW3902 : public device::SPI, public I2CSPIDriver<PAW3902>
|
||||
{
|
||||
public:
|
||||
PAW3902(I2CSPIBusOption bus_option, int bus, int devid, int bus_frequency, spi_mode_e spi_mode,
|
||||
spi_drdy_gpio_t drdy_gpio, float yaw_rotation_degrees = NAN);
|
||||
PAW3902(const I2CSPIDriverConfig &config);
|
||||
virtual ~PAW3902();
|
||||
|
||||
static I2CSPIDriverBase *instantiate(const BusCLIArguments &cli, const BusInstanceIterator &iterator,
|
||||
int runtime_instance);
|
||||
static void print_usage();
|
||||
|
||||
int init() override;
|
||||
|
||||
@@ -43,31 +43,6 @@ void PAW3902::print_usage()
|
||||
PRINT_MODULE_USAGE_DEFAULT_COMMANDS();
|
||||
}
|
||||
|
||||
I2CSPIDriverBase *PAW3902::instantiate(const BusCLIArguments &cli, const BusInstanceIterator &iterator,
|
||||
int runtime_instance)
|
||||
{
|
||||
float yaw_rotation_degrees = NAN;
|
||||
|
||||
if (cli.custom1 >= 0) {
|
||||
yaw_rotation_degrees = cli.custom1;
|
||||
}
|
||||
|
||||
PAW3902 *instance = new PAW3902(iterator.configuredBusOption(), iterator.bus(), iterator.devid(), cli.bus_frequency,
|
||||
cli.spi_mode, iterator.DRDYGPIO(), yaw_rotation_degrees);
|
||||
|
||||
if (!instance) {
|
||||
PX4_ERR("alloc failed");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (OK != instance->init()) {
|
||||
delete instance;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
extern "C" __EXPORT int paw3902_main(int argc, char *argv[])
|
||||
{
|
||||
int ch = 0;
|
||||
|
||||
Reference in New Issue
Block a user