Skip to content

Commit b7e648a

Browse files
authored
Merge pull request #275 from dji-sdk/release/v3.12.0
NEW: release DJI Payload-SDK version 3.12.0
2 parents 54b9f6c + 326b869 commit b7e648a

File tree

381 files changed

+122572
-449
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

381 files changed

+122572
-449
lines changed

LICENSE.txt

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -310,36 +310,19 @@ The following portions of the DJI’s Payload SDK (“Software” referred to in
310310
│   │   │   │   ├── hal_uart.h
311311
│   │   │   │   ├── hal_usb_bulk.c
312312
│   │   │   │   └── hal_usb_bulk.h
313-
│   │   │   ├── nvidia_jetson
314-
│   │   │   │   ├── application
315-
│   │   │   │   │   ├── dji_sdk_app_info.h
316-
│   │   │   │   │   ├── dji_sdk_config.h
317-
│   │   │   │   │   └── main.c
318-
│   │   │   │   ├── CMakeLists.txt
319-
│   │   │   │   └── hal
320-
│   │   │   │   ├── hal_i2c.c
321-
│   │   │   │   ├── hal_i2c.h
322-
│   │   │   │   ├── hal_network.c
323-
│   │   │   │   ├── hal_network.h
324-
│   │   │   │   ├── hal_uart.c
325-
│   │   │   │   ├── hal_uart.h
326-
│   │   │   │   ├── hal_usb_bulk.c
327-
│   │   │   │   └── hal_usb_bulk.h
328-
│   │   │   ├── raspberry_pi
329-
│   │   │   │   ├── application
330-
│   │   │   │   │   ├── dji_sdk_app_info.h
331-
│   │   │   │   │   ├── dji_sdk_config.h
332-
│   │   │   │   │   └── main.c
333-
│   │   │   │   ├── CMakeLists.txt
334-
│   │   │   │   └── hal
335-
│   │   │   │   ├── hal_i2c.c
336-
│   │   │   │   ├── hal_i2c.h
337-
│   │   │   │   ├── hal_network.c
338-
│   │   │   │   ├── hal_network.h
339-
│   │   │   │   ├── hal_uart.c
340-
│   │   │   │   ├── hal_uart.h
341-
│   │   │   │   ├── hal_usb_bulk.c
342-
│   │   │   │   └── hal_usb_bulk.h
313+
│   │   │   └── nvidia_jetson
314+
│   │   │   ├── application
315+
│   │   │   │   ├── dji_sdk_app_info.h
316+
│   │   │   │   ├── dji_sdk_config.h
317+
│   │   │   │   └── main.c
318+
│   │   │   ├── CMakeLists.txt
319+
│   │   │   └── hal
320+
│   │   │   ├── hal_network.c
321+
│   │   │   ├── hal_network.h
322+
│   │   │   ├── hal_uart.c
323+
│   │   │   ├── hal_uart.h
324+
│   │   │   ├── hal_usb_bulk.c
325+
│   │   │   └── hal_usb_bulk.h
343326
│   │   └── rtos_freertos
344327
│   │   ├── common
345328
│   │   │   └── osal

README.md

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# DJI Payload SDK (PSDK)
22

3-
![](https://img.shields.io/badge/version-V3.11.1-yellow.svg)
4-
![](https://img.shields.io/badge/platform-linux_|_rtos-pink.svg)
5-
![](https://img.shields.io/badge/license-MIT-red.svg)
3+
![](https://img.shields.io/badge/version-V3.12.0-green.svg)
4+
![](https://img.shields.io/badge/platform-linux_|_rtos-blue.svg)
5+
![](https://img.shields.io/badge/license-MIT-orange.svg)
66

77
## What is the DJI Payload SDK?
88

@@ -23,12 +23,48 @@ to get the latest version information.
2323

2424
## Latest Release
2525

26-
The latest release version of PSDK is 3.11.1. This version of Payload SDK mainly add some new features support and fixed some
26+
The latest release version of PSDK is 3.12.0. This version of Payload SDK mainly add some new features support and fixed some
2727
bugs. Please refer to the release notes for detailed changes list.
2828

29-
* Fixed the issue where the Matrice 4D or Matrice 4TD E-Port Lite interface was not recognized on FlightHub 2.
30-
* Fixed the crash issue when using the DjiCore_Delnit interface.
31-
* Fixed the occasional crash issue when transmitting video streams through the USB bulk channel on Matrice 350 RTK.
29+
### 1. Matrice 400 Feature Support
30+
- **Added point cloud data subscription for LiDAR/millimeter-wave radar on aircraft.**
31+
- **Added custom widget management.**
32+
- **Added Expanded payload device support.**
33+
Supports up to 7 payload devices simultaneously, compatible with:
34+
- Skyport-V2
35+
- XPort
36+
37+
### 2. Manifold 3 Now Supports:
38+
- **Added AR image drawing function.**
39+
- **Added Enhanced warning functionality.**
40+
- **Added H30 camera image processing capabilities.**
41+
- Together with Matrice 400, Manifold 3 can:
42+
- Obtain decoded images from the H30 camera.
43+
- Encode using a hardware encoder.
44+
- Display AI recognition results in real time.
45+
- **Added PSDK application development**
46+
- Supports developing and packaging applications based on PSDK.
47+
- Supports installing and running applications on Manifold 3.
48+
49+
### 3. Matrice 4TD/4D Series Feature Optimization
50+
- **Added cloud API firmware upgrade**
51+
52+
### 4. E-PORT V2 Hardware Port Support
53+
- **Adapter compatibility:**
54+
- E-Port V2 coaxial cable
55+
- Skyport V3
56+
- **Power management:**
57+
- Supports voltage requests for 13.6V, 17V, and 24V.
58+
- **Link models:**
59+
- Added: ONLY_USB_BULK, ONLY_NETWORK.
60+
- Not supported: UART_AND_NETWORK, UART_AND_USB_BULK.
61+
- **Development support:**
62+
- Released DJI E-Port V2 development kit.
63+
- Documentation: Refer to the Quick Start > E-Port Quick Start section.
64+
65+
### 5. Upgrade and Compatibility
66+
#### SkyPort V2 and X-Port Software Upgrade
67+
The software versions of Skyport V2 and X-Port have been upgraded. Devices need to be mounted on the Matrice 300 or Matrice 350 to be upgraded to the latest software version before they can be used on the Matrice 400 model. Subsequent software upgrades can be performed on the Matrice 400.
3268

3369
## License
3470

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/**
2+
********************************************************************
3+
* @file dji_cloud_api_by_websockt.h
4+
* @brief This is the header file for "dji_cloud_api_by_websockt.h", defining the structure and
5+
* (exported) function prototypes.
6+
*
7+
* @copyright (c) 2021 DJI. All rights reserved.
8+
*
9+
* All information contained herein is, and remains, the property of DJI.
10+
* The intellectual and technical concepts contained herein are proprietary
11+
* to DJI and may be covered by U.S. and foreign patents, patents in process,
12+
* and protected by trade secret or copyright law. Dissemination of this
13+
* information, including but not limited to data and other proprietary
14+
* material(s) incorporated within the information, in any form, is strictly
15+
* prohibited without the express written consent of DJI.
16+
*
17+
* If you receive this source code without DJI’s authorization, you may not
18+
* further disseminate the information, and you must immediately remove the
19+
* source code and notify DJI of its removal. DJI reserves the right to pursue
20+
* legal actions against you for any loss(es) or damage(s) caused by your
21+
* failure to do so.
22+
*
23+
*********************************************************************
24+
*/
25+
/* Define to prevent recursive inclusion -------------------------------------*/
26+
#ifndef DJI_CLOUD_API_BY_WEEBSOCKET_H
27+
#define DJI_CLOUD_API_BY_WEEBSOCKET_H
28+
29+
/* Includes ------------------------------------------------------------------*/
30+
#include "dji_typedef.h"
31+
32+
#ifdef __cplusplus
33+
extern "C" {
34+
#endif
35+
36+
/* Exported constants --------------------------------------------------------*/
37+
38+
/* Exported types ------------------------------------------------------------*/
39+
40+
/* Exported functions --------------------------------------------------------*/
41+
42+
/**
43+
* @brief Send data into cloud api channel over pilot2 websocket.
44+
* @note This interface should be called only on manifold3 application. It is recommended
45+
* to send more bytes of data at a time to improve read and write efficiency. Need to determine whether the send is
46+
* successful according to the return code and the actual sent data length.
47+
* @param data: pointer to data to be sent.
48+
* @param len: length of data to be sented to pilot2, unit: byte.
49+
* @param realLen: pointer to real length of data that already sent.
50+
* @return Execution result.
51+
*/
52+
T_DjiReturnCode DjiCloudApi_SendDataByWebSocket(uint8_t *data, uint32_t len, uint32_t *realLen);
53+
#ifdef __cplusplus
54+
}
55+
#endif
56+
57+
#endif
58+
59+
/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/
60+

psdk_lib/include/dji_fc_subscription.h

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,153 @@ typedef enum {
526526
*/
527527
DJI_FC_SUBSCRIPTION_TOPIC_IMU_ATTI_NAVI_DATA_WITH_TIMESTAMP = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 48),
528528

529+
/*!
530+
* @brief Provides postion NO.1 gimbal pitch, roll, yaw @ up to 50Hz
531+
* @details
532+
* The reference frame for gimbal angles is a NED frame attached to the gimbal.
533+
* This topic uses a data structure, Vector3f, that is too generic for the topic. The order of angles is :
534+
* |Data Structure Element| Meaning|
535+
* |----------------------|--------|
536+
* |Vector3f.x |pitch |
537+
* |Vector3f.y |roll |
538+
* |Vector3f.z |yaw |
539+
*
540+
* @perf
541+
* 0.1 deg accuracy in all axes
542+
*
543+
* @sensors Gimbal Encoder, IMU, Magnetometer
544+
* @units deg
545+
* @datastruct \ref T_DjiFcSubscriptionGimbalAngles
546+
* @also \ref TOPIC_GIMBAL_STATUS, \ref TOPIC_GIMBAL_CONTROL_MODE
547+
*/
548+
DJI_FC_SUBSCRIPTION_TOPIC_GIMBAL_ANGLES_ON_POS_NO1 = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 48),
549+
550+
/*!
551+
* @brief Provides postion NO.2 gimbal pitch, roll, yaw @ up to 50Hz
552+
* @details
553+
* The reference frame for gimbal angles is a NED frame attached to the gimbal.
554+
* This topic uses a data structure, Vector3f, that is too generic for the topic. The order of angles is :
555+
* |Data Structure Element| Meaning|
556+
* |----------------------|--------|
557+
* |Vector3f.x |pitch |
558+
* |Vector3f.y |roll |
559+
* |Vector3f.z |yaw |
560+
*
561+
* @perf
562+
* 0.1 deg accuracy in all axes
563+
*
564+
* @sensors Gimbal Encoder, IMU, Magnetometer
565+
* @units deg
566+
* @datastruct \ref T_DjiFcSubscriptionGimbalAngles
567+
* @also \ref TOPIC_GIMBAL_STATUS, \ref TOPIC_GIMBAL_CONTROL_MODE
568+
*/
569+
DJI_FC_SUBSCRIPTION_TOPIC_GIMBAL_ANGLES_ON_POS_NO2 = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 49),
570+
571+
/*!
572+
* @brief Provides postion NO.3 gimbal pitch, roll, yaw @ up to 50Hz
573+
* @details
574+
* The reference frame for gimbal angles is a NED frame attached to the gimbal.
575+
* This topic uses a data structure, Vector3f, that is too generic for the topic. The order of angles is :
576+
* |Data Structure Element| Meaning|
577+
* |----------------------|--------|
578+
* |Vector3f.x |pitch |
579+
* |Vector3f.y |roll |
580+
* |Vector3f.z |yaw |
581+
*
582+
* @perf
583+
* 0.1 deg accuracy in all axes
584+
*
585+
* @sensors Gimbal Encoder, IMU, Magnetometer
586+
* @units deg
587+
* @datastruct \ref T_DjiFcSubscriptionGimbalAngles
588+
* @also \ref TOPIC_GIMBAL_STATUS, \ref TOPIC_GIMBAL_CONTROL_MODE
589+
*/
590+
DJI_FC_SUBSCRIPTION_TOPIC_GIMBAL_ANGLES_ON_POS_NO3 = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 50),
591+
592+
/*!
593+
* @brief Provides postion NO.4 gimbal pitch, roll, yaw @ up to 50Hz
594+
* @details
595+
* The reference frame for gimbal angles is a NED frame attached to the gimbal.
596+
* This topic uses a data structure, Vector3f, that is too generic for the topic. The order of angles is :
597+
* |Data Structure Element| Meaning|
598+
* |----------------------|--------|
599+
* |Vector3f.x |pitch |
600+
* |Vector3f.y |roll |
601+
* |Vector3f.z |yaw |
602+
*
603+
* @perf
604+
* 0.1 deg accuracy in all axes
605+
*
606+
* @sensors Gimbal Encoder, IMU, Magnetometer
607+
* @units deg
608+
* @datastruct \ref T_DjiFcSubscriptionGimbalAngles
609+
* @also \ref TOPIC_GIMBAL_STATUS, \ref TOPIC_GIMBAL_CONTROL_MODE
610+
*/
611+
DJI_FC_SUBSCRIPTION_TOPIC_GIMBAL_ANGLES_ON_POS_NO4 = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 51),
612+
613+
/*!
614+
* @brief Provides postion NO.5 gimbal pitch, roll, yaw @ up to 50Hz
615+
* @details
616+
* The reference frame for gimbal angles is a NED frame attached to the gimbal.
617+
* This topic uses a data structure, Vector3f, that is too generic for the topic. The order of angles is :
618+
* |Data Structure Element| Meaning|
619+
* |----------------------|--------|
620+
* |Vector3f.x |pitch |
621+
* |Vector3f.y |roll |
622+
* |Vector3f.z |yaw |
623+
*
624+
* @perf
625+
* 0.1 deg accuracy in all axes
626+
*
627+
* @sensors Gimbal Encoder, IMU, Magnetometer
628+
* @units deg
629+
* @datastruct \ref T_DjiFcSubscriptionGimbalAngles
630+
* @also \ref TOPIC_GIMBAL_STATUS, \ref TOPIC_GIMBAL_CONTROL_MODE
631+
*/
632+
DJI_FC_SUBSCRIPTION_TOPIC_GIMBAL_ANGLES_ON_POS_NO5 = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 52),
633+
634+
/*!
635+
* @brief Provides postion NO.6 gimbal pitch, roll, yaw @ up to 50Hz
636+
* @details
637+
* The reference frame for gimbal angles is a NED frame attached to the gimbal.
638+
* This topic uses a data structure, Vector3f, that is too generic for the topic. The order of angles is :
639+
* |Data Structure Element| Meaning|
640+
* |----------------------|--------|
641+
* |Vector3f.x |pitch |
642+
* |Vector3f.y |roll |
643+
* |Vector3f.z |yaw |
644+
*
645+
* @perf
646+
* 0.1 deg accuracy in all axes
647+
*
648+
* @sensors Gimbal Encoder, IMU, Magnetometer
649+
* @units deg
650+
* @datastruct \ref T_DjiFcSubscriptionGimbalAngles
651+
* @also \ref TOPIC_GIMBAL_STATUS, \ref TOPIC_GIMBAL_CONTROL_MODE
652+
*/
653+
DJI_FC_SUBSCRIPTION_TOPIC_GIMBAL_ANGLES_ON_POS_NO6 = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 53),
654+
655+
/*!
656+
* @brief Provides postion NO.7 gimbal pitch, roll, yaw @ up to 50Hz
657+
* @details
658+
* The reference frame for gimbal angles is a NED frame attached to the gimbal.
659+
* This topic uses a data structure, Vector3f, that is too generic for the topic. The order of angles is :
660+
* |Data Structure Element| Meaning|
661+
* |----------------------|--------|
662+
* |Vector3f.x |pitch |
663+
* |Vector3f.y |roll |
664+
* |Vector3f.z |yaw |
665+
*
666+
* @perf
667+
* 0.1 deg accuracy in all axes
668+
*
669+
* @sensors Gimbal Encoder, IMU, Magnetometer
670+
* @units deg
671+
* @datastruct \ref T_DjiFcSubscriptionGimbalAngles
672+
* @also \ref TOPIC_GIMBAL_STATUS, \ref TOPIC_GIMBAL_CONTROL_MODE
673+
*/
674+
DJI_FC_SUBSCRIPTION_TOPIC_GIMBAL_ANGLES_ON_POS_NO7 = DJI_DATA_SUBSCRIPTION_TOPIC(DJI_DATA_SUBSCRIPTION_MODULE_FC, 54),
675+
529676
/*! Total number of topics that can be subscribed. */
530677
DJI_FC_SUBSCRIPTION_TOPIC_TOTAL_NUMBER,
531678
} E_DjiFcSubscriptionTopic;

0 commit comments

Comments
 (0)