Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
openlcb::MultiConfiguredConsumer Class Reference

Version of the ConfiguredConsumer class that can handle many GPIO pins with two events each. More...

#include <MultiConfiguredConsumer.hxx>

Inheritance diagram for openlcb::MultiConfiguredConsumer:
ConfigUpdateListener openlcb::SimpleEventHandler QMember

Public Types

typedef ConsumerConfig config_entry_type
 
- Public Types inherited from ConfigUpdateListener
enum  UpdateAction { UPDATED = 0 , REINIT_NEEDED , REBOOT_NEEDED }
 Specifies what additional steps are needed to apply the new configuration. More...
 

Additional Inherited Members

- Public Member Functions inherited from ConfigUpdateListener
virtual UpdateAction apply_configuration (int fd, bool initial_load, BarrierNotifiable *done)=0
 Notifies the component that there is new configuration available for loading.
 
virtual void factory_reset (int fd)=0
 Clears configuration file and resets the configuration settings to factory value.
 
- Public Member Functions inherited from QMember
void init ()
 Initiailize a QMember, in place of a public placement construction.
 
- Protected Member Functions inherited from QMember
 QMember ()
 Constructor.
 
 ~QMember ()
 Destructor.
 
- Protected Attributes inherited from QMember
QMembernext
 pointer to the next member in the queue
 
- Private Types inherited from openlcb::EventHandler
using EventReport = openlcb::EventReport
 
using EventRegistryEntry = openlcb::EventRegistryEntry
 
using EventId = openlcb::EventId
 
- Private Member Functions inherited from openlcb::SimpleEventHandler
 IGNOREFN (handle_event_report)
 
 IGNOREFN (handle_consumer_identified)
 
 IGNOREFN (handle_consumer_range_identified)
 
 IGNOREFN (handle_producer_identified)
 
 IGNOREFN (handle_producer_range_identified)
 
 IGNOREFN (handle_identify_consumer)
 
 IGNOREFN (handle_identify_producer)
 
- Private Member Functions inherited from openlcb::EventHandler
virtual void handle_event_report (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)=0
 Called on incoming EventReport messages.
 
virtual void handle_consumer_identified (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)
 Called on another node sending ConsumerIdentified for this event.
 
virtual void handle_consumer_range_identified (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)
 Called on another node sending ConsumerRangeIdentified.
 
virtual void handle_producer_identified (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)
 Called on another node sending ProducerIdentified for this event.
 
virtual void handle_producer_range_identified (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)
 Called on another node sending ProducerRangeIdentified for this event.
 
virtual void handle_identify_global (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)=0
 Called on the need of sending out identification messages.
 
virtual void handle_identify_consumer (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)=0
 Called on another node sending IdentifyConsumer.
 
virtual void handle_identify_producer (const EventRegistryEntry &registry_entry, EventReport *event, BarrierNotifiable *done)=0
 Called on another node sending IdentifyProducer.
 

Detailed Description

Version of the ConfiguredConsumer class that can handle many GPIO pins with two events each.

This saves very significant amount of memory compared to instantiating individual ConfigredConsumer instances – helpful when a single small MCU is exporting a large number of IOs via for example shift register outputs.

Definition at line 51 of file MultiConfiguredConsumer.hxx.

Member Typedef Documentation

◆ config_entry_type

typedef ConsumerConfig openlcb::MultiConfiguredConsumer::config_entry_type

Definition at line 55 of file MultiConfiguredConsumer.hxx.


The documentation for this class was generated from the following file: