...

Dependencies:   C12832 EthernetInterface MbedJSONValue WebSocketClient mbed-rtos mbed

Fork of microServiceBus_node by Mikael Hakansson

Committer:
wmmihaa
Date:
Sun Apr 23 12:20:36 2017 +0000
Revision:
2:fe293fbcf3e3
Parent:
1:b182b5dc15e7
...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wmmihaa 0:e542df4c4901 1 #include "mbed.h"
wmmihaa 0:e542df4c4901 2 #include "EthernetInterface.h"
wmmihaa 0:e542df4c4901 3 #include "Websocket.h"
wmmihaa 0:e542df4c4901 4 #include "MbedJSONValue.h"
wmmihaa 0:e542df4c4901 5 #include "C12832.h"
wmmihaa 0:e542df4c4901 6 #include <string>
wmmihaa 0:e542df4c4901 7
wmmihaa 0:e542df4c4901 8 C12832 lcd(D11, D13, D12, D7, D10);
wmmihaa 0:e542df4c4901 9 Serial pc1(USBTX, USBRX); // tx, rx
wmmihaa 0:e542df4c4901 10
wmmihaa 0:e542df4c4901 11 int main() {
wmmihaa 0:e542df4c4901 12
wmmihaa 0:e542df4c4901 13 lcd.cls();
wmmihaa 0:e542df4c4901 14 pc1.printf("\r\nStarting up\r\n");
wmmihaa 0:e542df4c4901 15 EthernetInterface eth;
wmmihaa 0:e542df4c4901 16 eth.init(); //Use DHCP
wmmihaa 0:e542df4c4901 17 eth.connect();
wmmihaa 0:e542df4c4901 18 pc1.printf("IP Address is %s\r\n", eth.getIPAddress());
wmmihaa 1:b182b5dc15e7 19 pc1.printf("MAC Address is %s\r\n", eth.getMACAddress());
wmmihaa 0:e542df4c4901 20
wmmihaa 1:b182b5dc15e7 21 Websocket ws("ws://microservicebus-northeurope-stage.azurewebsites.net/Services/WsHandler.ashx?id=42");
wmmihaa 0:e542df4c4901 22 bool connected;
wmmihaa 0:e542df4c4901 23 connected = ws.connect();
wmmihaa 0:e542df4c4901 24
wmmihaa 0:e542df4c4901 25 if(connected)
wmmihaa 0:e542df4c4901 26 {
wmmihaa 0:e542df4c4901 27 pc1.printf("Connected successfully\r\n");
wmmihaa 0:e542df4c4901 28 }
wmmihaa 0:e542df4c4901 29 else
wmmihaa 0:e542df4c4901 30 {
wmmihaa 0:e542df4c4901 31 pc1.printf("Unable to connect\r\n");
wmmihaa 0:e542df4c4901 32 ws.close();
wmmihaa 0:e542df4c4901 33 exit(0);
wmmihaa 0:e542df4c4901 34 }
wmmihaa 0:e542df4c4901 35
wmmihaa 0:e542df4c4901 36 char str[10000];
wmmihaa 0:e542df4c4901 37
wmmihaa 1:b182b5dc15e7 38 // Create signIn message
wmmihaa 0:e542df4c4901 39 MbedJSONValue signInJson;
wmmihaa 1:b182b5dc15e7 40 signInJson["macAddress"] = eth.getMACAddress();
wmmihaa 1:b182b5dc15e7 41 signInJson["ip"] = eth.getIPAddress();
wmmihaa 1:b182b5dc15e7 42 /*
wmmihaa 0:e542df4c4901 43 signInJson["organizationId"] = _organizationId;
wmmihaa 0:e542df4c4901 44 signInJson["machineName"] = eth.getMACAddress();
wmmihaa 1:b182b5dc15e7 45 */
wmmihaa 0:e542df4c4901 46
wmmihaa 1:b182b5dc15e7 47 // Submit signIn message
wmmihaa 0:e542df4c4901 48 char buf[256];
wmmihaa 0:e542df4c4901 49 snprintf(buf, sizeof buf, "signIn::%s", signInJson.serialize());
wmmihaa 0:e542df4c4901 50 ws.send(buf);
wmmihaa 0:e542df4c4901 51
wmmihaa 0:e542df4c4901 52 while(1){
wmmihaa 0:e542df4c4901 53 memset(str, 0, 10000);
wmmihaa 0:e542df4c4901 54 wait(1.0f);
wmmihaa 0:e542df4c4901 55 ///pc1.printf(".");
wmmihaa 0:e542df4c4901 56
wmmihaa 0:e542df4c4901 57 if (ws.read(str)) {
wmmihaa 0:e542df4c4901 58
wmmihaa 0:e542df4c4901 59 string msg(str);
wmmihaa 0:e542df4c4901 60
wmmihaa 1:b182b5dc15e7 61 if (msg.find("signInMessage::") == 0)
wmmihaa 0:e542df4c4901 62 {
wmmihaa 0:e542df4c4901 63 pc1.printf("Sign In successfully\r\n");
wmmihaa 1:b182b5dc15e7 64 //pc1.printf("response: %s\r\n", str);
wmmihaa 1:b182b5dc15e7 65
wmmihaa 1:b182b5dc15e7 66 msg.replace(0,15,"");
wmmihaa 1:b182b5dc15e7 67 MbedJSONValue pingRequestJson;
wmmihaa 1:b182b5dc15e7 68 const char * json = msg.c_str();
wmmihaa 1:b182b5dc15e7 69 parse(pingRequestJson, json);
wmmihaa 1:b182b5dc15e7 70 std::string organizationId;
wmmihaa 1:b182b5dc15e7 71 std::string hubProvider;
wmmihaa 1:b182b5dc15e7 72 std::string messagingToken;
wmmihaa 1:b182b5dc15e7 73 std::string state;
wmmihaa 1:b182b5dc15e7 74 std::string protocol;
wmmihaa 1:b182b5dc15e7 75 std::string binaryUri;
wmmihaa 1:b182b5dc15e7 76 std::string binaryVersion;
wmmihaa 1:b182b5dc15e7 77 bool debug;
wmmihaa 1:b182b5dc15e7 78
wmmihaa 1:b182b5dc15e7 79 organizationId = pingRequestJson["organizationId"].get<std::string>();
wmmihaa 1:b182b5dc15e7 80 hubProvider = pingRequestJson["hubProvider"].get<std::string>();
wmmihaa 1:b182b5dc15e7 81 messagingToken = pingRequestJson["messagingToken"].get<std::string>();
wmmihaa 1:b182b5dc15e7 82 state = pingRequestJson["state"].get<std::string>();
wmmihaa 1:b182b5dc15e7 83 protocol = pingRequestJson["protocol"].get<std::string>();
wmmihaa 1:b182b5dc15e7 84 binaryUri = pingRequestJson["binaryUri"].get<std::string>();
wmmihaa 1:b182b5dc15e7 85 binaryVersion = pingRequestJson["binaryVersion"].get<std::string>();
wmmihaa 1:b182b5dc15e7 86 debug = pingRequestJson["debug"].get<bool>();
wmmihaa 1:b182b5dc15e7 87
wmmihaa 1:b182b5dc15e7 88 pc1.printf("organizationId: %s\r\n", organizationId);
wmmihaa 1:b182b5dc15e7 89 pc1.printf("hubProvider: %s\r\n", hubProvider);
wmmihaa 1:b182b5dc15e7 90 pc1.printf("messagingToken: %s\r\n", messagingToken);
wmmihaa 1:b182b5dc15e7 91 pc1.printf("state: %s\r\n", state);
wmmihaa 1:b182b5dc15e7 92 pc1.printf("protocol: %s\r\n", protocol);
wmmihaa 1:b182b5dc15e7 93 pc1.printf("binaryUri: %s\r\n", binaryUri);
wmmihaa 1:b182b5dc15e7 94 pc1.printf("binaryVersion: %s\r\n", binaryVersion);
wmmihaa 1:b182b5dc15e7 95 pc1.printf("debug: %s\r\n", debug);
wmmihaa 1:b182b5dc15e7 96
wmmihaa 0:e542df4c4901 97 }
wmmihaa 0:e542df4c4901 98 else if (msg.find("errorMessage::") == 0)
wmmihaa 0:e542df4c4901 99 {
wmmihaa 0:e542df4c4901 100 pc1.printf("ERROR...\r\n");
wmmihaa 0:e542df4c4901 101 pc1.printf(str);
wmmihaa 0:e542df4c4901 102 pc1.printf("\r\n");
wmmihaa 0:e542df4c4901 103 }
wmmihaa 0:e542df4c4901 104 }
wmmihaa 0:e542df4c4901 105
wmmihaa 0:e542df4c4901 106 }
wmmihaa 0:e542df4c4901 107 ws.close();
wmmihaa 0:e542df4c4901 108
wmmihaa 0:e542df4c4901 109 // lcd.printf("Signing out...");
wmmihaa 0:e542df4c4901 110 }
wmmihaa 0:e542df4c4901 111 char* appendCharToCharArray(char* array, char a)
wmmihaa 0:e542df4c4901 112 {
wmmihaa 0:e542df4c4901 113 size_t len = strlen(array);
wmmihaa 0:e542df4c4901 114
wmmihaa 0:e542df4c4901 115 char* ret = new char[len+2];
wmmihaa 0:e542df4c4901 116
wmmihaa 0:e542df4c4901 117 strcpy(ret, array);
wmmihaa 0:e542df4c4901 118 ret[len] = a;
wmmihaa 0:e542df4c4901 119 ret[len+1] = '\0';
wmmihaa 0:e542df4c4901 120
wmmihaa 0:e542df4c4901 121 return ret;
wmmihaa 0:e542df4c4901 122 }