| commit | cad9ecf69472f03f9ece64eff5d2d94bc51bcf90 | [log] [tgz] |
|---|---|---|
| author | Jagpal Singh Gill <paligill@gmail.com> | Wed Oct 22 19:53:16 2025 -0700 |
| committer | Jagpal Singh Gill <paligill@gmail.com> | Thu Oct 23 01:21:00 2025 -0700 |
| tree | 022d16b7cbaca392244a068cf265ce129e81e056 | |
| parent | 2168bbd050af3c68d820f96054a939dda02688c6 [diff] |
rtu: implement modbus rtu inventory source service Implement phosphor-modbus-rtu inventory source service based on [1]. [1]: https://gerrit.openbmc.org/c/openbmc/docs/+/77318 Tested: Unit test passes and tested on qemu with simulated modbus server. ``` root@bmc:~# busctl tree xyz.openbmc_project.ModbusRTU └─ /xyz └─ /xyz/openbmc_project └─ /xyz/openbmc_project/inventory_source └─ /xyz/openbmc_project/inventory_source/modbus ├─ /xyz/openbmc_project/inventory_source/modbus/Heat_Exchanger_12_DevTTYUSB0 ├─ /xyz/openbmc_project/inventory_source/modbus/Heat_Exchanger_12_DevTTYUSB1 ├─ /xyz/openbmc_project/inventory_source/modbus/Reservoir_Pumping_Unit_12_DevTTYUSB0 └─ /xyz/openbmc_project/inventory_source/modbus/Reservoir_Pumping_Unit_12_DevTTYUSB1 root@bmc:~# busctl tree xyz.openbmc_project.EntityManager └─ /xyz └─ /xyz/openbmc_project ├─ /xyz/openbmc_project/EntityManager └─ /xyz/openbmc_project/inventory └─ /xyz/openbmc_project/inventory/system ├─ /xyz/openbmc_project/inventory/system/board │ └─ /xyz/openbmc_project/inventory/system/board/Ventura_Modbus │ ├─ /xyz/openbmc_project/inventory/system/board/Ventura_Modbus/DevTTYUSB0 │ ├─ /xyz/openbmc_project/inventory/system/board/Ventura_Modbus/DevTTYUSB1 │ ├─ /xyz/openbmc_project/inventory/system/board/Ventura_Modbus/Heat_Exchanger │ └─ /xyz/openbmc_project/inventory/system/board/Ventura_Modbus/Reservoir_Pumping_Unit └─ /xyz/openbmc_project/inventory/system/chassis ├─ /xyz/openbmc_project/inventory/system/chassis/Heat_Exchanger_12_DevTTYUSB0 ├─ /xyz/openbmc_project/inventory/system/chassis/Heat_Exchanger_12_DevTTYUSB1 ├─ /xyz/openbmc_project/inventory/system/chassis/Reservoir_Pumping_Unit_12_DevTTYUSB0 └─ /xyz/openbmc_project/inventory/system/chassis/Reservoir_Pumping_Unit_12_DevTTYUSB1 root@bmc:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/chassis/Heat_Exchanger_12_DevTTYUSB0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.AddObject interface - - - .AddObject method a{sv} - - xyz.openbmc_project.Inventory.Decorator.Asset interface - - - .BuildDate property s "Unknown" emits-change .Manufacturer property s "Unknown" emits-change .Model property s "Unknown" emits-change .PartNumber property s "Unknown" emits-change .SerialNumber property s "Unknown" emits-change .SparePartNumber property s "ABABABAB" emits-change xyz.openbmc_project.Inventory.Item.Chassis interface - - - .Name property s "Heat Exchanger 12 DevTTYUSB0" emits-change .Probe property s "xyz.openbmc_project.Inventory.Source.M… emits-change .Type property s "Chassis" emits-change root@bmc:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/chassis/Heat_Exchanger_12_DevTTYUSB1 NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.AddObject interface - - - .AddObject method a{sv} - - xyz.openbmc_project.Inventory.Decorator.Asset interface - - - .BuildDate property s "Unknown" emits-change .Manufacturer property s "Unknown" emits-change .Model property s "Unknown" emits-change .PartNumber property s "Unknown" emits-change .SerialNumber property s "Unknown" emits-change .SparePartNumber property s "ABABABAB" emits-change xyz.openbmc_project.Inventory.Item.Chassis interface - - - .Name property s "Heat Exchanger 12 DevTTYUSB1" emits-change .Probe property s "xyz.openbmc_project.Inventory.Source.M… emits-change .Type property s "Chassis" emits-change root@bmc:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/chassis/Reservoir_Pumping_Unit_12_DevTTYUSB0 NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.AddObject interface - - - .AddObject method a{sv} - - xyz.openbmc_project.Inventory.Decorator.Asset interface - - - .BuildDate property s "ABABABAB" emits-change .Manufacturer property s "Unknown" emits-change .Model property s "ABABABABABABABAB" emits-change .PartNumber property s "Unknown" emits-change .SerialNumber property s "ABABABABABABABAB" emits-change .SparePartNumber property s "ABABABAB" emits-change xyz.openbmc_project.Inventory.Item.Chassis interface - - - .Name property s "Reservoir Pumping Unit 12 DevTTYUSB0" emits-change .Probe property s "xyz.openbmc_project.Inventory.Source.M… emits-change .Type property s "Chassis" emits-change root@bmc:~# busctl introspect xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/chassis/Reservoir_Pumping_Unit_12_DevTTYUSB1 NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface - - - .Introspect method - s - org.freedesktop.DBus.Peer interface - - - .GetMachineId method - s - .Ping method - - - org.freedesktop.DBus.Properties interface - - - .Get method ss v - .GetAll method s a{sv} - .Set method ssv - - .PropertiesChanged signal sa{sv}as - - xyz.openbmc_project.AddObject interface - - - .AddObject method a{sv} - - xyz.openbmc_project.Inventory.Decorator.Asset interface - - - .BuildDate property s "ABABABAB" emits-change .Manufacturer property s "Unknown" emits-change .Model property s "ABABABABABABABAB" emits-change .PartNumber property s "Unknown" emits-change .SerialNumber property s "ABABABABABABABAB" emits-change .SparePartNumber property s "ABABABAB" emits-change xyz.openbmc_project.Inventory.Item.Chassis interface - - - .Name property s "Reservoir Pumping Unit 12 DevTTYUSB1" emits-change .Probe property s "xyz.openbmc_project.Inventory.Source.M… emits-change .Type property s "Chassis" emits-change ``` Change-Id: Ic0ea739de3833044c95da8164be1e2f3f8e6a063 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
phosphor-modbus provides a set of software applications to query sensors info, inventory data, firmware info of various modbus devices.
The phosphor-modbus requires phosphor-dbus-interfaces, sdbusplus and phosphor-logging.
The phosphor-modbus is built using meson.
meson build && ninja -C build