yalgaar Ruby SDK for real-time messaging
Dependencies: EthernetInterface mbed-rtos mbed Yalgaar
Diff: main.cpp
- Revision:
- 0:c13577b7577e
- Child:
- 2:6ffd515f6e9e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Mar 10 13:12:11 2017 +0000 @@ -0,0 +1,110 @@ + +#include "yalgaar_api.h" + +Serial pc(USBTX, USBRX,115200); + +DigitalOut redLED(LED_RED); +DigitalOut greenLED(LED_GREEN); +DigitalOut blueLED(LED_BLUE); + +EthernetInterface eth; +yalgaar yalgaar_client((char *)YALGAAR_HOST,(int)YALGAAR_PORT); + + +Yalgaar_Error_t ret = FAILURE; +char err_string[YALGAAR_ERROR_MESSAGE_LENGTH] = {'\0'}; +int pub_count = 2; + +void subscribe_message_callback(char *payload) +{ + pc.printf("subscribe_message_callback :%s\r\n",payload); +} +void presence_message_callback(char *message) +{ + pc.printf("presence_message_callback: %s\r\n",message); +} +void error_message_callback(char *error) +{ + pc.printf("error_message_callback :%s\r\n",error); +} + + +void connection_Callback(char* error_dec) +{ + if(yalgaar_client.yalgaar_connected()) + { + pc.printf("connection callback :: %s\r\n",error_dec); + greenLED = !greenLED; + wait(1.0f); + greenLED = !greenLED; + } + else + { + pc.printf("connection_Callback :%s\r\n",error_dec); + } +} + + + + +int main() +{ + wait(2.0f); + eth.init(); //Use DHCP + do pc.printf("Connection...\r\n"); + while (eth.connect() != 0); + + pc.printf("IP Address is %s\r\n", eth.getIPAddress()); + + + ret = yalgaar_client.yalgaar_connect("YourClientKey","uuid", connection_Callback); + if (SUCCESS != ret) { + redLED = !redLED; + wait(1.0f); + redLED = !redLED; + yalgaar_client.enum_to_message(ret, err_string); + pc.printf("Connection fail %s \r\n",err_string); + } + + + if (ret == SUCCESS) { + pc.printf("connected to yalgaar\r\n"); + greenLED = !greenLED; + wait(1.0f); + greenLED = !greenLED; + + + ret = yalgaar_client.yalgaar_subscribe("YourChannel", subscribe_message_callback, presence_message_callback, error_message_callback); + + + if (SUCCESS != ret) { + yalgaar_client.enum_to_message(ret, err_string); + pc.printf("subscribe fail %s \r\n",err_string); + } + } else { + redLED = !redLED; + wait(1.0f); + redLED = !redLED; + pc.printf(" try again in 5 seconds\r\n"); + // Wait 5 seconds before retrying + wait(5.0f); + } + + while(1) { + + // Once connected, publish an announcement... + if (yalgaar_client.yalgaar_connected()) { + if (pub_count) { + wait(5.0f); + ret = yalgaar_client.yalgaar_publish("YourChannel", "This is Yalgaar mBed SDK Example"); + if (SUCCESS != ret) { + yalgaar_client.enum_to_message(ret, err_string); + pc.printf("publish fail %s \r\n",err_string); + } + pub_count--; + greenLED = !greenLED; + } + } + yalgaar_client.yalgaar_loop(); + } +}