Browse Source

i2c_spi_buses: improve info output for external buses

sbg
Beat Küng 5 years ago
parent
commit
d3dd5e9da1
  1. 37
      platforms/common/i2c_spi_buses.cpp
  2. 2
      platforms/common/include/px4_platform_common/i2c.h
  3. 1
      platforms/common/include/px4_platform_common/i2c_spi_buses.h
  4. 2
      platforms/common/include/px4_platform_common/spi.h

37
platforms/common/i2c_spi_buses.cpp

@ -392,6 +392,19 @@ bool BusInstanceIterator::external() const @@ -392,6 +392,19 @@ bool BusInstanceIterator::external() const
}
}
int BusInstanceIterator::externalBusIndex() const
{
if (busType() == BOARD_INVALID_BUS) {
return 0;
} else if (busType() == BOARD_SPI_BUS) {
return _spi_bus_iterator.externalBusIndex();
} else {
return _i2c_bus_iterator.externalBusIndex();
}
}
I2CBusIterator::FilterType BusInstanceIterator::i2cFilter(I2CSPIBusOption bus_option)
{
switch (bus_option) {
@ -486,14 +499,28 @@ int I2CSPIDriverBase::module_start(const BusCLIArguments &cli, BusInstanceIterat @@ -486,14 +499,28 @@ int I2CSPIDriverBase::module_start(const BusCLIArguments &cli, BusInstanceIterat
// print some info that we are running
switch (iterator.busType()) {
case BOARD_I2C_BUS:
PX4_INFO_RAW("%s #%i on I2C bus %d%s\n",
instance->ItemName(), runtime_instance, iterator.bus(), iterator.external() ? " (external)" : "");
PX4_INFO_RAW("%s #%i on I2C bus %d", instance->ItemName(), runtime_instance, iterator.bus());
if (iterator.external()) {
PX4_INFO_RAW(" (external, equal to '-b %i')\n", iterator.externalBusIndex());
} else {
PX4_INFO_RAW("\n");
}
break;
case BOARD_SPI_BUS:
PX4_INFO_RAW("%s #%i on SPI bus %d (devid=0x%x)%s\n",
instance->ItemName(), runtime_instance, iterator.bus(), PX4_SPI_DEV_ID(iterator.devid()),
iterator.external() ? " (external)" : "");
PX4_INFO_RAW("%s #%i on SPI bus %d (devid=0x%x)",
instance->ItemName(), runtime_instance, iterator.bus(), PX4_SPI_DEV_ID(iterator.devid()));
if (iterator.external()) {
PX4_INFO_RAW(" (external, equal to '-b %i')\n", iterator.externalBusIndex());
} else {
PX4_INFO_RAW("\n");
}
break;
case BOARD_INVALID_BUS:

2
platforms/common/include/px4_platform_common/i2c.h

@ -89,6 +89,8 @@ public: @@ -89,6 +89,8 @@ public:
const px4_i2c_bus_t &bus() const { return px4_i2c_buses[_index]; }
int externalBusIndex() const { return _external_bus_counter; }
bool external() const { return px4_i2c_bus_external(bus()); }
private:

1
platforms/common/include/px4_platform_common/i2c_spi_buses.h

@ -153,6 +153,7 @@ public: @@ -153,6 +153,7 @@ public:
uint32_t devid() const;
spi_drdy_gpio_t DRDYGPIO() const;
bool external() const;
int externalBusIndex() const;
void addInstance(I2CSPIInstance *instance);

2
platforms/common/include/px4_platform_common/spi.h

@ -154,6 +154,8 @@ public: @@ -154,6 +154,8 @@ public:
uint32_t devid() const { return px4_spi_buses[_index].devices[_bus_device_index].devid; }
int externalBusIndex() const { return _external_bus_counter; }
bool external() const { return px4_spi_bus_external(bus()); }
private:

Loading…
Cancel
Save