Librairie xbee.

Dependents:   NerfUS-Coord NerfUSTarget

Fork of APP3_xbee by Team APP

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers XbeeTransmitter.cpp Source File

XbeeTransmitter.cpp

00001 #include "RealXbeeTransmitter.hpp"
00002 #include <cassert>
00003 
00004 RealXbeeTransmitter::RealXbeeTransmitter()
00005 {
00006     
00007 }
00008 
00009 void RealXbeeTransmitter::transmit(const std::vector<uint8_t>& bytes, int address[8])
00010 {
00011     target_message *message = target_messages_to_transmit.alloc();
00012     for(int i=0; i<message_size; i++)
00013     {
00014         message->bytes[i] = bytes[i];
00015     }
00016     for(int i=0; i<8; i++)
00017     {
00018         message->address[i] = address[i];
00019     }
00020     target_messages_to_transmit.put(message);
00021 }
00022 
00023 void RealXbeeTransmitter::transmit(uint8_t bytes[4], int length, int address[8])
00024 {
00025     target_message *message = target_messages_to_transmit.alloc();
00026     for(int i=0; i<message_size; i++)
00027     {
00028         message->bytes[i] = bytes[i];
00029     }
00030     for(int i=0; i<8; i++)
00031     {
00032         message->address[i] = address[i];
00033     }
00034     target_messages_to_transmit.put(message);
00035 }
00036 
00037 void RealXbeeTransmitter::init()
00038 {
00039     transmit_target_messages_thread.start(callback(this, &RealXbeeTransmitter::transmit_target_message));
00040 }
00041 
00042 void RealXbeeTransmitter::transmit_target_message()
00043 {
00044     while(true)
00045     {
00046         osEvent event = target_messages_to_transmit.get();
00047         assert(event.status == osEventMail);      
00048         
00049         target_message *message = (target_message*)event.value.p;
00050     
00051         send_message_via_xbee((char*) message->bytes, message_size, message->address);
00052     }
00053 }