yalgaar Ruby SDK for real-time messaging

Dependencies:   EthernetInterface mbed-rtos mbed Yalgaar

Committer:
nileshvora
Date:
Fri Mar 10 13:12:11 2017 +0000
Revision:
0:c13577b7577e
Child:
2:6ffd515f6e9e
Yalgaar SDK V:1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nileshvora 0:c13577b7577e 1
nileshvora 0:c13577b7577e 2 #include "yalgaar_api.h"
nileshvora 0:c13577b7577e 3
nileshvora 0:c13577b7577e 4 Serial pc(USBTX, USBRX,115200);
nileshvora 0:c13577b7577e 5
nileshvora 0:c13577b7577e 6 DigitalOut redLED(LED_RED);
nileshvora 0:c13577b7577e 7 DigitalOut greenLED(LED_GREEN);
nileshvora 0:c13577b7577e 8 DigitalOut blueLED(LED_BLUE);
nileshvora 0:c13577b7577e 9
nileshvora 0:c13577b7577e 10 EthernetInterface eth;
nileshvora 0:c13577b7577e 11 yalgaar yalgaar_client((char *)YALGAAR_HOST,(int)YALGAAR_PORT);
nileshvora 0:c13577b7577e 12
nileshvora 0:c13577b7577e 13
nileshvora 0:c13577b7577e 14 Yalgaar_Error_t ret = FAILURE;
nileshvora 0:c13577b7577e 15 char err_string[YALGAAR_ERROR_MESSAGE_LENGTH] = {'\0'};
nileshvora 0:c13577b7577e 16 int pub_count = 2;
nileshvora 0:c13577b7577e 17
nileshvora 0:c13577b7577e 18 void subscribe_message_callback(char *payload)
nileshvora 0:c13577b7577e 19 {
nileshvora 0:c13577b7577e 20 pc.printf("subscribe_message_callback :%s\r\n",payload);
nileshvora 0:c13577b7577e 21 }
nileshvora 0:c13577b7577e 22 void presence_message_callback(char *message)
nileshvora 0:c13577b7577e 23 {
nileshvora 0:c13577b7577e 24 pc.printf("presence_message_callback: %s\r\n",message);
nileshvora 0:c13577b7577e 25 }
nileshvora 0:c13577b7577e 26 void error_message_callback(char *error)
nileshvora 0:c13577b7577e 27 {
nileshvora 0:c13577b7577e 28 pc.printf("error_message_callback :%s\r\n",error);
nileshvora 0:c13577b7577e 29 }
nileshvora 0:c13577b7577e 30
nileshvora 0:c13577b7577e 31
nileshvora 0:c13577b7577e 32 void connection_Callback(char* error_dec)
nileshvora 0:c13577b7577e 33 {
nileshvora 0:c13577b7577e 34 if(yalgaar_client.yalgaar_connected())
nileshvora 0:c13577b7577e 35 {
nileshvora 0:c13577b7577e 36 pc.printf("connection callback :: %s\r\n",error_dec);
nileshvora 0:c13577b7577e 37 greenLED = !greenLED;
nileshvora 0:c13577b7577e 38 wait(1.0f);
nileshvora 0:c13577b7577e 39 greenLED = !greenLED;
nileshvora 0:c13577b7577e 40 }
nileshvora 0:c13577b7577e 41 else
nileshvora 0:c13577b7577e 42 {
nileshvora 0:c13577b7577e 43 pc.printf("connection_Callback :%s\r\n",error_dec);
nileshvora 0:c13577b7577e 44 }
nileshvora 0:c13577b7577e 45 }
nileshvora 0:c13577b7577e 46
nileshvora 0:c13577b7577e 47
nileshvora 0:c13577b7577e 48
nileshvora 0:c13577b7577e 49
nileshvora 0:c13577b7577e 50 int main()
nileshvora 0:c13577b7577e 51 {
nileshvora 0:c13577b7577e 52 wait(2.0f);
nileshvora 0:c13577b7577e 53 eth.init(); //Use DHCP
nileshvora 0:c13577b7577e 54 do pc.printf("Connection...\r\n");
nileshvora 0:c13577b7577e 55 while (eth.connect() != 0);
nileshvora 0:c13577b7577e 56
nileshvora 0:c13577b7577e 57 pc.printf("IP Address is %s\r\n", eth.getIPAddress());
nileshvora 0:c13577b7577e 58
nileshvora 0:c13577b7577e 59
nileshvora 0:c13577b7577e 60 ret = yalgaar_client.yalgaar_connect("YourClientKey","uuid", connection_Callback);
nileshvora 0:c13577b7577e 61 if (SUCCESS != ret) {
nileshvora 0:c13577b7577e 62 redLED = !redLED;
nileshvora 0:c13577b7577e 63 wait(1.0f);
nileshvora 0:c13577b7577e 64 redLED = !redLED;
nileshvora 0:c13577b7577e 65 yalgaar_client.enum_to_message(ret, err_string);
nileshvora 0:c13577b7577e 66 pc.printf("Connection fail %s \r\n",err_string);
nileshvora 0:c13577b7577e 67 }
nileshvora 0:c13577b7577e 68
nileshvora 0:c13577b7577e 69
nileshvora 0:c13577b7577e 70 if (ret == SUCCESS) {
nileshvora 0:c13577b7577e 71 pc.printf("connected to yalgaar\r\n");
nileshvora 0:c13577b7577e 72 greenLED = !greenLED;
nileshvora 0:c13577b7577e 73 wait(1.0f);
nileshvora 0:c13577b7577e 74 greenLED = !greenLED;
nileshvora 0:c13577b7577e 75
nileshvora 0:c13577b7577e 76
nileshvora 0:c13577b7577e 77 ret = yalgaar_client.yalgaar_subscribe("YourChannel", subscribe_message_callback, presence_message_callback, error_message_callback);
nileshvora 0:c13577b7577e 78
nileshvora 0:c13577b7577e 79
nileshvora 0:c13577b7577e 80 if (SUCCESS != ret) {
nileshvora 0:c13577b7577e 81 yalgaar_client.enum_to_message(ret, err_string);
nileshvora 0:c13577b7577e 82 pc.printf("subscribe fail %s \r\n",err_string);
nileshvora 0:c13577b7577e 83 }
nileshvora 0:c13577b7577e 84 } else {
nileshvora 0:c13577b7577e 85 redLED = !redLED;
nileshvora 0:c13577b7577e 86 wait(1.0f);
nileshvora 0:c13577b7577e 87 redLED = !redLED;
nileshvora 0:c13577b7577e 88 pc.printf(" try again in 5 seconds\r\n");
nileshvora 0:c13577b7577e 89 // Wait 5 seconds before retrying
nileshvora 0:c13577b7577e 90 wait(5.0f);
nileshvora 0:c13577b7577e 91 }
nileshvora 0:c13577b7577e 92
nileshvora 0:c13577b7577e 93 while(1) {
nileshvora 0:c13577b7577e 94
nileshvora 0:c13577b7577e 95 // Once connected, publish an announcement...
nileshvora 0:c13577b7577e 96 if (yalgaar_client.yalgaar_connected()) {
nileshvora 0:c13577b7577e 97 if (pub_count) {
nileshvora 0:c13577b7577e 98 wait(5.0f);
nileshvora 0:c13577b7577e 99 ret = yalgaar_client.yalgaar_publish("YourChannel", "This is Yalgaar mBed SDK Example");
nileshvora 0:c13577b7577e 100 if (SUCCESS != ret) {
nileshvora 0:c13577b7577e 101 yalgaar_client.enum_to_message(ret, err_string);
nileshvora 0:c13577b7577e 102 pc.printf("publish fail %s \r\n",err_string);
nileshvora 0:c13577b7577e 103 }
nileshvora 0:c13577b7577e 104 pub_count--;
nileshvora 0:c13577b7577e 105 greenLED = !greenLED;
nileshvora 0:c13577b7577e 106 }
nileshvora 0:c13577b7577e 107 }
nileshvora 0:c13577b7577e 108 yalgaar_client.yalgaar_loop();
nileshvora 0:c13577b7577e 109 }
nileshvora 0:c13577b7577e 110 }