yalgaar Ruby SDK for real-time messaging

Dependencies:   EthernetInterface mbed-rtos mbed Yalgaar

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();
+    }
+}