![]() |
Roboid Control for C++ 0.4
|
A participant using UDP communication A local participant is the local device which can communicate with other participants It manages all local things and communcation with other participants. Each application has a local participant which is usually explicit in the code. An participant can be isolated. In that case it is standalong and does not communicate with other participants.
It is possible to work with an hidden participant by creating things without specifying a participant in the constructor. In that case an hidden isolated participant is created which can be obtained using RoboidControl::IsolatedParticipant::Isolated().
#include <ParticipantUDP.h>
Public Member Functions | |
ParticipantUDP (int port=7681) | |
Create a participant without connecting to a site. | |
ParticipantUDP (const char *ipAddress, int port=7681, int localPort=7681) | |
Create a participant which will try to connect to a site. | |
void | begin () |
virtual void | Update () override |
Update all things for this participant. | |
Thing * | Get (unsigned char thingId) |
Find a thing managed by this participant. | |
void | Add (Thing *thing, bool checkId=true) |
Add a new thing for this participant. | |
void | Remove (Thing *thing) |
Remove a thing for this participant. | |
Static Public Member Functions | |
static void | ReplaceLocalParticipant (Participant &newParticipant) |
Replace the local participant. | |
Public Attributes | |
bool | isIsolated = false |
True if the participant is running isolated. Isolated participants do not communicate with other participants. | |
Participant * | remoteSite = nullptr |
The remote site when this participant is connected to a site. | |
long | publishInterval = 3000 |
bool | connected = false |
const char * | name = "Participant" |
The name of the participant. | |
const char * | ipAddress = "0.0.0.0" |
The Ip Address of a participant. | |
unsigned int | port = 0 |
The port number for UDP communication with the participant. | |
unsigned char | networkId = 0 |
The network Id to identify the participant. | |
Thing * | root = nullptr |
The root thing for this participant. | |
unsigned char | thingCount = 0 |
Thing * | things [MAX_THING_COUNT] |
std::list< Thing * > | things |
The things managed by this participant. | |
char | buffer [1024] |
Static Public Attributes | |
static Participant * | LocalParticipant = new Participant() |
The local participant for this application. | |
static ParticipantRegistry | registry |
Protected Member Functions | |
virtual void | PrepMyThings () |
Prepare the local things for the next update. | |
virtual void | UpdateMyThings () |
virtual void | UpdateOtherThings () |
void | SendThingInfo (Participant *remoteParticipant, Thing *thing) |
void | PublishThingInfo (Thing *thing) |
virtual bool | Send (IMessage *msg) override |
bool | Publish (IMessage *msg) |
void | ReceiveData (unsigned char bufferSize, char *senderIpAddress, unsigned int senderPort) |
void | ReceiveData (unsigned char bufferSize, Participant *remoteParticipant) |
void | SetupUDP (int localPort, const char *remoteIpAddress, int remotePort) |
void | ReceiveUDP () |
virtual void | Process (Participant *sender, ParticipantMsg *msg) |
virtual void | Process (Participant *sender, NetworkIdMsg *msg) |
virtual void | Process (Participant *sender, InvestigateMsg *msg) |
virtual void | Process (Participant *sender, ThingMsg *msg) |
virtual void | Process (Participant *sender, NameMsg *msg) |
virtual void | Process (Participant *sender, ModelUrlMsg *msg) |
virtual void | Process (Participant *sender, PoseMsg *msg) |
virtual void | Process (Participant *sender, BinaryMsg *msg) |
virtual void | Process (Participant *sender, TextMsg *msg) |
virtual void | Process (Participant *sender, DestroyMsg *msg) |
Protected Attributes | |
int | sock |
sockaddr_in | remote_addr |
sockaddr_in | server_addr |
sockaddr_in | broadcast_addr |
unsigned long | nextPublishMe = 0 |
RoboidControl::ParticipantUDP::ParticipantUDP | ( | int | port = 7681 | ) |
Create a participant without connecting to a site.
port | The port on which the participant communicates These participant typically broadcast Participant messages to let site servers on the local network know their presence. Alternatively they can broadcast information which can be used directly by other participants. |
RoboidControl::ParticipantUDP::ParticipantUDP | ( | const char * | ipAddress, |
int | port = 7681 , |
||
int | localPort = 7681 |
||
) |
Create a participant which will try to connect to a site.
ipAddress | The IP address of the site |
port | The port used by the site |
localPort | The port used by the local participant |
|
overridevirtual |
Update all things for this participant.
Reimplemented from RoboidControl::Participant.
|
overrideprotectedvirtual |
Reimplemented from RoboidControl::Participant.
|
staticinherited |
Replace the local participant.
newParticipant | The new local Participant |
|
inherited |
Find a thing managed by this participant.
thingId | The ID of the thing |
|
inherited |
Add a new thing for this participant.
thing | The thing to add |
checkId | If true, the thing.id is regenerated if it is zero |
|
inherited |
Remove a thing for this participant.
thing | The thing to remove |
long RoboidControl::ParticipantUDP::publishInterval = 3000 |
The interval in milliseconds for publishing (broadcasting) data on the local network
|
inherited |
The Ip Address of a participant.
|
inherited |
The port number for UDP communication with the participant.