asas

Dependencies:   mbed WebSocketClient

Committer:
JioLessard
Date:
Mon Dec 03 19:13:18 2018 +0000
Revision:
0:7e9e4d5000cd
aaa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JioLessard 0:7e9e4d5000cd 1 #include "mbed.h"
JioLessard 0:7e9e4d5000cd 2 #include "EthernetInterface.h"
JioLessard 0:7e9e4d5000cd 3 #include "Websocket.h"
JioLessard 0:7e9e4d5000cd 4
JioLessard 0:7e9e4d5000cd 5 //Variable global
JioLessard 0:7e9e4d5000cd 6 DigitalOut led1(LED1);
JioLessard 0:7e9e4d5000cd 7 DigitalOut led2(LED1);
JioLessard 0:7e9e4d5000cd 8
JioLessard 0:7e9e4d5000cd 9 //xbee pin
JioLessard 0:7e9e4d5000cd 10 DigitalOut reset(p8);
JioLessard 0:7e9e4d5000cd 11 Serial serial_connection(p13, p14);
JioLessard 0:7e9e4d5000cd 12
JioLessard 0:7e9e4d5000cd 13 //pour lecture fichier local
JioLessard 0:7e9e4d5000cd 14 LocalFileSystem local("local");
JioLessard 0:7e9e4d5000cd 15 int panChar;
JioLessard 0:7e9e4d5000cd 16 char url;
JioLessard 0:7e9e4d5000cd 17
JioLessard 0:7e9e4d5000cd 18 //Configuration PAN pour Xbee
JioLessard 0:7e9e4d5000cd 19 void set_PAN(){
JioLessard 0:7e9e4d5000cd 20 int panLSB = (uint8_t)panChar;
JioLessard 0:7e9e4d5000cd 21 int panMSB = (uint8_t)(panChar >> 8);
JioLessard 0:7e9e4d5000cd 22
JioLessard 0:7e9e4d5000cd 23 serial_connection.putc(0x7E);
JioLessard 0:7e9e4d5000cd 24 serial_connection.putc(0x00);
JioLessard 0:7e9e4d5000cd 25 serial_connection.putc(0x06);
JioLessard 0:7e9e4d5000cd 26 serial_connection.putc(0x09);
JioLessard 0:7e9e4d5000cd 27 serial_connection.putc(0x01);
JioLessard 0:7e9e4d5000cd 28 serial_connection.putc(0x49); //I
JioLessard 0:7e9e4d5000cd 29 serial_connection.putc(0x44); //D
JioLessard 0:7e9e4d5000cd 30 //serial_connection.putc(0x0A); // PAN ID, TODO
JioLessard 0:7e9e4d5000cd 31 //serial_connection.putc(0xBD); // PAN ID, TODO
JioLessard 0:7e9e4d5000cd 32 serial_connection.putc(panMSB); // PAN ID, TODO
JioLessard 0:7e9e4d5000cd 33 serial_connection.putc(panLSB); // PAN ID, TODO
JioLessard 0:7e9e4d5000cd 34 serial_connection.putc(0x00); // CheckSum
JioLessard 0:7e9e4d5000cd 35
JioLessard 0:7e9e4d5000cd 36 serial_connection.putc(0x7E);
JioLessard 0:7e9e4d5000cd 37 serial_connection.putc(0x00);
JioLessard 0:7e9e4d5000cd 38 serial_connection.putc(0x04);
JioLessard 0:7e9e4d5000cd 39 serial_connection.putc(0x09);
JioLessard 0:7e9e4d5000cd 40 serial_connection.putc(0x01);
JioLessard 0:7e9e4d5000cd 41 serial_connection.putc(0x57);
JioLessard 0:7e9e4d5000cd 42 serial_connection.putc(0x52);
JioLessard 0:7e9e4d5000cd 43 serial_connection.putc(0x4C);
JioLessard 0:7e9e4d5000cd 44
JioLessard 0:7e9e4d5000cd 45 serial_connection.putc(0x7E);
JioLessard 0:7e9e4d5000cd 46 serial_connection.putc(0x00);
JioLessard 0:7e9e4d5000cd 47 serial_connection.putc(0x04);
JioLessard 0:7e9e4d5000cd 48 serial_connection.putc(0x09);
JioLessard 0:7e9e4d5000cd 49 serial_connection.putc(0x01);
JioLessard 0:7e9e4d5000cd 50 serial_connection.putc(0x41);
JioLessard 0:7e9e4d5000cd 51 serial_connection.putc(0x43);
JioLessard 0:7e9e4d5000cd 52 serial_connection.putc(0x71);
JioLessard 0:7e9e4d5000cd 53 }
JioLessard 0:7e9e4d5000cd 54
JioLessard 0:7e9e4d5000cd 55
JioLessard 0:7e9e4d5000cd 56 //Permet la lecture du PAN et de l'Url dans un fichier local
JioLessard 0:7e9e4d5000cd 57 //Entré: aucune
JioLessard 0:7e9e4d5000cd 58 //Sortie: Sotcké dans variable globales
JioLessard 0:7e9e4d5000cd 59 void Read_FileChar() {
JioLessard 0:7e9e4d5000cd 60 printf("Debut readfile \n\r");
JioLessard 0:7e9e4d5000cd 61
JioLessard 0:7e9e4d5000cd 62 FILE *fp ;
JioLessard 0:7e9e4d5000cd 63 fp = fopen("/local/char2.txt", "r");
JioLessard 0:7e9e4d5000cd 64
JioLessard 0:7e9e4d5000cd 65 //Si file non trouvé
JioLessard 0:7e9e4d5000cd 66 if (fp == NULL) {
JioLessard 0:7e9e4d5000cd 67 printf("Can't open input file in.list!\n\r");
JioLessard 0:7e9e4d5000cd 68 exit(1);
JioLessard 0:7e9e4d5000cd 69 }
JioLessard 0:7e9e4d5000cd 70
JioLessard 0:7e9e4d5000cd 71 //lecture ligne par ligne
JioLessard 0:7e9e4d5000cd 72 fscanf(fp, "%X", &panChar);
JioLessard 0:7e9e4d5000cd 73 fscanf(fp, "%s", &url);
JioLessard 0:7e9e4d5000cd 74 /*
JioLessard 0:7e9e4d5000cd 75 printf("%X \n\r" , panChar);
JioLessard 0:7e9e4d5000cd 76 printf("%s \n\r" , &url);*/
JioLessard 0:7e9e4d5000cd 77
JioLessard 0:7e9e4d5000cd 78 //Fermeture fichier
JioLessard 0:7e9e4d5000cd 79 fclose (fp);
JioLessard 0:7e9e4d5000cd 80 fp = NULL;
JioLessard 0:7e9e4d5000cd 81 printf("Fin readfile\n\r");
JioLessard 0:7e9e4d5000cd 82 }
JioLessard 0:7e9e4d5000cd 83
JioLessard 0:7e9e4d5000cd 84 int main() {
JioLessard 0:7e9e4d5000cd 85 char message[1000];
JioLessard 0:7e9e4d5000cd 86 Read_FileChar();
JioLessard 0:7e9e4d5000cd 87
JioLessard 0:7e9e4d5000cd 88 int cpt_frame = 0;
JioLessard 0:7e9e4d5000cd 89 int length_msb = 0;
JioLessard 0:7e9e4d5000cd 90 int length_lsb = 0;
JioLessard 0:7e9e4d5000cd 91
JioLessard 0:7e9e4d5000cd 92 reset = 0;
JioLessard 0:7e9e4d5000cd 93 led1 = 0;
JioLessard 0:7e9e4d5000cd 94 wait_ms(1);
JioLessard 0:7e9e4d5000cd 95 reset = 1;
JioLessard 0:7e9e4d5000cd 96 wait_ms(1);
JioLessard 0:7e9e4d5000cd 97
JioLessard 0:7e9e4d5000cd 98 set_PAN();
JioLessard 0:7e9e4d5000cd 99
JioLessard 0:7e9e4d5000cd 100 // Début programme
JioLessard 0:7e9e4d5000cd 101 printf("\r\n Websocket Example v1.0.0\r\n");
JioLessard 0:7e9e4d5000cd 102
JioLessard 0:7e9e4d5000cd 103 //Lecture du fichier de configuration
JioLessard 0:7e9e4d5000cd 104
JioLessard 0:7e9e4d5000cd 105 char *realurl;
JioLessard 0:7e9e4d5000cd 106 asprintf(&realurl, "%s%s%s", "ws://", &url, "/");
JioLessard 0:7e9e4d5000cd 107 printf("Real url for socket: %s\n\r", realurl);
JioLessard 0:7e9e4d5000cd 108
JioLessard 0:7e9e4d5000cd 109 //network interface création
JioLessard 0:7e9e4d5000cd 110 EthernetInterface eth;
JioLessard 0:7e9e4d5000cd 111 eth.connect();
JioLessard 0:7e9e4d5000cd 112 printf("IP Address is %s\n\r", eth.get_ip_address());
JioLessard 0:7e9e4d5000cd 113
JioLessard 0:7e9e4d5000cd 114 // Websocket création
JioLessard 0:7e9e4d5000cd 115 //Websocket ws("ws://example.com:8080/", &eth);
JioLessard 0:7e9e4d5000cd 116 //Websocket ws("ws://192.168.137.1:8000/", &eth);
JioLessard 0:7e9e4d5000cd 117 Websocket ws(realurl, &eth);
JioLessard 0:7e9e4d5000cd 118 int connect_error = ws.connect();
JioLessard 0:7e9e4d5000cd 119
JioLessard 0:7e9e4d5000cd 120 //Bouce principale
JioLessard 0:7e9e4d5000cd 121 while (true){
JioLessard 0:7e9e4d5000cd 122 if (serial_connection.readable()){
JioLessard 0:7e9e4d5000cd 123 char hex_value = serial_connection.getc();
JioLessard 0:7e9e4d5000cd 124 //printf("%X\n\r", hex_value);
JioLessard 0:7e9e4d5000cd 125 if (hex_value == 0x7E){ // Détecte une nouvelle trame
JioLessard 0:7e9e4d5000cd 126 cpt_frame = 0;
JioLessard 0:7e9e4d5000cd 127 }
JioLessard 0:7e9e4d5000cd 128 else if(cpt_frame == 1){ // Lecture du length MSB
JioLessard 0:7e9e4d5000cd 129 length_msb = hex_value;
JioLessard 0:7e9e4d5000cd 130 }
JioLessard 0:7e9e4d5000cd 131 else if(cpt_frame == 2){ // Lecture du length LSB
JioLessard 0:7e9e4d5000cd 132 length_lsb = hex_value;
JioLessard 0:7e9e4d5000cd 133 if (length_lsb == 0x0E){
JioLessard 0:7e9e4d5000cd 134 printf("\n\r Pressed");
JioLessard 0:7e9e4d5000cd 135 }
JioLessard 0:7e9e4d5000cd 136 }
JioLessard 0:7e9e4d5000cd 137 else if (cpt_frame >= 0x0F && cpt_frame < (length_lsb + 0x03)){ //Permet d'aller chercher le data dynamiquement selon la longueur de la trame
JioLessard 0:7e9e4d5000cd 138 //printf("%X\n\r", hex_value);
JioLessard 0:7e9e4d5000cd 139 }
JioLessard 0:7e9e4d5000cd 140 cpt_frame++;
JioLessard 0:7e9e4d5000cd 141 }
JioLessard 0:7e9e4d5000cd 142 /*
JioLessard 0:7e9e4d5000cd 143 int error_c = ws.send("Hello World\r\n");
JioLessard 0:7e9e4d5000cd 144
JioLessard 0:7e9e4d5000cd 145 if(error_c == 1)
JioLessard 0:7e9e4d5000cd 146 printf("Error send message");
JioLessard 0:7e9e4d5000cd 147 else{
JioLessard 0:7e9e4d5000cd 148 printf("Message send\r\n");
JioLessard 0:7e9e4d5000cd 149 wait_ms(100);
JioLessard 0:7e9e4d5000cd 150 ws.read(message);
JioLessard 0:7e9e4d5000cd 151 printf("The message read is: %s \r\n", message);
JioLessard 0:7e9e4d5000cd 152 }*/
JioLessard 0:7e9e4d5000cd 153 }
JioLessard 0:7e9e4d5000cd 154 }