#include <Crazyflie.h>
Classes | |
struct | batchRequest |
struct | logInfo |
struct | LogTocEntry |
struct | paramInfo |
struct | ParamTocEntry |
union | ParamValue |
Public Types | |
enum | BootloaderTarget { TargetSTM32 = 0xFF, TargetNRF51 = 0xFE } |
enum | LogType { LogTypeUint8 = 1, LogTypeUint16 = 2, LogTypeUint32 = 3, LogTypeInt8 = 4, LogTypeInt16 = 5, LogTypeInt32 = 6, LogTypeFloat = 7, LogTypeFP16 = 8 } |
enum | ParamType { ParamTypeUint8 = 0x00 | (0x00<<2) | (0x01<<3), ParamTypeInt8 = 0x00 | (0x00<<2) | (0x00<<3), ParamTypeUint16 = 0x01 | (0x00<<2) | (0x01<<3), ParamTypeInt16 = 0x01 | (0x00<<2) | (0x00<<3), ParamTypeUint32 = 0x02 | (0x00<<2) | (0x01<<3), ParamTypeInt32 = 0x02 | (0x00<<2) | (0x00<<3), ParamTypeFloat = 0x02 | (0x01<<2) | (0x00<<3) } |
Public Member Functions | |
void | alloff () |
Crazyflie (const std::string &link_uri) | |
template<class T > | |
T | getParam (uint8_t id) const |
const ParamTocEntry * | getParamTocEntry (const std::string &group, const std::string &name) const |
void | logReset () |
std::vector< LogTocEntry > ::const_iterator | logVariablesBegin () const |
std::vector< LogTocEntry > ::const_iterator | logVariablesEnd () const |
std::vector< ParamTocEntry > ::const_iterator | paramsBegin () const |
std::vector< ParamTocEntry > ::const_iterator | paramsEnd () const |
void | queueOutgoingPacket (const crtpPacket_t &packet) |
void | readFlash (BootloaderTarget target, size_t size, std::vector< uint8_t > &data) |
void | reboot () |
uint64_t | rebootToBootloader () |
void | requestLogToc () |
void | requestParamToc () |
std::vector< Crazyradio::Ack > | retrieveGenericPackets () |
void | sendExternalPositionUpdate (float x, float y, float z) |
void | sendPing () |
void | sendSetpoint (float roll, float pitch, float yawrate, uint16_t thrust) |
void | setConsoleCallback (std::function< void(const char *)> cb) |
void | setEmptyAckCallback (std::function< void(const crtpPlatformRSSIAck *)> cb) |
void | setLinkQualityCallback (std::function< void(float)> cb) |
template<class T > | |
void | setParam (uint8_t id, const T &value) |
void | sysoff () |
void | syson () |
void | transmitPackets () |
void | trySysOff () |
float | vbat () |
void | writeFlash (BootloaderTarget target, const std::vector< uint8_t > &data) |
Static Public Member Functions | |
static size_t | size (LogType t) |
Private Member Functions | |
void | addRequest (const uint8_t *data, size_t numBytes, size_t numBytesToMatch) |
template<typename R > | |
void | addRequest (const R &request, size_t numBytesToMatch) |
const LogTocEntry * | getLogTocEntry (const std::string &group, const std::string &name) const |
const ParamValue & | getParam (uint8_t id) const |
template<typename R > | |
const R * | getRequestResult (size_t index) const |
void | handleAck (const Crazyradio::Ack &result) |
void | handleBatchAck (const Crazyradio::Ack &result) |
void | handleRequests (float baseTime=0.5, float timePerRequest=0.05) |
void | queueGenericPacket (const Crazyradio::Ack &result) |
uint8_t | registerLogBlock (std::function< void(crtpLogDataResponse *, uint8_t)> cb) |
void | sendPacket (const uint8_t *data, uint32_t length, Crazyradio::Ack &result) |
bool | sendPacket (const uint8_t *data, uint32_t length) |
void | sendPacketOrTimeout (const uint8_t *data, uint32_t length, float timeout=1.0) |
void | setParam (uint8_t id, const ParamValue &value) |
void | startBatchRequest () |
bool | unregisterLogBlock (uint8_t id) |
Private Attributes | |
uint64_t | m_address |
std::vector< batchRequest > | m_batchRequests |
uint8_t | m_channel |
std::function< void(const char *) | m_consoleCallback ) |
Crazyradio::Datarate | m_datarate |
int | m_devId |
std::function< void(const crtpPlatformRSSIAck *) | m_emptyAckCallback ) |
std::vector< Crazyradio::Ack > | m_generic_packets |
std::function< void(float)> | m_linkQualityCallback |
std::map< uint8_t, std::function< void(crtpLogDataResponse *, uint8_t)> | m_logBlockCb ) |
std::vector< LogTocEntry > | m_logTocEntries |
size_t | m_numRequestsFinished |
std::vector< crtpPacket_t > | m_outgoing_packets |
std::vector< ParamTocEntry > | m_paramTocEntries |
std::map< uint8_t, ParamValue > | m_paramValues |
Crazyradio * | m_radio |
ITransport * | m_transport |
Friends | |
class | LogBlock |
class | LogBlockGeneric |
Definition at line 14 of file Crazyflie.h.
Definition at line 68 of file Crazyflie.h.
enum Crazyflie::LogType |
LogTypeUint8 | |
LogTypeUint16 | |
LogTypeUint32 | |
LogTypeInt8 | |
LogTypeInt16 | |
LogTypeInt32 | |
LogTypeFloat | |
LogTypeFP16 |
Definition at line 50 of file Crazyflie.h.
enum Crazyflie::ParamType |
ParamTypeUint8 | |
ParamTypeInt8 | |
ParamTypeUint16 | |
ParamTypeInt16 | |
ParamTypeUint32 | |
ParamTypeInt32 | |
ParamTypeFloat |
Definition at line 17 of file Crazyflie.h.
Crazyflie::Crazyflie | ( | const std::string & | link_uri | ) |
Definition at line 27 of file Crazyflie.cpp.
void Crazyflie::addRequest | ( | const uint8_t * | data, |
size_t | numBytes, | ||
size_t | numBytesToMatch | ||
) | [private] |
Definition at line 750 of file Crazyflie.cpp.
void Crazyflie::addRequest | ( | const R & | request, |
size_t | numBytesToMatch | ||
) | [inline, private] |
Definition at line 236 of file Crazyflie.h.
void Crazyflie::alloff | ( | ) |
Definition at line 211 of file Crazyflie.cpp.
const Crazyflie::LogTocEntry * Crazyflie::getLogTocEntry | ( | const std::string & | group, |
const std::string & | name | ||
) | const [private] |
Definition at line 702 of file Crazyflie.cpp.
T Crazyflie::getParam | ( | uint8_t | id | ) | const [inline] |
Definition at line 134 of file Crazyflie.h.
const ParamValue& Crazyflie::getParam | ( | uint8_t | id | ) | const [inline, private] |
Definition at line 306 of file Crazyflie.h.
const Crazyflie::ParamTocEntry * Crazyflie::getParamTocEntry | ( | const std::string & | group, |
const std::string & | name | ||
) | const |
Definition at line 714 of file Crazyflie.cpp.
const R* Crazyflie::getRequestResult | ( | size_t | index | ) | const [inline, private] |
Definition at line 252 of file Crazyflie.h.
void Crazyflie::handleAck | ( | const Crazyradio::Ack & | result | ) | [private] |
Definition at line 646 of file Crazyflie.cpp.
void Crazyflie::handleBatchAck | ( | const Crazyradio::Ack & | result | ) | [private] |
Definition at line 813 of file Crazyflie.cpp.
void Crazyflie::handleRequests | ( | float | baseTime = 0.5 , |
float | timePerRequest = 0.05 |
||
) | [private] |
Definition at line 762 of file Crazyflie.cpp.
void Crazyflie::logReset | ( | ) |
Definition at line 110 of file Crazyflie.cpp.
std::vector<LogTocEntry>::const_iterator Crazyflie::logVariablesBegin | ( | ) | const [inline] |
Definition at line 119 of file Crazyflie.h.
std::vector<LogTocEntry>::const_iterator Crazyflie::logVariablesEnd | ( | ) | const [inline] |
Definition at line 122 of file Crazyflie.h.
std::vector<ParamTocEntry>::const_iterator Crazyflie::paramsBegin | ( | ) | const [inline] |
Definition at line 112 of file Crazyflie.h.
std::vector<ParamTocEntry>::const_iterator Crazyflie::paramsEnd | ( | ) | const [inline] |
Definition at line 115 of file Crazyflie.h.
void Crazyflie::queueGenericPacket | ( | const Crazyradio::Ack & | result | ) | [inline, private] |
En-queues an unhandled Ack into a vector so that it can be retrieved later.
result | The unhandled Ack to be en-queued. |
Definition at line 224 of file Crazyflie.h.
void Crazyflie::queueOutgoingPacket | ( | const crtpPacket_t & | packet | ) | [inline] |
En-queues a generic crtpPacket into a vector so that it can be transmitted later.
packet | the crtpPacket to be en-queued. |
Definition at line 193 of file Crazyflie.h.
void Crazyflie::readFlash | ( | BootloaderTarget | target, |
size_t | size, | ||
std::vector< uint8_t > & | data | ||
) |
Definition at line 382 of file Crazyflie.cpp.
void Crazyflie::reboot | ( | ) |
Definition at line 160 of file Crazyflie.cpp.
uint64_t Crazyflie::rebootToBootloader | ( | ) |
Definition at line 169 of file Crazyflie.cpp.
uint8_t Crazyflie::registerLogBlock | ( | std::function< void(crtpLogDataResponse *, uint8_t)> | cb | ) | [private] |
Definition at line 726 of file Crazyflie.cpp.
void Crazyflie::requestLogToc | ( | ) |
Definition at line 445 of file Crazyflie.cpp.
void Crazyflie::requestParamToc | ( | ) |
Definition at line 475 of file Crazyflie.cpp.
std::vector<Crazyradio::Ack> Crazyflie::retrieveGenericPackets | ( | ) | [inline] |
Returns a copy of the en-queued CRTP packets which were not handled by handleAck.
Definition at line 183 of file Crazyflie.h.
void Crazyflie::sendExternalPositionUpdate | ( | float | x, |
float | y, | ||
float | z | ||
) |
Definition at line 128 of file Crazyflie.cpp.
void Crazyflie::sendPacket | ( | const uint8_t * | data, |
uint32_t | length, | ||
Crazyradio::Ack & | result | ||
) | [private] |
Definition at line 603 of file Crazyflie.cpp.
bool Crazyflie::sendPacket | ( | const uint8_t * | data, |
uint32_t | length | ||
) | [private] |
Definition at line 579 of file Crazyflie.cpp.
void Crazyflie::sendPacketOrTimeout | ( | const uint8_t * | data, |
uint32_t | length, | ||
float | timeout = 1.0 |
||
) | [private] |
Definition at line 588 of file Crazyflie.cpp.
void Crazyflie::sendPing | ( | ) |
Definition at line 137 of file Crazyflie.cpp.
void Crazyflie::sendSetpoint | ( | float | roll, |
float | pitch, | ||
float | yawrate, | ||
uint16_t | thrust | ||
) |
Definition at line 118 of file Crazyflie.cpp.
void Crazyflie::setConsoleCallback | ( | std::function< void(const char *)> | cb | ) | [inline] |
Definition at line 153 of file Crazyflie.h.
void Crazyflie::setEmptyAckCallback | ( | std::function< void(const crtpPlatformRSSIAck *)> | cb | ) | [inline] |
Definition at line 143 of file Crazyflie.h.
void Crazyflie::setLinkQualityCallback | ( | std::function< void(float)> | cb | ) | [inline] |
Definition at line 148 of file Crazyflie.h.
void Crazyflie::setParam | ( | uint8_t | id, |
const T & | value | ||
) | [inline] |
Definition at line 127 of file Crazyflie.h.
void Crazyflie::setParam | ( | uint8_t | id, |
const ParamValue & | value | ||
) | [private] |
Definition at line 515 of file Crazyflie.cpp.
static size_t Crazyflie::size | ( | LogType | t | ) | [inline, static] |
Definition at line 158 of file Crazyflie.h.
void Crazyflie::startBatchRequest | ( | ) | [private] |
Definition at line 745 of file Crazyflie.cpp.
void Crazyflie::sysoff | ( | ) |
Definition at line 195 of file Crazyflie.cpp.
void Crazyflie::syson | ( | ) |
Definition at line 217 of file Crazyflie.cpp.
void Crazyflie::transmitPackets | ( | ) |
Transmits any outgoing packets to the crazyflie.
Definition at line 146 of file Crazyflie.cpp.
void Crazyflie::trySysOff | ( | ) |
Definition at line 201 of file Crazyflie.cpp.
bool Crazyflie::unregisterLogBlock | ( | uint8_t | id | ) | [private] |
Definition at line 737 of file Crazyflie.cpp.
float Crazyflie::vbat | ( | ) |
Definition at line 223 of file Crazyflie.cpp.
void Crazyflie::writeFlash | ( | BootloaderTarget | target, |
const std::vector< uint8_t > & | data | ||
) |
Definition at line 240 of file Crazyflie.cpp.
friend class LogBlock [friend] |
Definition at line 330 of file Crazyflie.h.
friend class LogBlockGeneric [friend] |
Definition at line 331 of file Crazyflie.h.
uint64_t Crazyflie::m_address [private] |
Definition at line 316 of file Crazyflie.h.
std::vector<batchRequest> Crazyflie::m_batchRequests [private] |
Definition at line 341 of file Crazyflie.h.
uint8_t Crazyflie::m_channel [private] |
Definition at line 315 of file Crazyflie.h.
std::function<void(const char*) Crazyflie::m_consoleCallback) [private] |
Definition at line 327 of file Crazyflie.h.
Crazyradio::Datarate Crazyflie::m_datarate [private] |
Definition at line 317 of file Crazyflie.h.
int Crazyflie::m_devId [private] |
Definition at line 313 of file Crazyflie.h.
std::function<void(const crtpPlatformRSSIAck*) Crazyflie::m_emptyAckCallback) [private] |
Definition at line 325 of file Crazyflie.h.
std::vector<Crazyradio::Ack> Crazyflie::m_generic_packets [private] |
Definition at line 217 of file Crazyflie.h.
std::function<void(float)> Crazyflie::m_linkQualityCallback [private] |
Definition at line 326 of file Crazyflie.h.
std::map<uint8_t, std::function<void(crtpLogDataResponse*, uint8_t)> Crazyflie::m_logBlockCb) [private] |
Definition at line 320 of file Crazyflie.h.
std::vector<LogTocEntry> Crazyflie::m_logTocEntries [private] |
Definition at line 319 of file Crazyflie.h.
size_t Crazyflie::m_numRequestsFinished [private] |
Definition at line 342 of file Crazyflie.h.
std::vector<crtpPacket_t> Crazyflie::m_outgoing_packets [private] |
Definition at line 218 of file Crazyflie.h.
std::vector<ParamTocEntry> Crazyflie::m_paramTocEntries [private] |
Definition at line 322 of file Crazyflie.h.
std::map<uint8_t, ParamValue> Crazyflie::m_paramValues [private] |
Definition at line 323 of file Crazyflie.h.
Crazyradio* Crazyflie::m_radio [private] |
Definition at line 311 of file Crazyflie.h.
ITransport* Crazyflie::m_transport [private] |
Definition at line 312 of file Crazyflie.h.