Arduino (C/C++)
GumbandConnection
A Gumband communication instance (only one can exist per device). Functions for this class are listed below:
Example Usage:
GumbandConnection MyGumband;
begin()
Initiates the Gumband connection.
Syntax:
void begin()
void begin(uint8_t offline) //Begin in offline mode
Example Usage:
MyGumband.begin();
MyGumband.begin(1);
id()
Sets the Hardware ID of the Gumband Hardware. This is a unique identifier generated by the Gumband UI. Each separate registered Gumband Hardware device receives its own ID. This ID is required to link Hardware to a specific Exhibit in the Gumband UI.
Syntax:
void id(int id);
void id(const char* id);
Example Usage:
MyGumband.id(16);
MyGumband.id(“16”);
username()
Set the Gumband master control server username. This must match the username created for this device within the Gumband UI.
Syntax:
void username(char* text);
Example Usage:
MyGumband.username(“MarlonBando”);
password()
Set the Gumband master control server password. This must match the password created for this device within the Gumband UI.
Syntax:
void password(char* text);
Example Usage:
MyGumband.password(“P455W0RD!”);
connected()
Returns ‘1’ if the Hardware has a valid network connection.
Syntax:
uint8_t connected();
Example Usage:
if(MyGumband.connected() == 1) { //Connected to Network }
connectedMaster()
Returns ‘1’ if the Hardware has a valid master server connection.
Syntax:
uint8_t connectedMaster();
Example Usage:
if(MyGumband.connectedMaster() == 1) { //Connected to Master }
connectedExhibit()
Returns ‘1’ if the Hardware has a valid Exhibit server connection.
Syntax:
uint8_t connectedExhibit();
Example Usage:
if(MyGumband.connectedExhibit() == 1) { //Connected to Exhibit }
event()
Publish a text message to the ‘event’ log.
Syntax:
void event(char* text);
Example Usage:
MyGumband.event(“An event has occurred!”);
error()
Publish a text message to the ‘error’ log.
Syntax:
void error(char* text);
Example Usage:
MyGumband.error(“An error has occurred!”);
debug()
Publish a text message to the ‘debug’ log.
Syntax:
void debug(char* text);
Example Usage:
MyGumband.debug(“Something routine has occurred!”);
print()
Print data to the Hardware USB serial port.
Syntax:
void print(char* text);
void print(char byte);
Example Usage:
MyGumband.print(“Hello World!”);
MyGumband.print(25);
GumbandProperty
An instance of a Gumband property or endpoint. An individual instance must exist for every Gumband property in the Exhibit.
Example Usage:
GumbandProperty MyProperty;
begin()
This function creates a named property within a named peripheral container and registers it with the Gumband server so we can publish or subscribe to it. A Gumband instance must first exist before this function will succeed.
Syntax:
int8_t begin(const char* periph, const char* prop, gmbnd_prop_type);
Example Usage
MyProperty.begin(“PeripheralName”, “PropertyName”, gmbnd_button);
publish()
Publish data to the property endpoint.
Syntax:
void publish(int data);
void publish(uint8_t data);
void publish(uint32_t data);
void publish(uint8_t* data, uint8_t length);
Example Usage:
MyProperty.publish(234);
MyProperty.publish(values, 5); //values[5] = {3,5,8,1,0}
AT Commands
Bundles support an AT command set over a serial interface.
AT
Empty test command, Bundle will respond with “OK” if successfully receiving AT commands.
AT+GBSET
Change or initialise Gumband settings.
Syntax:
AT+GBSET=<HardwareId>,<Firmware>
Example Usage:
AT+GBSET=7,10
AT+GBAUTH
Set the Gumband Master server authorization credentials.
Syntax:
AT+GBAUTH=<Username>,<Password>
Example Usage:
AT+GBAUTH=”MarlonBando”,”P455W0RD!”
AT+GBCREATE
Create a Publish or Subscribe Property
Syntax:
AT+GBCREATE=<Pub/Sub>,<Peripheral>,<Property>,<Type>
Example Usage:
AT+GBCREATE=Pub,”Front Panel”,Button,gmbnd_button
AT+GBCREATE=Sub,”Front Panel”,LED,gmbnd_led
AT+GBPUB
Publish to a Property
Syntax:
AT+GBPUB=<Peripheral>,<Property>,<Data>
Example Usage:
AT+GBDEBUG=”Motor Enabled”
AT+GBERROR
Publish an Error message.
Syntax:
AT+GBERROR=<Text>
Example Usage:
AT+GBERROR=”Motor Stall Detected!”
AT+GBDEBUG
Publish a Debug message.
Syntax:
AT+GBDEBUG=<Text>
Example Usage:
AT+GBDEBUG=”Motor Enabled”
AT+GBEVENT
Publish an Event message.
Syntax:
AT+GBEVENT=<Text>
Example Usage:
AT+GBEVENT=”A user pushed the start button”
+GBSUB
Data from a subscribed property, this command is sent from the device and cannot be written to.
Syntax:
+GBSUB=<Peripheral>,<Property>,<Data>
Example Usage:
AT+GBSUB=”Front Panel”,LED,0x00F0
Gumband Property Types
Property Type | Size | Description |
gmbnd_button | 1 byte | Momentary Button - 1 = Press |
gmbnd_switch | 1 bool (byte) | Toggle Switch - |
gmbnd_encoder | 4 bytes | 32-bit number |
gmbnd_relay | 1 bool (byte) | Relay - |
gmbnd_pwm | 4 bytes | PWM Duty Cycle |
gmbnd_led | 2 bytes | Brightness |
gmbnd_motor_position | 4 bytes | |
gmbnd_motor_speed | 4 bytes | |
gmbnd_motor_accel | 4 bytes | |
gmbnd_step_motor | 4 bytes | |
gmbnd_addr_led | 7 bytes | IARGBW I = Index (16bit) RGBW = Color Bytes |
gmbnd_byte | 1 byte | Generic 8 bit number |
gmbnd_int32 | 4 bytes | Generic 32 bit number |