Code APP3
Dependencies: mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial
Fork of APP3_Lab by
xbee.cpp
- Committer:
- Cheroukee
- Date:
- 2017-09-27
- Revision:
- 1:ea1b52d0a8a3
- Child:
- 2:a9bb12eefc08
File content as of revision 1:ea1b52d0a8a3:
/*** * 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; }