Please, help us to better know about our user community by answering the following short survey: https://forms.gle/wpyrxWi18ox9Z5ae9
scIGPMessage_if Class Referenceabstract

Detailed Description

This class communication interface for scIGPMessage communication for the autonous communication functionality: for both scGridPoint and scClusterBusMemoryXXX (XX=Slow, Fast, Cache, Buffer).

The source of the messages can be scClusterBus or scGridPoint. The actual message receiving mechanism is slightly different, the essence of processing them is the same.

In the case of the scGridPoint objects, only cluster heads have access to the scClusterBus, but all cluster members can send/receive direct messages (via their scIGPCB blocks) to each other. Memories form a special "cluster": they formally have cluster address, but as they are physically different entitities: all memories have direct access to scClusterBus bus they have no interface to send direct messages to each other.

An scIGPMessage_if must implement both slave and master interfaces: the sending scIGPMessage_if is the master, and the receiving scIGPMessage_if is the slave. The messages are always 'write' scIGPMessage messages; the sender (master) sends the message in 'burst' mode, and the receiver (slave) reads it uninterrupted, and after reading, makes the corresponding action.

This interface is used in all object sending scIGPMessage messages,

See also
scGridPoint
scClusterBusMemorySlow

This interface object belongs to the bottom layer, and is connected to the

actual message processing via virtual function scIGPMessage_if::PSendClusterMessage. The interface is not aware of the content of the message it deals with.

Via this bottom layer interface the object may receive packages

  • i) from its own top layer
  • ii) from one of its immediate neighbors
  • iii) through the inter-cluster bus from the external world

This bottom layer can send packages

  • i) to its own top layer (if the own address is recognized)
  • ii) to one of its immediate neighbors
  • iii) through the inter-cluster bus to the external world

For efficiency,

  • i) only the cluster heads have access to the inter-cluster bus
  • ii) the "2nd neighbor" gridpoints can also be accessed directly, using 2 "hops" (independently of whether they belong to the same cluster)
See also
scIGPMessage
AbstractCore
AbstractNeuron
+ Inheritance diagram for scIGPMessage_if:

Public Attributes

scGPMessagefifoGPMessagefifo
 This stores the messages for this gridpoint.
 
scTimedIGPMessage_fifoTimedFIFO
 This stores the timed message for this gridpoint.
 

Protected Member Functions

void ReceiveMessage_thread (void)
 This thread receives a message from outside, from any the scGridPoint.
 
void ReceiveTimedMessage_thread (void)
 ReceiveTimedMessage_thread The message can be received form any other scGricPoint.
 

Protected Attributes

uint16_t mBusPriority
 The bus priority when the scGridPoint is master.
 
scProcessormsProcessor
 Just remember where we were born.
 

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