|
LCC Fusion Project 1.0
LCC Automation
|
Version of the ServoConfiguredConsumer that can handle many GPIO output pins with two events each. More...
#include <ServoConfiguredConsumer.h>


Public Types | |
| typedef ServoCardConfig | CardConfig_type |
| typedef ServoConfig | LineGroupConfig_type |
| typedef ServoLineConfig | LineConfig_type |
Public Member Functions | |
| bool | ensureUniqueI2cOffset (uint8_t cardIndex, uint8_t bus, uint8_t offset) |
Public Attributes | |
| union I2cCardHelper::EventUserArgsUnion | userArgs |
Protected Member Functions | |
| void | drive_pin (uint8_t card, uint8_t pin, bool set) override |
| void | _do_unregister () |
| Unregisters this event handler from the global registry. | |
| void | handle_identify_consumer (const openlcb::EventRegistryEntry ®istry_entry, openlcb::EventReport *event, BarrierNotifiable *done) OVERRIDE |
| Process request to identify produced events. | |
| void | handle_identify_producer (const openlcb::EventRegistryEntry ®istry_entry, openlcb::EventReport *event, BarrierNotifiable *done) OVERRIDE |
| Process request to identify produced events. | |
| virtual void | SendEventIdentified (const openlcb::EventRegistryEntry ®istry_entry, openlcb::EventReport *event, BarrierNotifiable *done) |
Sends Producer- or Consumer-Identified for registry_entry. More... | |
| void | applyI2cInfo (int fd, uint8_t cardIndex, i2cInfoConfig_type cfgI2cInfoRef) |
| sets up the MCP card's I2C connection using the user provided (CDI) configuration information (bus and address offset) More... | |
| void | resetCardInfo (int fd, cardInfoConfig_type cfgI2cInfoRef) |
| resets the card configuration information (description field). More... | |
| void | resetI2cInfo (int fd, i2cInfoConfig_type cfgI2cInfoRef) |
| resets the card's I2C configuration information (bus and address fields). More... | |
| virtual void | drive_pin_ext (uint8_t card, uint8_t pin, bool set, uint8_t intArg) |
| EventUserArgsUnion | unpack_user_args (const openlcb::EventRegistryEntry &re) const |
| Small helper to unpack our 4-byte user_arg payload from the registry entry. | |
| void | handle_event_report (const openlcb::EventRegistryEntry ®istry_entry, openlcb::EventReport *event, BarrierNotifiable *done) OVERRIDE |
Private Member Functions | |
| void | _setPowerOnState (uint8_t cardNum, uint8_t pinNum, DefaultDeviceSettings::DeviceStates cfgState) |
| Sets the power-on state for a specific pin on a specific card. More... | |
| void | _initI2cCards (bool isProducer) |
| Initializes the array of I2C card objects using the configured card type. More... | |
Version of the ServoConfiguredConsumer that can handle many GPIO output pins with two events each.
Definition at line 87 of file ServoConfiguredConsumer.h.
| typedef ServoCardConfig ServoConfiguredConsumer::CardConfig_type |
Type for the servo card CDI configuration entry
Definition at line 91 of file ServoConfiguredConsumer.h.
| typedef ServoLineConfig ServoConfiguredConsumer::LineConfig_type |
Type for the servo line CDI configuration entry
Definition at line 93 of file ServoConfiguredConsumer.h.
| typedef ServoConfig ServoConfiguredConsumer::LineGroupConfig_type |
Type for the servo CDI configuration entry
Definition at line 92 of file ServoConfiguredConsumer.h.
|
inlineprivateinherited |
Initializes the array of I2C card objects using the configured card type.
Allocates and initializes each I2C card in the array to the type specified by the cardType_ member. If isProducer is true, registers each card's polling callback.
| isProducer | True if the card is used as a producer and requires polling. |
Definition at line 460 of file I2cCardHelper.h.


|
inlineprivate |
Sets the power-on state for a specific pin on a specific card.
This function configures the initial state of a pin (on, off, or previous state) when the system powers on. It supports three initial states: ON (active), OFF (inactive), and PREVIOUS (the state before the last power down). For the PREVIOUS state, it reads the saved state from a persistent storage I2cCardHelper::pinStates[cardNum]. The function updates the I2cCardHelper::pinStates[cardNum] element to reflect the current state for future reference if the state is ON or OFF.
| cardNum | The card number on which the pin resides. This is used to index into the i2cCards array of I2C card helpers. |
| pinNum | The pin number to set the state for. This should be within the valid range for the card. |
| cfgState | The configured initial state of the pin specified by the DefaultDeviceSettings::DeviceStates enum. |
Definition at line 219 of file ServoConfiguredConsumer.h.

|
inlineprotectedinherited |
sets up the MCP card's I2C connection using the user provided (CDI) configuration information (bus and address offset)
| fd | file handle to access the CDI configuration information (provided by openmrn) |
| cardIndex | specifies which card the configuration is for. Used to update the i2cCards[] array and initialize the connection |
| cfgI2cInfoRef | offset into the intenal configuration space for the CDI configuration for the MCP card |
Definition at line 295 of file I2cCardHelper.h.


|
inlineoverrideprotectedvirtual |
Hook for consumers: drive one output pin (simple case). Default does nothing; simple consumers override this.
| card | card index (as stored in user_arg) |
| pin | pin index (as stored in user_arg) |
| set | desired logical state from the event semantics (SET/ON = true, CLR/OFF = false) |
Reimplemented from I2cCardHelper.
Definition at line 186 of file ServoConfiguredConsumer.h.

|
inlineprotectedvirtualinherited |
Extended hook for consumers that also need the CDI intArg (e.g., audio message index). Default forwards to drive_pin(...) so existing consumers remain unchanged.
Reimplemented in AudioConfiguredConsumer.
Definition at line 402 of file I2cCardHelper.h.


|
inlineinherited |
Check for duplicate offsets on the same I2C bus. Automatically resets the tracker on the first call per config pass.
| cardIndex | Index of the card in the config loop. |
| bus | I2C bus number (0 or 1). |
| offset | I2C offset (0–7). |
Definition at line 183 of file I2cCardHelper.h.

|
inlineprotectedinherited |
Default consumer handler: maps an incoming Event Report to (card,pin,set,intArg) and calls drive_pin_ext(...). Producers are ignored.
Definition at line 418 of file I2cCardHelper.h.

|
inlineprotectedinherited |
resets the card configuration information (description field).
| fd | file handle to access the CDI configuration information (provided by openmrn) |
| cfgI2cInfoRef | offset into the intenal configuration space for the CDI configuration block for the card's info (description, etc) |
Definition at line 309 of file I2cCardHelper.h.

|
inlineprotectedinherited |
resets the card's I2C configuration information (bus and address fields).
| fd | file handle to access the CDI configuration information (provided by openmrn) |
| cfgI2cInfoRef | offset into the intenal configuration space for the CDI configuration for card's I2C info (bus/offset) |
Definition at line 321 of file I2cCardHelper.h.

|
inlineprotectedvirtualinherited |
Sends Producer- or Consumer-Identified for registry_entry.
Identification type is inferred from the registry entry’s packed user args (see
Reimplemented in TurnoutConfiguredPC.
Definition at line 273 of file I2cCardHelper.h.


|
inherited |
event arguments