static void * Status_Ctrl_Thread_Func(void * arg) { unsigned char *cmd = (unsigned char *)arg; unsigned cmd_timeout = 100; //unit is ms unsigned retry_time = 3; unsigned short ack_data = SDK_ERR_NO_RESPONSE; static const char err[4][16] = {{"timeout"},{"cmd refused"},{"cmd not support"},{"didn't get ack"}}; while(1) { status_ctrl_cmd_data.cmd_sequence ++; status_ctrl_cmd_data.cmd_data = *cmd; Save_Status_Ctrl_Return_Code(SDK_ERR_NO_RESPONSE); DJI_Pro_App_Send_Data(2,1,MY_CTRL_CMD_SET, API_CMD_REQUEST,(unsigned char*)&status_ctrl_cmd_data, sizeof(status_ctrl_cmd_data),DJI_Pro_Status_Ctrl_CallBack,cmd_timeout, retry_time); /* first stage poll */ usleep(cmd_timeout * retry_time * 1000); ack_data = Get_Status_Ctrl_Return_Code(); if(ack_data == SDK_ERR_NO_RESPONSE || ack_data == SDK_ERR_COMMAND_NOT_SUPPORTED || ack_data == REQ_TIME_OUT || ack_data == REQ_REFUSE) { printf("%s,line %d,Status Ctrl %d: %s. Return error 0x%X\n",__func__,__LINE__, status_ctrl_cmd_data.cmd_data, &err[((ack_data&0x100)>>7)|(ack_data&0x1)][0], ack_data); if(p_status_ctrl_interface) { p_status_ctrl_interface(ack_data); } break; } else if(ack_data == 0x0002)
void transparent_transission_send(uint8_t* pbuf, uint16_t len) { //透传发送!!! DJI_Pro_App_Send_Data(0 , 0, MY_ACTIVATION_SET, 0xFE, pbuf, len,NULL,0,1); //printf("[send_data],send len %d data %s\n", len, pbuf); }