| #
7184805a
|
| 16-Oct-2025 |
Jagpal Singh Gill <paligill@gmail.com> |
rtu: add read status register and event support
Add support to read the status registers and generate the appropriate events.
Tested: Unit Test - ``` > meson test -t 10 -C builddir/ --print-errorlo
rtu: add read status register and event support
Add support to read the status registers and generate the appropriate events.
Tested: Unit Test - ``` > meson test -t 10 -C builddir/ --print-errorlogs --wrapper="valgrind --error-exitcode=1" test_events ninja: Entering directory `/host/repos/Modbus/phosphor-modbus/builddir' ninja: no work to do. 1/1 test_events OK 9.69s
Ok: 1 Fail: 0 ```
Tested on Qemu - ``` Apr 03 15:41:52 ventura phosphor-modbus-rtu[1654]: OPENBMC_MESSAGE_ID={"xyz.openbmc_project.Sensor.SensorFailure":{"SENSOR_NAME":"/xyz/openbmc_project/sensors/RPU_Coolant_Outlet_Thermometer_Status","_SOURCE":{"COLUMN":73,"FILE":"../git/common/ev ents.cpp","FUNCTION":"sdbusplus::async::task<> phosphor::modbus::events::Events::generateSensorFailureEvent(sdbusplus::message::object_path, bool)","LINE":95,"PID":1654}}} ... Apr 03 15:41:52 ventura phosphor-modbus-rtu[1654]: OPENBMC_MESSAGE_ID={"xyz.openbmc_project.Sensor.Threshold.ReadingCritical":{"READING_VALUE":1670.6000000000001,"SENSOR_NAME":"/xyz/openbmc_project/sensors/RPU_Coolant_Outlet_Temp_C","UNITS":"xyz .openbmc_project.Sensor.Value.Unit.DegreesC","_SOURCE":{"COLUMN":67,"FILE":"../git/common/events.cpp","FUNCTION":"sdbusplus::async::task<> phosphor::modbus::events::Events::generateSensorReadingEvent(sdbusplus::message::object_path, phosphor::modbus::events::EventLevel, double, sdbusplus::common::xyz::openbmc_project::sensor::Value::Unit, bool)","LINE":48,"PID":1654}}} ```
Change-Id: Icd78f22cf07798d06916cc077ec3f8bfac9ee8d3 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
| #
e92aba45
|
| 16-Oct-2025 |
Jagpal Singh Gill <paligill@gmail.com> |
rtu: implement modbus sensor read
Read the modbus device config from the Entity Manager configuration and create the sensor interfaces for related sensor register config.
Tested: Added new Unit tes
rtu: implement modbus sensor read
Read the modbus device config from the Entity Manager configuration and create the sensor interfaces for related sensor register config.
Tested: Added new Unit test named test_sensors - ``` > meson test -t 10 -C builddir/ --print-errorlogs --wrapper="valgrind --error-exitcode=1" test_sensors ninja: Entering directory `/host/repos/Modbus/phosphor-modbus/builddir' [2/2] Linking target tests/test_sensors 1/1 test_sensors OK 13.98s
Ok: 1 Fail: 0 ```
Tested on Qemu using Mock Modbus Device - ``` root@ventura:~# busctl tree xyz.openbmc_project.ModbusRTU └─ /xyz └─ /xyz/openbmc_project ├─ /xyz/openbmc_project/inventory_source │ ├─ /xyz/openbmc_project/inventory_source/Heat_Exchanger_12_DevTTYUSB0 │ ├─ /xyz/openbmc_project/inventory_source/Heat_Exchanger_12_DevTTYUSB1 │ ├─ /xyz/openbmc_project/inventory_source/Reservoir_Pumping_Unit_12_DevTTYUSB0 │ └─ /xyz/openbmc_project/inventory_source/Reservoir_Pumping_Unit_12_DevTTYUSB1 └─ /xyz/openbmc_project/sensors └─ /xyz/openbmc_project/sensors/temperature ├─ /xyz/openbmc_project/sensors/temperature/Reservoir_Pumping_Unit_12_DevTTYUSB0_RPU_Coolant_Inlet_Temp_C ├─ /xyz/openbmc_project/sensors/temperature/Reservoir_Pumping_Unit_12_DevTTYUSB0_RPU_Coolant_Outlet_Temp_C ├─ /xyz/openbmc_project/sensors/temperature/Reservoir_Pumping_Unit_12_DevTTYUSB1_RPU_Coolant_Inlet_Temp_C └─ /xyz/openbmc_project/sensors/temperature/Reservoir_Pumping_Unit_12_DevTTYUSB1_RPU_Coolant_Outlet_Temp_C
busctl introspect xyz.openbmc_project.ModbusRTU /xyz/openbmc_project/sensors/temperature/Reservoir_Pumping_Unit_12_DevTTYUSB1_RPU_Coolant_Outlet_Temp_C 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.Sensor.Value interface - - - .MaxValue property d nan emits-change writable .MinValue property d nan emits-change writable .Unit property s "xyz.openbmc_project.Sensor.Value.Unit.… emits-change writable .Value property d 1670.6 emits-change writable ```
Change-Id: I1368e8df5999b5cee9ac19d185ee110a9ecc3021 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
show more ...
|
| #
cad9ecf6
|
| 22-Oct-2025 |
Jagpal Singh Gill <paligill@gmail.com> |
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 pas
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>
show more ...
|