yalgaar Ruby SDK for real-time messaging
Dependencies: EthernetInterface mbed-rtos mbed Yalgaar
main.cpp
- Committer:
- nileshvora
- Date:
- 2017-03-10
- Revision:
- 0:c13577b7577e
- Child:
- 2:6ffd515f6e9e
File content as of revision 0:c13577b7577e:
#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(); } }