| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
For groups within set speed events where the property values of the
group may not signal its action to occur, an optional timer may be added
to the event. This timer is configured as a repeating timer on the
interval provided where upon timer expiration, the event's action is
run.
Change-Id: I4cbe8a0ab1b734bfc7828706a6515af7f6d78b52
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The factor parameter is used to correctly determine the increase or
decrease speed delta based on sensor inputs that have a scale. To get
the net speed delta change, the factor is applied to the difference in
sensor value and the defined state at which a speed change should be
requested.
Change-Id: I2aaa8f6b294b38d1f38238593dd851c3a205eb7a
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
For each group in an event, subscribe to the interfacesAdded signals in
the case where the member(s) of a group may or may not exist when
initialized.
Additionally, updated to use the propertiesChanged function to remove
repetitive property change subscription lines generated.
Change-Id: I52b0cd839383ebb90e93a81b5bac02ee7c4f44b2
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
| |
Update getting a property value from the zone's cache to throw an
exception when not found. Handle these exceptions appropriately for each
action where it gets each property value of a group.
Change-Id: Icbc0b04f492d3680de77dbe3f27cabf7504ce6b4
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set speed events are now allowed to have preconditions defined within
the event where those preconditions must be met before the set speed
event is enabled and active. The supported precondition added is against
a list of groups and their properties matching a given value.
The parser generates a precondition with the same layout as a set speed
event where the event is nested as the last parameter to the
precondition function. Having the set speed event as the last input
parameter to precondition functions is required.
Resolves openbmc/openbmc#1835
Change-Id: I7a247e7eb2d6b31ba9a60da1bc321a35edda9b24
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
| |
Allows the complete removal of a set speed event from the zone. This is
done when any precondition defined for the event to be active is not
met any longer.
Change-Id: Idbec357f76f0fd7db9107e8c9d3e00461872c528
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
| |
The property state check precondition validates that each given property
matches the defined value. When all the precondition groups' property
states match, the given set speed event is initialized and activated
allowing the zone speeds to be active controlled.
Change-Id: Ic16a0e1fc584c6fa695e354fa80fb1993002ffc7
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set speed events can not subscribe to InterfaceAdded signals for
properties that are created after fan control initializes the event. Fan
control subscribes to property changed signals for all events upon
startup where any properties that do not exist are unable to be
subscribed to and be notified when their property changes. Therefore,
subscribing to the InterfacesAdded signals for properties as well allows
any property defined within a set speed event that may not exist upon
starting the fan control application get added or updated when the
interface it resides on is added.
When a subscribed InterfacesAdded signal is caught, the same setProperty
handler function will be used to add the property value for the object
path, interface, and property name defined to be subscribed to for
property change signals.
Change-Id: If6fe97288140b83e2e2d735fdf61d52de1ec2e88
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Any defined preconditions for a set speed event must be satisfied prior
to configuring the event parameters for fan control. These preconditions
will accept a list of group entries that include the value the group's
property must be to have the precondition met for that group. Once all
preconditions are met, the set speed event will be initialized and
become active.
Change-Id: Ia5555be55c5937c891af527bea63da1546655b2f
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
|
|
|
|
|
|
|
|
| |
Replace static systemd match callback wrappers with lamba
methods.
Change-Id: Ib8471478824d87483a60f527d29aa2d35ccb833f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I96ed7de07acfc864c497a0130c3e5afab579d21d
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
| |
TachSensor uses the this pointer as the systemd callback
context for signal callbacks, which doesn't work with
move semantics.
Change-Id: I5e58fec9a7edfc457103d8a36f6076d90246f4f0
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Don't count sensors that don't exist as nonfunctional. Let some
other application decide if missing sensors are a problem or not.
Change-Id: Ie3d438c92df16bfd86ddc86db8a9dd143bf2cfb0
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Remove getService from tach_sensor as it is no longer used.
Change-Id: I568afb502379e05e85685d279033ab198c3cc91f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Replace the implementation of readProperty with a call to the
common property accessor in sdbusplus.hpp.
Change-Id: Ic4ba75bad7458a99f3e29c9235e1a54ae62286fe
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Overload the wrapper methods in sdbusplus.hpp for clients
that already have a bus connection.
Change-Id: I662385e6afe52179293ccbd41212d208e34bfbc5
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ibce6f79d4f4efb4a1605afc2958dd543f54ae726
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I72f801067ff09c91c53d32bf5ebb66fed3ec4dfc
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Allow a device path to be configured.
Change-Id: I2eabd71747b124eae96738d1332f58b96ece6dc9
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Do not allow missing tach sensors to abort the program.
Instead, assume the fan is not spinning.
Change-Id: Idc923b9c57b4d180aa16f0aa4933c65e7e4a2d42
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Add support for the anyof yaml keyword.
Change-Id: Ib28ca8ef9959cec29cb2d15a0bf758668375895f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Add a bitwise logical or redundancy policy implementation
(fan is present if any sensor indicates as such).
Change-Id: I1d161478a4a6fe9d5690a385703e41c6fff9c81c
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
| |
Include a reference to the sensor changing state when sensor
implementations ping the policy object.
This allows policy logic based on multiple sensors, simultaneously.
Change-Id: I44cf00c7ecd220d0cc99e51ca6093bac6da7343c
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Add a basic comparison operator for presence sensors.
Change-Id: Ib147fd24f6e9ea1daf5f2b0b71943e0b4c96a8b7
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ie0635bc28fcd1a2fd96764674e15c71f1dcbe51a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ic3390ba18d6f029fc16aee7492d51ac5f49bf2c0
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I1d0a8e7d4c442beb271c83d5ef6be3ca69c7c115
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
| |
Switch the main application logic to the output produced by
the new parser previously.
Remove unused code.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: If8b262bd80fd0f0135aeea55e578fb3c7f44339a
|
|
|
|
|
|
|
| |
Invoke the new parser during build.
Change-Id: I3a3c8c227a79e6f80a051c5e1d3a9a2b7f4e9656
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Adopt an easy on the tongue acronym similar to other projects.
Add a robust parser with support for sensors and policies.
Sensors: gpio, tach
Policies: fallback
Add an example yaml file.
Change-Id: I9158a0ce2a08ef6b7bb3f5d659ea0e0433af5b96
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a fallback redundancy implementation of the RedundancyPolicy
interface.
The fallback policy associates multiple PresenceSensor instances
to a single fan, and "falls-back" on secondary sensor implementations
when the primary sensor cannot see the fan.
Change-Id: I6468d77d97b8916b3ff33bcd0cd28a102d1aaba1
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a gpio presence implementation of the PresenceSensor
interface.
The gpio sensor simply maps the on off state of a gpio
directly to the xyz.openbmc_project.Inventory.Item
Present property.
Change-Id: I071dd475bebb15372edb59506352746c20542eff
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new fan speed (tach) presence implementation for the new
PresenceSensor interface.
This fan tach sensor behaves mostly like the existing one, with
the addition of support for multiple tach sensors for the
single PresenceSensor instance, and implementation of the
PresenceSensor start and stop interfaces.
Change-Id: I535a3e2c78ef0f06f10b6f4cda9a7e2d0e9c11db
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a redundancy policy interface class. Redundancy policies
introduce the concept of multiple presence sensors for a given
fan. A redundancy model implementation determines how the
distinct sensors making up the redundancy set are controlled
and how their feedbacks determine the overall fan presence state
reflected in the inventory.
Change-Id: Ibb5f71b3189dbb253bb669691e8016cda83a6ebb
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prepare to extend the fan presence model to include
sensors of other types with a presence sensor interface
class.
Presence sensors can be both event driven or polled. Provide
start and stop for the former and present for the latter.
Change-Id: Ia1b91a5e30e27fbe66c6f075e5e5ce620dac997e
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
| |
Add utility wrappers for reading/writing
xyz.openbmc_project.Inventory.Item.Present.
Change-Id: I9d6bb776e56b67b9cac1f991790886ec8105d4b1
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Add a sample/test ev event monitor program for evdevpp.
Change-Id: I46dcc47b67b377a1abd79ceef3bc28dbf269d6f2
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ib9d2e5cee2b9c1e28eb08c3c85f36f448160c16f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Iff27168588ee0767902801e6df3c6745a643ac9a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Avoid sdevent::event::Event reference proliferation.
Change-Id: I5c3de11e902cd9e61fdaca8f06c73d329bf4d293
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I5f3054720e9c48248351c398b58f98f499799a0a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: I23843493e8f2c43ed50cdf1ad5def66a2f29dec3
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Add a wrapper for sd_event_exit.
Change-Id: Ie08a74cb388e8441683fbf90902cbcb463aa9e6f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
| |
Change-Id: Ifadee2bb8788be87e759d1f0be875f7047a2f37e
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During the coding and testing of this application there was some
miscommunication on the jumper position for a Witherspoon system. The
system was jumpered for Air when intended to be jumpered for the Water
cooled position. Further examination of the documentation and the jumper
settings on systems found that the logic was reversed. This change
should correct the problem and report the correct cooling properties.
Resolves openbmc/openbmc#2041
Change-Id: I7e25bd72342fde40df1fec8f6a1a444eac401f09
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
|
|
|
|
|
|
|
|
|
| |
When a fan gets set to nonfunctional, it is useful
to know how fast the rotor was actually going and
what the expected speed was.
Change-Id: I760d6fa7d193038f9740d241bf4d4d0039020f64
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
| |
If the control/fan_zone_defs.cpp is removed, an attempt to rebuild from
the phosphor-fan-presence top directory will fail due to that file being
missing.
These changes fix that so that 'make' will redo the configure step.
Change-Id: Ia774677ec2e3e62c9ba6939f2bfac63d64613886
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
|
|
|
|
|
| |
Change-Id: I651338de2d07b9fae105e3225ffd08f2088a4518
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
|
|
|
|
|
|
|
|
| |
Add an alias to cut down on typing when using properties
changed signal callbacks.
Change-Id: I494d58006cbc136fc2f1d9395039a4535922f35e
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
|
|
|
|
|
|
|
| |
Avoid asking the mapper for the Target interface on sensors
that do not have it.
Change-Id: I43f61c98291cc15d7daf43d2b01c6b7fa4edfa62
|