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,
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
This bottom layer can send packages
For efficiency,
Public Attributes | |
scGPMessagefifo * | GPMessagefifo |
This stores the messages for this gridpoint. | |
scTimedIGPMessage_fifo * | TimedFIFO |
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. | |
scProcessor * | msProcessor |
Just remember where we were born. | |