Librairie xbee.
Dependents: NerfUS-Coord NerfUSTarget
Fork of APP3_xbee by
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
Generated on Thu Jul 14 2022 15:12:33 by
1.7.2
