yalgaar Ruby SDK for real-time messaging
Dependencies: EthernetInterface mbed-rtos mbed Yalgaar
main.cpp@0:c13577b7577e, 2017-03-10 (annotated)
- 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?
User | Revision | Line number | New 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 | } |