app3

Dependencies:   WebSocketClient mbed

Files at this revision

API Documentation at this revision

Comitter:
pierreblouet
Date:
Tue Oct 02 15:10:48 2018 +0000
Commit message:
app3;

Changed in this revision

WebSocketClient.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r f62e1e20c098 WebSocketClient.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebSocketClient.lib	Tue Oct 02 15:10:48 2018 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/mbed_example/code/WebSocketClient/#efa2c147bee1
diff -r 000000000000 -r f62e1e20c098 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Oct 02 15:10:48 2018 +0000
@@ -0,0 +1,202 @@
+/////////////////////////
+/////////////////////////
+
+#include "mbed.h"
+#include "EthernetInterface.h"
+#include "Websocket.h"
+
+
+DigitalOut P8(p8);
+DigitalOut led1(LED1);
+
+Serial pc(USBTX,USBRX,9600);
+
+Serial xbee(p13,p14,9600);
+
+class message{
+    public : 
+    int lenght;
+    int type;
+    char bits64[8];
+    char bits16[4];
+    char msg[8];
+    int checksum;
+    int paquetconfirm;
+};
+
+message message1;
+
+uint8_t table[16]={};// = {0x7E,0x00,0x15,0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFE,0xE8,0xE8,0x00,0x11,0xC1,0x05,0x00,0x00,0x74,0xD7};
+                  
+
+
+void initXbee(){
+       P8 = 0;
+     wait(0.4);
+   P8 = 1;  
+}
+
+void xctu(){
+            if(xbee.readable()){
+    pc.putc(xbee.getc());}
+        if(pc.readable()){
+        xbee.putc(pc.getc());
+        }
+}
+
+void getIp(){
+    // des données a lire 
+    if(xbee.readable()){
+        // début du packet
+        //donnée 1 :
+        if(xbee.getc()==0x7E){
+            //donnée 2 :
+            if(xbee.getc()==0x00){
+                //donnée 3 :
+                message1.lenght = xbee.getc();
+                //donnée 4 :
+              message1.type = xbee.getc();
+                //donnée 5 à 12 :
+                for (int i =0;i<(8);i++){
+                    message1.bits64[i]=xbee.getc();}
+                //donnée 13 à 14 :
+                for (int i =0;i<(2);i++){
+                    message1.bits16[i]=xbee.getc();}
+                    //donnée 15 :
+                xbee.getc();
+                    // donnée de 16 à X 
+                for (int i =0;i<(message1.lenght-12);i++){
+         message1.msg[i]= xbee.getc();
+                }
+                //dernière donnée
+                message1.checksum = xbee.getc();    
+                
+            }
+        }
+    }
+}
+void getdatatest(){
+        if(xbee.readable()){
+            for(int i =0; i<sizeof(table);i++){
+                while(xbee.readable()==0){}
+                table[i]=xbee.getc();
+            }
+            
+        }
+}
+
+void sendMessageIp(){
+    char sum = 0;
+    char tabletest[]={0x7E,0x00,0x15,0x11,0x01,0x00,0x13,0xA2,0x00,0x40,0x3E,0x09,0x57,0xFF,0xFE,0xE8,0xE8,0x00,0x11,0xC1,0x05,0x00,0x00,0x74,0x00};
+        for(int i = 5;i<11;i++){
+            tabletest[i]=message1.bits64[i-5];
+        }
+        for(int i = 3;i<24;i++){
+             sum = sum + tabletest[i];
+        }
+        sum = 0xFF - sum;
+        tabletest[24]=sum;
+        for(int i =0;i<sizeof(tabletest);i++){
+        //  pc.printf("%X ",tabletest[i]);
+            xbee.putc(tabletest[i]);
+        }
+}
+
+int main() {
+     char bouton = 0x00;
+     char acc = 0x00;
+     char c[20];
+     int h=0;
+     int ledState=0;
+       // announce
+    printf("Websocket Example v1.0.0\r\n");
+    
+    // Create a network interface and connect
+    EthernetInterface eth;
+    eth.connect();
+    printf("IP Address is %s\n\r", eth.get_ip_address());
+
+    // Create a websocket instance
+    Websocket ws("ws://10.43.134.175:8000/", &eth);
+    int connect_error = ws.connect();
+    initXbee();
+    
+    // tant que l'on a pas obtenue l'adresse ip 64 du recepteur 
+    while(message1.paquetconfirm!=1){
+        // on obtient l'adresse
+        //getIp();
+        getIp();
+        if(message1.msg[0]==0x74 && message1.lenght == 0x0D){message1.paquetconfirm = 1;}
+
+    }   
+            pc.printf("ip :");
+                for(int i =0;i<sizeof(message1.bits64);i++){
+            pc.printf("%X ",message1.bits64[i]);
+        }
+                pc.printf("\n");
+    // une fois l'adresse obtenue on envoie un message avec l'ip de destination 
+        sendMessageIp();
+        sendMessageIp();
+
+        
+    // on recoi la confirmation que les deux appareils sont connecter 
+        
+        
+
+    
+    while(1){
+        //xctu(); // connection xctu
+       
+        getIp();
+        if(message1.msg[0]==0x62 && message1.msg[1]==0x6F && message1.lenght == 0x13){
+            if(bouton != message1.msg[6]){
+            bouton = message1.msg[6];
+          //  pc.printf("boutton : %c\n\r",bouton);
+            char str[12];
+            sprintf(str, "bouton : %c", bouton);
+             ws.send(str);
+             ws.read(c);
+             printf("%s\n\r", c);
+            }
+            }
+            if(acc != message1.msg[4]&& message1.msg[0]==0x61){
+                char v1 = message1.msg[3];
+                char v2 = message1.msg[4];
+               // char data[]={v1,v2};
+             //   pc.printf("accelerometre en x : %c%c,\n\r",v1,v2);
+                acc=message1.msg[4];
+                char str[12];
+                sprintf(str, "acc X : %c%c", v1,v2);
+                ws.send(str);
+                ws.read(c);
+                printf("%s\n\r", c);
+                }
+               // h++;
+                if (h == 10){
+                    if(ledState == 0){
+                        char tabletest[]={0x7E,0x00,0x10,0x17,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFE,0x02,0x44,0x31,0x05,0x70};
+                        for(int i =0;i<sizeof(tabletest);i++){
+                            xbee.putc(tabletest[i]);
+                            }
+                            ledState = 1;
+                            h=0;
+                        }
+                    if(ledState == 1){
+                        char tabletest[]={0x7E,0x00,0x10,0x17,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFE,0x02,0x44,0x31,0x04,0x71};
+                         for(int i =0;i<sizeof(tabletest);i++){
+                            xbee.putc(tabletest[i]);
+                            }
+                            ledState = 0;
+                            h=0;
+                        }
+                    
+                    }
+       //     }
+       
+       
+
+
+    }
+    
+    }
+     
diff -r 000000000000 -r f62e1e20c098 mbed-os.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os.lib	Tue Oct 02 15:10:48 2018 +0000
@@ -0,0 +1,1 @@
+https://github.com/ARMmbed/mbed-os/#c9e63f14085f5751ff5ead79a7c0382d50a813a2
diff -r 000000000000 -r f62e1e20c098 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Oct 02 15:10:48 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/e95d10626187
\ No newline at end of file