Librairie xbee.

Dependents:   NerfUS-Coord NerfUSTarget

Fork of APP3_xbee by Team APP

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers xbee.h Source File

xbee.h

00001 /////////////////////////////////////////////////////////////
00002 // APP 3                                                   //
00003 //                                                         //
00004 // Université de Sherbrooke                                //
00005 // Génie informatique                                      //
00006 // Session 5, Hiver 2017                                   //
00007 //                                                         //
00008 // Date:    14 février 2017                                //
00009 //                                                         //
00010 // Auteurs: Maxime Dupuis,       dupm2216                  //
00011 //          Bruno Allaire-Lemay, allb2701                  //
00012 /////////////////////////////////////////////////////////////
00013 
00014 #ifndef XBEE_HPP
00015 #define XBEE_HPP
00016 
00017 #include <vector>
00018 #include <string>
00019 #include <cassert>
00020 #include "mbed.h"
00021 #include "rtos.h"
00022 
00023 struct ingoing_value_t
00024 {
00025     char content[30];
00026     int size;
00027 };
00028 
00029 //See xbee document page 99
00030 const char FRAME_TYPE_RECEIVE_PACKET = 0x90;
00031 const char FRAME_TYPE_TRANSMIT_STATUS = 0x8B;
00032 const char FRAME_TYPE_AT_COMMAND_RESPONSE = 0x88;
00033 const char FRAME_TYPE_REMOTE_COMMAND_RESPONSE = 0x97;
00034 
00035 const char TRANSMIT_STATUS_SUCCESS = 0x00;
00036 const char AT_COMMAND_RESPONSE_STATUS_OK = 0x00;
00037 const char REMOTE_COMMAND_RESPONSE_COMMAND_STATUS_OK = 0x00;
00038 
00039 const char EVENT_TYPE_COORDINATOR_TO_ROUTER = 0x00;
00040 const char EVENT_TYPE_ROUTOR_TO_COORDINATOR = 0x01;
00041 
00042 const char BUTTON_PRESSED = 0x00;
00043 const char BUTTON_RELEASED = 0x01;
00044 
00045 extern Mail<ingoing_value_t, 30> parsed_frames;
00046 extern RawSerial xbee;
00047 
00048 extern DigitalOut error_led;
00049 extern Thread error_led_thread;
00050 
00051 void manage_error_led();
00052 void send_blink_led_at_command(const bool toggle_current_command);
00053 
00054 void send_message_via_xbee(const char* message, const int length, int address[8]);
00055 vector<char> generate_transmit_request(const char* message, const int length, int address[8]);
00056 vector<char> generate_led_command(const bool power_on);
00057 void read_frame();
00058 vector<char> parse_receive_packet(const vector<char>& frame);
00059 vector<char> parse_transmit_status(const vector<char>& frame);
00060 vector<char> parse_at_command_response(const vector<char>& frame);
00061 void handle_parsed_frames_from_mailbox(void const *args);
00062 void handle_frame(const vector<char>& frame);
00063 
00064 void parse_nerfus_message(const vector<char>& parsed_frame, void (*callback)(vector<uint8_t>, int*));
00065 
00066 //Simplify the frame to only contain the frame type and the relevant data for our application
00067 vector<char> parse_frame(const vector<char>& frame);
00068 
00069 vector<char> ingoing_value_to_vector(const ingoing_value_t& value);
00070 
00071 vector<string> read_file(string path);
00072 char hexa_char_to_dec(char hexa_char);
00073 vector<char> string_to_data(string pan_id);
00074 void set_pan_id(string pan_id);
00075 
00076 #endif