dji-sdk / dji-cloud-api-demo Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
In 1.8 users could use files with _
in the file path. In 1.9 this breaks the /wayline page and it still allows users to upload files with _
creating a broken state they are unable to recover from.
73f5ab4#diff-746a116ff34d40222f1c27be221e1a0a9d8aa67d729325cc68f33610d91cfafaL16
Steps to Reproduce:
_
in the path like spring_march.kmz
through the example frontend Vue app.We have an existing deployment on 1.8 with production data in it that breaks under this recent change.
"device not connect". Able to log in and see the test group one but the device will not connect on the latest docker instance with the latest firmware update that was just released. M30T connects without error. Appears to be a problem with the websocket possibly.
在下载文件时通过使用签名URL进行临时授权下载oss中的文件,为什么在上传时不能通过类似的方法啊,这样可以对设备侧屏蔽了oss的差异,通过get和put方法就进行上传和下载啊
...which makes NGINX blow up.
2024/03/01 17:25:54 [error] 641350#641350: *445 client intended to send too large body: 563860679 bytes, client: xx.xx.xx.xx, server: server.domain.com, request: "POST /manage/api/v1/workspaces/e3dea0f5-37f2-4d79-ae58-490af3228069/firmwares/file/upload HTTP/1.1", host: "server.domain.com:443"
Why not chunked POST?
The firmware upload from the dashboard fails with a CORS problem. My server uses another subdomain as the dashboard.
So the entire firmware upload doesn't work for me.
控制挂载的时候,报The device does not have payload control authority. 调试看是设备osd 上报数据 里面的payloadsList 为null.导致检测控制权限判断为空直接报没有控制权限。payloadsList 这个需要怎么用才能上报。挂载直播着,payloadsList 为啥为null public Boolean checkAuthorityPayload(String deviceSn, String payloadIndex) {
return deviceRedisService.getDeviceOnline(deviceSn).flatMap(device ->
Optional.of(DeviceDomainEnum.SUB_DEVICE.getVal() == device.getDomain()
&& !CollectionUtils.isEmpty(device.getPayloadsList())
&& ControlSourceEnum.A.getControlSource()
.equals(device.getPayloadsList().stream()
.filter(payload -> payloadIndex.equals(payload.getPayloadIndex()))
.map(DevicePayloadDTO::getControlSource).findAny()
.orElse(ControlSourceEnum.B.getControlSource())))).orElse(true);
}
能出个标准的webrtc接口推流吗,声网让用户没的选择呀
Disregard
如题
Is it possible that you add a user management in Demoversion?
This issue is about the docker version.
Please switch from emqx
to emqx/emqx:4.4.9
image
The emqx
has some bug.
emqx/emqx#9043
com.dji.sample.control.model.dto.JwtAclDTO中的 List all参数应该传什么,不传的话一直为空创建token时会提示Expected map containing Map, List, Boolean, Integer, Long, Double, String and Date。
或者说把这个参数注释掉就行了?
OSS#getObject返回的OSSObject是需要手动释放的。如果用完默认的1024个连接,主线程会被挂起等待可用连接。
key point: org.apache.http.impl.conn.PoolingHttpClientConnectionManager#leaseConnection
若没有连接会在 entry = future.get(timeout, timeUnit); line: 306 挂起
已查 OSS#getObject 和 OSS#putObject 是不会自动释放的。
其他方法可检查方法调用的 com.aliyun.oss.internal.OSSOperation#doOperation(..., keepResponseOpen)
keepResponseOpen是否为true
The api at http://mydomain:6789/manage/api/v1/token/refresh
accepts expired JWT tokens without a valid digital signature.
Please write this in the documentation as it may be a security issue.
Description:
The dependencies of some of the beans in the application context form a cycle:
drcController (field private com.dji.sample.control.service.IDrcService com.dji.sample.control.controller.DrcController.drcService)
┌─────┐
| drcServiceImpl defined in file
[\target\classes\com\dji\sample\control\service\impl\DrcServiceImpl.class]
↑ ↓
| waylineJobServiceImpl (field private com.dji.sample.control.service.IDrcService com.dji.sample.wayline.service.impl.WaylineJobServiceImpl.drcService)
└─────┘
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
desc:您好,大疆这边有木有相关的技术交流群或者技术支撑群~ 想要了解一些问题
如果有正在玩无人机的,或者要对接上云API的朋友,也可以一起交流交流,踩踩坑~
email:[email protected]
wx:nzc_wyh
能否只提供通信所需的最小化sdk,不需要任何与通讯无法的逻辑。
sdk只需要负责发送指令到机场/无人机的接接口与接收机场/无人机上报的消息,以及定义好所有交换协议就可以了。
不需要连接任何储存,不需要任何业务逻辑
ps: 代码逻辑混乱,跨模块/跨包交叉调用,该出接口的不出接口,不用出接口的照本宣科一堆无意义的ServiceImpl, 就service懂得出接口隔离?发送,接收,储存就不懂与业务逻辑隔离?, 交换协议(dto,receive)内嵌服务调用及使用lombok使其难以提取到独立模块使用。
1、数据库脚本,最好能写个update.sql ,考虑好之前已经部署了运行的系统可能已经产生了生产数据,现在是直接改了表字段名或者之前的字段直接删掉,这让人拉新代码部署起来非常的麻烦,每个版本对应着自己的update.sql,用户部署时候只需要执行对应的脚本,多好。
2、我没分清机场是如何连接上云api的(物理配置层面),建议要有详细的截图活着视频,如何在遥控器上配置机场,一步一步的,像妈妈一样手把手教把新的机场连接到cloud-api上(有点过分了,哈哈)。
3、没理解为啥新版本必须要强制https,很麻烦
4、代码敷衍且乱。举例: 各种entity2dto和dto2entity,你说你是个demo吧,为啥要转来转去的麻烦,影响看代码,你说你写的是高质量代码可以作为独立的无人机子模块吧,com.dji.sample.component.mqtt.model.Chan这个类的代码写的让人不舒服,你就模仿dubbo里使用ConcurrentHashMap作为缓存,tid+bid作为key,CommonTopicReceiver作为value存进去, get时候用乐观锁去获取,多好,非留一句:The demo is only for functional closure, which is not recommended. 。
5、留一手。司空2的亮点就是“规划航线”,web-demo中并没有开放这个功能。哎,怎么说呢,让不专业的人,对照着遥控器上的航线规划功能页去重新抄写一遍,然后还要生成kmz文件,就单单生成kmz文件就够耗时间的了,这么多字段要去做对应,你们的开放的初衷应该是为了用户可以更快的上线吧,把规划航线这么重要的功能留给用户自己去开发,您觉得合适么。。结果就是我们抄的不伦不类,很多功能能不做就不做了,能保证最基础的飞行就行了,白白浪费了你们提供的这么强悍的接口了。虽然非常理解你们为了推司空2这个平台,但是还是希望能开放这些功能出来,格局打开,哈哈。
6、oss。对接cloud-api,很大一部分是要私有化部署的,目前为止好像还不支持minio吧,还要去使用ali的oss,强行复杂,服务部署在华为云、电信云、甚至内网,还要去调用ali的oss,太麻烦了吧(虽然以后肯定会更新,但是至少目前没有)
7、我就打算把你们的服务作为我的子模块,机场的注册和操控都在demo中完成,我主系统需要什么功能就直接调用demo提供的接口,当然也会对demo做一些定制化改造,所以,非常的希望你们别把这个当做demo来开发,尽量的完善,这样子才是真的造福于对接的人,才能更好更快的开展起业务。
7、距离上次2022-12-12号已经过去了快三个月,希望你们振作起来,疯狂更新,感谢!
Pinpoints and Map Features are not working with DJI Pilot 2 App Android: V5.1.1.8
目前发现有以下接口存在出入
request uri->/media/api/v1/workspaces/e3dea0f5-37f2-4d79-ae58-490af3228069/files/tiny-fingerprints
Request method 'POST' not supported
request uri->/storage/api/v1/workspaces/e3dea0f5-37f2-4d79-ae58-490af3228069/sts
Request method 'GET' not supported
request uri->/manage/api/v1/token/refresh
Request method 'GET' not supported
Running the code looks like the following method is not triggered
@Before("execution(public * com.dji.sample.component.oss.service.impl.OssServiceContext.*(..))")
public void before() {
This method is called so I guess that before should be called before, right?
public OssServiceContext(List<IOssService> ossServices, OssConfiguration configuration) {
Changing the configuration in the file src/main/resources/application.yml
requires recompiling the entire backend.
This could be avoided if you read the configuration from a set of environment variables.
Also it would be more convenient to use with docker.
无人机的相册里就一个文件要上传OSS
不停的调 API request uri: /media/api/v1/workspaces/e3dea0f5-37f2-4d79-ae58-490af3228069/fast-upload
后台 查数据库 无文件 返回:
ResponseResult.error(file.getFingerprint() + "don't exist.");
然后一直掉接口 fast-upload 不获取STS上传文件
前后端都是 main分支
We setup DJI-Cloud-API-Demo but get warnings/errors from Agora-SDK in console: I don't understand what the warning means (See screenshot below). What do the yellow "Agora-SDK" warning means? I see the red "Agora-SDK" Error means that we should use a https connection, right?
Is it possible to manage users in dji-cloud-api demo?
controlDockDebug的方法,如下图。里面用ObjectMapper.convertValue()转换实体类,里面会有报错的情况。比如实体类没有属性的时候,转换就会报如下错误(好像可以通过配置避免)。我这边参考用之前旧的做法,暂时解决这个问题
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class xxx.xxx.className and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0])
v1.6.0版本的源码什么时候发布?很多mqtt协议的参数类型和名字都变了
航线文件能上传成功,并且能进行计划飞行。
飞行结束后,dock无法上传媒体文件到minio上。
请问如何调查?
我想在推流数据中带上飞机信息,能否告知是如何实现推流的吗?
集成demo的代码,只有部分channel has * subscriber(s).
基于Payload SDK研发的负载设备,使用pilot2连接时,服务后台无法正常解析PayloadIndex字段。能否增加默认的 DeviceTypeEnum.UNKNOWN ;或者预留指定的 数字序号空间 给我们自己的负载设备
My section (as inherited and not touched):
gb28181:
serverIP: Please enter the server ip.
serverPort: Please enter the server port.
serverID: Please enter the server id.
agentID: Please enter the agent id.
agentPassword: Please enter the agent password.
localPort: Please enter the local port.
channel: Please enter the channel.
Reaction on startup:
2024-02-28 14:30:42.195 ERROR 125793 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'livestream.url.gb28181.local-port' to java.lang.Integer:
Property: livestream.url.gb28181.local-port
Value: "Please enter the local port."
Origin: class path resource [application.yml] from sample-1.9.0.jar - 145:18
Reason: failed to convert java.lang.String to @javax.validation.constraints.NotNull java.lang.Integer (caused by java.lang.NumberFormatException: For input string: "Pleaseenterthelocalport.")
Action:
Update your application's configuration
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'liveStreamProperty': Could not bind properties to 'LiveStreamProperty' : prefix=livestream.url, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'livestream.url.gb28181.local-port' to java.lang.Integer
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.bind(ConfigurationPropertiesBindingPostProcessor.java:92)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:78)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
at com.dji.sample.CloudApiSampleApplication.main(CloudApiSampleApplication.java:16)
... 6 more
Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'livestream.url.gb28181.local-port' to java.lang.Integer
at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:387)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:347)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$4(Binder.java:472)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:98)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:86)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:62)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$5(Binder.java:476)
at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:590)
at org.springframework.boot.context.properties.bind.Binder$Context.withDataObject(Binder.java:576)
at org.springframework.boot.context.properties.bind.Binder$Context.access$300(Binder.java:537)
at org.springframework.boot.context.properties.bind.Binder.bindDataObject(Binder.java:474)
at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:414)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:343)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$4(Binder.java:472)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:98)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:86)
at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:62)
at org.springframework.boot.context.properties.bind.Binder.lambda$bindDataObject$5(Binder.java:476)
at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:590)
at org.springframework.boot.context.properties.bind.Binder$Context.withDataObject(Binder.java:576)
at org.springframework.boot.context.properties.bind.Binder$Context.access$300(Binder.java:537)
at org.springframework.boot.context.properties.bind.Binder.bindDataObject(Binder.java:474)
at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:414)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:343)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:332)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:262)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:249)
at org.springframework.boot.context.properties.ConfigurationPropertiesBinder.bind(ConfigurationPropertiesBinder.java:95)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.bind(ConfigurationPropertiesBindingPostProcessor.java:89)
... 25 more
Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@javax.validation.constraints.NotNull java.lang.Integer] for value [Please enter the local port.]; nested exception is java.lang.NumberFormatException: For input string: "Pleaseenterthelocalport."
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:192)
at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:109)
at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:100)
at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:92)
at org.springframework.boot.context.properties.bind.Binder.bindProperty(Binder.java:459)
at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:403)
at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:343)
... 52 more
Caused by: java.lang.NumberFormatException: For input string: "Pleaseenterthelocalport."
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.valueOf(Integer.java:983)
at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:211)
at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:64)
at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:50)
at org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.convert(GenericConversionService.java:437)
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41)
... 59 more
I commented the section and the app started. You should provide a commented template.
想请问下m3td云台姿态角是怎么定义的,同样的姿态角下,跟之前h20t云台状态信息一点不一样呢
开启和关闭机场远程调试那个api,接口有问题,永远返回参数错误。看提交记录之前的版本是好的,web页面请求debug_mode_open,时是没有带param过来的,controlMethodEnum不为null就应该下发指令,不应该再判断param是否为空。或者让web改一下,带参数请求
Hi,
I'm trying to livestream my video using rtsp via "Aws Kinesis Video" which does not support RTMP. In this (DJI document)[https://developer.dji.com/doc/cloud-api-tutorial/en/feature-set/pilot-feature-set/pilot-livestream.html] it says the RTSP format is supported but in the (cloud API)[https://developer.dji.com/doc/cloud-api-tutorial/en/api-reference/dock-to-cloud/mqtt/dock/dock2/live.html] it only have 3 format, is RTSP actually supported by DJI cloud?
Thanks for helping
...at least not from MySQL to MS SQL Server.
I'm not talking about this monster statement here, which I could only convert to MSSQL by use of ChatGPT (thanks, btw):
But also here: "LIMIT 1" might work in MySQL, but doesn't work in MSSQL.
Found at various places. Some constructs look like "overkill security", like suspenders AND belt, because their formulation cannot bring more than max result record at a time. Please review your tables to find another way to ensure uniqueness. One way would be to capture all candidates and then deliver just the last (if) by code.
Here the candidates:
After updating to 1.2.0 the backend crash
tried a clean installation
cloud_api_sample_120-cloud_api_sample-1 | . ____ _ __ _ _
cloud_api_sample_120-cloud_api_sample-1 | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
cloud_api_sample_120-cloud_api_sample-1 | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
cloud_api_sample_120-cloud_api_sample-1 | \\/ ___)| |_)| | | | | || (_| | ) ) ) )
cloud_api_sample_120-cloud_api_sample-1 | ' |____| .__|_| |_|_| |_\__, | / / / /
cloud_api_sample_120-cloud_api_sample-1 | =========|_|==============|___/=/_/_/_/
cloud_api_sample_120-cloud_api_sample-1 | :: Spring Boot :: (v2.4.11)
cloud_api_sample_120-cloud_api_sample-1 |
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:11.936 INFO 7 --- [ main] c.dji.sample.CloudApiSampleApplication : Starting CloudApiSampleApplication v1.1.0 using Java 11.0.14.1 on cloud_api_sample with PID 7 (/app/target/cloud-api-sample-1.1.0.jar started by root in /app)
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:11.939 DEBUG 7 --- [ main] c.dji.sample.CloudApiSampleApplication : Running with Spring Boot v2.4.11, Spring v5.3.10
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:11.940 INFO 7 --- [ main] c.dji.sample.CloudApiSampleApplication : No active profile set, falling back to default profiles: default
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:12.880 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:12.881 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:12.904 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 8 ms. Found 0 Redis repository interfaces.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:13.149 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:13.150 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:13.192 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 40 ms. Found 0 Redis repository interfaces.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:13.484 INFO 7 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:13.489 INFO 7 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:13.495 INFO 7 --- [ main] faultConfiguringBeanFactoryPostProcessor : No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.010 INFO 7 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.integration.config.IntegrationManagementConfiguration' of type [org.springframework.integration.config.IntegrationManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.020 INFO 7 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'integrationChannelResolver' of type [org.springframework.integration.support.channel.BeanFactoryChannelResolver] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.022 INFO 7 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'integrationDisposableAutoCreatedBeans' of type [org.springframework.integration.config.annotation.Disposables] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.312 INFO 7 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 6789 (http)
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.330 INFO 7 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.331 INFO 7 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.53]
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.380 INFO 7 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:14.381 INFO 7 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2386 ms
cloud_api_sample_120-cloud_api_sample-1 | WARNING: An illegal reflective access operation has occurred
cloud_api_sample_120-cloud_api_sample-1 | WARNING: Illegal reflective access by org.springframework.util.ReflectionUtils (jar:file:/app/target/cloud-api-sample-1.1.0.jar!/BOOT-INF/lib/spring-core-5.3.10.jar!/) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class)
cloud_api_sample_120-cloud_api_sample-1 | WARNING: Please consider reporting this to the maintainers of org.springframework.util.ReflectionUtils
cloud_api_sample_120-cloud_api_sample-1 | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
cloud_api_sample_120-cloud_api_sample-1 | WARNING: All illegal access operations will be denied in a future release
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:15.213 INFO 7 --- [ main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:15.560 INFO 7 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
cloud_api_sample_120-cloud_api_sample-1 | _ _ |_ _ _|_. ___ _ | _
cloud_api_sample_120-cloud_api_sample-1 | | | |\/|_)(_| | |_\ |_)||_|_\
cloud_api_sample_120-cloud_api_sample-1 | / |
cloud_api_sample_120-cloud_api_sample-1 | 3.4.2
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:18.396 WARN 7 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Invalid mapping on handler class [com.dji.sample.control.controller.DockController]: public com.dji.sample.common.model.ResponseResult com.dji.sample.control.controller.DockController.createControlJob(java.lang.String,java.lang.String)
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:18.402 INFO 7 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closing ...
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:18.409 INFO 7 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:18.440 INFO 7 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:18.473 INFO 7 --- [ main] ConditionEvaluationReportLoggingListener :
cloud_api_sample_120-cloud_api_sample-1 |
cloud_api_sample_120-cloud_api_sample-1 | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
cloud_api_sample_120-cloud_api_sample-1 | 2022-09-25 23:28:18.492 ERROR 7 --- [ main] o.s.boot.SpringApplication : Application run failed
cloud_api_sample_120-cloud_api_sample-1 |
cloud_api_sample_120-cloud_api_sample-1 | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Invalid mapping on handler class [com.dji.sample.control.controller.DockController]: public com.dji.sample.common.model.ResponseResult com.dji.sample.control.controller.DockController.createControlJob(java.lang.String,java.lang.String)
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[spring-boot-2.4.11.jar!/:2.4.11]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771) ~[spring-boot-2.4.11.jar!/:2.4.11]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763) ~[spring-boot-2.4.11.jar!/:2.4.11]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) ~[spring-boot-2.4.11.jar!/:2.4.11]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) ~[spring-boot-2.4.11.jar!/:2.4.11]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) ~[spring-boot-2.4.11.jar!/:2.4.11]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318) ~[spring-boot-2.4.11.jar!/:2.4.11]
cloud_api_sample_120-cloud_api_sample-1 | at com.dji.sample.CloudApiSampleApplication.main(CloudApiSampleApplication.java:15) ~[classes!/:1.1.0]
cloud_api_sample_120-cloud_api_sample-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
cloud_api_sample_120-cloud_api_sample-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
cloud_api_sample_120-cloud_api_sample-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
cloud_api_sample_120-cloud_api_sample-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[cloud-api-sample-1.1.0.jar:1.1.0]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) ~[cloud-api-sample-1.1.0.jar:1.1.0]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[cloud-api-sample-1.1.0.jar:1.1.0]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[cloud-api-sample-1.1.0.jar:1.1.0]
cloud_api_sample_120-cloud_api_sample-1 | Caused by: java.lang.IllegalStateException: Invalid mapping on handler class [com.dji.sample.control.controller.DockController]: public com.dji.sample.common.model.ResponseResult com.dji.sample.control.controller.DockController.createControlJob(java.lang.String,java.lang.String)
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lambda$detectHandlerMethods$1(AbstractHandlerMethodMapping.java:288) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.core.MethodIntrospector.lambda$selectMethods$0(MethodIntrospector.java:74) ~[spring-core-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:364) ~[spring-core-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.core.MethodIntrospector.selectMethods(MethodIntrospector.java:72) ~[spring-core-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:281) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.processCandidateBean(AbstractHandlerMethodMapping.java:266) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:225) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:213) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:206) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | ... 25 common frames omitted
cloud_api_sample_120-cloud_api_sample-1 | Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'url.control.prefix' in value "${url.control.prefix}${url.control.version}/devices"
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:175) ~[spring-context-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:936) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.beans.factory.config.EmbeddedValueResolver.resolveStringValue(EmbeddedValueResolver.java:54) ~[spring-beans-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.resolveEmbeddedValuesInPatterns(RequestMappingHandlerMapping.java:381) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.createRequestMappingInfo(RequestMappingHandlerMapping.java:357) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.createRequestMappingInfo(RequestMappingHandlerMapping.java:312) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.getMappingForMethod(RequestMappingHandlerMapping.java:274) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.getMappingForMethod(RequestMappingHandlerMapping.java:76) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lambda$detectHandlerMethods$1(AbstractHandlerMethodMapping.java:284) ~[spring-webmvc-5.3.10.jar!/:5.3.10]
cloud_api_sample_120-cloud_api_sample-1 | ... 35 common frames omitted
cloud_api_sample_120-cloud_api_sample-1 |
cloud_api_sample_120-cloud_api_sample-1 exited with code 1
Seems to be missing main class entry in Manifest:
ubuntu@ca:~/backend$ java -jar /home/ubuntu/backend/sample/target/sample-1.9.0.jar
no main manifest attribute, in /home/ubuntu/backend/sample/target/sample-1.9.0.jar
Hi,
We have a business requirement to obtain GPS position of drone.
Currently it is very complex/complicated to do this via CloudAPI.
It would be of benefit to many if the DJI Pilot 2 app exposed a simple output of this information every few seconds.
Lat, Long, Battery %, Speed
Just a few read only parrameters that we can use for simple integration to represent the drones on the map.
com.dji.sample.wayline.service.impl.WaylineFileServiceImpl
Optional validKmzFile(MultipartFile file)函数
return Optional.of(WaylineFileDTO.builder()
.droneModelKey(String.format("%s-%s-%s", DeviceDomainEnum.SUB_DEVICE.getVal(), type, subType))
.payloadModelKeys(List.of(String.format("%s-%s-%s",DeviceDomainEnum.PAYLOAD.getVal(), payloadType, payloadSubType)))
.objectKey(OssConfiguration.objectDirPrefix + File.separator + filename)
.name(filename.substring(0, filename.lastIndexOf(WAYLINE_FILE_SUFFIX)))
.sign(DigestUtils.md5DigestAsHex(file.getInputStream()))
.templateTypes(List.of(Integer.parseInt(templateId)))
.build());
这里为什么读取templateId字段,赋值给templateTypes,这个templateTypes是什么含义?航线文件中有templateType这个字段,这之间有什么联系吗?
Hi, using the docker cloud api image.
I receive some messages from topic: "thing/product/1681F58KDDD5H40B4XZ6/state".
Root object is 'data' but object properties are not the same.
How to deserialize payload to correct object?
Message #1:
Topic: thing/product/1681F58KDDD5H40B4XZ6/state
{"bid":"00000000-0000-0000-0000-000000000000","data":{"firmware_version":"05.01.0000"},"tid":"00000000-0000-0000-0000-000000000000","timestamp":1669801241618,"gateway":"4XLBK4S5526267"}
Message #2:
Topic: thing/product/1681F58KDDD5H40B4XZ6/state
{"bid":"00000000-0000-0000-0000-000000000000","data":{"control_source":"A","home_latitude":26836624.610466,"home_longitude":26836624.610466,"low_battery_warning_threshold":20,"payloads":[{"control_source":"A","payload_index":"53-0-0","sn":"1681F58KDDD5H40B4XZ6-0"}],"serious_low_battery_warning_threshold":10},"tid":"00000000-0000-0000-0000-000000000000","timestamp":1669801241617,"gateway":"4XLBK4S5526267"}
*serials have been changed - not real serial numbers
在 DockLiveErrorStatus 创建时, code == 0 时, 在代码中调用 getCode() 和 toString() 方法时会报NPE.
... as subject says
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.