![]() |
Roboid Control for C++
|
A thing is the primitive building block.
#include <Thing.h>
Public Types | |
enum | Type : unsigned char { Undetermined , Switch , DistanceSensor , DirectionalSensor , TemperatureSensor , TouchSensor , ControlledMotor , UncontrolledMotor , Servo , Roboid , Humanoid , ExternalSensor , DifferentialDrive } |
Predefined thing types. | |
Public Member Functions | |
Thing (unsigned char thingType=Type::Undetermined) | |
Create a new thing without communication abilities. | |
Thing (Participant *owner, unsigned char thingType=Type::Undetermined, unsigned char thingId=0) | |
Create a new thing for a participant. | |
Thing (Thing *parent, unsigned char thingType=0, unsigned char thingId=0) | |
Create a new child thing. | |
void | SetName (const char *name) |
const char * | GetName () const |
void | SetModel (const char *url) |
Sets the location from where the 3D model of this Thing can be loaded from. | |
virtual void | SetParent (Thing *parent) |
Sets the parent of this Thing. | |
Thing * | GetParent () |
Gets the parent of this Thing. | |
Thing * | GetChildByIndex (unsigned char ix) |
Get a child by index. | |
virtual void | AddChild (Thing *child) |
Add a child Thing to this Thing. | |
Thing * | RemoveChild (Thing *child) |
Remove the given thing as a child of this thing. | |
Thing * | GetChild (unsigned char id, bool recurse=false) |
Get a child by thing Id. | |
Thing * | FindChild (const char *name, bool recurse=true) |
Find a thing by name. | |
void | SetPosition (Spherical position) |
Set the position of the thing. | |
Spherical | GetPosition () |
Get the position of the thing. | |
void | SetOrientation (SwingTwist orientation) |
Set the orientation of the thing. | |
SwingTwist | GetOrientation () |
Get the orientation of the thing. | |
void | SetLinearVelocity (Spherical linearVelocity) |
Set the linear velocity of the thing. | |
virtual Spherical | GetLinearVelocity () |
Get the linear velocity of the thing. | |
virtual void | SetAngularVelocity (Spherical angularVelocity) |
Set the angular velocity of the thing. | |
virtual Spherical | GetAngularVelocity () |
Get the angular velocity of the thing. | |
void | Update (bool recursive=false) |
Updates the state of the thing. | |
virtual void | Update (unsigned long currentTimeMs, bool recurse=false) |
Updates the state of the thing. | |
virtual int | GenerateBinary (char *buffer, unsigned char *ix) |
Function used to generate binary data for this thing. | |
virtual void | ProcessBinary (char *bytes) |
Function used to process binary data received for this thing. | |
Static Public Member Functions | |
static unsigned long | GetTimeMs () |
Get the current time in milliseconds. | |
static void | UpdateThings (unsigned long currentTimeMs) |
Public Attributes | |
bool | terminate = false |
Terminated things are no longer updated. | |
Participant * | owner = nullptr |
The participant managing this thing. | |
unsigned char | id = 0 |
The ID of the thing. | |
unsigned char | type = Type::Undetermined |
The type of Thing This can be either a Thing::Type of a byte value for custom types. | |
const char * | name = nullptr |
The name of the thing. | |
bool | nameChanged = false |
const char * | modelUrl = nullptr |
An URL pointing to the location where a model of the thing can be found. | |
float | modelScale = 1 |
The scale of the model (deprecated I think) | |
unsigned char | childCount = 0 |
The number of children. | |
bool | hierarchyChanged = true |
Indicator that the hierarchy of the thing has changed. | |
bool | positionUpdated = false |
Boolean indicating that the thing has an updated position. | |
bool | orientationUpdated = false |
Boolean indicating the thing has an updated orientation. | |
bool | linearVelocityUpdated = false |
Boolean indicating the thing has an updated linear velocity. | |
bool | angularVelocityUpdated = false |
Boolean indicating the thing has an updated angular velocity. | |
RoboidControl::Thing::Thing | ( | unsigned char | thingType = Type::Undetermined | ) |
Create a new thing without communication abilities.
thingType | The type of thing (can use Thing::Type) |
RoboidControl::Thing::Thing | ( | Participant * | owner, |
unsigned char | thingType = Type::Undetermined , |
||
unsigned char | thingId = 0 |
||
) |
Create a new thing for a participant.
owner | The owning participant |
thingType | The type of thing (can use Thing::Type) |
thingId | The ID of the thing, leave out or set to zero to generate an ID |
RoboidControl::Thing::Thing | ( | Thing * | parent, |
unsigned char | thingType = 0 , |
||
unsigned char | thingId = 0 |
||
) |
Create a new child thing.
parent | The parent thing |
thingType | The type of thing (can use Thing::Type) |
thingId | The ID of the thing, leave out or set to zero to generate an ID |
void RoboidControl::Thing::SetModel | ( | const char * | url | ) |
Sets the location from where the 3D model of this Thing can be loaded from.
url | The url of the model |
|
virtual |
Thing * RoboidControl::Thing::GetChildByIndex | ( | unsigned char | ix | ) |
Get a child by index.
ix | The child index |
|
virtual |
Remove the given thing as a child of this thing.
child | The child to remove |
Thing * RoboidControl::Thing::GetChild | ( | unsigned char | id, |
bool | recurse = false |
||
) |
Get a child by thing Id.
id | The thing ID to find |
recurse | Look recursively through all descendants |
Thing * RoboidControl::Thing::FindChild | ( | const char * | name, |
bool | recurse = true |
||
) |
Find a thing by name.
name | The name of the thing |
recurse | Look recursively through all descendants |
void RoboidControl::Thing::SetPosition | ( | Spherical | position | ) |
Set the position of the thing.
position | The new position in local space, in meters |
Spherical RoboidControl::Thing::GetPosition | ( | ) |
Get the position of the thing.
void RoboidControl::Thing::SetOrientation | ( | SwingTwist | orientation | ) |
Set the orientation of the thing.
orientation | The new orientation in local space |
SwingTwist RoboidControl::Thing::GetOrientation | ( | ) |
Get the orientation of the thing.
void RoboidControl::Thing::SetLinearVelocity | ( | Spherical | linearVelocity | ) |
Set the linear velocity of the thing.
linearVelocity | The new linear velocity in local space, in meters per second |
|
virtual |
Get the linear velocity of the thing.
|
virtual |
Set the angular velocity of the thing.
angularVelocity | the new angular velocity in local space |
Reimplemented in RoboidControl::Arduino::DRV8833Motor.
|
virtual |
Get the angular velocity of the thing.
|
static |
Get the current time in milliseconds.
|
virtual |
Updates the state of the thing.
currentTimeMs | The current clock time in milliseconds; if this is zero, the current time is retrieved automatically |
recurse | When true, this will Update the descendants recursively |
Reimplemented in RoboidControl::DifferentialDrive, RoboidControl::Arduino::DigitalInput, and RoboidControl::Arduino::UltrasonicSensor.
|
virtual |
Function used to generate binary data for this thing.
buffer | The byte array for thw binary data |
ix | The starting position for writing the binary data |
Reimplemented in RoboidControl::DigitalSensor, RoboidControl::TemperatureSensor, and RoboidControl::TouchSensor.
|
virtual |
Function used to process binary data received for this thing.
bytes | The binary data |
Reimplemented in RoboidControl::DigitalSensor, RoboidControl::TemperatureSensor, and RoboidControl::TouchSensor.