i2c_spi_buses: improve info output for external buses

This commit is contained in:
Beat Küng 2020-04-24 11:19:56 +02:00
parent d922678ea0
commit d3dd5e9da1
4 changed files with 37 additions and 5 deletions

View File

@ -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
// 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:

View File

@ -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:

View File

@ -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);

View File

@ -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: