yalgaar Ruby SDK for real-time messaging

Dependencies:   EthernetInterface mbed-rtos mbed Yalgaar

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 
00002 #include "yalgaar_api.h"
00003 
00004 Serial pc(USBTX, USBRX,115200);
00005 
00006 EthernetInterface  eth;
00007 yalgaar yalgaar_client;
00008 
00009 
00010 Yalgaar_Error_t ret = FAILURE;
00011 char err_string[YALGAAR_ERROR_MESSAGE_LENGTH] = {'\0'};
00012 int pub_count = 10;
00013 
00014 void subscribe_message_callback(char *payload)
00015 {
00016     pc.printf("subscribe_message_callback :%s\r\n",payload);
00017 }
00018 void presence_message_callback(char *message)
00019 {
00020     pc.printf("presence_message_callback: %s\r\n",message);
00021 }
00022 void error_message_callback(char *error)
00023 {
00024     pc.printf("error_message_callback :%s\r\n",error);
00025 }
00026 
00027 
00028 void connection_Callback(char* error_dec)
00029 {
00030     if(yalgaar_client.yalgaar_connected())
00031     {
00032         pc.printf("connection callback :: %s\r\n",error_dec);
00033     }
00034     else
00035     {
00036         pc.printf("connection_Callback :%s\r\n",error_dec);
00037     }
00038 }
00039 
00040 
00041 
00042 
00043 int main()
00044 {
00045     wait(2.0f);
00046     eth.init(); //Use DHCP
00047     do pc.printf("Connection...\r\n");
00048     while (eth.connect() != 0);
00049 
00050     pc.printf("IP Address is %s\r\n", eth.getIPAddress());
00051 
00052 
00053     ret = yalgaar_client.yalgaar_connect("YourClientKey","UUID", connection_Callback);
00054     if (SUCCESS != ret) {
00055         yalgaar_client.enum_to_message(ret, err_string);
00056         pc.printf("Connection fail %s \r\n",err_string);
00057     }
00058     
00059        
00060     if (ret == SUCCESS) {
00061                 
00062         ret = yalgaar_client.yalgaar_subscribe("YourChannel", subscribe_message_callback, presence_message_callback, error_message_callback);
00063         
00064         if (SUCCESS != ret) {
00065             yalgaar_client.enum_to_message(ret, err_string);
00066             pc.printf("subscribe failure %s \r\n",err_string);
00067         }
00068     } else {
00069         pc.printf(" try again in 5 seconds\r\n");
00070         // Wait 5 seconds before retrying
00071         wait(5.0f);
00072     }
00073 
00074     while(1) {
00075 
00076         // Once connected, publish an announcement...
00077         if (yalgaar_client.yalgaar_connected()) {
00078             if (pub_count) {
00079                 wait(5.0f);
00080                 ret = yalgaar_client.yalgaar_publish("YourChannel", "This is Yalgaar mbed SDK Example");
00081                 if (SUCCESS != ret) {
00082                     yalgaar_client.enum_to_message(ret, err_string);
00083                     pc.printf("publish failure %s \r\n",err_string);
00084                 }
00085                 pub_count--;
00086             }
00087         }
00088         yalgaar_client.yalgaar_loop();
00089     }
00090 }