Onboard-SDK-ROS
|
CoreAPI implements core Open Protocol communication between M100/M600/A3 and your onboard embedded platform. More...
#include <DJI_API.h>
Public Member Functions | |
void | sendPoll (void) |
void | readPoll (void) |
void | callbackPoll (void) |
void | byteHandler (const uint8_t in_data) |
void | byteStreamHandler (uint8_t *buffer, size_t size) |
CoreAPI (HardDriver *Driver=0, Version SDKVersion=0, bool userCallbackThread=false, CallBack userRecvCallback=0, UserData userData=0) | |
CoreAPI (HardDriver *Driver, Version SDKVersion, CallBackHandler userRecvCallback, bool userCallbackThread=false) | |
void | ack (req_id_t req_id, unsigned char *ackdata, int len) |
void | activate (ActivateData *data, CallBack callback=0, UserData userData=0) |
Activation Control. More... | |
void | setControl (bool enable, CallBack callback=0, UserData userData=0) |
void | setActivation (bool isActivated) |
Activation Control. More... | |
ActivateData | getAccountData () const |
Activation Control. More... | |
void | setAccountData (const ActivateData &value) |
Activation Control. | |
void | sendToMobile (uint8_t *data, uint8_t len, CallBack callback=0, UserData userData=0) |
void | setBroadcastFreq (uint8_t *dataLenIs16, CallBack callback=0, UserData userData=0) |
void | setSessionStatus (uint32_t usageFlag) |
uint32_t | getSessionStatus () |
void | setSyncFreq (uint32_t freqInHz) |
void | setKey (const char *key) |
HardDriver * | getDriver () const |
Version | getFwVersion () const |
void | setBroadcastCallback (CallBackHandler callback) |
void | setFromMobileCallback (CallBackHandler FromMobileEntrance) |
void | setBroadcastCallback (CallBack handler, UserData userData=0) |
void | setFromMobileCallback (CallBack handler, UserData userData=0) |
void | setMisssionCallback (CallBackHandler callback) |
void | setHotPointCallback (CallBackHandler callback) |
void | setWayPointCallback (CallBackHandler callback) |
void | setFollowCallback (CallBackHandler callback) |
void | setWayPointEventCallback (CallBackHandler callback) |
void | setMisssionCallback (CallBack handler, UserData userData=0) |
void | setHotPointCallback (CallBack handler, UserData userData=0) |
void | setWayPointCallback (CallBack handler, UserData userData=0) |
void | setFollowCallback (CallBack handler, UserData userData=0) |
void | setWayPointEventCallback (CallBack handler, UserData userData=0) |
bool | decodeACKStatus (unsigned short ack) |
bool | decodeMissionStatus (uint8_t ack) |
SDKFilter | getFilter () const |
Open Protocol Control. More... | |
bool | getHotPointData () const |
HotPoint Mission Control. | |
bool | getWayPointData () const |
WayPoint Mission Control. | |
bool | getFollowData () const |
void | setHotPointData (bool value) |
HotPoint Mission Control. | |
void | setWayPointData (bool value) |
WayPoint Mission Control. | |
void | setFollowData (bool value) |
Follow Me Mission Control. | |
void | setDriver (HardDriver *value) |
void | setVersion (const Version &value) |
void | send (unsigned char session_mode, unsigned char is_enc, CMD_SET cmd_set, unsigned char cmd_id, void *pdata, int len, CallBack ack_callback, int timeout=0, int retry_time=1) |
void | send (unsigned char session_mode, bool is_enc, CMD_SET cmd_set, unsigned char cmd_id, void *pdata, size_t len, int timeout=0, int retry_time=1, CallBack ack_handler=0, UserData userData=0) |
void | send (Command *parameter) |
void | getDroneVersion (CallBack callback=0, UserData userData=0) |
BroadcastData | getBroadcastData () const |
TimeStampData | getTime () const |
FlightStatus | getFlightStatus () const |
CtrlInfoData | getCtrlInfo () const |
BatteryData | getBatteryCapacity () const |
Static Public Member Functions | |
static void | activateCallback (CoreAPI *api, Header *protocolHeader, UserData userData=0) |
static void | getDroneVersionCallback (CoreAPI *api, Header *protocolHeader, UserData userData=0) |
static void | setControlCallback (CoreAPI *api, Header *protocolHeader, UserData userData=0) |
static void | sendToMobileCallback (CoreAPI *api, Header *protocolHeader, UserData userData=0) |
static void | setFrequencyCallback (CoreAPI *api, Header *protocolHeader, UserData userData=0) |
CoreAPI implements core Open Protocol communication between M100/M600/A3 and your onboard embedded platform.
void CoreAPI::activate | ( | ActivateData * | data, |
CallBack | callback = 0 , |
||
UserData | userData = 0 |
||
) |
Activation Control.
Send activation request to your flight controller to check if:
a) your application registered in your developer account
b) API Control enabled in the Assistant software
Proceed to programming if activation successful.
void DJI::onboardSDK::CoreAPI::byteHandler | ( | const uint8_t | in_data | ) |
[123456HHD1234567===HHHH------------——] — is buf un-used part
if after recv full of above, but crc failed, we throw all data? NO! Just throw ONE BYTE, we move like below
[123456HH------------——D1234567===HHHH]
Use the buffer high part to re-loop, try to find a new command
if new cmd also fail, and buf like below
[56HHD1234567----------------——===HHHH]
throw one byte, buf looks like
[6HHD123-----------------——4567===HHHH]
the command tail part move to buffer right
void CoreAPI::byteStreamHandler | ( | uint8_t * | buffer, |
size_t | size | ||
) |
void CoreAPI::callbackPoll | ( | void | ) |
bool CoreAPI::decodeACKStatus | ( | unsigned short | ack | ) |
ACK decoder.
bool DJI::onboardSDK::CoreAPI::decodeMissionStatus | ( | uint8_t | ack | ) |
ActivateData CoreAPI::getAccountData | ( | ) | const |
Activation Control.
Get Activation information
BatteryData DJI::onboardSDK::CoreAPI::getBatteryCapacity | ( | ) | const |
Get battery capacity.
BroadcastData DJI::onboardSDK::CoreAPI::getBroadcastData | ( | ) | const |
Get broadcasted data values from flight controller.
HardDriver * CoreAPI::getDriver | ( | ) | const |
Get serial device handler.
void CoreAPI::getDroneVersion | ( | CallBack | callback = 0 , |
UserData | userData = 0 |
||
) |
Get aircraft version.
SDKFilter CoreAPI::getFilter | ( | ) | const |
Open Protocol Control.
Get Open Protocol packet information.
FlightStatus CoreAPI::getFlightStatus | ( | ) | const |
Get flight status at any time during a flight mission.
Version CoreAPI::getFwVersion | ( | ) | const |
Get SDK version
TimeStampData CoreAPI::getTime | ( | ) | const |
Get timestamp from flight controller.
void CoreAPI::send | ( | unsigned char | session_mode, |
unsigned char | is_enc, | ||
CMD_SET | cmd_set, | ||
unsigned char | cmd_id, | ||
void * | pdata, | ||
int | len, | ||
CallBack | ack_callback, | ||
int | timeout = 0 , |
||
int | retry_time = 1 |
||
) |
timeout |
void CoreAPI::send | ( | unsigned char | session_mode, |
bool | is_enc, | ||
CMD_SET | cmd_set, | ||
unsigned char | cmd_id, | ||
void * | pdata, | ||
size_t | len, | ||
int | timeout = 0 , |
||
int | retry_time = 1 , |
||
CallBack | ack_handler = 0 , |
||
UserData | userData = 0 |
||
) |
userData |
void CoreAPI::send | ( | Command * | parameter | ) |
void CoreAPI::sendPoll | ( | void | ) |
void CoreAPI::setActivation | ( | bool | isActivated | ) |
Activation Control.
Is your aircraft already activated ?
void CoreAPI::setBroadcastFreq | ( | uint8_t * | dataLenIs16, |
CallBack | callback = 0 , |
||
UserData | userData = 0 |
||
) |
Set broadcast frequency.
void CoreAPI::setDriver | ( | HardDriver * | value | ) |
Initialize serial device
void CoreAPI::setVersion | ( | const Version & | value | ) |
Set SDK version.