DataVizButtonCode

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
samuelmoss
Date:
Mon Jul 17 11:38:39 2017 +0000
Revision:
0:4f9d1615d0e7
DataVizCodeUpload

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samuelmoss 0:4f9d1615d0e7 1 #include "mbed.h"
samuelmoss 0:4f9d1615d0e7 2 #include "EthernetInterface.h"
samuelmoss 0:4f9d1615d0e7 3 #include <string>
samuelmoss 0:4f9d1615d0e7 4
samuelmoss 0:4f9d1615d0e7 5
samuelmoss 0:4f9d1615d0e7 6 const char* ECHO_SERVER_ADDRESS = "10.2.134.30";
samuelmoss 0:4f9d1615d0e7 7 const int ECHO_SERVER_PORT = 7;
samuelmoss 0:4f9d1615d0e7 8
samuelmoss 0:4f9d1615d0e7 9 DigitalOut led1(D7);
samuelmoss 0:4f9d1615d0e7 10 DigitalOut led2(D6);
samuelmoss 0:4f9d1615d0e7 11 DigitalOut led3(D5);
samuelmoss 0:4f9d1615d0e7 12 DigitalOut led4(D4);
samuelmoss 0:4f9d1615d0e7 13
samuelmoss 0:4f9d1615d0e7 14 InterruptIn DataSwitch1(D3);
samuelmoss 0:4f9d1615d0e7 15 InterruptIn DataSwitch2(D2);
samuelmoss 0:4f9d1615d0e7 16 InterruptIn DataSwitch3(D1);
samuelmoss 0:4f9d1615d0e7 17 InterruptIn DataSwitch4(D0);
samuelmoss 0:4f9d1615d0e7 18
samuelmoss 0:4f9d1615d0e7 19
samuelmoss 0:4f9d1615d0e7 20 int prev_dataset = 0;
samuelmoss 0:4f9d1615d0e7 21 char json_str[100];
samuelmoss 0:4f9d1615d0e7 22 int button = 0;
samuelmoss 0:4f9d1615d0e7 23 string channel = ("channel");
samuelmoss 0:4f9d1615d0e7 24 char dataset = '1';
samuelmoss 0:4f9d1615d0e7 25
samuelmoss 0:4f9d1615d0e7 26
samuelmoss 0:4f9d1615d0e7 27 void dataset1_cb()
samuelmoss 0:4f9d1615d0e7 28 {
samuelmoss 0:4f9d1615d0e7 29
samuelmoss 0:4f9d1615d0e7 30 button = 1;
samuelmoss 0:4f9d1615d0e7 31 }
samuelmoss 0:4f9d1615d0e7 32 void dataset2_cb()
samuelmoss 0:4f9d1615d0e7 33 {
samuelmoss 0:4f9d1615d0e7 34
samuelmoss 0:4f9d1615d0e7 35 button = 2;
samuelmoss 0:4f9d1615d0e7 36 }
samuelmoss 0:4f9d1615d0e7 37 void dataset3_cb()
samuelmoss 0:4f9d1615d0e7 38 {
samuelmoss 0:4f9d1615d0e7 39
samuelmoss 0:4f9d1615d0e7 40 button = 3;
samuelmoss 0:4f9d1615d0e7 41 }
samuelmoss 0:4f9d1615d0e7 42 void dataset4_cb()
samuelmoss 0:4f9d1615d0e7 43 {
samuelmoss 0:4f9d1615d0e7 44
samuelmoss 0:4f9d1615d0e7 45 button = 4;
samuelmoss 0:4f9d1615d0e7 46 }
samuelmoss 0:4f9d1615d0e7 47
samuelmoss 0:4f9d1615d0e7 48 int main()
samuelmoss 0:4f9d1615d0e7 49 {
samuelmoss 0:4f9d1615d0e7 50
samuelmoss 0:4f9d1615d0e7 51 DataSwitch1.rise(&dataset1_cb);
samuelmoss 0:4f9d1615d0e7 52 DataSwitch2.rise(&dataset2_cb);
samuelmoss 0:4f9d1615d0e7 53 DataSwitch3.rise(&dataset3_cb);
samuelmoss 0:4f9d1615d0e7 54 DataSwitch4.rise(&dataset4_cb);
samuelmoss 0:4f9d1615d0e7 55
samuelmoss 0:4f9d1615d0e7 56 EthernetInterface eth;
samuelmoss 0:4f9d1615d0e7 57 eth.init(); //Use DHCP
samuelmoss 0:4f9d1615d0e7 58 eth.connect();
samuelmoss 0:4f9d1615d0e7 59 printf("\nClient IP Address is %s\n", eth.getIPAddress());
samuelmoss 0:4f9d1615d0e7 60
samuelmoss 0:4f9d1615d0e7 61 // Connect to Server
samuelmoss 0:4f9d1615d0e7 62 TCPSocketConnection socket;
samuelmoss 0:4f9d1615d0e7 63 while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0)
samuelmoss 0:4f9d1615d0e7 64 {
samuelmoss 0:4f9d1615d0e7 65 printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
samuelmoss 0:4f9d1615d0e7 66 wait(1);
samuelmoss 0:4f9d1615d0e7 67 }
samuelmoss 0:4f9d1615d0e7 68 printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS);
samuelmoss 0:4f9d1615d0e7 69
samuelmoss 0:4f9d1615d0e7 70 while(1)
samuelmoss 0:4f9d1615d0e7 71 { if (dataset != prev_dataset)
samuelmoss 0:4f9d1615d0e7 72 {
samuelmoss 0:4f9d1615d0e7 73 switch(dataset)
samuelmoss 0:4f9d1615d0e7 74 {
samuelmoss 0:4f9d1615d0e7 75 case(0):
samuelmoss 0:4f9d1615d0e7 76 break;
samuelmoss 0:4f9d1615d0e7 77 case(1):
samuelmoss 0:4f9d1615d0e7 78 channel = "";
samuelmoss 0:4f9d1615d0e7 79 dataset = '1';
samuelmoss 0:4f9d1615d0e7 80 sprintf (json_str, "{\"channel\":%s,\"dataset\":%c\"}", channel, dataset);
samuelmoss 0:4f9d1615d0e7 81 //printf("Sending message to Server : '%s' \n",json_str);
samuelmoss 0:4f9d1615d0e7 82 socket.send_all(json_str, sizeof(json_str) - 1);
samuelmoss 0:4f9d1615d0e7 83 led1=1;
samuelmoss 0:4f9d1615d0e7 84 led2=0;
samuelmoss 0:4f9d1615d0e7 85 led3=0;
samuelmoss 0:4f9d1615d0e7 86 led4=0;
samuelmoss 0:4f9d1615d0e7 87 break;
samuelmoss 0:4f9d1615d0e7 88 case(2):
samuelmoss 0:4f9d1615d0e7 89 channel = "";
samuelmoss 0:4f9d1615d0e7 90 dataset = '2';
samuelmoss 0:4f9d1615d0e7 91 sprintf (json_str, "{\"channel\":%s,\"dataset\":%c\"}", channel, dataset);
samuelmoss 0:4f9d1615d0e7 92 //printf("Sending message to Server : '%s' \n",json_str);
samuelmoss 0:4f9d1615d0e7 93 socket.send_all(json_str, sizeof(json_str) - 1);
samuelmoss 0:4f9d1615d0e7 94 led1=0;
samuelmoss 0:4f9d1615d0e7 95 led2=1;
samuelmoss 0:4f9d1615d0e7 96 led3=0;
samuelmoss 0:4f9d1615d0e7 97 led4=0;
samuelmoss 0:4f9d1615d0e7 98 break;
samuelmoss 0:4f9d1615d0e7 99 case(3):
samuelmoss 0:4f9d1615d0e7 100 channel = "";
samuelmoss 0:4f9d1615d0e7 101 dataset = '3';
samuelmoss 0:4f9d1615d0e7 102 sprintf (json_str, "{\"channel\":%s,\"dataset\":%c\"}", channel, dataset);
samuelmoss 0:4f9d1615d0e7 103 //printf("Sending message to Server : '%s' \n",json_str);
samuelmoss 0:4f9d1615d0e7 104 socket.send_all(json_str, sizeof(json_str) - 1);
samuelmoss 0:4f9d1615d0e7 105 led1=0;
samuelmoss 0:4f9d1615d0e7 106 led2=0;
samuelmoss 0:4f9d1615d0e7 107 led3=1;
samuelmoss 0:4f9d1615d0e7 108 led4=0;
samuelmoss 0:4f9d1615d0e7 109 break;
samuelmoss 0:4f9d1615d0e7 110 case(4):
samuelmoss 0:4f9d1615d0e7 111 channel = "";
samuelmoss 0:4f9d1615d0e7 112 dataset = '4';
samuelmoss 0:4f9d1615d0e7 113 sprintf (json_str, "{\"channel\":%s,\"dataset\":%c\"}", channel, dataset);
samuelmoss 0:4f9d1615d0e7 114 //printf("Sending message to Server : '%s' \n",json_str);
samuelmoss 0:4f9d1615d0e7 115 socket.send_all(json_str, sizeof(json_str) - 1);
samuelmoss 0:4f9d1615d0e7 116 led1=0;
samuelmoss 0:4f9d1615d0e7 117 led2=0;
samuelmoss 0:4f9d1615d0e7 118 led3=0;
samuelmoss 0:4f9d1615d0e7 119 led4=1;
samuelmoss 0:4f9d1615d0e7 120 break;
samuelmoss 0:4f9d1615d0e7 121 default:
samuelmoss 0:4f9d1615d0e7 122 break;
samuelmoss 0:4f9d1615d0e7 123 }
samuelmoss 0:4f9d1615d0e7 124 prev_dataset = dataset;
samuelmoss 0:4f9d1615d0e7 125 // Receive message from server
samuelmoss 0:4f9d1615d0e7 126 char buf[256];
samuelmoss 0:4f9d1615d0e7 127 int n = socket.receive(buf, 256);
samuelmoss 0:4f9d1615d0e7 128 buf[n] = '\0';
samuelmoss 0:4f9d1615d0e7 129 printf("Received message from server: '%s'\n", buf);
samuelmoss 0:4f9d1615d0e7 130 }
samuelmoss 0:4f9d1615d0e7 131
samuelmoss 0:4f9d1615d0e7 132
samuelmoss 0:4f9d1615d0e7 133
samuelmoss 0:4f9d1615d0e7 134 }
samuelmoss 0:4f9d1615d0e7 135
samuelmoss 0:4f9d1615d0e7 136 // Clean up
samuelmoss 0:4f9d1615d0e7 137 socket.close();
samuelmoss 0:4f9d1615d0e7 138 eth.disconnect();
samuelmoss 0:4f9d1615d0e7 139
samuelmoss 0:4f9d1615d0e7 140 while(true) {}
samuelmoss 0:4f9d1615d0e7 141 }
samuelmoss 0:4f9d1615d0e7 142
samuelmoss 0:4f9d1615d0e7 143