添加了一键起飞上报喊话器上报

This commit is contained in:
cxf 2026-02-27 10:18:56 +08:00
parent 2109695a1e
commit aa24702eb7
74 changed files with 1338 additions and 1052 deletions

View File

@ -2,28 +2,28 @@ C/C++ Structured Logx
v
tC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ø¯À½Ä3  òÐæÁ3u
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ï»€ÃÉ3  òÐæÁ3u
s
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\android_gradle_build.json  ø¯À½Ä3
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\android_gradle_build.json  Ï»€ÃÉ3
þÐæÁ3z
x
vC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\android_gradle_build_mini.json  ø¯À½Ä3® §ÑæÁ3g
vC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\android_gradle_build_mini.json  л€ÃÉ3® §ÑæÁ3g
e
cC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\build.ninja  ø¯À½Ä3ìÅ ÍÏæÁ3k
cC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\build.ninja  л€ÃÉ3ìÅ ÍÏæÁ3k
i
gC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\build.ninja.txt  ø¯À½Ä3p
gC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\build.ninja.txt  л€ÃÉ3p
n
lC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\build_file_index.txt  ø¯À½Ä3 V ®ÑæÁ3q
lC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\build_file_index.txt  л€ÃÉ3 V ®ÑæÁ3q
o
mC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\compile_commands.json  ø¯À½Ä3µ ÉÏæÁ3u
mC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\compile_commands.json  л€ÃÉ3µ ÉÏæÁ3u
s
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\compile_commands.json.bin  ø¯À½Ä3 ñ ÉÏæÁ3{
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\compile_commands.json.bin  л€ÃÉ3 ñ ÉÏæÁ3{
y
wC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\metadata_generation_command.txt  ø¯À½Ä3
wC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\metadata_generation_command.txt  л€ÃÉ3
° ªÑæÁ3n
l
jC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\prefab_config.json  ø¯À½Ä3  ( ¬ÑæÁ3s
jC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\prefab_config.json  л€ÃÉ3  ( ¬ÑæÁ3s
q
oC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\symbol_folder_index.txt  ø¯À½Ä3  n ­ÑæÁ3Z
oC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\symbol_folder_index.txt  л€ÃÉ3  n ­ÑæÁ3Z
X
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  ø¯À½Ä3 ¨ ÃÖ<C383>˜Á3
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  л€ÃÉ3 ¨ ÃÖ<C383>˜Á3

View File

@ -2,28 +2,28 @@ C/C++ Structured Logz
x
vC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  à¶ù»Ä3 שœÁ3w
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ñЂœÉ3 שœÁ3w
u
sC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\android_gradle_build.json  à¶ù»Ä3¾
sC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\android_gradle_build.json  ñЂœÉ3¾
שœÁ3|
z
xC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\android_gradle_build_mini.json  à¶ù»Ä3שœÁ3i
xC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\android_gradle_build_mini.json  ñЂœÉ3שœÁ3i
g
eC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\build.ninja  à¶ù»Ä3¤Æ ÑÖ©œÁ3m
eC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\build.ninja  ñЂœÉ3¤Æ ÑÖ©œÁ3m
k
iC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\build.ninja.txt  à¶ù»Ä3r
iC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\build.ninja.txt  ñЂœÉ3r
p
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\build_file_index.txt  à¶ù»Ä3 V שœÁ3s
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\build_file_index.txt  ñЂœÉ3 V שœÁ3s
q
oC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\compile_commands.json  à¶ù»Ä3Ð ÎÖ©œÁ3w
oC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\compile_commands.json  ñЂœÉ3Ð ÎÖ©œÁ3w
u
sC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\compile_commands.json.bin  à¶ù»Ä3 š ÎÖ©œÁ3}
sC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\compile_commands.json.bin  ñЂœÉ3 š ÎÖ©œÁ3}
{
yC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\metadata_generation_command.txt  à¶ù»Ä3
yC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\metadata_generation_command.txt  ñЂœÉ3
ºשœÁ3p
n
lC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\prefab_config.json  à¶ù»Ä3  ( •שœÁ3u
lC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\prefab_config.json  ñЂœÉ3  ( •שœÁ3u
s
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\symbol_folder_index.txt  à¶ù»Ä3  p •שœÁ3Z
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\symbol_folder_index.txt  òЂœÉ3  p •שœÁ3Z
X
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  à¶ù»Ä3 ¨ ÃÖ<C383>˜Á3
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  òЂœÉ3 ¨ ÃÖ<C383>˜Á3

View File

@ -2,28 +2,28 @@ C/C++ Structured Logr
p
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ×·ù»Ä3  ÑùÊÁ3o
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ®Ò‚œÉ3  ÑùÊÁ3o
m
kC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\android_gradle_build.json  ×·ù»Ä3ž
kC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\android_gradle_build.json  ®Ò‚œÉ3ž
×ùÊÁ3t
r
pC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\android_gradle_build_mini.json  ×·ù»Ä3 ñùÊÁ3a
pC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\android_gradle_build_mini.json  ®Ò‚œÉ3 ñùÊÁ3a
_
]C:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\build.ninja  ×·ù»Ä3ÎÅ æøÊÁ3e
]C:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\build.ninja  ¯Ò‚œÉ3ÎÅ æøÊÁ3e
c
aC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\build.ninja.txt  Ú·ù»Ä3j
aC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\build.ninja.txt  ¯Ò‚œÉ3j
h
fC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\build_file_index.txt  Û·ù»Ä3 V öùÊÁ3k
fC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\build_file_index.txt  ¯Ò‚œÉ3 V öùÊÁ3k
i
gC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\compile_commands.json  Û·ù»Ä3¬ áøÊÁ3o
gC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\compile_commands.json  ¯Ò‚œÉ3¬ áøÊÁ3o
m
kC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\compile_commands.json.bin  Û·ù»Ä3 è áøÊÁ3u
kC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\compile_commands.json.bin  ¯Ò‚œÉ3 è áøÊÁ3u
s
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\metadata_generation_command.txt  Û·ù»Ä3
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\metadata_generation_command.txt  ¯Ò‚œÉ3
 óùÊÁ3h
f
dC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\prefab_config.json  Û·ù»Ä3  ( ôùÊÁ3m
dC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\prefab_config.json  ¯Ò‚œÉ3  ( ôùÊÁ3m
k
iC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\symbol_folder_index.txt  Û·ù»Ä3  h öùÊÁ3Z
iC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\symbol_folder_index.txt  ¯Ò‚œÉ3  h öùÊÁ3Z
X
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  Û·ù»Ä3 ¨ ÃÖ<C383>˜Á3
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  ¯Ò‚œÉ3 ¨ ÃÖ<C383>˜Á3

View File

@ -2,28 +2,28 @@ C/C++ Structured Logu
s
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ѹù»Ä3  婜Á3r
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÚÓ‚œÉ3  婜Á3r
p
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\android_gradle_build.json  Ѹù»Ä3ª
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\android_gradle_build.json  ÛÓ‚œÉ3ª
<20>婜Á3w
u
sC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\android_gradle_build_mini.json  Ѹù»Ä3¢ •婜Á3d
sC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\android_gradle_build_mini.json  ÛÓ‚œÉ3¢ •婜Á3d
b
`C:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\build.ninja  Ѹù»Ä3ÝÅ ×䩜Á3h
`C:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\build.ninja  ÛÓ‚œÉ3ÝÅ ×䩜Á3h
f
dC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\build.ninja.txt  Ѹù»Ä3m
dC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\build.ninja.txt  ÛÓ‚œÉ3m
k
iC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\build_file_index.txt  Ѹù»Ä3 V —婜Á3n
iC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\build_file_index.txt  ÛÓ‚œÉ3 V —婜Á3n
l
jC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\compile_commands.json  Ѹù»Ä3± Ó䩜Á3r
jC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\compile_commands.json  ÛÓ‚œÉ3± Ó䩜Á3r
p
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\compile_commands.json.bin  Ѹù»Ä3 í Ó䩜Á3x
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\compile_commands.json.bin  ÛÓ‚œÉ3 í Ó䩜Á3x
v
tC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\metadata_generation_command.txt  Ѹù»Ä3
tC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\metadata_generation_command.txt  ÛÓ‚œÉ3
¡ •婜Á3k
i
gC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\prefab_config.json  Ѹù»Ä3  ( 婜Á3p
gC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\prefab_config.json  ÛÓ‚œÉ3  ( 婜Á3p
n
lC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\symbol_folder_index.txt  Ѹù»Ä3  k —婜Á3Z
lC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\symbol_folder_index.txt  ÛÓ‚œÉ3  k —婜Á3Z
X
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  Ѹù»Ä3 ¨ ÃÖ<C383>˜Á3
VC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\libcxx_helper\CMakeLists.txt  ÛÓ‚œÉ3 ¨ ÃÖ<C383>˜Á3

View File

@ -12,3 +12,10 @@ generate_cxx_metadata
[gap of 32ms]
generate_cxx_metadata completed in 99ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 24ms]
create-invalidation-state 57ms
[gap of 37ms]
generate_cxx_metadata completed in 118ms

View File

@ -13,3 +13,9 @@ generate_cxx_metadata
[gap of 29ms]
generate_cxx_metadata completed in 94ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 31ms
[gap of 28ms]
generate_cxx_metadata completed in 67ms

View File

@ -12,3 +12,11 @@ generate_cxx_metadata
[gap of 42ms]
generate_cxx_metadata completed in 132ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 16ms]
create-invalidation-state 49ms
[gap of 25ms]
write-metadata-json-to-file 11ms
generate_cxx_metadata completed in 102ms

View File

@ -26,3 +26,10 @@ generate_cxx_metadata
[gap of 23ms]
generate_cxx_metadata completed in 74ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 11ms]
create-invalidation-state 37ms
[gap of 27ms]
generate_cxx_metadata completed in 75ms

View File

@ -12,3 +12,10 @@ generate_cxx_metadata
[gap of 37ms]
generate_cxx_metadata completed in 117ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 20ms]
create-invalidation-state 50ms
[gap of 38ms]
generate_cxx_metadata completed in 108ms

View File

@ -5,3 +5,10 @@ generate_cxx_metadata
[gap of 30ms]
generate_cxx_metadata completed in 93ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 12ms]
create-invalidation-state 42ms
[gap of 27ms]
generate_cxx_metadata completed in 81ms

View File

@ -14,3 +14,10 @@ generate_cxx_metadata
write-metadata-json-to-file 10ms
generate_cxx_metadata completed in 102ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 32ms]
create-invalidation-state 87ms
[gap of 37ms]
generate_cxx_metadata completed in 156ms

View File

@ -13,3 +13,10 @@ generate_cxx_metadata
write-metadata-json-to-file 19ms
generate_cxx_metadata completed in 227ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 14ms]
create-invalidation-state 42ms
[gap of 28ms]
generate_cxx_metadata completed in 84ms

View File

@ -19,3 +19,27 @@ generate_cxx_metadata
write-metadata-json-to-file 12ms
generate_cxx_metadata completed in 136ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 22ms]
create-invalidation-state 66ms
[gap of 31ms]
write-metadata-json-to-file 11ms
generate_cxx_metadata completed in 131ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 14ms]
create-invalidation-state 47ms
[gap of 32ms]
write-metadata-json-to-file 10ms
generate_cxx_metadata completed in 105ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 23ms]
create-invalidation-state 98ms
[gap of 37ms]
write-metadata-json-to-file 13ms
generate_cxx_metadata completed in 173ms

View File

@ -4,3 +4,10 @@ generate_cxx_metadata
[gap of 18ms]
generate_cxx_metadata completed in 34ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 21ms]
create-invalidation-state 58ms
[gap of 33ms]
generate_cxx_metadata completed in 112ms

View File

@ -4,3 +4,9 @@ generate_cxx_metadata
[gap of 25ms]
generate_cxx_metadata completed in 57ms
# C/C++ build system timings
generate_cxx_metadata 25ms
# C/C++ build system timings
generate_cxx_metadata 22ms

View File

@ -4,3 +4,6 @@ generate_cxx_metadata
[gap of 15ms]
generate_cxx_metadata completed in 31ms
# C/C++ build system timings
generate_cxx_metadata 25ms

View File

@ -10,3 +10,9 @@ generate_cxx_metadata
[gap of 18ms]
generate_cxx_metadata completed in 37ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 10ms
[gap of 17ms]
generate_cxx_metadata completed in 30ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 24ms
# C/C++ build system timings
generate_cxx_metadata 20ms

View File

@ -5,3 +5,6 @@ generate_cxx_metadata
[gap of 34ms]
generate_cxx_metadata completed in 81ms
# C/C++ build system timings
generate_cxx_metadata 12ms

View File

@ -4,3 +4,9 @@ generate_cxx_metadata
[gap of 13ms]
generate_cxx_metadata completed in 28ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 11ms
[gap of 14ms]
generate_cxx_metadata completed in 29ms

View File

@ -11,7 +11,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1267503242
"memoizedHashCode": 1164482061
},
{
"level_": 0,
@ -25,7 +25,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1835985214
"memoizedHashCode": 596000089
},
{
"level_": 0,
@ -39,6 +39,6 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1074353236
"memoizedHashCode": -788628757
}
]

View File

@ -4,3 +4,6 @@ generate_cxx_metadata
[gap of 18ms]
generate_cxx_metadata completed in 40ms
# C/C++ build system timings
generate_cxx_metadata 25ms

View File

@ -1,3 +1,18 @@
# C/C++ build system timings
generate_cxx_metadata 23ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 12ms
[gap of 13ms]
generate_cxx_metadata completed in 29ms
# C/C++ build system timings
generate_cxx_metadata 19ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 11ms
[gap of 18ms]
generate_cxx_metadata completed in 33ms

View File

@ -4,3 +4,12 @@ generate_cxx_metadata
[gap of 13ms]
generate_cxx_metadata completed in 25ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 10ms
[gap of 15ms]
generate_cxx_metadata completed in 27ms
# C/C++ build system timings
generate_cxx_metadata 16ms

View File

@ -11,7 +11,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 573772690
"memoizedHashCode": 1226785352
},
{
"level_": 0,
@ -25,7 +25,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -753817378
"memoizedHashCode": -100804716
},
{
"level_": 0,
@ -39,6 +39,6 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -2107994126
"memoizedHashCode": -1454981464
}
]

View File

@ -1,3 +1,9 @@
# C/C++ build system timings
generate_cxx_metadata 18ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 12ms
[gap of 16ms]
generate_cxx_metadata completed in 31ms

View File

@ -4,3 +4,9 @@ generate_cxx_metadata 16ms
# C/C++ build system timings
generate_cxx_metadata 23ms
# C/C++ build system timings
generate_cxx_metadata 24ms
# C/C++ build system timings
generate_cxx_metadata 14ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 18ms
# C/C++ build system timings
generate_cxx_metadata 24ms

View File

@ -6,3 +6,11 @@ generate_cxx_metadata
write-metadata-json-to-file 12ms
generate_cxx_metadata completed in 151ms
# C/C++ build system timings
generate_cxx_metadata
[gap of 25ms]
create-invalidation-state 72ms
[gap of 34ms]
write-metadata-json-to-file 13ms
generate_cxx_metadata completed in 146ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 21ms
# C/C++ build system timings
generate_cxx_metadata 16ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 18ms
# C/C++ build system timings
generate_cxx_metadata 18ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 16ms
# C/C++ build system timings
generate_cxx_metadata 21ms

View File

@ -11,7 +11,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -532663814
"memoizedHashCode": 120348848
},
{
"level_": 0,
@ -25,7 +25,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1002172346
"memoizedHashCode": -349159684
},
{
"level_": 0,
@ -39,6 +39,6 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1881978758
"memoizedHashCode": -1759975876
}
]

View File

@ -7,3 +7,9 @@ generate_cxx_metadata
[gap of 14ms]
generate_cxx_metadata completed in 29ms
# C/C++ build system timings
generate_cxx_metadata 19ms
# C/C++ build system timings
generate_cxx_metadata 15ms

View File

@ -1,3 +1,9 @@
# C/C++ build system timings
generate_cxx_metadata 16ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 11ms
[gap of 14ms]
generate_cxx_metadata completed in 28ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 23ms
# C/C++ build system timings
generate_cxx_metadata 18ms

View File

@ -1,3 +1,9 @@
# C/C++ build system timings
generate_cxx_metadata 22ms
# C/C++ build system timings
generate_cxx_metadata
create-invalidation-state 10ms
[gap of 11ms]
generate_cxx_metadata completed in 24ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 21ms
# C/C++ build system timings
generate_cxx_metadata 17ms

View File

@ -4,3 +4,6 @@ generate_cxx_metadata
[gap of 18ms]
generate_cxx_metadata completed in 38ms
# C/C++ build system timings
generate_cxx_metadata 16ms

View File

@ -1,3 +1,6 @@
# C/C++ build system timings
generate_cxx_metadata 19ms
# C/C++ build system timings
generate_cxx_metadata 21ms

View File

@ -11,7 +11,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -2091529352
"memoizedHashCode": -1438516690
},
{
"level_": 0,
@ -25,7 +25,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 305896416
"memoizedHashCode": 958909078
},
{
"level_": 0,
@ -39,6 +39,6 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1264613355
"memoizedHashCode": -611600693
}
]

View File

@ -11,6 +11,6 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1127879665
"memoizedHashCode": -735102328
}
]

View File

@ -14,3 +14,13 @@ create_cxx_tasks
[gap of 71ms]
create_cxx_tasks completed in 203ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
[gap of 41ms]
create-module-model 11ms
[gap of 31ms]
create-initial-cxx-model completed in 83ms
[gap of 27ms]
create_cxx_tasks completed in 111ms

View File

@ -10,3 +10,14 @@ create_cxx_tasks
[gap of 10ms]
create_cxx_tasks completed in 118ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 11ms
[gap of 41ms]
create-module-model 11ms
[gap of 38ms]
create-initial-cxx-model completed in 101ms
[gap of 10ms]
create_cxx_tasks completed in 111ms

View File

@ -15,3 +15,13 @@ create_cxx_tasks
[gap of 12ms]
create_cxx_tasks completed in 150ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 11ms
[gap of 44ms]
create-module-model 11ms
[gap of 35ms]
create-initial-cxx-model completed in 101ms
create_cxx_tasks completed in 110ms

View File

@ -15,3 +15,13 @@ create_cxx_tasks
[gap of 13ms]
create_cxx_tasks completed in 149ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 12ms
[gap of 38ms]
create-module-model 10ms
[gap of 34ms]
create-initial-cxx-model completed in 94ms
create_cxx_tasks completed in 101ms

View File

@ -19,3 +19,22 @@ create_cxx_tasks
[gap of 15ms]
create_cxx_tasks completed in 163ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 74ms]
create-initial-cxx-model completed in 84ms
[gap of 10ms]
create_cxx_tasks completed in 94ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 63ms
create_cxx_tasks completed in 69ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 54ms
create_cxx_tasks completed in 61ms

View File

@ -778,3 +778,275 @@ create_cxx_tasks
[gap of 48ms]
create_cxx_tasks completed in 178ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 14ms
[gap of 16ms]
create-ARMEABI_V7A-model 14ms
create-ARM64_V8A-model 10ms
create-X86-model 10ms
[gap of 10ms]
create-module-model 13ms
[gap of 41ms]
create-initial-cxx-model completed in 130ms
[gap of 55ms]
create_cxx_tasks completed in 185ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 19ms
[gap of 14ms]
create-ARMEABI_V7A-model 11ms
create-ARM64_V8A-model 12ms
create-X86-model 10ms
create-module-model 17ms
create-ARMEABI_V7A-model 11ms
create-ARM64_V8A-model 10ms
create-X86-model 12ms
create-X86_64-model 11ms
create-initial-cxx-model completed in 148ms
[gap of 50ms]
create_cxx_tasks completed in 199ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 13ms
[gap of 27ms]
create-X86-model 13ms
create-X86_64-model 10ms
create-module-model 14ms
create-ARMEABI_V7A-model 13ms
[gap of 24ms]
create-initial-cxx-model completed in 125ms
[gap of 45ms]
create_cxx_tasks completed in 170ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 36ms]
create-module-model 10ms
[gap of 29ms]
create-initial-cxx-model completed in 85ms
[gap of 33ms]
create_cxx_tasks completed in 119ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 13ms
[gap of 17ms]
create-ARMEABI_V7A-model 11ms
create-ARM64_V8A-model 11ms
create-X86-model 11ms
create-X86_64-model 11ms
create-module-model 15ms
[gap of 26ms]
create-X86-model 10ms
create-X86_64-model 10ms
create-initial-cxx-model completed in 142ms
[gap of 50ms]
create_cxx_tasks completed in 193ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 13ms
[gap of 31ms]
create-X86_64-model 10ms
create-module-model 14ms
create-variant-model 12ms
create-ARMEABI_V7A-model 19ms
create-ARM64_V8A-model 12ms
create-X86-model 17ms
create-X86_64-model 14ms
create-initial-cxx-model completed in 152ms
[gap of 14ms]
create_cxx_tasks completed in 166ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 59ms]
create-initial-cxx-model completed in 69ms
create_cxx_tasks completed in 75ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 33ms]
create-module-model 12ms
create-ARMEABI_V7A-model 15ms
create-ARM64_V8A-model 10ms
create-X86_64-model 11ms
create-initial-cxx-model completed in 106ms
[gap of 10ms]
create_cxx_tasks completed in 116ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 78ms
create_cxx_tasks completed in 87ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 13ms
[gap of 39ms]
create-X86_64-model 10ms
create-module-model 14ms
[gap of 43ms]
create-initial-cxx-model completed in 121ms
[gap of 48ms]
create_cxx_tasks completed in 169ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 20ms
[gap of 18ms]
create-ARMEABI_V7A-model 14ms
create-ARM64_V8A-model 12ms
create-X86-model 13ms
create-X86_64-model 11ms
create-module-model
[gap of 15ms]
create-cmake-model 17ms
create-module-model completed in 37ms
create-variant-model 14ms
create-ARMEABI_V7A-model 12ms
create-ARM64_V8A-model 11ms
create-X86-model 20ms
create-X86_64-model 13ms
create-initial-cxx-model completed in 204ms
[gap of 97ms]
create_cxx_tasks completed in 301ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 14ms
[gap of 22ms]
create-ARM64_V8A-model 10ms
[gap of 19ms]
create-module-model 13ms
create-variant-model 10ms
[gap of 18ms]
create-X86-model 14ms
[gap of 10ms]
create-initial-cxx-model completed in 131ms
[gap of 16ms]
create_cxx_tasks completed in 147ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 46ms]
create-module-model 14ms
[gap of 28ms]
create-X86_64-model 10ms
create-initial-cxx-model completed in 109ms
[gap of 38ms]
create_cxx_tasks completed in 147ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
[gap of 38ms]
create-module-model 11ms
[gap of 36ms]
create-initial-cxx-model completed in 85ms
[gap of 34ms]
create_cxx_tasks completed in 120ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 35ms]
create-module-model 13ms
create-ARMEABI_V7A-model 13ms
[gap of 18ms]
create-X86_64-model 12ms
create-initial-cxx-model completed in 111ms
[gap of 44ms]
create_cxx_tasks completed in 156ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 15ms
[gap of 46ms]
create-module-model 10ms
[gap of 39ms]
create-initial-cxx-model completed in 110ms
[gap of 42ms]
create_cxx_tasks completed in 153ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 41ms]
create-module-model 11ms
create-ARMEABI_V7A-model 11ms
[gap of 20ms]
create-initial-cxx-model completed in 100ms
[gap of 34ms]
create_cxx_tasks completed in 134ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 11ms
[gap of 42ms]
create-module-model 13ms
[gap of 40ms]
create-initial-cxx-model completed in 106ms
[gap of 37ms]
create_cxx_tasks completed in 143ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 75ms]
create-initial-cxx-model completed in 85ms
[gap of 31ms]
create_cxx_tasks completed in 117ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 17ms
[gap of 28ms]
create-X86-model 10ms
create-X86_64-model 10ms
create-module-model 18ms
[gap of 33ms]
create-X86_64-model 10ms
create-initial-cxx-model completed in 128ms
[gap of 46ms]
create_cxx_tasks completed in 175ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 14ms
[gap of 54ms]
create-module-model 14ms
create-variant-model 10ms
[gap of 10ms]
create-ARM64_V8A-model 10ms
create-X86-model 10ms
create-initial-cxx-model completed in 135ms
[gap of 60ms]
create_cxx_tasks completed in 196ms

View File

@ -16,3 +16,15 @@ create_cxx_tasks
[gap of 12ms]
create_cxx_tasks completed in 173ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 11ms
[gap of 19ms]
create-X86-model 19ms
create-module-model 11ms
[gap of 31ms]
create-initial-cxx-model completed in 100ms
[gap of 16ms]
create_cxx_tasks completed in 116ms

View File

@ -8,3 +8,11 @@ create_cxx_tasks
[gap of 12ms]
create_cxx_tasks completed in 93ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model
create-module-model 10ms
[gap of 73ms]
create-initial-cxx-model completed in 83ms
create_cxx_tasks completed in 90ms

View File

@ -10,3 +10,8 @@ create_cxx_tasks
[gap of 11ms]
create_cxx_tasks completed in 116ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 66ms
create_cxx_tasks completed in 74ms

View File

@ -11,7 +11,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1969914283
"memoizedHashCode": 106932290
},
{
"level_": 0,
@ -25,7 +25,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1532864910
"memoizedHashCode": 899120393
},
{
"level_": 0,
@ -39,7 +39,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1992608955
"memoizedHashCode": 439376348
},
{
"level_": 0,
@ -53,7 +53,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1034410353
"memoizedHashCode": -828571640
},
{
"level_": 0,
@ -67,7 +67,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1603122384
"memoizedHashCode": -259859609
},
{
"level_": 0,
@ -81,7 +81,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1968032642
"memoizedHashCode": 105050649
},
{
"level_": 0,
@ -95,7 +95,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -2019793420
"memoizedHashCode": 412191883
},
{
"level_": 0,
@ -109,7 +109,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1717026156
"memoizedHashCode": -145955837
},
{
"level_": 0,
@ -123,7 +123,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1909138387
"memoizedHashCode": 522846916
},
{
"level_": 0,
@ -137,7 +137,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": -1204677194
"memoizedHashCode": 1227308109
},
{
"level_": 0,
@ -151,7 +151,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 658136876
"memoizedHashCode": -1204845117
},
{
"level_": 0,
@ -165,7 +165,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 1226848907
"memoizedHashCode": -636133086
},
{
"level_": 0,
@ -179,7 +179,7 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 2132598970
"memoizedHashCode": 269616977
},
{
"level_": 2,
@ -193,6 +193,6 @@
"fieldsDescending": {}
},
"memoizedSize": -1,
"memoizedHashCode": 289047118
"memoizedHashCode": -1573934875
}
]

View File

@ -234,4 +234,8 @@ dependencies {
//implementation 'com.quickbirdstudios:opencv-contrib:3.4.5'
implementation project(path: ':android-sdk-v5-uxsdk')
//TTS
implementation files('libs/AIKit.aar')
}

View File

@ -90,8 +90,8 @@ open class ConnectionActivity : BaseActivity() {
}
if (TextUtils.isEmpty(PreferenceUtils.getInstance().mqttServerUri)){
PreferenceUtils.getInstance().mqttServerUri =
// "tcp://192.168.20.90:2883"
"tcp://broker.emqx.io"
"tcp://192.168.20.90:2883"
//"tcp://broker.emqx.io"
}
if (TextUtils.isEmpty(PreferenceUtils.getInstance().mqttUserName)){

View File

@ -1,4 +1,5 @@
package com.aros.apron.activity
import android.annotation.SuppressLint
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
@ -6,16 +7,17 @@ import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.util.Log
import android.view.View
import android.view.Window
import android.view.WindowManager
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.GravityCompat
import androidx.drawerlayout.widget.DrawerLayout
import com.aros.apron.BuildConfig
import com.aros.apron.R
import com.aros.apron.base.BaseActivity
import com.aros.apron.callback.MqttCallBack
@ -36,6 +38,7 @@ import com.aros.apron.manager.MediaManager
import com.aros.apron.manager.MissionV3Manager
import com.aros.apron.manager.OSDManager
import com.aros.apron.manager.PayloadWidgetManager
import com.aros.apron.manager.SpeakerManager
import com.aros.apron.manager.StickManager
import com.aros.apron.manager.StreamManager
import com.aros.apron.manager.WirelessLinkManager
@ -45,8 +48,14 @@ import com.aros.apron.tools.DroneHelper
import com.aros.apron.tools.LogUtil
import com.aros.apron.tools.MqttManager
import com.aros.apron.tools.PreferenceUtils
import com.aros.apron.tools.Utils
import com.dji.wpmzsdk.manager.WPMZManager
import com.google.gson.Gson
import com.iflytek.aikit.core.AiHelper
import com.iflytek.aikit.core.BaseLibrary
import com.iflytek.aikit.core.CoreListener
import com.iflytek.aikit.core.ErrType
import com.iflytek.aikit.core.LogLvl
import dji.sdk.keyvalue.key.CameraKey
import dji.sdk.keyvalue.key.DJIKey
import dji.sdk.keyvalue.key.FlightControllerKey
@ -57,9 +66,11 @@ import dji.sdk.keyvalue.value.common.ComponentIndexType
import dji.sdk.keyvalue.value.common.EmptyMsg
import dji.sdk.keyvalue.value.flightassistant.VisionAssistDirection
import dji.v5.common.callback.CommonCallbacks
import dji.v5.common.callback.CommonCallbacks.CompletionCallback
import dji.v5.common.error.IDJIError
import dji.v5.common.utils.GeoidManager
import dji.v5.manager.KeyManager
import dji.v5.manager.aircraft.virtualstick.VirtualStickManager
import dji.v5.manager.datacenter.MediaDataCenter
import dji.v5.manager.interfaces.ICameraStreamManager
import dji.v5.manager.interfaces.ICameraStreamManager.AvailableCameraUpdatedListener
@ -105,7 +116,6 @@ import io.reactivex.rxjava3.functions.Consumer
import org.eclipse.paho.client.mqttv3.MqttException
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import org.opencv.android.OpenCVLoader
import org.opencv.objdetect.Dictionary
import org.opencv.objdetect.Objdetect
import java.util.concurrent.TimeUnit
@ -143,6 +153,9 @@ open class MainActivity : BaseActivity() {
private var gimbalAdjustDone: TextView? = null
private var btn_test: Button? = null
private var btn_test1: Button? = null
private var btn_test2: Button? = null
private var btn_test3: Button? = null
private var gimbalFineTuneWidget: GimbalFineTuneWidget? = null
private var lastDevicePosition = ComponentIndexType.UNKNOWN
@ -175,13 +188,15 @@ open class MainActivity : BaseActivity() {
}
private var cameraManager: ICameraStreamManager = MediaDataCenter.getInstance().cameraStreamManager
private var cameraManager: ICameraStreamManager =
MediaDataCenter.getInstance().cameraStreamManager
private var startArucoType = 0 //1执行机库二维码识别 2执行备降点二维码识别
private var dictionary: Dictionary? = null
override fun useEventBus(): Boolean {
return true
}
override fun onResume() {
super.onResume()
dictionary = Objdetect.getPredefinedDictionary(Objdetect.DICT_6X6_250)
@ -213,7 +228,8 @@ open class MainActivity : BaseActivity() {
runOnUiThread { onCameraSourceUpdated(result.devicePosition, result.lensType) }
})
)
compositeDisposable!!.add(ObservableInMemoryKeyedStore.getInstance()
compositeDisposable!!.add(
ObservableInMemoryKeyedStore.getInstance()
.addObserver(UXKeys.create(GlobalPreferenceKeys.GIMBAL_ADJUST_CLICKED))
.observeOn(ui())
.subscribe { broadcastValues: BroadcastValues? ->
@ -406,6 +422,7 @@ open class MainActivity : BaseActivity() {
val devicePosition: ComponentIndexType,
val lensType: CameraLensType
)
override fun onBackPressed() {
if (mDrawerLayout!!.isDrawerOpen(GravityCompat.END)) {
mDrawerLayout!!.closeDrawers()
@ -440,6 +457,50 @@ open class MainActivity : BaseActivity() {
initDJIManager()
initCameraStream()
initView()
initSDK()
}
private fun initSDK() {
AiHelper.getInst().setLogInfo(LogLvl.VERBOSE, 1, "/sdcard/iflytek/aikit/aeeLog.txt")
//设定初始化参数
val params = BaseLibrary.Params.builder()
.appId("753fd711") //您的应用ID可从控制台查看
.apiKey("35099a7d31abf2259f5ee58cbf8b6791") //您的APIKEY可从控制台查看
.apiSecret("ZTdiMDIwYzEwNTA1NjllYjJlYjdmYWFi") //您的APISECRET可从控制台查看
.workDir(Utils.getSDCardPath() + "/DJIDemo/cache") //SDK的工作目录需要确保有读写权限。一般用于存放离线能力资源日志存放目录等使用。
.build()
//初始化SDK
Thread {
AiHelper.getInst().initEntry(this@MainActivity.applicationContext, params)
}.start()
AiHelper.getInst().registerListener(coreListener) // 注册SDK 初始化状态监听
}
//授权结果回调
private val coreListener = CoreListener { type, code ->
Log.i(TAG, "core listener code:$code")
runOnUiThread {
when (type) {
ErrType.AUTH -> {
if (code == 0) {
LogUtil.log(TAG, "SDK授权成功")
} else {
LogUtil.log(TAG, "SDK授权失败授权码为:$code")
}
}
ErrType.HTTP -> Toast.makeText(
this@MainActivity, "SDK状态HTTP认证结果$code",
Toast.LENGTH_SHORT
).show()
else -> Toast.makeText(
this@MainActivity, "SDK状态其他错误$code",
Toast.LENGTH_SHORT
).show()
}
}
}
private fun initView() {
@ -467,12 +528,23 @@ open class MainActivity : BaseActivity() {
gimbalFineTuneWidget = findViewById(R.id.setting_menu_gimbal_fine_tune)
btn_test = findViewById(R.id.btn_test)
btn_test1 = findViewById(R.id.btn_test1)
btn_test2 = findViewById(R.id.btn_test2)
btn_test3 = findViewById(R.id.btn_test3)
btn_test?.setOnClickListener {
// MissionManager.getInstance().test()
FlightManager.getInstance().startPropellerRotation(null)
}
btn_test1?.setOnClickListener {
FlightManager.getInstance().stopPropellerRotation(null)
}
btn_test2?.setOnClickListener {
}
btn_test3?.setOnClickListener {
}
@ -516,8 +588,6 @@ open class MainActivity : BaseActivity() {
DJINetworkManager.getInstance().addNetworkStatusListener(networkStatusListener)
}
private fun isGimableAdjustClicked(broadcastValues: BroadcastValues) {
@ -574,6 +644,7 @@ open class MainActivity : BaseActivity() {
private val handler: Handler = Handler(Looper.getMainLooper())
private var initTimes = 0
private fun initDJIManager() {
//如果没有云台修改这里
// 初始化 OpenCV
@ -581,9 +652,11 @@ open class MainActivity : BaseActivity() {
val isFlightControllerConnect =
KeyManager.getInstance().getValue(DJIKey.create(FlightControllerKey.KeyConnection))
val isCameraConnect =
KeyManager.getInstance().getValue(KeyTools.createKey(CameraKey.KeyConnection, ComponentIndexType.PORT_1))
val isGimbal =KeyManager.getInstance().getValue(KeyTools.createKey(GimbalKey.KeyConnection, ComponentIndexType.PORT_1))
LogUtil.log(TAG,isCameraConnect.toString())
KeyManager.getInstance()
.getValue(KeyTools.createKey(CameraKey.KeyConnection, ComponentIndexType.PORT_1))
val isGimbal = KeyManager.getInstance()
.getValue(KeyTools.createKey(GimbalKey.KeyConnection, ComponentIndexType.PORT_1))
// LogUtil.log(TAG,isCameraConnect.toString())
//全装在初始化
if ((isFlightControllerConnect == null || !isFlightControllerConnect)) {
@ -615,7 +688,8 @@ open class MainActivity : BaseActivity() {
LTEManager.getInstance().initLTEInfo()
WirelessLinkManager.getInstance().initWirelessLink()
CameraManager.getInstance().initCameraInfo()
//tts
SpeakerManager.getInstance().initMegaphoneInfo()
LEDsSettingsManager.getInstance().initLEDsInfo()
@ -624,6 +698,7 @@ open class MainActivity : BaseActivity() {
if (PreferenceUtils.getInstance().customStreamType == 1) {
StreamManager.getInstance()
.startLiveWithRTSP()
} else if (PreferenceUtils.getInstance().customStreamType == 2) {
StreamManager.getInstance()
.startLiveWithCustom()
@ -638,7 +713,6 @@ open class MainActivity : BaseActivity() {
}
@SuppressLint("SuspiciousIndentation")
private fun initCameraStream() {
@ -762,7 +836,14 @@ open class MainActivity : BaseActivity() {
}
})
FLAG_DOWN_LAND ->
FLAG_DOWN_LAND -> {
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false)
VirtualStickManager.getInstance().disableVirtualStick(object : CompletionCallback {
override fun onSuccess() {
LogUtil.log(TAG, "控制取消成功")
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false)
KeyManager.getInstance().performAction<EmptyMsg>(
KeyTools.createKey<EmptyMsg, EmptyMsg>(FlightControllerKey.KeyStartAutoLanding),
object : CommonCallbacks.CompletionCallbackWithParam<EmptyMsg?> {
@ -770,11 +851,28 @@ open class MainActivity : BaseActivity() {
startArucoType = 0
LogUtil.log(TAG, "自动降落调用成功")
}
override fun onFailure(error: IDJIError) {
LogUtil.log(TAG, "自动降落调用失败${error.description()}")
}
})
}
override fun onFailure(error: IDJIError) {
LogUtil.log(TAG, "拖动控制权取消成功")
KeyManager.getInstance().performAction<EmptyMsg>(
KeyTools.createKey<EmptyMsg, EmptyMsg>(FlightControllerKey.KeyStartAutoLanding),
object : CommonCallbacks.CompletionCallbackWithParam<EmptyMsg?> {
override fun onSuccess(emptyMsg: EmptyMsg?) {
startArucoType = 0
LogUtil.log(TAG, "自动降落调用成功")
}
override fun onFailure(error: IDJIError) {
LogUtil.log(TAG, "自动降落调用失败${error.description()}")
}
})
}
})
}
FLAG_STOP_ARUCO ->
startArucoType = 0
@ -784,9 +882,6 @@ open class MainActivity : BaseActivity() {
}
}
private fun setViewVisibilityWithCleanMode() {
if (PreferenceUtils.getInstance().isCleanMode) {
fpvInteractionWidget?.visibility = View.GONE

View File

@ -291,7 +291,7 @@ public abstract class BaseManager {
output.setProgress(progress);
FlightTaskProgress.Data data = new FlightTaskProgress.Data();
data.setResult(0);
data.setResult(Movement.getInstance().getResult());
data.setOutput(output);
FlightTaskProgress flightTaskProgress = new FlightTaskProgress();
@ -321,7 +321,7 @@ public abstract class BaseManager {
output.setProgress(progress);
FlightTaskProgress.Data data = new FlightTaskProgress.Data();
data.setResult(0);
data.setResult(Movement.getInstance().getResult());
data.setOutput(output);
FlightTaskProgress flightTaskProgress = new FlightTaskProgress();
@ -445,48 +445,47 @@ public abstract class BaseManager {
LogUtil.log(TAG, "发送sdr异常" + e.toString());
}
}
/**
* 上报一键起飞任务进度
*/
public void sendTakeoffToPointProgress2Server() {
try {
if (MqttManager.getInstance().mqttAndroidClient.isConnected()) {
// 构建 data 数据
TakeoffToPointProgress.Data data = new TakeoffToPointProgress.Data();
data.setFlightId(PreferenceUtils.getInstance().getFlightId());
data.setTrackId(PreferenceUtils.getInstance().getFlightId());
data.setStatus(Movement.getInstance().getTakeoff_status());
data.setResult(Movement.getInstance().getTakeoff_result());
data.setWayPointIndex(Movement.getInstance().getCurrentWaypointIndex());
data.setRemainingDistance(Movement.getInstance().getTakeoff_remaining_distance());
data.setRemainingTime(Movement.getInstance().getTakeoff_remaining_time());
data.setPlannedPathPoints(Movement.getInstance().getTakeoff_planned_path_points());
// 构建事件对象
TakeoffToPointProgress progress = new TakeoffToPointProgress();
progress.setBid(UUID.randomUUID().toString());
progress.setTid(UUID.randomUUID().toString());
progress.setTimestamp(System.currentTimeMillis());
progress.setMethod("takeoff_to_point_progress");
progress.setNeedReply(1);
progress.setData(data);
// 发送
MqttMessage mqttMessage = new MqttMessage(new Gson().toJson(progress).getBytes("UTF-8"));
mqttMessage.setQos(0);
MqttManager.getInstance().mqttAndroidClient.publish(AMSConfig.UP_UAV_EVENT, mqttMessage);
LogUtil.log(TAG, "发送一键起飞进度事件:" + new Gson().toJson(progress));
} else {
LogUtil.log(TAG, "发送一键起飞进度event失败mqtt 未连接");
}
} catch (Exception e) {
e.printStackTrace();
LogUtil.log(TAG, "发送一键起飞进度event异常" + e.toString());
}
}
// /**
// * 上报一键起飞任务进度
// */
// public void sendTakeoffToPointProgress2Server() {
// try {
// if (MqttManager.getInstance().mqttAndroidClient.isConnected()) {
// // 构建 data 数据
// TakeoffToPointProgress.Data data = new TakeoffToPointProgress.Data();
// data.setFlightId(PreferenceUtils.getInstance().getFlightId());
// data.setTrackId(PreferenceUtils.getInstance().getFlightId());
// data.setStatus(Movement.getInstance().getTakeoff_status());
// data.setResult(Movement.getInstance().getTakeoff_result());
// data.setWayPointIndex(Movement.getInstance().getCurrentWaypointIndex());
// data.setRemainingDistance(Movement.getInstance().getTakeoff_remaining_distance());
// data.setRemainingTime(Movement.getInstance().getTakeoff_remaining_time());
// data.setPlannedPathPoints(Movement.getInstance().getTakeoff_planned_path_points());
//
// // 构建事件对象
// TakeoffToPointProgress progress = new TakeoffToPointProgress();
// progress.setBid(UUID.randomUUID().toString());
// progress.setTid(UUID.randomUUID().toString());
// progress.setTimestamp(System.currentTimeMillis());
// progress.setMethod("takeoff_to_point_progress");
// progress.setNeedReply(1);
// progress.setData(data);
//
// // 发送
// MqttMessage mqttMessage = new MqttMessage(new Gson().toJson(progress).getBytes("UTF-8"));
// mqttMessage.setQos(0);
// MqttManager.getInstance().mqttAndroidClient.publish(AMSConfig.UP_UAV_EVENT, mqttMessage);
//
// LogUtil.log(TAG, "发送一键起飞进度事件:" + new Gson().toJson(progress));
//
// } else {
// LogUtil.log(TAG, "发送一键起飞进度event失败mqtt 未连接");
// }
// } catch (Exception e) {
// e.printStackTrace();
// LogUtil.log(TAG, "发送一键起飞进度event异常" + e.toString());
// }
// }
/**
* 上报拍照进度camera_photo_take_progress

View File

@ -16,6 +16,7 @@ public class MVirtualStickStateListener extends BaseManager implements dji.v5.ma
if (stickState!=null){
LogUtil.log(TAG,"控制权:"+stickState.isVirtualStickEnable()+"-高级模式:"+stickState.isVirtualStickAdvancedModeEnabled());
Movement.getInstance().setIsVirtualStickEnable(stickState.isVirtualStickEnable()?1:0);
if (!stickState.isVirtualStickEnable()){
Movement.getInstance().setVirtualStickEnableReason(0);
}
@ -25,6 +26,9 @@ public class MVirtualStickStateListener extends BaseManager implements dji.v5.ma
@Override
public void onChangeReasonUpdate(@NonNull FlightControlAuthorityChangeReason reason) {
if(reason.name().equals(FlightControlAuthorityChangeReason.BATTERY_LOW_GO_HOME)){
Movement.getInstance().setResult(321773);
}
LogUtil.log(TAG,"控制权变更原因:"+reason.name());
}

View File

@ -12,12 +12,15 @@ import com.aros.apron.constant.Constant;
import com.aros.apron.entity.ApronExecutionStatus;
import com.aros.apron.entity.MessageDown;
import com.aros.apron.entity.Movement;
import com.aros.apron.entity.SpeakerAudioPlayProgress;
import com.aros.apron.manager.CameraManager;
import com.aros.apron.manager.FlightManager;
import com.aros.apron.manager.FlyToPointManager;
import com.aros.apron.manager.GimbalManager;
import com.aros.apron.manager.MissionV3Manager;
import com.aros.apron.manager.OSDManager;
import com.aros.apron.manager.PerceptionManager;
import com.aros.apron.manager.SpeakerManager;
import com.aros.apron.manager.StickManager;
import com.aros.apron.manager.StreamManager;
import com.aros.apron.manager.SystemManager;
@ -26,6 +29,8 @@ import com.aros.apron.tools.LogUtil;
import com.aros.apron.tools.MqttManager;
import com.aros.apron.tools.PreferenceUtils;
import com.aros.apron.tools.RestartAPPTool;
import com.aros.apron.tools.SpeakerProgressReporter;
import com.aros.apron.tools.TakeoffProgressScheduler;
import com.google.gson.Gson;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
@ -90,14 +95,10 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
@Override
public void messageArrived(String topic, MqttMessage mqttMessage) {
String jsonString = null;
//Log.e(TAG, "入口打印:" +mqttMessage.toString());
Log.e(TAG, "入口打印:" +mqttMessage.toString());
try {
jsonString = new String(mqttMessage.getPayload(), "UTF-8");
@ -142,6 +143,9 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
break;
case Constant.FLIGHTTASK_EXECUTE:
LogUtil.log(TAG, "收到:航线" + jsonString);
//关闭避障
PerceptionManager.getInstance().setPerceptionEnable(false);
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
//设置modecode
Movement.getInstance().setMode_code(1);
sendFlightTaskProgress2Server();
@ -192,6 +196,7 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
sendFlightTaskProgress2Server();
//设置标志为指令飞行
Movement.getInstance().setFlightmode(2);
TakeoffProgressScheduler.getInstance().startReporting();
TakeOffToPointManager.getInstance().taskExecute(message);
break;
@ -322,6 +327,38 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
LogUtil.log(TAG, "收到:框选变焦" + jsonString);
CameraManager.getInstance().camera_frame_zoom(message);
break;
case Constant.SPEAKER_AUDIO_PLAY_START:
LogUtil.log(TAG, "收到:喊话器-开始播放音频" + jsonString);
SpeakerProgressReporter.getInstance().startAudioReport(2);
SpeakerManager.getInstance().speakerAudioPlayStart(message);
break;
case Constant.SPEAKER_TTS_PLAY_START:
LogUtil.log(TAG, "收到:喊话器-开始播放TTS文本" + jsonString);
SpeakerProgressReporter.getInstance().startTTSReport(2);
SpeakerManager.getInstance().speakerTTSPlayStart(message,0);
break;
case Constant.SPEAKER_REPLAY:
LogUtil.log(TAG, "收到:喊话器-重新播放" + jsonString);
SpeakerManager.getInstance().speakerReply(message);
break;
case Constant.SPEAKER_PLAY_STOP:
LogUtil.log(TAG, "收到:喊话器-停止播放" + jsonString);
SpeakerManager.getInstance().speakerStop(message);
break;
case Constant.SPEAKER_PLAY_MODE_SET:
LogUtil.log(TAG, "收到:喊话器-设置播放模式" + jsonString);
SpeakerManager.getInstance().speakerPlayModeSet(message);
break;
case Constant.SPEAKER_PLAY_VOLUME_SET:
LogUtil.log(TAG, "收到:喊话器-设置音量" + jsonString);
SpeakerManager.getInstance().speakerPlayVolumeSet(message);
break;
case Constant.DRC_SPEAKER_TTS_SET:
LogUtil.log(TAG, "收到:喊话器-TTS喊话设置" + jsonString);
SpeakerManager.getInstance().speakerTTSPlayStart(message,1);
break;
// //获取控制权
// case 60007:

View File

@ -287,5 +287,41 @@ public class Constant {
*/
/**
* 喊话器-开始播放音频
*/
public static final String SPEAKER_AUDIO_PLAY_START="speaker_audio_play_start";
/**
* 喊话器-开始播放TTS文本
*/
public static final String SPEAKER_TTS_PLAY_START="speaker_tts_play_start";
/**
* 喊话器-重新播放
*/
public static final String SPEAKER_REPLAY="speaker_replay";
/**
* 喊话器-停止播放
*/
public static final String SPEAKER_PLAY_STOP="speaker_play_stop";
/**
* 喊话器-设置播放模式
*/
public static final String SPEAKER_PLAY_MODE_SET="speaker_play_mode_set";
/**
* 喊话器-设置音量
*/
public static final String SPEAKER_PLAY_VOLUME_SET="speaker_play_volume_set";
/**
* 喊话器TTS喊话设置
*/
public static final String DRC_SPEAKER_TTS_SET="drc_speaker_tts_set";
}

View File

@ -1,635 +0,0 @@
package com.aros.apron.entity;
import java.util.List;
public class MessageDown {
private String tid;
private String bid;
private long timestamp;
private String method;
private Data data;
public String getTid() {
return tid;
}
public void setTid(String tid) {
this.tid = tid;
}
public String getBid() {
return bid;
}
public void setBid(String bid) {
this.bid = bid;
}
public long getTimestamp() {
return timestamp;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public static class Data {
private int result;
private String url;
private int video_quality;
private int ideo_quality;
private AlternateLandPoint alternate_land_point;
private int rth_mode;
private int task_type;
private int wayline_precision_type;
private String video_type;
private long execute_time;
private int exit_wayline_when_rc_lost;
private File file;
private String flight_id;
private int flight_safety_advance_check;
private int out_of_control_action;
private boolean takeoffToPointTask;
private BreakPoint break_point;
private int camera_mode=0;//初始化为拍照
private String h;
private String seq;
private String w;
//摇杆和云台
private String x;
private String y;
private String camera_type;
private String payload_index;
private float height;
private double latitude;
private boolean locked;
private double longitude;
private int zoom_factor;
private boolean enable;
private int exposure_mode;
private int exposure_value;
private int focus_mode;
private int focus_value;
private double commander_flight_height;
private int commander_mode_lost_action;
private String max_speed;
private int rc_lost_action;
private int rth_altitude;
private String security_takeoff_height;
private double target_height;
private double target_latitude;
private double target_longitude;
private String fly_to_id;
private List<Points> points;
private int reset_mode;
private double pitch_speed;
private double yaw_speed;
private float width;
public float getWidth() {
return width;
}
public void setWidth(float width) {
this.width = width;
}
public double getPitch_speed() {
return pitch_speed;
}
public void setPitch_speed(double pitch_speed) {
this.pitch_speed = pitch_speed;
}
public double getYaw_speed() {
return yaw_speed;
}
public void setYaw_speed(double yaw_speed) {
this.yaw_speed = yaw_speed;
}
public int getReset_mode() {
return reset_mode;
}
public void setReset_mode(int reset_mode) {
this.reset_mode = reset_mode;
}
public String getFly_to_id() {
return fly_to_id;
}
public void setFly_to_id(String fly_to_id) {
this.fly_to_id = fly_to_id;
}
public List<Points> getPoints() {
return points;
}
public void setPoints(List<Points> points) {
this.points = points;
}
public static class Points {
private int height;
private double latitude;
private double longitude;
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
}
public double getCommander_flight_height() {
return commander_flight_height;
}
public void setCommander_flight_height(int commander_flight_height) {
this.commander_flight_height = commander_flight_height;
}
public int getCommander_mode_lost_action() {
return commander_mode_lost_action;
}
public void setCommander_mode_lost_action(int commander_mode_lost_action) {
this.commander_mode_lost_action = commander_mode_lost_action;
}
public String getMax_speed() {
return max_speed;
}
public void setMax_speed(String max_speed) {
this.max_speed = max_speed;
}
public int getRc_lost_action() {
return rc_lost_action;
}
public void setRc_lost_action(int rc_lost_action) {
this.rc_lost_action = rc_lost_action;
}
public String getSecurity_takeoff_height() {
return security_takeoff_height;
}
public void setSecurity_takeoff_height(String security_takeoff_height) {
this.security_takeoff_height = security_takeoff_height;
}
public double getTarget_height() {
return target_height;
}
public void setTarget_height(int target_height) {
this.target_height = target_height;
}
public double getTarget_latitude() {
return target_latitude;
}
public void setTarget_latitude(double target_latitude) {
this.target_latitude = target_latitude;
}
public double getTarget_longitude() {
return target_longitude;
}
public void setTarget_longitude(double target_longitude) {
this.target_longitude = target_longitude;
}
public int getFocus_value() {
return focus_value;
}
public void setFocus_value(int focus_value) {
this.focus_value = focus_value;
}
public int getFocus_mode() {
return focus_mode;
}
public void setFocus_mode(int focus_mode) {
this.focus_mode = focus_mode;
}
public int getExposure_value() {
return exposure_value;
}
public void setExposure_value(int exposure_value) {
this.exposure_value = exposure_value;
}
public int getExposure_mode() {
return exposure_mode;
}
public void setExposure_mode(int exposure_mode) {
this.exposure_mode = exposure_mode;
}
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public int getZoom_factor() {
return zoom_factor;
}
public void setZoom_factor(int zoom_factor) {
this.zoom_factor = zoom_factor;
}
public float getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public String getCamera_type() {
return camera_type;
}
public void setCamera_type(String camera_type) {
this.camera_type = camera_type;
}
public boolean isLocked() {
return locked;
}
public void setLocked(boolean locked) {
this.locked = locked;
}
public String getPayload_index() {
return payload_index;
}
public void setPayload_index(String payload_index) {
this.payload_index = payload_index;
}
public String getH() {
return h;
}
public void setH(String h) {
this.h = h;
}
public String getSeq() {
return seq;
}
public void setSeq(String seq) {
this.seq = seq;
}
public String getW() {
return w;
}
public void setW(String w) {
this.w = w;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
public int getCamera_mode() {
return camera_mode;
}
public void setCamera_mode(int camera_mode) {
this.camera_mode = camera_mode;
}
public BreakPoint getBreak_point() {
return break_point;
}
public void setBreak_point(BreakPoint break_point) {
this.break_point = break_point;
}
public int getIdeo_quality() {
return ideo_quality;
}
public void setIdeo_quality(int ideo_quality) {
this.ideo_quality = ideo_quality;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getVideo_quality() {
return video_quality;
}
public void setVideo_quality(int video_quality) {
this.video_quality = video_quality;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public String getVideo_type() {
return video_type;
}
public void setVideo_type(String video_type) {
this.video_type = video_type;
}
public static class File {
private String fingerprint;
private String url;
public String getFingerprint() {
return fingerprint;
}
public void setFingerprint(String fingerprint) {
this.fingerprint = fingerprint;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
public static class BreakPoint {
private int index;
private double progress;
private int state;
private int wayline_id;
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public double getProgress() {
return progress;
}
public void setProgress(double progress) {
this.progress = progress;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public int getWayline_id() {
return wayline_id;
}
public void setWayline_id(int wayline_id) {
this.wayline_id = wayline_id;
}
}
public AlternateLandPoint getAlternate_land_point() {
return alternate_land_point;
}
public void setAlternate_land_point(AlternateLandPoint alternate_land_point) {
this.alternate_land_point = alternate_land_point;
}
public long getExecute_time() {
return execute_time;
}
public void setExecute_time(long execute_time) {
this.execute_time = execute_time;
}
public int getExit_wayline_when_rc_lost() {
return exit_wayline_when_rc_lost;
}
public void setExit_wayline_when_rc_lost(int exit_wayline_when_rc_lost) {
this.exit_wayline_when_rc_lost = exit_wayline_when_rc_lost;
}
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFlight_id() {
return flight_id;
}
public void setFlight_id(String flight_id) {
this.flight_id = flight_id;
}
public int getFlight_safety_advance_check() {
return flight_safety_advance_check;
}
public void setFlight_safety_advance_check(int flight_safety_advance_check) {
this.flight_safety_advance_check = flight_safety_advance_check;
}
public int getOut_of_control_action() {
return out_of_control_action;
}
public void setOut_of_control_action(int out_of_control_action) {
this.out_of_control_action = out_of_control_action;
}
public int getRth_altitude() {
return rth_altitude;
}
public void setRth_altitude(int rth_altitude) {
this.rth_altitude = rth_altitude;
}
public int getRth_mode() {
return rth_mode;
}
public void setRth_mode(int rth_mode) {
this.rth_mode = rth_mode;
}
public boolean isTakeoffToPointTask() {
return takeoffToPointTask;
}
public void setTakeoffToPointTask(boolean takeoffToPointTask) {
this.takeoffToPointTask = takeoffToPointTask;
}
public int getTask_type() {
return task_type;
}
public void setTask_type(int task_type) {
this.task_type = task_type;
}
public int getWayline_precision_type() {
return wayline_precision_type;
}
public void setWayline_precision_type(int wayline_precision_type) {
this.wayline_precision_type = wayline_precision_type;
}
public static class AlternateLandPoint {
private double latitude;
private double longitude;
private double safe_land_height;
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public double getSafe_land_height() {
return safe_land_height;
}
public void setSafe_land_height(double safe_land_height) {
this.safe_land_height = safe_land_height;
}
}
}
}

View File

@ -276,6 +276,9 @@ public class Movement {
private String sdr_freq_band;
private String freq_band_4g;
//航线上报状态
private int result=0;
// ========== 一键起飞相关字段 ==========
private boolean takeofftopointmission;
@ -286,13 +289,93 @@ public class Movement {
private double speed; //全局速度
private List<TakeoffToPointProgress.PlannedPathPoint> takeoff_planned_path_points; // 规划轨迹点
private double takeofftargetlatitude;
private double takeofftargetlongitude;
private double takeofftargetheight;
// ========== 上报拍照进度 ==========(全景)
private String photo_status; // in_progress/ok/fail
private int photo_current_step; // 3000/3002/3005
private int photo_percent; // 0-100
private int photo_result; // 0成功非0错误
// ========== 喊话器 ==========(全景)
private String TTS_status;
private int speakerpercent;
private String step_key;
private String md5;
public int getSpeakerpercent() {
return speakerpercent;
}
public void setSpeakerpercent(int speakerpercent) {
this.speakerpercent = speakerpercent;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public double getTakeofftargetlatitude() {
return takeofftargetlatitude;
}
public void setTakeofftargetlatitude(double takeofftargetlatitude) {
this.takeofftargetlatitude = takeofftargetlatitude;
}
public double getTakeofftargetlongitude() {
return takeofftargetlongitude;
}
public void setTakeofftargetlongitude(double takeofftargetlongitude) {
this.takeofftargetlongitude = takeofftargetlongitude;
}
public double getTakeofftargetheight() {
return takeofftargetheight;
}
public void setTakeofftargetheight(double takeofftargetheight) {
this.takeofftargetheight = takeofftargetheight;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public String getTTS_status() {
return TTS_status;
}
public void setTTS_status(String TTS_status) {
this.TTS_status = TTS_status;
}
public String getStep_key() {
return step_key;
}
public void setStep_key(String step_key) {
this.step_key = step_key;
}
public int getGPSSatelliteCount() {
@ -411,7 +494,7 @@ public class Movement {
}
//用来判断是什么起飞type
private int flightmode=0; //0代表没有操作 1代表航线飞行 2代表指令飞行一键和flyto
private int flightmode=0; //0代表没有操作 1代表航线飞行 2一键代表指令飞行 3flyto一键和flyto
private boolean takeofftopoint;
private boolean opendrc=false; //true 是开启 false 是关闭

View File

@ -134,15 +134,15 @@ public class TakeoffToPointProgress {
}
public static class PlannedPathPoint {
private Float height;
private Double height;
private Double latitude;
private Double longitude;
public Float getHeight() {
public Double getHeight() {
return height;
}
public void setHeight(Float height) {
public void setHeight(Double height) {
this.height = height;
}

View File

@ -812,6 +812,7 @@ public class FlightManager extends BaseManager {
sendCloseCabinDoorMsg = true;
DockCloseManager.getInstance().sendDockCloseMsg2Server();
PerceptionManager.getInstance().setPerceptionEnable(true);
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(true);
}
}
@ -847,6 +848,7 @@ public class FlightManager extends BaseManager {
// DroneHelper.getInstance().setCameraFocusMode();
// isGimbalDownwards = true;
PerceptionManager.getInstance().setPerceptionEnable(false);
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
// if (Movement.getInstance().getIsRecording() == 1) {
// CameraManager.getInstance().stopRecordVideo(null);
// }
@ -880,19 +882,20 @@ public class FlightManager extends BaseManager {
}
private static final double FLYING_HEIGHT_THRESHOLD_MAX = 5.5;
private static final double FLYING_HEIGHT_THRESHOLD_MAX = 6;
private static final double FLYING_HEIGHT_THRESHOLD_MAX_ALTERNATE = 10;
private static final double FLYING_HEIGHT_THRESHOLD_MIN = -2;
private static final double FLYING_HEIGHT_THRESHOLD_MIN_ALTERNATE = 2.0;
private void startVisionLanding() {
boolean isDebugMode = PreferenceUtils.getInstance().getIsDebugMode();
boolean triggerToAlternatePoint = PreferenceUtils.getInstance().getTriggerToAlternatePoint();
boolean needTriggerApronArucoLand = PreferenceUtils.getInstance().getNeedTriggerApronArucoLand();
boolean needTriggerAlterArucoLand = PreferenceUtils.getInstance().getNeedTriggerAlterArucoLand();
double thresholdMax = triggerToAlternatePoint ? FLYING_HEIGHT_THRESHOLD_MAX_ALTERNATE : FLYING_HEIGHT_THRESHOLD_MAX;
if (isFlying && Movement.getInstance().getElevation() < thresholdMax && !isSendDetect) {
if (isFlying && (Movement.getInstance().getElevation() < thresholdMax || Movement.getInstance().getUltrasonicHeight()<45)&& !isSendDetect) {
double flyingHeight = Movement.getInstance().getElevation();
double thresholdMin = triggerToAlternatePoint ? FLYING_HEIGHT_THRESHOLD_MIN_ALTERNATE : FLYING_HEIGHT_THRESHOLD_MIN;

View File

@ -270,6 +270,11 @@ public class GimbalManager extends BaseManager {
locationCoordinate3D.setLongitude(message.getData().getLongitude());
locationCoordinate3D.setAltitude(Double.parseDouble(message.getData().getHeight() + ""));
lookAtInfo.setLocation(locationCoordinate3D);
if(message.getData().isLocked()==true){
KeyManager.getInstance().setValue(KeyTools.createKey(GimbalKey.KeyGimbalMode), GimbalMode.YAW_FOLLOW, new CommonCallbacks.CompletionCallback() {
@Override
public void onSuccess() {
//设置云台跟随
KeyManager.getInstance().performAction(KeyTools.createKey(FlightControllerKey.KeyLookAt), lookAtInfo, new CommonCallbacks.CompletionCallbackWithParam<EmptyMsg>() {
@Override
public void onSuccess(EmptyMsg emptyMsg) {
@ -284,6 +289,29 @@ public class GimbalManager extends BaseManager {
}
}
);
}
@Override
public void onFailure(@NonNull IDJIError idjiError) {
//设置云台跟随失败
}
});
}else{
KeyManager.getInstance().performAction(KeyTools.createKey(FlightControllerKey.KeyLookAt), lookAtInfo, new CommonCallbacks.CompletionCallbackWithParam<EmptyMsg>() {
@Override
public void onSuccess(EmptyMsg emptyMsg) {
LogUtil.log(TAG,"看向目标点成功");
sendMsg2Server(message);
}
@Override
public void onFailure(@NonNull IDJIError error) {
LogUtil.log(TAG,"看向目标点失败"+error);
sendFailMsg2Server(message, "看向目标点失败:" + getIDJIErrorMsg(error));
}
}
);
}
} else {
LogUtil.log(TAG, "云台未连接");
}

View File

@ -20,6 +20,7 @@ import com.aros.apron.entity.Movement;
import com.aros.apron.tools.LogUtil;
import com.aros.apron.tools.PreferenceUtils;
import com.aros.apron.tools.RestartAPPTool;
import com.aros.apron.tools.TakeoffProgressScheduler;
import com.dji.wpmzsdk.common.data.KMZInfo;
import com.dji.wpmzsdk.manager.WPMZManager;
import com.google.gson.Gson;
@ -30,6 +31,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import dji.sdk.keyvalue.key.CameraKey;
import dji.sdk.keyvalue.key.FlightControllerKey;
import dji.sdk.keyvalue.key.KeyTools;
import dji.sdk.keyvalue.value.flightcontroller.RemoteControllerFlightMode;
@ -103,6 +105,10 @@ public class MissionV3Manager extends BaseManager {
sendFlightTaskProgress2Server();
break;
case READY:
if(Movement.getInstance().getFlightmode()==2){
Movement.getInstance().setTakeoff_status("task_ready");
}
if (PreferenceUtils.getInstance().getMissionType()==2
) {
Movement.getInstance().setTask_status("paused");
@ -145,6 +151,11 @@ public class MissionV3Manager extends BaseManager {
break;
case ENTER_WAYLINE:
enterWayLineTime = System.currentTimeMillis();
if(Movement.getInstance().getFlightmode()==2){
Movement.getInstance().setTakeoff_status("wayline_progress");
}
if (PreferenceUtils.getInstance().getMissionType()==2
) {
Movement.getInstance().setTask_status("paused");
@ -187,6 +198,11 @@ public class MissionV3Manager extends BaseManager {
sendFlightTaskProgress2Server();
break;
case INTERRUPTED:
if(Movement.getInstance().getFlightmode()==2){
Movement.getInstance().setTakeoff_status("wayline_cancel");
}
Movement.getInstance().setVirtualStickQuitMission(false);
sendEvent2Server("任务状态:航线任务执行中断", 1);
Movement.getInstance().setTask_status("paused");
@ -223,6 +239,17 @@ public class MissionV3Manager extends BaseManager {
}else{
}
if(Movement.getInstance().getFlightmode()==2){
Movement.getInstance().setTakeoff_status("task_finish");
Movement.getInstance().setTakeoff_status("wayline_ok");
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
TakeoffProgressScheduler.getInstance().stopReporting();
}
}, 1000); // 1000ms = 1秒
}
finishWayLineTime = System.currentTimeMillis();
mainHandler.postDelayed(new Runnable() {
@ -348,6 +375,7 @@ public class MissionV3Manager extends BaseManager {
}
//2.关闭避障
PerceptionManager.getInstance().setPerceptionEnable(false);
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
//3.清空sd卡
CameraManager.getInstance().formatStorage(null);
//4.返航或降落状态无法执行航线
@ -565,6 +593,7 @@ public class MissionV3Manager extends BaseManager {
public void onSuccess() {
// "2": "起飞准备完毕",
Movement.getInstance().setMode_code(2);
LogUtil.log(TAG,"航线上传成功,准备执行任务");
sendEvent2Server("航线上传成功,准备执行任务", 1);
isPushKMZSuccess = true;
mainHandler.postDelayed(new Runnable() {
@ -578,6 +607,9 @@ public class MissionV3Manager extends BaseManager {
Movement.getInstance().setMode_code(4);
sendFlightTaskProgress2Server();
Movement.getInstance().setTask_current_step(22);
//关闭避障
PerceptionManager.getInstance().setPerceptionEnable(false);
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
startMission(message);
pushKMZFileTimes = 0;

View File

@ -20,6 +20,7 @@ import dji.v5.manager.KeyManager;
import dji.v5.manager.aircraft.perception.data.ObstacleAvoidanceType;
import dji.v5.manager.aircraft.perception.data.PerceptionDirection;
import dji.v5.manager.interfaces.IPerceptionManager;
import dji.v5.manager.interfaces.IRadarManager;
public class PerceptionManager extends BaseManager {
@ -39,14 +40,18 @@ public class PerceptionManager extends BaseManager {
private boolean closePerceptionSuccess;
public void setPerceptionEnable(boolean perceptionEnable) {
if (PreferenceUtils.getInstance().getCloseObsEnable() && perceptionEnable) {
LogUtil.log(TAG, "全局避障关闭,不开启避障");
return;
}
Boolean isConnect = KeyManager.getInstance().getValue(createKey(FlightControllerKey.KeyConnection));
if (isConnect != null && isConnect) {
IPerceptionManager perceptionManager = dji.v5.manager.aircraft.perception.PerceptionManager.getInstance();
//关闭避障
perceptionManager.setObstacleAvoidanceType(perceptionEnable ? ObstacleAvoidanceType.BRAKE : ObstacleAvoidanceType.CLOSE, new CommonCallbacks.CompletionCallback() {
@Override
public void onSuccess() {
@ -71,6 +76,7 @@ public class PerceptionManager extends BaseManager {
public void run() {
closePerceptionTimes++;
setPerceptionEnable(false);
setObstacleAvoidanceHorizontalEnabled(false);
}
}, 2000);
} else {
@ -83,8 +89,9 @@ public class PerceptionManager extends BaseManager {
}
}
//开启水平避障
public void setObstacleAvoidanceHorizontalEnabled() {
public void setObstacleAvoidanceHorizontalEnabled(Boolean perceptionEnable) {
if (PreferenceUtils.getInstance().getCloseObsEnable()) {
LogUtil.log(TAG, "全局避障关闭,不开启避障");
return;
@ -92,7 +99,7 @@ public class PerceptionManager extends BaseManager {
Boolean isConnect = KeyManager.getInstance().getValue(createKey(FlightControllerKey.KeyConnection));
if (isConnect != null && isConnect) {
IPerceptionManager perceptionManager = dji.v5.manager.aircraft.perception.PerceptionManager.getInstance();
perceptionManager.setObstacleAvoidanceEnabled(true, PerceptionDirection.HORIZONTAL, new CommonCallbacks.CompletionCallback() {
perceptionManager.setObstacleAvoidanceEnabled(perceptionEnable ? true:false, PerceptionDirection.HORIZONTAL, new CommonCallbacks.CompletionCallback() {
@Override
public void onSuccess() {
LogUtil.log(TAG, "开启水平避障");

View File

@ -71,11 +71,11 @@ public class StickManager extends BaseManager {
public void disableVirtualStick1() {
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false);
VirtualStickManager.getInstance().enableVirtualStick(new CommonCallbacks.CompletionCallback() {
VirtualStickManager.getInstance().disableVirtualStick(new CommonCallbacks.CompletionCallback() {
@Override
public void onSuccess() {
LogUtil.log(TAG, "控制取消成功");
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(true);
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false);
}
@Override

View File

@ -150,11 +150,9 @@ sendMsg2Server(message);
public void startLiveWithRTSP() {
Boolean isAircraftConnected = KeyManager.getInstance().getValue(DJIKey.create(ProductKey.KeyConnection));
if (isAircraftConnected == null || !isAircraftConnected) {
LogUtil.log(TAG, "飞行器未连接");
} else {
if (PreferenceUtils.getInstance().getRtspUserName()!=null&&
PreferenceUtils.getInstance().getRtspPort()!=null&&
@ -164,11 +162,15 @@ sendMsg2Server(message);
LogUtil.log(TAG, "自定义RTSP推流:" + PreferenceUtils.getInstance().getRtspUserName()
+"--"+PreferenceUtils.getInstance().getRtspPort()+"--"+PreferenceUtils.getInstance().getRtspPassWord());
LiveStreamSettings.Builder streamSettingBuilder = new LiveStreamSettings.Builder();
LiveStreamSettings streamSettings = streamSettingBuilder.setLiveStreamType(LiveStreamType.RTSP)
.setRtspSettings(new RtspSettings.Builder().setPassWord(PreferenceUtils.getInstance().getRtspPassWord()).
setPort(Integer.parseInt(PreferenceUtils.getInstance().getRtspPort())).
setUserName(PreferenceUtils.getInstance().getRtspUserName()).build()).build();
liveStreamManager.setLiveStreamSettings(streamSettings);
CameraType value = KeyManager.getInstance().getValue(KeyTools.createKey(CameraKey.KeyCameraType, ComponentIndexType.PORT_1));
// if (value != null && (value == CameraType.ZENMUSE_H20T ||

View File

@ -101,7 +101,6 @@ public class TakeOffToPointManager extends BaseManager {
});
}
/**
* 1.校验飞机状态
*/
@ -114,6 +113,7 @@ public class TakeOffToPointManager extends BaseManager {
}
//2.关闭避障
PerceptionManager.getInstance().setPerceptionEnable(false);
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
//3.清空sd卡
CameraManager.getInstance().formatStorage(null);
//4.返航或降落状态无法执行航线
@ -230,6 +230,11 @@ public class TakeOffToPointManager extends BaseManager {
*/
public void toGenerateKMZFile(MessageDown message) {
Movement.getInstance().setTask_current_step(16);
//目标点的经纬度
Movement.getInstance().setTakeofftargetlatitude(message.getData().getTarget_latitude());
Movement.getInstance().setTakeofftargetlongitude(message.getData().getTarget_longitude());
Movement.getInstance().setTakeofftargetheight(message.getData().getTarget_height());
MissionDataBean data = new Gson().fromJson(new Gson().toJson(message.getData()), MissionDataBean.class);
Boolean generateKmz=Generakmztools.getInstance().generateKmz(data);
LogUtil.log(TAG,"生成的boole"+generateKmz);
@ -273,7 +278,6 @@ public class TakeOffToPointManager extends BaseManager {
List<WaylineExecuteWaypoint> waypoints = waylines.get(0).getWaypoints();
if (waypoints != null && waypoints.size() > 0) {
//将航点列表保存在本地
Movement.getInstance().setSpeed(configParseInfo.getGlobalTransitionalSpeed());
CurrentWayline.getInstance().setWaypoints(waypoints);
@ -299,8 +303,6 @@ public class TakeOffToPointManager extends BaseManager {
public void onProgressUpdate(Double progress) {
sendEvent2Server("航线上传进度:" + progress, 1);
Movement.getInstance().setTask_current_step(17);
}
@Override
@ -316,7 +318,6 @@ public class TakeOffToPointManager extends BaseManager {
/**
* 7.开始任务
*/
//自主起飞
Movement.getInstance().setMode_code(4);
sendFlightTaskProgress2Server();
@ -348,7 +349,6 @@ public class TakeOffToPointManager extends BaseManager {
//待机
Movement.getInstance().setMode_code(0);
sendFlightTaskProgress2Server();
TaskFailManager.getInstance().sendTaskFailMsg2Server(-1);
}
} else {
@ -388,6 +388,7 @@ public class TakeOffToPointManager extends BaseManager {
sendEvent2Server("任务开始执行", 1);
Movement.getInstance().setTask_current_step(23);
sendFlightTaskProgress2Server();
Movement.getInstance().setTakeoff_result(0);
}
@Override
public void onFailure(@NonNull IDJIError error) {
@ -406,6 +407,8 @@ public class TakeOffToPointManager extends BaseManager {
}, 2000);
} else {
if (!Movement.getInstance().isPlaneWing()) {
Movement.getInstance().setTakeoff_status("wayline_failed");
Movement.getInstance().setTakeoff_result(1);
//待机
Movement.getInstance().setMode_code(0);
sendFlightTaskProgress2Server();

View File

@ -6,6 +6,8 @@ import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import androidx.annotation.NonNull;
import com.aros.apron.constant.AMSConfig;
import com.aros.apron.entity.ArucoMarker;
import com.aros.apron.entity.ArucoMarkerDimensions;
@ -39,6 +41,13 @@ import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import dji.sdk.keyvalue.key.FlightControllerKey;
import dji.sdk.keyvalue.key.KeyTools;
import dji.sdk.keyvalue.value.common.EmptyMsg;
import dji.v5.common.callback.CommonCallbacks;
import dji.v5.common.error.IDJIError;
import dji.v5.manager.KeyManager;
public class ApronArucoDetect {
//是否触发识别(如果丢失图传此值为false)
@ -68,10 +77,10 @@ public class ApronArucoDetect {
// 关键修改1M400下视镜头右后方补偿量像素正值向右补偿
// 如果还往左偏就调大往右偏就调小建议范围 30-80
private static final double LENS_OFFSET_X = 15.0;
private static final double LENS_OFFSET_Y = 20.0;
private static double LENS_OFFSET_X = 0;
private static double LENS_OFFSET_Y = 0;
// 关键修改2放宽居中判定阈值原40补偿后改为60更合理
private static final int CENTER_ERR_MAX = 40; // 居中误差px
private static final int CENTER_ERR_MAX = 25; // 居中误差px
public PIDControl pidControlX = null;
public PIDControl pidControlY = null;
@ -98,7 +107,7 @@ public class ApronArucoDetect {
public boolean isDoublePayload() {
return isDoublePayload;
}
private Handler riseHandler = new Handler(Looper.getMainLooper());
public void setDoublePayload(boolean doublePayload) {
isDoublePayload = doublePayload;
}
@ -115,6 +124,7 @@ public class ApronArucoDetect {
INSTANCE.init();
}
}
private int trycount=0;
public static ApronArucoDetect getInstance() {
return OpenCVHelperHolder.INSTANCE;
@ -123,14 +133,13 @@ public class ApronArucoDetect {
private static final float SLOW_LAND_SPEED = -0.3f; // 远场慢降
private static final float SLOW_SUPER_SPEED = -0.1f; // 超近慢降
private static final int PIXEL_TRIGGER = 400; // 近场像素阈值
private static final int PIXEL_TRIGGER = 360; // 近场像素阈值
public void init() {
pidControlX = new PIDControl(0.6f, 0.015f, 0.12f, 0.05f, 2.0f, 0.05f);
pidControlY = new PIDControl(0.6f, 0.015f, 0.12f, 0.05f, 2.0f, 0.05f);
pidControlX = new PIDControl(0.6f, 0.08f, 0.18f, 0.05f, 2.5f, 0.04f);
pidControlY = new PIDControl(0.6f, 0.08f, 0.18f, 0.05f, 2.5f, 0.04f);
pidControlX.reset();
pidControlY.reset();
}
@ -142,7 +151,7 @@ public class ApronArucoDetect {
Movement.getInstance().setVirtualStickEnableReason(2);
//保证一帧进入同时 保证只有一次速降
if (isStartAruco || startFastStick) {
// LogUtil.log(TAG, "过滤:" + isStartAruco + startFastStick);
LogUtil.log(TAG, "过滤:" + isStartAruco + startFastStick);
if (!isStartAruco && startFastStick) {
checkThrowingErrorsTimes++;
}
@ -150,11 +159,31 @@ public class ApronArucoDetect {
}
isStartAruco = true;
/* 如果上一帧任务还没跑完,直接 cancel */
if (lastFuture != null && !lastFuture.isDone()) {
LogUtil.log(TAG, "break---");
lastFuture.cancel(true);
}
// 根据超声波高度分段固定偏移避免 pixelWidth 跳变导致抖动
int ultHeight = Movement.getInstance().getUltrasonicHeight(); // dm
if (ultHeight >= 30) {
LENS_OFFSET_X = 0;
LENS_OFFSET_Y = 0;
} else if (ultHeight >= 20) {
LENS_OFFSET_X = 0;
LENS_OFFSET_Y = 0;
} else if (ultHeight >= 10) {
LENS_OFFSET_X = 20;
LENS_OFFSET_Y = 10;
} else if (ultHeight >= 5) {
LENS_OFFSET_X = 30;
LENS_OFFSET_Y = 20;
} else {
LENS_OFFSET_X = 50; // 建议从 60 开始试80 可能太大
LENS_OFFSET_Y = 25;
}
//LogUtil.log(TAG, "执行了");
@ -197,6 +226,7 @@ public class ApronArucoDetect {
boolean marker6Found = false;
if (!ids.empty()) {
trycount=0;
arucoNotFoundTag = false;
int[] idArray = ids.toArray();
int ultrasonicHeight = Movement.getInstance().getUltrasonicHeight();
@ -216,26 +246,36 @@ public class ApronArucoDetect {
double pixelWidth = calculateDistance(points[0], points[1]);
// 关键修改3降落判断加上镜头偏移补偿向右补偿
double centerX = (points[0].x + points[1].x + points[2].x + points[3].x) / 4.0;
double errX = Math.abs(centerX - rgbMat.width() / 2.0 + LENS_OFFSET_X);
double centerX = (points[0].x + points[1].x + points[2].x + points[3].x) / 4.0 +LENS_OFFSET_X;
double errX = Math.abs(centerX - rgbMat.width() / 2.0 );
// 修改为向前补偿
double centerY = (points[0].y + points[1].y + points[2].y + points[3].y) / 4.0;
double errY = Math.abs(centerY - rgbMat.height() / 2.0 - LENS_OFFSET_Y); ;
double centerY = (points[0].y + points[1].y + points[2].y + points[3].y) / 4.0 +LENS_OFFSET_Y;
double errY = Math.abs(centerY - rgbMat.height() / 2.0 ); ;
LogUtil.log(TAG, "像素" + (int) pixelWidth +
" errX=" + (int) errX + " errY=" + (int) errY + " (含偏移" + LENS_OFFSET_X + ")");
/* 近场 + 对准 + 像素够 → 立即速降 */
/* 近场 + 对准 + 像素够 → 延迟0.5s后速降 */
if (!startFastStick &&
pixelWidth >= PIXEL_TRIGGER &&
// flyingHeight <= 1 &&
ultrasonicHeight <= 4 &&
errX < CENTER_ERR_MAX &&
errY < CENTER_ERR_MAX) {
startFastStick = true;
handler.post(runnable);
LogUtil.log(TAG, "6号居中+近场触发速降 pixel=" + (int) pixelWidth +
startFastStick = true; // 先标记防止重复触发
LogUtil.log(TAG, "6号居中+近场满足条件0.5s后触发速降 pixel=" + (int) pixelWidth +
" errX=" + (int) errX + " errY=" + (int) errY);
// 延迟500ms执行速降
handler.postDelayed(new Runnable() {
@Override
public void run() {
handler.post(runnable); // 启动速降循环
LogUtil.log(TAG, "0.5s延迟结束,开始速降");
}
}, 500);
return;
}
}
@ -253,9 +293,9 @@ public class ApronArucoDetect {
endTime = System.currentTimeMillis();
long lostDuration = endTime - startTime;
//1s到8s内
if (lostDuration > 700 && lostDuration <= 8000) {
if (lostDuration > 1200 && lostDuration <= 8000) {
if (Movement.getInstance().getUltrasonicHeight()<=30) {
DroneHelper.getInstance().moveVxVyYawrateHeight(0f, 0f, 0f, 0.3f);
DroneHelper.getInstance().moveVxVyYawrateHeight(0f, 0f, 0f, 0.8f);
if (dropTimes > Integer.parseInt(AMSConfig.getInstance().getAlternateLandingTimes())) {
LogUtil.log(TAG, "超过复降限制,去备降点");
AlternateLandingManager.getInstance().startTaskProcess(null);
@ -394,18 +434,28 @@ public class ApronArucoDetect {
}
/* 2. 中心 + 误差(带镜头偏移补偿) */
double cx = (pts[0].x + pts[1].x + pts[2].x + pts[3].x) / 4.0;
double cy = (pts[0].y + pts[1].y + pts[2].y + pts[3].y) / 4.0;
double cx = (pts[0].x + pts[1].x + pts[2].x + pts[3].x) / 4.0 +LENS_OFFSET_X;
double cy = (pts[0].y + pts[1].y + pts[2].y + pts[3].y) / 4.0 +LENS_OFFSET_Y;
Point screenCenter = new Point(imageWidth / 2.0, imageHeight / 2.0);
double errX = (cx - screenCenter.x) + LENS_OFFSET_X; // 向右补偿
double errY = (cy - screenCenter.y) - LENS_OFFSET_Y; // Y方向不变
double errX = (cx - screenCenter.x);
double errY = (cy - screenCenter.y);
/* 3. PID 微调水平 */
pidControlX.setInputFilterAll((float) (errX / 700.0));
pidControlY.setInputFilterAll((float) (-errY / 700.0));
float vx = (float) Math.max(-0.25, Math.min(0.25, pidControlX.get_pid()));
float vy = (float) Math.max(-0.25, Math.min(0.25, pidControlY.get_pid()));
float rawVx = pidControlX.get_pid();
float rawVy = pidControlY.get_pid();
// if (Math.abs(rawVx) < 0.005f) rawVx = 0.0f;
// if (Math.abs(rawVy) < 0.005f) rawVy = 0.0f;
float vx = (float) Math.max(-0.25, Math.min(0.25, rawVx));
float vy = (float) Math.max(-0.25, Math.min(0.25, rawVy));
/* 4. 远场慢降:像素 < 1500 且 > 2 m */
double pixelWidth = Math.sqrt(Math.pow(pts[1].x - pts[0].x, 2) +
@ -467,7 +517,7 @@ public class ApronArucoDetect {
@Override
public void run() {
performOperation();
if (handlerCallbackCount < 20) {
if (handlerCallbackCount < 25) {
handler.postDelayed(this, 50); // 50 毫秒执行一次1 秒内执行 20
} else {
performNextStep();
@ -485,9 +535,18 @@ public class ApronArucoDetect {
canLanding = true;
handlerCallbackCount = 0;
dropTimes = 0;//手动测试避免多次累加后直接飞往备降点
LogUtil.log(TAG, "下拉完成:触发下一步自动降落");
// KeyManager.getInstance().performAction(KeyTools.createKey(FlightControllerKey.KeyStartAutoLanding), new CommonCallbacks.CompletionCallbackWithParam<EmptyMsg>() {
// @Override
// public void onSuccess(EmptyMsg emptyMsg) {
// LogUtil.log(TAG, "下拉完成:触发下一步自动降落");
// }
//
// @Override
// public void onFailure(@NonNull IDJIError idjiError) {
// LogUtil.log(TAG, "下拉完成:触发下一步自动降落失败");
// }
// });
handler.removeCallbacks(runnable); // 防止重复执行
}

View File

@ -192,7 +192,7 @@ public class DroneHelper {
virtualStickFlightControlParam.setRollPitchControlMode(RollPitchControlMode.VELOCITY);
virtualStickFlightControlParam.setYawControlMode(YawControlMode.ANGULAR_VELOCITY);
virtualStickFlightControlParam.setRollPitchCoordinateSystem(FlightCoordinateSystem.BODY);
virtualStickFlightControlParam.setPitch(mPitch);//左右
virtualStickFlightControlParam.setPitch(mPitch);
virtualStickFlightControlParam.setRoll(mRoll);//前后
virtualStickFlightControlParam.setYaw(mYaw);
virtualStickFlightControlParam.setVerticalThrottle(mThrottle);//上下

View File

@ -35,6 +35,86 @@ public class PIDControl {
this.mResetFilter = true;
}
public float getiMax() {
return iMax;
}
public void setiMax(float iMax) {
this.iMax = iMax;
}
public float getmFF() {
return mFF;
}
public void setmFF(float mFF) {
this.mFF = mFF;
}
public float getmFoltHz() {
return mFoltHz;
}
public void setmFoltHz(float mFoltHz) {
this.mFoltHz = mFoltHz;
}
public float getmKd() {
return mKd;
}
public void setmKd(float mKd) {
this.mKd = mKd;
}
public float getmKi() {
return mKi;
}
public void setmKi(float mKi) {
this.mKi = mKi;
}
public float getmKp() {
return mKp;
}
public void setmKp(float mKp) {
this.mKp = mKp;
}
public boolean ismResetFilter() {
return mResetFilter;
}
public void setmResetFilter(boolean mResetFilter) {
this.mResetFilter = mResetFilter;
}
public float getmIntegrator() {
return mIntegrator;
}
public void setmIntegrator(float mIntegrator) {
this.mIntegrator = mIntegrator;
}
public float getmInput() {
return mInput;
}
public void setmInput(float mInput) {
this.mInput = mInput;
}
public float getmDerivative() {
return mDerivative;
}
public void setmDerivative(float mDerivative) {
this.mDerivative = mDerivative;
}
private void filtHz(float hz) {
float abs = Math.abs(hz);
this.mFoltHz = abs;

View File

@ -1,123 +0,0 @@
package com.aros.apron.tools;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import android.util.Log;
import com.google.gson.Gson;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.util.Locale;
import dji.v5.common.error.IDJIError;
public class Utils {
public static void printJson(String tag, String json) {
if (json == null || json.length() == 0) {
Log.e(tag, "JSON is empty");
return;
}
int maxLogSize = 4000;
for (int i = 0; i <= json.length() / maxLogSize; i++) {
int start = i * maxLogSize;
int end = (i + 1) * maxLogSize;
if (end >= json.length()) {
end = json.length();
}
Log.e(tag, json.substring(start, end));
}
}
/**
* //修改变焦数据为从前端拿2-200自己计算然后放入官方的sdk
*
* @param smallZoomFromWeb
* @return
*/
public static int getbigZoomValue(String smallZoomFromWeb) {
int zoomLength = Integer.parseInt(smallZoomFromWeb);
int bigZoom = (47549 - 317) / 199 * (zoomLength - 2) + 317;
return bigZoom;
}
public static String sHA1(Context context){
try {
PackageInfo info = null;
try {
info = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
byte[] cert = info.signatures[0].toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] publicKey = md.digest(cert);
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < publicKey.length; i++) {
String appendString = Integer.toHexString(0xFF & publicKey[i])
.toUpperCase(Locale.US);
if (appendString.length() == 1)
hexString.append("0");
hexString.append(appendString);
hexString.append(":");
}
String result = hexString.toString();
return result.substring(0, result.length()-1);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static byte[] getByte(String str){
try {
byte[] bytes = str.getBytes("UTF-8");
return bytes;
// 使用bytes
} catch (UnsupportedEncodingException e) {
// 处理异常比如使用默认字符集
byte[] bytes = str.getBytes();
return null;
}
}
public static double parseLatLon(String latLonStr) {
// 检查输入字符串是否为空或无效
if (latLonStr == null || latLonStr.isEmpty()) {
throw new IllegalArgumentException("Input string is null or empty");
}
// 获取最后一个字符即方向标识符
char direction = latLonStr.charAt(latLonStr.length() - 1);
// 检查方向标识符是否有效
if (direction != 'N' && direction != 'S' && direction != 'E' && direction != 'W') {
return Double.parseDouble(latLonStr); }
// 提取数字部分
String numberPart = latLonStr.substring(0, latLonStr.length() - 1);
// 将数字部分转换为Double
double number = Double.parseDouble(numberPart);
// 根据方向标识符调整数值
if (direction == 'S' || direction == 'W') {
number = -number;
}
return number;
}
public static String getIDJIErrorMsg(IDJIError idjiError){
if (TextUtils.isEmpty(idjiError.description())){
return new Gson().toJson(idjiError);
}else{
return idjiError.description();
}
}
}

View File

@ -299,13 +299,25 @@
tools:ignore="MissingConstraints">
<Button
android:id="@+id/btn_test"
android:text="旋转"
android:text="向前"
android:layout_width="100dp"
android:layout_height="100dp"
/>
<Button
android:id="@+id/btn_test1"
android:text="停转"
android:text="向后"
android:layout_width="100dp"
android:layout_height="100dp"
/>
<Button
android:id="@+id/btn_test2"
android:text="向左"
android:layout_width="100dp"
android:layout_height="100dp"
/>
<Button
android:id="@+id/btn_test3"
android:text="向右"
android:layout_width="100dp"
android:layout_height="100dp"
/>