Code APP3

Dependencies:   mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial

Fork of APP3_Lab by Jean-Philippe Fournier

Revision:
1:ea1b52d0a8a3
Child:
2:a9bb12eefc08
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xbee.cpp	Wed Sep 27 19:58:38 2017 +0000
@@ -0,0 +1,101 @@
+
+/***
+*   xbee.cpp - en-tete de lib xbee - fouj1807 - mcgj2701
+*/
+
+#include "xbee.h"
+
+
+#define ZIGBEE_DELIMITER 0x7E
+
+DigitalOut xbee_led(LED1);
+DigitalOut xbee_reset(p8);
+
+Serial xbee(p13, p14); // tx, rx
+
+char TransmitBuffer[2048] = {0};
+char ReceiveBuffer[2048] = {0};
+
+void xbee_init()
+{
+    xbee_reset = 0;
+    
+    wait_ms(400);
+    
+    xbee_reset = 1;
+    
+    wait_ms(5000);    
+    
+    xbee_led = 1;    
+}
+
+
+bool set_pan_id(long pan_id)
+{
+    return false;
+}
+
+long get_pan_id()
+{
+    return 0L;
+}
+
+bool transmit_request(char* buffer, int length)
+{
+    // Delimiter
+    TransmitBuffer[0] = ZIGBEE_DELIMITER;
+    
+    char checksum = 0xFF;
+    
+    // Frame Length
+    int frame_length = length + 14;    
+    TransmitBuffer[1] = frame_length >> 8;
+    TransmitBuffer[2] = frame_length & 0xFF;
+    
+    // Frame Type
+    TransmitBuffer[3] = 0x10;
+    
+    // Frame ID
+    TransmitBuffer[4] = 0x01;
+    
+    // Should set address if different from coordinator
+    //TransmitBuffer[5] = 
+    
+    // 16-bit address, broadcast address
+    TransmitBuffer[13] = 0xFF;
+    TransmitBuffer[14] = 0xFE;
+    
+    // Max hops, 0 = max
+    TransmitBuffer[15] = 0x00;
+    
+    // Transmit options
+    TransmitBuffer[16] = 0x00;
+    
+    // Insert buffer data
+    for (int i = 0; i < length; i++)
+    {
+        TransmitBuffer[17 + i] = buffer[i];
+    }   
+    
+    // Calculate checksum
+    for (int i = 3; i < 17 + length; i++)
+    {
+        checksum -= TransmitBuffer[i];
+    }
+    
+    // Insert checksum into buffer
+    TransmitBuffer[17 + length] = checksum;
+    
+    for (int i = 0; i < 17 + length + 1; i++)
+    {
+        xbee.putc(TransmitBuffer[i]);
+    }
+    
+    xbee_led = !xbee_led;
+    return false;
+}
+
+int receive_buffer(char* buffer, int max_length)
+{
+    return 0;   
+}
\ No newline at end of file