yalgaar Ruby SDK for real-time messaging

Dependencies:   EthernetInterface mbed-rtos mbed Yalgaar

Committer:
nileshvora
Date:
Tue Mar 14 11:22:17 2017 +0000
Revision:
3:2be1cb995dbe
Parent:
2:6ffd515f6e9e
Yalgaar SDK V1.0.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 EthernetInterface eth;
nileshvora 2:6ffd515f6e9e 7 yalgaar yalgaar_client;
nileshvora 0:c13577b7577e 8
nileshvora 0:c13577b7577e 9
nileshvora 0:c13577b7577e 10 Yalgaar_Error_t ret = FAILURE;
nileshvora 0:c13577b7577e 11 char err_string[YALGAAR_ERROR_MESSAGE_LENGTH] = {'\0'};
nileshvora 2:6ffd515f6e9e 12 int pub_count = 10;
nileshvora 0:c13577b7577e 13
nileshvora 0:c13577b7577e 14 void subscribe_message_callback(char *payload)
nileshvora 0:c13577b7577e 15 {
nileshvora 0:c13577b7577e 16 pc.printf("subscribe_message_callback :%s\r\n",payload);
nileshvora 0:c13577b7577e 17 }
nileshvora 0:c13577b7577e 18 void presence_message_callback(char *message)
nileshvora 0:c13577b7577e 19 {
nileshvora 0:c13577b7577e 20 pc.printf("presence_message_callback: %s\r\n",message);
nileshvora 0:c13577b7577e 21 }
nileshvora 0:c13577b7577e 22 void error_message_callback(char *error)
nileshvora 0:c13577b7577e 23 {
nileshvora 0:c13577b7577e 24 pc.printf("error_message_callback :%s\r\n",error);
nileshvora 0:c13577b7577e 25 }
nileshvora 0:c13577b7577e 26
nileshvora 0:c13577b7577e 27
nileshvora 0:c13577b7577e 28 void connection_Callback(char* error_dec)
nileshvora 0:c13577b7577e 29 {
nileshvora 0:c13577b7577e 30 if(yalgaar_client.yalgaar_connected())
nileshvora 0:c13577b7577e 31 {
nileshvora 0:c13577b7577e 32 pc.printf("connection callback :: %s\r\n",error_dec);
nileshvora 0:c13577b7577e 33 }
nileshvora 0:c13577b7577e 34 else
nileshvora 0:c13577b7577e 35 {
nileshvora 0:c13577b7577e 36 pc.printf("connection_Callback :%s\r\n",error_dec);
nileshvora 0:c13577b7577e 37 }
nileshvora 0:c13577b7577e 38 }
nileshvora 0:c13577b7577e 39
nileshvora 0:c13577b7577e 40
nileshvora 0:c13577b7577e 41
nileshvora 0:c13577b7577e 42
nileshvora 0:c13577b7577e 43 int main()
nileshvora 0:c13577b7577e 44 {
nileshvora 0:c13577b7577e 45 wait(2.0f);
nileshvora 0:c13577b7577e 46 eth.init(); //Use DHCP
nileshvora 0:c13577b7577e 47 do pc.printf("Connection...\r\n");
nileshvora 0:c13577b7577e 48 while (eth.connect() != 0);
nileshvora 0:c13577b7577e 49
nileshvora 0:c13577b7577e 50 pc.printf("IP Address is %s\r\n", eth.getIPAddress());
nileshvora 0:c13577b7577e 51
nileshvora 0:c13577b7577e 52
nileshvora 2:6ffd515f6e9e 53 ret = yalgaar_client.yalgaar_connect("YourClientKey","UUID", connection_Callback);
nileshvora 0:c13577b7577e 54 if (SUCCESS != ret) {
nileshvora 0:c13577b7577e 55 yalgaar_client.enum_to_message(ret, err_string);
nileshvora 0:c13577b7577e 56 pc.printf("Connection fail %s \r\n",err_string);
nileshvora 0:c13577b7577e 57 }
nileshvora 0:c13577b7577e 58
nileshvora 0:c13577b7577e 59
nileshvora 0:c13577b7577e 60 if (ret == SUCCESS) {
nileshvora 2:6ffd515f6e9e 61
nileshvora 0:c13577b7577e 62 ret = yalgaar_client.yalgaar_subscribe("YourChannel", subscribe_message_callback, presence_message_callback, error_message_callback);
nileshvora 0:c13577b7577e 63
nileshvora 0:c13577b7577e 64 if (SUCCESS != ret) {
nileshvora 0:c13577b7577e 65 yalgaar_client.enum_to_message(ret, err_string);
nileshvora 2:6ffd515f6e9e 66 pc.printf("subscribe failure %s \r\n",err_string);
nileshvora 0:c13577b7577e 67 }
nileshvora 0:c13577b7577e 68 } else {
nileshvora 0:c13577b7577e 69 pc.printf(" try again in 5 seconds\r\n");
nileshvora 0:c13577b7577e 70 // Wait 5 seconds before retrying
nileshvora 0:c13577b7577e 71 wait(5.0f);
nileshvora 0:c13577b7577e 72 }
nileshvora 0:c13577b7577e 73
nileshvora 0:c13577b7577e 74 while(1) {
nileshvora 0:c13577b7577e 75
nileshvora 0:c13577b7577e 76 // Once connected, publish an announcement...
nileshvora 0:c13577b7577e 77 if (yalgaar_client.yalgaar_connected()) {
nileshvora 0:c13577b7577e 78 if (pub_count) {
nileshvora 0:c13577b7577e 79 wait(5.0f);
nileshvora 2:6ffd515f6e9e 80 ret = yalgaar_client.yalgaar_publish("YourChannel", "This is Yalgaar mbed SDK Example");
nileshvora 0:c13577b7577e 81 if (SUCCESS != ret) {
nileshvora 0:c13577b7577e 82 yalgaar_client.enum_to_message(ret, err_string);
nileshvora 2:6ffd515f6e9e 83 pc.printf("publish failure %s \r\n",err_string);
nileshvora 0:c13577b7577e 84 }
nileshvora 0:c13577b7577e 85 pub_count--;
nileshvora 0:c13577b7577e 86 }
nileshvora 0:c13577b7577e 87 }
nileshvora 0:c13577b7577e 88 yalgaar_client.yalgaar_loop();
nileshvora 0:c13577b7577e 89 }
nileshvora 0:c13577b7577e 90 }