yalgaar Ruby SDK for real-time messaging
Dependencies: EthernetInterface mbed-rtos mbed Yalgaar
main.cpp@3:2be1cb995dbe, 2017-03-14 (annotated)
- 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?
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 | 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 | } |