添加了一键起飞上报喊话器上报
This commit is contained in:
parent
2109695a1e
commit
aa24702eb7
|
|
@ -2,28 +2,28 @@ C/C++ Structured Logx
|
||||||
v
|
v
|
||||||
tC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\additional_project_files.txtC
|
tC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\arm64-v8a\additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ø¯À½Ä3 òÐæ›Á3u
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Ï»€ÃÉ3 òÐæ›Á3u
|
||||||
s
|
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
|
þÐæ›Á3z
|
||||||
x
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
° ªÑæ›Á3n
|
||||||
l
|
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
|
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
|
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
|
||||||
|
|
@ -2,28 +2,28 @@ C/C++ Structured Logz
|
||||||
x
|
x
|
||||||
vC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\additional_project_files.txtC
|
vC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\armeabi-v7a\additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint à¶ù»Ä3 ‰×©œÁ3w
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ñЂœÉ3 ‰×©œÁ3w
|
||||||
u
|
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|
|
‹×©œÁ3|
|
||||||
z
|
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
|
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
|
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
|
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
|
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
|
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
|
º ”שœÁ3p
|
||||||
n
|
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
|
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
|
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
|
||||||
|
|
@ -2,28 +2,28 @@ C/C++ Structured Logr
|
||||||
p
|
p
|
||||||
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\additional_project_files.txtC
|
nC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86\additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ×·ù»Ä3 ÑùÊ›Á3o
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ®Ò‚œÉ3 ÑùÊ›Á3o
|
||||||
m
|
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
|
×ùÊ›Á3t
|
||||||
r
|
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
|
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
|
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
|
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
|
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
|
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
|
’ óùÊ›Á3h
|
||||||
f
|
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
|
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
|
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
|
||||||
|
|
@ -2,28 +2,28 @@ C/C++ Structured Logu
|
||||||
s
|
s
|
||||||
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\additional_project_files.txtC
|
qC:\Users\24171\OneDrive\Desktop\msdk\400apiqwq\ams\Opencv\.cxx\Debug\p1g6s634\x86_64\additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Ѹù»Ä3 ‹å©œÁ3r
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ÚÓ‚œÉ3 ‹å©œÁ3r
|
||||||
p
|
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
|
<20>婜Á3w
|
||||||
u
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
¡ •婜Á3k
|
||||||
i
|
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
|
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
|
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
|
||||||
|
|
@ -12,3 +12,10 @@ generate_cxx_metadata
|
||||||
[gap of 32ms]
|
[gap of 32ms]
|
||||||
generate_cxx_metadata completed in 99ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,3 +13,9 @@ generate_cxx_metadata
|
||||||
[gap of 29ms]
|
[gap of 29ms]
|
||||||
generate_cxx_metadata completed in 94ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,11 @@ generate_cxx_metadata
|
||||||
[gap of 42ms]
|
[gap of 42ms]
|
||||||
generate_cxx_metadata completed in 132ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,3 +26,10 @@ generate_cxx_metadata
|
||||||
[gap of 23ms]
|
[gap of 23ms]
|
||||||
generate_cxx_metadata completed in 74ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,10 @@ generate_cxx_metadata
|
||||||
[gap of 37ms]
|
[gap of 37ms]
|
||||||
generate_cxx_metadata completed in 117ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,10 @@ generate_cxx_metadata
|
||||||
[gap of 30ms]
|
[gap of 30ms]
|
||||||
generate_cxx_metadata completed in 93ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,3 +14,10 @@ generate_cxx_metadata
|
||||||
write-metadata-json-to-file 10ms
|
write-metadata-json-to-file 10ms
|
||||||
generate_cxx_metadata completed in 102ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,3 +13,10 @@ generate_cxx_metadata
|
||||||
write-metadata-json-to-file 19ms
|
write-metadata-json-to-file 19ms
|
||||||
generate_cxx_metadata completed in 227ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,3 +19,27 @@ generate_cxx_metadata
|
||||||
write-metadata-json-to-file 12ms
|
write-metadata-json-to-file 12ms
|
||||||
generate_cxx_metadata completed in 136ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,10 @@ generate_cxx_metadata
|
||||||
[gap of 18ms]
|
[gap of 18ms]
|
||||||
generate_cxx_metadata completed in 34ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,9 @@ generate_cxx_metadata
|
||||||
[gap of 25ms]
|
[gap of 25ms]
|
||||||
generate_cxx_metadata completed in 57ms
|
generate_cxx_metadata completed in 57ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 25ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 22ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,6 @@ generate_cxx_metadata
|
||||||
[gap of 15ms]
|
[gap of 15ms]
|
||||||
generate_cxx_metadata completed in 31ms
|
generate_cxx_metadata completed in 31ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 25ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,3 +10,9 @@ generate_cxx_metadata
|
||||||
[gap of 18ms]
|
[gap of 18ms]
|
||||||
generate_cxx_metadata completed in 37ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 24ms
|
generate_cxx_metadata 24ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 20ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,6 @@ generate_cxx_metadata
|
||||||
[gap of 34ms]
|
[gap of 34ms]
|
||||||
generate_cxx_metadata completed in 81ms
|
generate_cxx_metadata completed in 81ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 12ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,9 @@ generate_cxx_metadata
|
||||||
[gap of 13ms]
|
[gap of 13ms]
|
||||||
generate_cxx_metadata completed in 28ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1267503242
|
"memoizedHashCode": 1164482061
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1835985214
|
"memoizedHashCode": 596000089
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -39,6 +39,6 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1074353236
|
"memoizedHashCode": -788628757
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -4,3 +4,6 @@ generate_cxx_metadata
|
||||||
[gap of 18ms]
|
[gap of 18ms]
|
||||||
generate_cxx_metadata completed in 40ms
|
generate_cxx_metadata completed in 40ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 25ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,18 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 23ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,12 @@ generate_cxx_metadata
|
||||||
[gap of 13ms]
|
[gap of 13ms]
|
||||||
generate_cxx_metadata completed in 25ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 573772690
|
"memoizedHashCode": 1226785352
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -753817378
|
"memoizedHashCode": -100804716
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -39,6 +39,6 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -2107994126
|
"memoizedHashCode": -1454981464
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 18ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,9 @@ generate_cxx_metadata 16ms
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 23ms
|
generate_cxx_metadata 23ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 24ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 14ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 18ms
|
generate_cxx_metadata 18ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 24ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,3 +6,11 @@ generate_cxx_metadata
|
||||||
write-metadata-json-to-file 12ms
|
write-metadata-json-to-file 12ms
|
||||||
generate_cxx_metadata completed in 151ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 21ms
|
generate_cxx_metadata 21ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 16ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 18ms
|
generate_cxx_metadata 18ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 18ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 16ms
|
generate_cxx_metadata 16ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 21ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -532663814
|
"memoizedHashCode": 120348848
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1002172346
|
"memoizedHashCode": -349159684
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -39,6 +39,6 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1881978758
|
"memoizedHashCode": -1759975876
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -7,3 +7,9 @@ generate_cxx_metadata
|
||||||
[gap of 14ms]
|
[gap of 14ms]
|
||||||
generate_cxx_metadata completed in 29ms
|
generate_cxx_metadata completed in 29ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 19ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 15ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 16ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 23ms
|
generate_cxx_metadata 23ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 18ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 22ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 21ms
|
generate_cxx_metadata 21ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 17ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,6 @@ generate_cxx_metadata
|
||||||
[gap of 18ms]
|
[gap of 18ms]
|
||||||
generate_cxx_metadata completed in 38ms
|
generate_cxx_metadata completed in 38ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 16ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
# C/C++ build system timings
|
# C/C++ build system timings
|
||||||
generate_cxx_metadata 19ms
|
generate_cxx_metadata 19ms
|
||||||
|
|
||||||
|
# C/C++ build system timings
|
||||||
|
generate_cxx_metadata 21ms
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -2091529352
|
"memoizedHashCode": -1438516690
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 305896416
|
"memoizedHashCode": 958909078
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -39,6 +39,6 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1264613355
|
"memoizedHashCode": -611600693
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -11,6 +11,6 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1127879665
|
"memoizedHashCode": -735102328
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -14,3 +14,13 @@ create_cxx_tasks
|
||||||
[gap of 71ms]
|
[gap of 71ms]
|
||||||
create_cxx_tasks completed in 203ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,3 +10,14 @@ create_cxx_tasks
|
||||||
[gap of 10ms]
|
[gap of 10ms]
|
||||||
create_cxx_tasks completed in 118ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,3 +15,13 @@ create_cxx_tasks
|
||||||
[gap of 12ms]
|
[gap of 12ms]
|
||||||
create_cxx_tasks completed in 150ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,3 +15,13 @@ create_cxx_tasks
|
||||||
[gap of 13ms]
|
[gap of 13ms]
|
||||||
create_cxx_tasks completed in 149ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,3 +19,22 @@ create_cxx_tasks
|
||||||
[gap of 15ms]
|
[gap of 15ms]
|
||||||
create_cxx_tasks completed in 163ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -778,3 +778,275 @@ create_cxx_tasks
|
||||||
[gap of 48ms]
|
[gap of 48ms]
|
||||||
create_cxx_tasks completed in 178ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,3 +16,15 @@ create_cxx_tasks
|
||||||
[gap of 12ms]
|
[gap of 12ms]
|
||||||
create_cxx_tasks completed in 173ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,3 +8,11 @@ create_cxx_tasks
|
||||||
[gap of 12ms]
|
[gap of 12ms]
|
||||||
create_cxx_tasks completed in 93ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,3 +10,8 @@ create_cxx_tasks
|
||||||
[gap of 11ms]
|
[gap of 11ms]
|
||||||
create_cxx_tasks completed in 116ms
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1969914283
|
"memoizedHashCode": 106932290
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1532864910
|
"memoizedHashCode": 899120393
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1992608955
|
"memoizedHashCode": 439376348
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1034410353
|
"memoizedHashCode": -828571640
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -67,7 +67,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1603122384
|
"memoizedHashCode": -259859609
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1968032642
|
"memoizedHashCode": 105050649
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -95,7 +95,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -2019793420
|
"memoizedHashCode": 412191883
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1717026156
|
"memoizedHashCode": -145955837
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -123,7 +123,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1909138387
|
"memoizedHashCode": 522846916
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -137,7 +137,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": -1204677194
|
"memoizedHashCode": 1227308109
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -151,7 +151,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 658136876
|
"memoizedHashCode": -1204845117
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -165,7 +165,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 1226848907
|
"memoizedHashCode": -636133086
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 0,
|
"level_": 0,
|
||||||
|
|
@ -179,7 +179,7 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 2132598970
|
"memoizedHashCode": 269616977
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"level_": 2,
|
"level_": 2,
|
||||||
|
|
@ -193,6 +193,6 @@
|
||||||
"fieldsDescending": {}
|
"fieldsDescending": {}
|
||||||
},
|
},
|
||||||
"memoizedSize": -1,
|
"memoizedSize": -1,
|
||||||
"memoizedHashCode": 289047118
|
"memoizedHashCode": -1573934875
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -234,4 +234,8 @@ dependencies {
|
||||||
//implementation 'com.quickbirdstudios:opencv-contrib:3.4.5'
|
//implementation 'com.quickbirdstudios:opencv-contrib:3.4.5'
|
||||||
implementation project(path: ':android-sdk-v5-uxsdk')
|
implementation project(path: ':android-sdk-v5-uxsdk')
|
||||||
|
|
||||||
|
//TTS
|
||||||
|
|
||||||
|
implementation files('libs/AIKit.aar')
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -90,8 +90,8 @@ open class ConnectionActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
if (TextUtils.isEmpty(PreferenceUtils.getInstance().mqttServerUri)){
|
if (TextUtils.isEmpty(PreferenceUtils.getInstance().mqttServerUri)){
|
||||||
PreferenceUtils.getInstance().mqttServerUri =
|
PreferenceUtils.getInstance().mqttServerUri =
|
||||||
// "tcp://192.168.20.90:2883"
|
"tcp://192.168.20.90:2883"
|
||||||
"tcp://broker.emqx.io"
|
//"tcp://broker.emqx.io"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TextUtils.isEmpty(PreferenceUtils.getInstance().mqttUserName)){
|
if (TextUtils.isEmpty(PreferenceUtils.getInstance().mqttUserName)){
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
package com.aros.apron.activity
|
package com.aros.apron.activity
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
|
|
@ -6,16 +7,17 @@ import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.Window
|
import android.view.Window
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
import androidx.core.view.GravityCompat
|
import androidx.core.view.GravityCompat
|
||||||
import androidx.drawerlayout.widget.DrawerLayout
|
import androidx.drawerlayout.widget.DrawerLayout
|
||||||
import com.aros.apron.BuildConfig
|
|
||||||
import com.aros.apron.R
|
import com.aros.apron.R
|
||||||
import com.aros.apron.base.BaseActivity
|
import com.aros.apron.base.BaseActivity
|
||||||
import com.aros.apron.callback.MqttCallBack
|
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.MissionV3Manager
|
||||||
import com.aros.apron.manager.OSDManager
|
import com.aros.apron.manager.OSDManager
|
||||||
import com.aros.apron.manager.PayloadWidgetManager
|
import com.aros.apron.manager.PayloadWidgetManager
|
||||||
|
import com.aros.apron.manager.SpeakerManager
|
||||||
import com.aros.apron.manager.StickManager
|
import com.aros.apron.manager.StickManager
|
||||||
import com.aros.apron.manager.StreamManager
|
import com.aros.apron.manager.StreamManager
|
||||||
import com.aros.apron.manager.WirelessLinkManager
|
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.LogUtil
|
||||||
import com.aros.apron.tools.MqttManager
|
import com.aros.apron.tools.MqttManager
|
||||||
import com.aros.apron.tools.PreferenceUtils
|
import com.aros.apron.tools.PreferenceUtils
|
||||||
|
import com.aros.apron.tools.Utils
|
||||||
import com.dji.wpmzsdk.manager.WPMZManager
|
import com.dji.wpmzsdk.manager.WPMZManager
|
||||||
import com.google.gson.Gson
|
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.CameraKey
|
||||||
import dji.sdk.keyvalue.key.DJIKey
|
import dji.sdk.keyvalue.key.DJIKey
|
||||||
import dji.sdk.keyvalue.key.FlightControllerKey
|
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.common.EmptyMsg
|
||||||
import dji.sdk.keyvalue.value.flightassistant.VisionAssistDirection
|
import dji.sdk.keyvalue.value.flightassistant.VisionAssistDirection
|
||||||
import dji.v5.common.callback.CommonCallbacks
|
import dji.v5.common.callback.CommonCallbacks
|
||||||
|
import dji.v5.common.callback.CommonCallbacks.CompletionCallback
|
||||||
import dji.v5.common.error.IDJIError
|
import dji.v5.common.error.IDJIError
|
||||||
import dji.v5.common.utils.GeoidManager
|
import dji.v5.common.utils.GeoidManager
|
||||||
import dji.v5.manager.KeyManager
|
import dji.v5.manager.KeyManager
|
||||||
|
import dji.v5.manager.aircraft.virtualstick.VirtualStickManager
|
||||||
import dji.v5.manager.datacenter.MediaDataCenter
|
import dji.v5.manager.datacenter.MediaDataCenter
|
||||||
import dji.v5.manager.interfaces.ICameraStreamManager
|
import dji.v5.manager.interfaces.ICameraStreamManager
|
||||||
import dji.v5.manager.interfaces.ICameraStreamManager.AvailableCameraUpdatedListener
|
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.eclipse.paho.client.mqttv3.MqttException
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
import org.opencv.android.OpenCVLoader
|
|
||||||
import org.opencv.objdetect.Dictionary
|
import org.opencv.objdetect.Dictionary
|
||||||
import org.opencv.objdetect.Objdetect
|
import org.opencv.objdetect.Objdetect
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
@ -143,6 +153,9 @@ open class MainActivity : BaseActivity() {
|
||||||
private var gimbalAdjustDone: TextView? = null
|
private var gimbalAdjustDone: TextView? = null
|
||||||
private var btn_test: Button? = null
|
private var btn_test: Button? = null
|
||||||
private var btn_test1: 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 gimbalFineTuneWidget: GimbalFineTuneWidget? = null
|
||||||
private var lastDevicePosition = ComponentIndexType.UNKNOWN
|
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 startArucoType = 0 //1执行机库二维码识别 2执行备降点二维码识别
|
||||||
private var dictionary: Dictionary? = null
|
private var dictionary: Dictionary? = null
|
||||||
override fun useEventBus(): Boolean {
|
override fun useEventBus(): Boolean {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
dictionary = Objdetect.getPredefinedDictionary(Objdetect.DICT_6X6_250)
|
dictionary = Objdetect.getPredefinedDictionary(Objdetect.DICT_6X6_250)
|
||||||
|
|
@ -213,14 +228,15 @@ open class MainActivity : BaseActivity() {
|
||||||
runOnUiThread { onCameraSourceUpdated(result.devicePosition, result.lensType) }
|
runOnUiThread { onCameraSourceUpdated(result.devicePosition, result.lensType) }
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
compositeDisposable!!.add(ObservableInMemoryKeyedStore.getInstance()
|
compositeDisposable!!.add(
|
||||||
.addObserver(UXKeys.create(GlobalPreferenceKeys.GIMBAL_ADJUST_CLICKED))
|
ObservableInMemoryKeyedStore.getInstance()
|
||||||
.observeOn(ui())
|
.addObserver(UXKeys.create(GlobalPreferenceKeys.GIMBAL_ADJUST_CLICKED))
|
||||||
.subscribe { broadcastValues: BroadcastValues? ->
|
.observeOn(ui())
|
||||||
isGimableAdjustClicked(
|
.subscribe { broadcastValues: BroadcastValues? ->
|
||||||
broadcastValues!!
|
isGimableAdjustClicked(
|
||||||
)
|
broadcastValues!!
|
||||||
})
|
)
|
||||||
|
})
|
||||||
ViewUtil.setKeepScreen(this, true)
|
ViewUtil.setKeepScreen(this, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -234,7 +250,7 @@ open class MainActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
private fun hideOtherPanels(widget: View?) {
|
private fun hideOtherPanels(widget: View?) {
|
||||||
val panels = arrayOf<View>(
|
val panels = arrayOf<View>(
|
||||||
simulatorControlWidget!!
|
simulatorControlWidget!!
|
||||||
)
|
)
|
||||||
|
|
@ -347,7 +363,7 @@ open class MainActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateViewVisibility(
|
private fun updateViewVisibility(
|
||||||
devicePosition: ComponentIndexType,
|
devicePosition: ComponentIndexType,
|
||||||
lensType: CameraLensType
|
lensType: CameraLensType
|
||||||
) {
|
) {
|
||||||
|
|
@ -386,7 +402,7 @@ open class MainActivity : BaseActivity() {
|
||||||
/**
|
/**
|
||||||
* Swap the video sources of the FPV and secondary FPV widgets.
|
* Swap the video sources of the FPV and secondary FPV widgets.
|
||||||
*/
|
*/
|
||||||
private fun swapVideoSource() {
|
private fun swapVideoSource() {
|
||||||
val primarySource = primaryFpvWidget!!.widgetModel.getCameraIndex()
|
val primarySource = primaryFpvWidget!!.widgetModel.getCameraIndex()
|
||||||
val secondarySource = secondaryFPVWidget!!.widgetModel.getCameraIndex()
|
val secondarySource = secondaryFPVWidget!!.widgetModel.getCameraIndex()
|
||||||
//两个source都存在的情况下才进行切换
|
//两个source都存在的情况下才进行切换
|
||||||
|
|
@ -406,6 +422,7 @@ open class MainActivity : BaseActivity() {
|
||||||
val devicePosition: ComponentIndexType,
|
val devicePosition: ComponentIndexType,
|
||||||
val lensType: CameraLensType
|
val lensType: CameraLensType
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
if (mDrawerLayout!!.isDrawerOpen(GravityCompat.END)) {
|
if (mDrawerLayout!!.isDrawerOpen(GravityCompat.END)) {
|
||||||
mDrawerLayout!!.closeDrawers()
|
mDrawerLayout!!.closeDrawers()
|
||||||
|
|
@ -440,54 +457,109 @@ open class MainActivity : BaseActivity() {
|
||||||
initDJIManager()
|
initDJIManager()
|
||||||
initCameraStream()
|
initCameraStream()
|
||||||
initView()
|
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() {
|
private fun initView() {
|
||||||
fpvParentView = findViewById( R.id.fpv_holder)
|
fpvParentView = findViewById(R.id.fpv_holder)
|
||||||
mDrawerLayout = findViewById( R.id.root_view)
|
mDrawerLayout = findViewById(R.id.root_view)
|
||||||
topBarPanel = findViewById( R.id.panel_top_bar)
|
topBarPanel = findViewById(R.id.panel_top_bar)
|
||||||
settingWidget = topBarPanel?.settingWidget
|
settingWidget = topBarPanel?.settingWidget
|
||||||
primaryFpvWidget = findViewById( R.id.widget_primary_fpv)
|
primaryFpvWidget = findViewById(R.id.widget_primary_fpv)
|
||||||
fpvInteractionWidget = findViewById( R.id.widget_fpv_interaction)
|
fpvInteractionWidget = findViewById(R.id.widget_fpv_interaction)
|
||||||
secondaryFPVWidget = findViewById( R.id.widget_secondary_fpv)
|
secondaryFPVWidget = findViewById(R.id.widget_secondary_fpv)
|
||||||
systemStatusListPanelWidget = findViewById( R.id.widget_panel_system_status_list)
|
systemStatusListPanelWidget = findViewById(R.id.widget_panel_system_status_list)
|
||||||
simulatorControlWidget = findViewById( R.id.widget_simulator_control)
|
simulatorControlWidget = findViewById(R.id.widget_simulator_control)
|
||||||
lensControlWidget = findViewById<LensControlWidget>( R.id.widget_lens_control)
|
lensControlWidget = findViewById<LensControlWidget>(R.id.widget_lens_control)
|
||||||
ndviCameraPanel = findViewById( R.id.panel_ndvi_camera)
|
ndviCameraPanel = findViewById(R.id.panel_ndvi_camera)
|
||||||
visualCameraPanel = findViewById( R.id.panel_visual_camera)
|
visualCameraPanel = findViewById(R.id.panel_visual_camera)
|
||||||
autoExposureLockWidget = findViewById( R.id.widget_auto_exposure_lock)
|
autoExposureLockWidget = findViewById(R.id.widget_auto_exposure_lock)
|
||||||
focusModeWidget = findViewById( R.id.widget_focus_mode)
|
focusModeWidget = findViewById(R.id.widget_focus_mode)
|
||||||
focusExposureSwitchWidget = findViewById( R.id.widget_focus_exposure_switch)
|
focusExposureSwitchWidget = findViewById(R.id.widget_focus_exposure_switch)
|
||||||
pfvFlightDisplayWidget = findViewById( R.id.widget_fpv_flight_display_widget)
|
pfvFlightDisplayWidget = findViewById(R.id.widget_fpv_flight_display_widget)
|
||||||
focalZoomWidget = findViewById( R.id.widget_focal_zoom)
|
focalZoomWidget = findViewById(R.id.widget_focal_zoom)
|
||||||
cameraControlsWidget = findViewById( R.id.widget_camera_controls)
|
cameraControlsWidget = findViewById(R.id.widget_camera_controls)
|
||||||
horizontalSituationIndicatorWidget =
|
horizontalSituationIndicatorWidget =
|
||||||
findViewById(R.id.widget_horizontal_situation_indicator)
|
findViewById(R.id.widget_horizontal_situation_indicator)
|
||||||
// gimbalAdjustDone = findViewById<TextView>( R.id.fpv_gimbal_ok_btn)
|
// gimbalAdjustDone = findViewById<TextView>( R.id.fpv_gimbal_ok_btn)
|
||||||
gimbalFineTuneWidget = findViewById( R.id.setting_menu_gimbal_fine_tune)
|
gimbalFineTuneWidget = findViewById(R.id.setting_menu_gimbal_fine_tune)
|
||||||
btn_test = findViewById( R.id.btn_test)
|
btn_test = findViewById(R.id.btn_test)
|
||||||
btn_test1 = findViewById( R.id.btn_test1)
|
btn_test1 = findViewById(R.id.btn_test1)
|
||||||
|
btn_test2 = findViewById(R.id.btn_test2)
|
||||||
|
btn_test3 = findViewById(R.id.btn_test3)
|
||||||
btn_test?.setOnClickListener {
|
btn_test?.setOnClickListener {
|
||||||
// MissionManager.getInstance().test()
|
|
||||||
FlightManager.getInstance().startPropellerRotation(null)
|
|
||||||
}
|
}
|
||||||
btn_test1?.setOnClickListener {
|
btn_test1?.setOnClickListener {
|
||||||
FlightManager.getInstance().stopPropellerRotation(null)
|
|
||||||
|
|
||||||
|
}
|
||||||
|
btn_test2?.setOnClickListener {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
btn_test3?.setOnClickListener {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MediaDataCenter.getInstance().cameraStreamManager.setVisionAssistViewDirection(
|
MediaDataCenter.getInstance().cameraStreamManager.setVisionAssistViewDirection(
|
||||||
VisionAssistDirection.DOWN,object:CommonCallbacks.CompletionCallback{
|
VisionAssistDirection.DOWN, object : CommonCallbacks.CompletionCallback {
|
||||||
override fun onSuccess() {
|
override fun onSuccess() {
|
||||||
LogUtil.log(TAG,"开启成功")
|
LogUtil.log(TAG, "开启成功")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onFailure(p0: IDJIError) {
|
override fun onFailure(p0: IDJIError) {
|
||||||
LogUtil.log(TAG,"开启失败"+p0)
|
LogUtil.log(TAG, "开启失败" + p0)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
initClickListener()
|
initClickListener()
|
||||||
|
|
@ -516,11 +588,9 @@ open class MainActivity : BaseActivity() {
|
||||||
DJINetworkManager.getInstance().addNetworkStatusListener(networkStatusListener)
|
DJINetworkManager.getInstance().addNetworkStatusListener(networkStatusListener)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isGimableAdjustClicked(broadcastValues: BroadcastValues) {
|
private fun isGimableAdjustClicked(broadcastValues: BroadcastValues) {
|
||||||
if (mDrawerLayout!!.isDrawerOpen(GravityCompat.END)) {
|
if (mDrawerLayout!!.isDrawerOpen(GravityCompat.END)) {
|
||||||
mDrawerLayout!!.closeDrawers()
|
mDrawerLayout!!.closeDrawers()
|
||||||
}
|
}
|
||||||
|
|
@ -530,7 +600,7 @@ open class MainActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initClickListener() {
|
private fun initClickListener() {
|
||||||
secondaryFPVWidget!!.setOnClickListener { v: View? -> swapVideoSource() }
|
secondaryFPVWidget!!.setOnClickListener { v: View? -> swapVideoSource() }
|
||||||
if (settingWidget != null) {
|
if (settingWidget != null) {
|
||||||
settingWidget!!.setOnClickListener { v: View? -> toggleRightDrawer() }
|
settingWidget!!.setOnClickListener { v: View? -> toggleRightDrawer() }
|
||||||
|
|
@ -549,7 +619,7 @@ open class MainActivity : BaseActivity() {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun toggleRightDrawer() {
|
private fun toggleRightDrawer() {
|
||||||
mDrawerLayout!!.openDrawer(GravityCompat.END)
|
mDrawerLayout!!.openDrawer(GravityCompat.END)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -572,18 +642,21 @@ open class MainActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private val handler: Handler = Handler(Looper.getMainLooper())
|
private val handler: Handler = Handler(Looper.getMainLooper())
|
||||||
private var initTimes=0
|
private var initTimes = 0
|
||||||
|
|
||||||
|
|
||||||
private fun initDJIManager() {
|
private fun initDJIManager() {
|
||||||
//如果没有云台修改这里
|
//如果没有云台修改这里
|
||||||
// 初始化 OpenCV
|
// 初始化 OpenCV
|
||||||
|
|
||||||
val isFlightControllerConnect =
|
val isFlightControllerConnect =
|
||||||
KeyManager.getInstance().getValue(DJIKey.create(FlightControllerKey.KeyConnection))
|
KeyManager.getInstance().getValue(DJIKey.create(FlightControllerKey.KeyConnection))
|
||||||
val isCameraConnect =
|
val isCameraConnect =
|
||||||
KeyManager.getInstance().getValue(KeyTools.createKey(CameraKey.KeyConnection, ComponentIndexType.PORT_1))
|
KeyManager.getInstance()
|
||||||
val isGimbal =KeyManager.getInstance().getValue(KeyTools.createKey(GimbalKey.KeyConnection, ComponentIndexType.PORT_1))
|
.getValue(KeyTools.createKey(CameraKey.KeyConnection, ComponentIndexType.PORT_1))
|
||||||
LogUtil.log(TAG,isCameraConnect.toString())
|
val isGimbal = KeyManager.getInstance()
|
||||||
|
.getValue(KeyTools.createKey(GimbalKey.KeyConnection, ComponentIndexType.PORT_1))
|
||||||
|
// LogUtil.log(TAG,isCameraConnect.toString())
|
||||||
|
|
||||||
//全装在初始化
|
//全装在初始化
|
||||||
if ((isFlightControllerConnect == null || !isFlightControllerConnect)) {
|
if ((isFlightControllerConnect == null || !isFlightControllerConnect)) {
|
||||||
|
|
@ -594,7 +667,7 @@ open class MainActivity : BaseActivity() {
|
||||||
initTimes++
|
initTimes++
|
||||||
LogUtil.log(TAG, "初始化$initTimes")
|
LogUtil.log(TAG, "初始化$initTimes")
|
||||||
|
|
||||||
LogUtil.log(TAG,"自定义推流方式:"+PreferenceUtils.getInstance().customStreamType)
|
LogUtil.log(TAG, "自定义推流方式:" + PreferenceUtils.getInstance().customStreamType)
|
||||||
Handler().postDelayed(Runnable {
|
Handler().postDelayed(Runnable {
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -615,30 +688,31 @@ open class MainActivity : BaseActivity() {
|
||||||
LTEManager.getInstance().initLTEInfo()
|
LTEManager.getInstance().initLTEInfo()
|
||||||
WirelessLinkManager.getInstance().initWirelessLink()
|
WirelessLinkManager.getInstance().initWirelessLink()
|
||||||
CameraManager.getInstance().initCameraInfo()
|
CameraManager.getInstance().initCameraInfo()
|
||||||
|
//tts
|
||||||
|
SpeakerManager.getInstance().initMegaphoneInfo()
|
||||||
LEDsSettingsManager.getInstance().initLEDsInfo()
|
LEDsSettingsManager.getInstance().initLEDsInfo()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (PreferenceUtils.getInstance().customStreamType==1){
|
if (PreferenceUtils.getInstance().customStreamType == 1) {
|
||||||
StreamManager.getInstance()
|
StreamManager.getInstance()
|
||||||
.startLiveWithRTSP()
|
.startLiveWithRTSP()
|
||||||
}else if (PreferenceUtils.getInstance().customStreamType==2){
|
|
||||||
StreamManager.getInstance()
|
|
||||||
.startLiveWithCustom()
|
|
||||||
}else {
|
|
||||||
StreamManager.getInstance()
|
|
||||||
.startLiveWithCustom()
|
|
||||||
}
|
|
||||||
|
|
||||||
}, 5000)
|
} else if (PreferenceUtils.getInstance().customStreamType == 2) {
|
||||||
LogUtil.log(TAG,"推流类型:"+PreferenceUtils.getInstance().customStreamType)
|
StreamManager.getInstance()
|
||||||
|
.startLiveWithCustom()
|
||||||
|
} else {
|
||||||
|
StreamManager.getInstance()
|
||||||
|
.startLiveWithCustom()
|
||||||
|
}
|
||||||
|
|
||||||
|
}, 5000)
|
||||||
|
LogUtil.log(TAG, "推流类型:" + PreferenceUtils.getInstance().customStreamType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@SuppressLint("SuspiciousIndentation")
|
@SuppressLint("SuspiciousIndentation")
|
||||||
private fun initCameraStream() {
|
private fun initCameraStream() {
|
||||||
|
|
||||||
|
|
@ -646,25 +720,25 @@ open class MainActivity : BaseActivity() {
|
||||||
ComponentIndexType.FPV,
|
ComponentIndexType.FPV,
|
||||||
ICameraStreamManager.FrameFormat.YUV420_888
|
ICameraStreamManager.FrameFormat.YUV420_888
|
||||||
) { frameData, _, _, width, height, _ ->
|
) { frameData, _, _, width, height, _ ->
|
||||||
Movement.getInstance().isVtx=true
|
Movement.getInstance().isVtx = true
|
||||||
//检测到图传
|
//检测到图传
|
||||||
streamReceive=true
|
streamReceive = true
|
||||||
// if (shouldExecute) {
|
// if (shouldExecute) {
|
||||||
if (startArucoType == 1) {
|
if (startArucoType == 1) {
|
||||||
ApronArucoDetect.getInstance()?.detectArucoTags(
|
ApronArucoDetect.getInstance()?.detectArucoTags(
|
||||||
height,
|
height,
|
||||||
width,
|
width,
|
||||||
frameData,
|
frameData,
|
||||||
dictionary
|
dictionary
|
||||||
)
|
)
|
||||||
} else if (startArucoType == 2) {
|
} else if (startArucoType == 2) {
|
||||||
AlternateArucoDetect.getInstance()?.detectArucoTags(
|
AlternateArucoDetect.getInstance()?.detectArucoTags(
|
||||||
height,
|
height,
|
||||||
width,
|
width,
|
||||||
frameData,
|
frameData,
|
||||||
dictionary
|
dictionary
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
// shouldExecute = !shouldExecute
|
// shouldExecute = !shouldExecute
|
||||||
}
|
}
|
||||||
|
|
@ -718,7 +792,7 @@ open class MainActivity : BaseActivity() {
|
||||||
ApronArucoDetect.getInstance().setDetectedBigMarkers()
|
ApronArucoDetect.getInstance().setDetectedBigMarkers()
|
||||||
DroneHelper.getInstance().setGimbalPitchDegree()
|
DroneHelper.getInstance().setGimbalPitchDegree()
|
||||||
//每次触发识别二维码时,为避免获取控制权失败,使多次获取控制权
|
//每次触发识别二维码时,为避免获取控制权失败,使多次获取控制权
|
||||||
DroneHelper.getInstance().isVirtualStickEnable=false
|
DroneHelper.getInstance().isVirtualStickEnable = false
|
||||||
DroneHelper.getInstance().setVerticalModeToVelocity()
|
DroneHelper.getInstance().setVerticalModeToVelocity()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -757,24 +831,48 @@ open class MainActivity : BaseActivity() {
|
||||||
)
|
)
|
||||||
DroneHelper.getInstance().setGimbalPitchDegree()
|
DroneHelper.getInstance().setGimbalPitchDegree()
|
||||||
//每次触发识别二维码时,为避免获取控制权失败,使多次获取控制权
|
//每次触发识别二维码时,为避免获取控制权失败,使多次获取控制权
|
||||||
DroneHelper.getInstance().isVirtualStickEnable=false
|
DroneHelper.getInstance().isVirtualStickEnable = false
|
||||||
DroneHelper.getInstance().setVerticalModeToVelocity()
|
DroneHelper.getInstance().setVerticalModeToVelocity()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
FLAG_DOWN_LAND ->
|
FLAG_DOWN_LAND -> {
|
||||||
KeyManager.getInstance().performAction<EmptyMsg>(
|
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false)
|
||||||
KeyTools.createKey<EmptyMsg, EmptyMsg>(FlightControllerKey.KeyStartAutoLanding),
|
|
||||||
object : CommonCallbacks.CompletionCallbackWithParam<EmptyMsg?> {
|
VirtualStickManager.getInstance().disableVirtualStick(object : CompletionCallback {
|
||||||
override fun onSuccess(emptyMsg: EmptyMsg?) {
|
override fun onSuccess() {
|
||||||
startArucoType = 0
|
LogUtil.log(TAG, "控制取消成功")
|
||||||
LogUtil.log(TAG, "自动降落调用成功")
|
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false)
|
||||||
}
|
|
||||||
|
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()}")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
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()}")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
override fun onFailure(error: IDJIError) {
|
|
||||||
LogUtil.log(TAG, "自动降落调用失败${error.description()}")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
FLAG_STOP_ARUCO ->
|
FLAG_STOP_ARUCO ->
|
||||||
startArucoType = 0
|
startArucoType = 0
|
||||||
|
|
@ -784,9 +882,6 @@ open class MainActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private fun setViewVisibilityWithCleanMode() {
|
private fun setViewVisibilityWithCleanMode() {
|
||||||
if (PreferenceUtils.getInstance().isCleanMode) {
|
if (PreferenceUtils.getInstance().isCleanMode) {
|
||||||
fpvInteractionWidget?.visibility = View.GONE
|
fpvInteractionWidget?.visibility = View.GONE
|
||||||
|
|
|
||||||
|
|
@ -291,7 +291,7 @@ public abstract class BaseManager {
|
||||||
output.setProgress(progress);
|
output.setProgress(progress);
|
||||||
|
|
||||||
FlightTaskProgress.Data data = new FlightTaskProgress.Data();
|
FlightTaskProgress.Data data = new FlightTaskProgress.Data();
|
||||||
data.setResult(0);
|
data.setResult(Movement.getInstance().getResult());
|
||||||
data.setOutput(output);
|
data.setOutput(output);
|
||||||
|
|
||||||
FlightTaskProgress flightTaskProgress = new FlightTaskProgress();
|
FlightTaskProgress flightTaskProgress = new FlightTaskProgress();
|
||||||
|
|
@ -321,7 +321,7 @@ public abstract class BaseManager {
|
||||||
output.setProgress(progress);
|
output.setProgress(progress);
|
||||||
|
|
||||||
FlightTaskProgress.Data data = new FlightTaskProgress.Data();
|
FlightTaskProgress.Data data = new FlightTaskProgress.Data();
|
||||||
data.setResult(0);
|
data.setResult(Movement.getInstance().getResult());
|
||||||
data.setOutput(output);
|
data.setOutput(output);
|
||||||
|
|
||||||
FlightTaskProgress flightTaskProgress = new FlightTaskProgress();
|
FlightTaskProgress flightTaskProgress = new FlightTaskProgress();
|
||||||
|
|
@ -445,48 +445,47 @@ public abstract class BaseManager {
|
||||||
LogUtil.log(TAG, "发送sdr异常:" + e.toString());
|
LogUtil.log(TAG, "发送sdr异常:" + e.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
// /**
|
||||||
* 上报一键起飞任务进度
|
// * 上报一键起飞任务进度
|
||||||
*/
|
// */
|
||||||
public void sendTakeoffToPointProgress2Server() {
|
// public void sendTakeoffToPointProgress2Server() {
|
||||||
try {
|
// try {
|
||||||
if (MqttManager.getInstance().mqttAndroidClient.isConnected()) {
|
// if (MqttManager.getInstance().mqttAndroidClient.isConnected()) {
|
||||||
|
// // 构建 data 数据
|
||||||
// 构建 data 数据
|
// TakeoffToPointProgress.Data data = new TakeoffToPointProgress.Data();
|
||||||
TakeoffToPointProgress.Data data = new TakeoffToPointProgress.Data();
|
// data.setFlightId(PreferenceUtils.getInstance().getFlightId());
|
||||||
data.setFlightId(PreferenceUtils.getInstance().getFlightId());
|
// data.setTrackId(PreferenceUtils.getInstance().getFlightId());
|
||||||
data.setTrackId(PreferenceUtils.getInstance().getFlightId());
|
// data.setStatus(Movement.getInstance().getTakeoff_status());
|
||||||
data.setStatus(Movement.getInstance().getTakeoff_status());
|
// data.setResult(Movement.getInstance().getTakeoff_result());
|
||||||
data.setResult(Movement.getInstance().getTakeoff_result());
|
// data.setWayPointIndex(Movement.getInstance().getCurrentWaypointIndex());
|
||||||
data.setWayPointIndex(Movement.getInstance().getCurrentWaypointIndex());
|
// data.setRemainingDistance(Movement.getInstance().getTakeoff_remaining_distance());
|
||||||
data.setRemainingDistance(Movement.getInstance().getTakeoff_remaining_distance());
|
// data.setRemainingTime(Movement.getInstance().getTakeoff_remaining_time());
|
||||||
data.setRemainingTime(Movement.getInstance().getTakeoff_remaining_time());
|
// data.setPlannedPathPoints(Movement.getInstance().getTakeoff_planned_path_points());
|
||||||
data.setPlannedPathPoints(Movement.getInstance().getTakeoff_planned_path_points());
|
//
|
||||||
|
// // 构建事件对象
|
||||||
// 构建事件对象
|
// TakeoffToPointProgress progress = new TakeoffToPointProgress();
|
||||||
TakeoffToPointProgress progress = new TakeoffToPointProgress();
|
// progress.setBid(UUID.randomUUID().toString());
|
||||||
progress.setBid(UUID.randomUUID().toString());
|
// progress.setTid(UUID.randomUUID().toString());
|
||||||
progress.setTid(UUID.randomUUID().toString());
|
// progress.setTimestamp(System.currentTimeMillis());
|
||||||
progress.setTimestamp(System.currentTimeMillis());
|
// progress.setMethod("takeoff_to_point_progress");
|
||||||
progress.setMethod("takeoff_to_point_progress");
|
// progress.setNeedReply(1);
|
||||||
progress.setNeedReply(1);
|
// progress.setData(data);
|
||||||
progress.setData(data);
|
//
|
||||||
|
// // 发送
|
||||||
// 发送
|
// MqttMessage mqttMessage = new MqttMessage(new Gson().toJson(progress).getBytes("UTF-8"));
|
||||||
MqttMessage mqttMessage = new MqttMessage(new Gson().toJson(progress).getBytes("UTF-8"));
|
// mqttMessage.setQos(0);
|
||||||
mqttMessage.setQos(0);
|
// MqttManager.getInstance().mqttAndroidClient.publish(AMSConfig.UP_UAV_EVENT, mqttMessage);
|
||||||
MqttManager.getInstance().mqttAndroidClient.publish(AMSConfig.UP_UAV_EVENT, mqttMessage);
|
//
|
||||||
|
// LogUtil.log(TAG, "发送一键起飞进度事件:" + new Gson().toJson(progress));
|
||||||
LogUtil.log(TAG, "发送一键起飞进度事件:" + new Gson().toJson(progress));
|
//
|
||||||
|
// } else {
|
||||||
} else {
|
// LogUtil.log(TAG, "发送一键起飞进度event失败:mqtt 未连接");
|
||||||
LogUtil.log(TAG, "发送一键起飞进度event失败:mqtt 未连接");
|
// }
|
||||||
}
|
// } catch (Exception e) {
|
||||||
} catch (Exception e) {
|
// e.printStackTrace();
|
||||||
e.printStackTrace();
|
// LogUtil.log(TAG, "发送一键起飞进度event异常:" + e.toString());
|
||||||
LogUtil.log(TAG, "发送一键起飞进度event异常:" + e.toString());
|
// }
|
||||||
}
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上报拍照进度(camera_photo_take_progress)
|
* 上报拍照进度(camera_photo_take_progress)
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ public class MVirtualStickStateListener extends BaseManager implements dji.v5.ma
|
||||||
if (stickState!=null){
|
if (stickState!=null){
|
||||||
LogUtil.log(TAG,"控制权:"+stickState.isVirtualStickEnable()+"-高级模式:"+stickState.isVirtualStickAdvancedModeEnabled());
|
LogUtil.log(TAG,"控制权:"+stickState.isVirtualStickEnable()+"-高级模式:"+stickState.isVirtualStickAdvancedModeEnabled());
|
||||||
Movement.getInstance().setIsVirtualStickEnable(stickState.isVirtualStickEnable()?1:0);
|
Movement.getInstance().setIsVirtualStickEnable(stickState.isVirtualStickEnable()?1:0);
|
||||||
|
|
||||||
if (!stickState.isVirtualStickEnable()){
|
if (!stickState.isVirtualStickEnable()){
|
||||||
Movement.getInstance().setVirtualStickEnableReason(0);
|
Movement.getInstance().setVirtualStickEnableReason(0);
|
||||||
}
|
}
|
||||||
|
|
@ -25,6 +26,9 @@ public class MVirtualStickStateListener extends BaseManager implements dji.v5.ma
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChangeReasonUpdate(@NonNull FlightControlAuthorityChangeReason reason) {
|
public void onChangeReasonUpdate(@NonNull FlightControlAuthorityChangeReason reason) {
|
||||||
|
if(reason.name().equals(FlightControlAuthorityChangeReason.BATTERY_LOW_GO_HOME)){
|
||||||
|
Movement.getInstance().setResult(321773);
|
||||||
|
}
|
||||||
LogUtil.log(TAG,"控制权变更原因:"+reason.name());
|
LogUtil.log(TAG,"控制权变更原因:"+reason.name());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,15 @@ import com.aros.apron.constant.Constant;
|
||||||
import com.aros.apron.entity.ApronExecutionStatus;
|
import com.aros.apron.entity.ApronExecutionStatus;
|
||||||
import com.aros.apron.entity.MessageDown;
|
import com.aros.apron.entity.MessageDown;
|
||||||
import com.aros.apron.entity.Movement;
|
import com.aros.apron.entity.Movement;
|
||||||
|
import com.aros.apron.entity.SpeakerAudioPlayProgress;
|
||||||
import com.aros.apron.manager.CameraManager;
|
import com.aros.apron.manager.CameraManager;
|
||||||
import com.aros.apron.manager.FlightManager;
|
import com.aros.apron.manager.FlightManager;
|
||||||
import com.aros.apron.manager.FlyToPointManager;
|
import com.aros.apron.manager.FlyToPointManager;
|
||||||
import com.aros.apron.manager.GimbalManager;
|
import com.aros.apron.manager.GimbalManager;
|
||||||
import com.aros.apron.manager.MissionV3Manager;
|
import com.aros.apron.manager.MissionV3Manager;
|
||||||
import com.aros.apron.manager.OSDManager;
|
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.StickManager;
|
||||||
import com.aros.apron.manager.StreamManager;
|
import com.aros.apron.manager.StreamManager;
|
||||||
import com.aros.apron.manager.SystemManager;
|
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.MqttManager;
|
||||||
import com.aros.apron.tools.PreferenceUtils;
|
import com.aros.apron.tools.PreferenceUtils;
|
||||||
import com.aros.apron.tools.RestartAPPTool;
|
import com.aros.apron.tools.RestartAPPTool;
|
||||||
|
import com.aros.apron.tools.SpeakerProgressReporter;
|
||||||
|
import com.aros.apron.tools.TakeoffProgressScheduler;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
|
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
|
||||||
|
|
@ -90,14 +95,10 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void messageArrived(String topic, MqttMessage mqttMessage) {
|
public void messageArrived(String topic, MqttMessage mqttMessage) {
|
||||||
String jsonString = null;
|
String jsonString = null;
|
||||||
//Log.e(TAG, "入口打印:" +mqttMessage.toString());
|
Log.e(TAG, "入口打印:" +mqttMessage.toString());
|
||||||
try {
|
try {
|
||||||
|
|
||||||
jsonString = new String(mqttMessage.getPayload(), "UTF-8");
|
jsonString = new String(mqttMessage.getPayload(), "UTF-8");
|
||||||
|
|
@ -142,6 +143,9 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
|
||||||
break;
|
break;
|
||||||
case Constant.FLIGHTTASK_EXECUTE:
|
case Constant.FLIGHTTASK_EXECUTE:
|
||||||
LogUtil.log(TAG, "收到:航线" + jsonString);
|
LogUtil.log(TAG, "收到:航线" + jsonString);
|
||||||
|
//关闭避障
|
||||||
|
PerceptionManager.getInstance().setPerceptionEnable(false);
|
||||||
|
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
|
||||||
//设置modecode
|
//设置modecode
|
||||||
Movement.getInstance().setMode_code(1);
|
Movement.getInstance().setMode_code(1);
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
|
|
@ -192,6 +196,7 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
//设置标志为指令飞行
|
//设置标志为指令飞行
|
||||||
Movement.getInstance().setFlightmode(2);
|
Movement.getInstance().setFlightmode(2);
|
||||||
|
TakeoffProgressScheduler.getInstance().startReporting();
|
||||||
|
|
||||||
TakeOffToPointManager.getInstance().taskExecute(message);
|
TakeOffToPointManager.getInstance().taskExecute(message);
|
||||||
break;
|
break;
|
||||||
|
|
@ -322,6 +327,38 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended {
|
||||||
LogUtil.log(TAG, "收到:框选变焦" + jsonString);
|
LogUtil.log(TAG, "收到:框选变焦" + jsonString);
|
||||||
CameraManager.getInstance().camera_frame_zoom(message);
|
CameraManager.getInstance().camera_frame_zoom(message);
|
||||||
break;
|
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:
|
// case 60007:
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -276,6 +276,9 @@ public class Movement {
|
||||||
private String sdr_freq_band;
|
private String sdr_freq_band;
|
||||||
private String freq_band_4g;
|
private String freq_band_4g;
|
||||||
|
|
||||||
|
//航线上报状态
|
||||||
|
private int result=0;
|
||||||
|
|
||||||
|
|
||||||
// ========== 一键起飞相关字段 ==========
|
// ========== 一键起飞相关字段 ==========
|
||||||
private boolean takeofftopointmission;
|
private boolean takeofftopointmission;
|
||||||
|
|
@ -286,13 +289,93 @@ public class Movement {
|
||||||
private double speed; //全局速度
|
private double speed; //全局速度
|
||||||
private List<TakeoffToPointProgress.PlannedPathPoint> takeoff_planned_path_points; // 规划轨迹点
|
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 String photo_status; // in_progress/ok/fail
|
||||||
private int photo_current_step; // 3000/3002/3005
|
private int photo_current_step; // 3000/3002/3005
|
||||||
private int photo_percent; // 0-100
|
private int photo_percent; // 0-100
|
||||||
private int photo_result; // 0成功,非0错误
|
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() {
|
public int getGPSSatelliteCount() {
|
||||||
|
|
@ -411,7 +494,7 @@ public class Movement {
|
||||||
}
|
}
|
||||||
|
|
||||||
//用来判断是什么起飞type
|
//用来判断是什么起飞type
|
||||||
private int flightmode=0; //0代表没有操作 1代表航线飞行 2代表指令飞行(一键和flyto)
|
private int flightmode=0; //0代表没有操作 1代表航线飞行 2一键代表指令飞行 3flyto(一键和flyto)
|
||||||
private boolean takeofftopoint;
|
private boolean takeofftopoint;
|
||||||
private boolean opendrc=false; //true 是开启 false 是关闭
|
private boolean opendrc=false; //true 是开启 false 是关闭
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,15 +134,15 @@ public class TakeoffToPointProgress {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class PlannedPathPoint {
|
public static class PlannedPathPoint {
|
||||||
private Float height;
|
private Double height;
|
||||||
private Double latitude;
|
private Double latitude;
|
||||||
private Double longitude;
|
private Double longitude;
|
||||||
|
|
||||||
public Float getHeight() {
|
public Double getHeight() {
|
||||||
return height;
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHeight(Float height) {
|
public void setHeight(Double height) {
|
||||||
this.height = height;
|
this.height = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -812,6 +812,7 @@ public class FlightManager extends BaseManager {
|
||||||
sendCloseCabinDoorMsg = true;
|
sendCloseCabinDoorMsg = true;
|
||||||
DockCloseManager.getInstance().sendDockCloseMsg2Server();
|
DockCloseManager.getInstance().sendDockCloseMsg2Server();
|
||||||
PerceptionManager.getInstance().setPerceptionEnable(true);
|
PerceptionManager.getInstance().setPerceptionEnable(true);
|
||||||
|
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -847,6 +848,7 @@ public class FlightManager extends BaseManager {
|
||||||
// DroneHelper.getInstance().setCameraFocusMode();
|
// DroneHelper.getInstance().setCameraFocusMode();
|
||||||
// isGimbalDownwards = true;
|
// isGimbalDownwards = true;
|
||||||
PerceptionManager.getInstance().setPerceptionEnable(false);
|
PerceptionManager.getInstance().setPerceptionEnable(false);
|
||||||
|
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
|
||||||
// if (Movement.getInstance().getIsRecording() == 1) {
|
// if (Movement.getInstance().getIsRecording() == 1) {
|
||||||
// CameraManager.getInstance().stopRecordVideo(null);
|
// 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_MAX_ALTERNATE = 10;
|
||||||
private static final double FLYING_HEIGHT_THRESHOLD_MIN = -2;
|
private static final double FLYING_HEIGHT_THRESHOLD_MIN = -2;
|
||||||
private static final double FLYING_HEIGHT_THRESHOLD_MIN_ALTERNATE = 2.0;
|
private static final double FLYING_HEIGHT_THRESHOLD_MIN_ALTERNATE = 2.0;
|
||||||
|
|
||||||
private void startVisionLanding() {
|
private void startVisionLanding() {
|
||||||
|
|
||||||
boolean isDebugMode = PreferenceUtils.getInstance().getIsDebugMode();
|
boolean isDebugMode = PreferenceUtils.getInstance().getIsDebugMode();
|
||||||
boolean triggerToAlternatePoint = PreferenceUtils.getInstance().getTriggerToAlternatePoint();
|
boolean triggerToAlternatePoint = PreferenceUtils.getInstance().getTriggerToAlternatePoint();
|
||||||
boolean needTriggerApronArucoLand = PreferenceUtils.getInstance().getNeedTriggerApronArucoLand();
|
boolean needTriggerApronArucoLand = PreferenceUtils.getInstance().getNeedTriggerApronArucoLand();
|
||||||
boolean needTriggerAlterArucoLand = PreferenceUtils.getInstance().getNeedTriggerAlterArucoLand();
|
boolean needTriggerAlterArucoLand = PreferenceUtils.getInstance().getNeedTriggerAlterArucoLand();
|
||||||
double thresholdMax = triggerToAlternatePoint ? FLYING_HEIGHT_THRESHOLD_MAX_ALTERNATE : FLYING_HEIGHT_THRESHOLD_MAX;
|
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 flyingHeight = Movement.getInstance().getElevation();
|
||||||
double thresholdMin = triggerToAlternatePoint ? FLYING_HEIGHT_THRESHOLD_MIN_ALTERNATE : FLYING_HEIGHT_THRESHOLD_MIN;
|
double thresholdMin = triggerToAlternatePoint ? FLYING_HEIGHT_THRESHOLD_MIN_ALTERNATE : FLYING_HEIGHT_THRESHOLD_MIN;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -270,20 +270,48 @@ public class GimbalManager extends BaseManager {
|
||||||
locationCoordinate3D.setLongitude(message.getData().getLongitude());
|
locationCoordinate3D.setLongitude(message.getData().getLongitude());
|
||||||
locationCoordinate3D.setAltitude(Double.parseDouble(message.getData().getHeight() + ""));
|
locationCoordinate3D.setAltitude(Double.parseDouble(message.getData().getHeight() + ""));
|
||||||
lookAtInfo.setLocation(locationCoordinate3D);
|
lookAtInfo.setLocation(locationCoordinate3D);
|
||||||
KeyManager.getInstance().performAction(KeyTools.createKey(FlightControllerKey.KeyLookAt), lookAtInfo, new CommonCallbacks.CompletionCallbackWithParam<EmptyMsg>() {
|
if(message.getData().isLocked()==true){
|
||||||
@Override
|
KeyManager.getInstance().setValue(KeyTools.createKey(GimbalKey.KeyGimbalMode), GimbalMode.YAW_FOLLOW, new CommonCallbacks.CompletionCallback() {
|
||||||
public void onSuccess(EmptyMsg emptyMsg) {
|
@Override
|
||||||
LogUtil.log(TAG,"看向目标点成功");
|
public void onSuccess() {
|
||||||
sendMsg2Server(message);
|
//设置云台跟随
|
||||||
}
|
KeyManager.getInstance().performAction(KeyTools.createKey(FlightControllerKey.KeyLookAt), lookAtInfo, new CommonCallbacks.CompletionCallbackWithParam<EmptyMsg>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(EmptyMsg emptyMsg) {
|
||||||
|
LogUtil.log(TAG,"看向目标点成功");
|
||||||
|
sendMsg2Server(message);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(@NonNull IDJIError error) {
|
public void onFailure(@NonNull IDJIError error) {
|
||||||
LogUtil.log(TAG,"看向目标点失败"+error);
|
LogUtil.log(TAG,"看向目标点失败"+error);
|
||||||
sendFailMsg2Server(message, "看向目标点失败:" + getIDJIErrorMsg(error));
|
sendFailMsg2Server(message, "看向目标点失败:" + getIDJIErrorMsg(error));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
);
|
|
||||||
|
@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 {
|
} else {
|
||||||
LogUtil.log(TAG, "云台未连接");
|
LogUtil.log(TAG, "云台未连接");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import com.aros.apron.entity.Movement;
|
||||||
import com.aros.apron.tools.LogUtil;
|
import com.aros.apron.tools.LogUtil;
|
||||||
import com.aros.apron.tools.PreferenceUtils;
|
import com.aros.apron.tools.PreferenceUtils;
|
||||||
import com.aros.apron.tools.RestartAPPTool;
|
import com.aros.apron.tools.RestartAPPTool;
|
||||||
|
import com.aros.apron.tools.TakeoffProgressScheduler;
|
||||||
import com.dji.wpmzsdk.common.data.KMZInfo;
|
import com.dji.wpmzsdk.common.data.KMZInfo;
|
||||||
import com.dji.wpmzsdk.manager.WPMZManager;
|
import com.dji.wpmzsdk.manager.WPMZManager;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
@ -30,6 +31,7 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import dji.sdk.keyvalue.key.CameraKey;
|
||||||
import dji.sdk.keyvalue.key.FlightControllerKey;
|
import dji.sdk.keyvalue.key.FlightControllerKey;
|
||||||
import dji.sdk.keyvalue.key.KeyTools;
|
import dji.sdk.keyvalue.key.KeyTools;
|
||||||
import dji.sdk.keyvalue.value.flightcontroller.RemoteControllerFlightMode;
|
import dji.sdk.keyvalue.value.flightcontroller.RemoteControllerFlightMode;
|
||||||
|
|
@ -103,6 +105,10 @@ public class MissionV3Manager extends BaseManager {
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
break;
|
break;
|
||||||
case READY:
|
case READY:
|
||||||
|
if(Movement.getInstance().getFlightmode()==2){
|
||||||
|
Movement.getInstance().setTakeoff_status("task_ready");
|
||||||
|
}
|
||||||
|
|
||||||
if (PreferenceUtils.getInstance().getMissionType()==2
|
if (PreferenceUtils.getInstance().getMissionType()==2
|
||||||
) {
|
) {
|
||||||
Movement.getInstance().setTask_status("paused");
|
Movement.getInstance().setTask_status("paused");
|
||||||
|
|
@ -145,6 +151,11 @@ public class MissionV3Manager extends BaseManager {
|
||||||
break;
|
break;
|
||||||
case ENTER_WAYLINE:
|
case ENTER_WAYLINE:
|
||||||
enterWayLineTime = System.currentTimeMillis();
|
enterWayLineTime = System.currentTimeMillis();
|
||||||
|
if(Movement.getInstance().getFlightmode()==2){
|
||||||
|
Movement.getInstance().setTakeoff_status("wayline_progress");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (PreferenceUtils.getInstance().getMissionType()==2
|
if (PreferenceUtils.getInstance().getMissionType()==2
|
||||||
) {
|
) {
|
||||||
Movement.getInstance().setTask_status("paused");
|
Movement.getInstance().setTask_status("paused");
|
||||||
|
|
@ -187,6 +198,11 @@ public class MissionV3Manager extends BaseManager {
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
break;
|
break;
|
||||||
case INTERRUPTED:
|
case INTERRUPTED:
|
||||||
|
|
||||||
|
if(Movement.getInstance().getFlightmode()==2){
|
||||||
|
Movement.getInstance().setTakeoff_status("wayline_cancel");
|
||||||
|
}
|
||||||
|
|
||||||
Movement.getInstance().setVirtualStickQuitMission(false);
|
Movement.getInstance().setVirtualStickQuitMission(false);
|
||||||
sendEvent2Server("任务状态:航线任务执行中断", 1);
|
sendEvent2Server("任务状态:航线任务执行中断", 1);
|
||||||
Movement.getInstance().setTask_status("paused");
|
Movement.getInstance().setTask_status("paused");
|
||||||
|
|
@ -223,6 +239,17 @@ public class MissionV3Manager extends BaseManager {
|
||||||
}else{
|
}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();
|
finishWayLineTime = System.currentTimeMillis();
|
||||||
mainHandler.postDelayed(new Runnable() {
|
mainHandler.postDelayed(new Runnable() {
|
||||||
|
|
@ -348,6 +375,7 @@ public class MissionV3Manager extends BaseManager {
|
||||||
}
|
}
|
||||||
//2.关闭避障
|
//2.关闭避障
|
||||||
PerceptionManager.getInstance().setPerceptionEnable(false);
|
PerceptionManager.getInstance().setPerceptionEnable(false);
|
||||||
|
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
|
||||||
//3.清空sd卡
|
//3.清空sd卡
|
||||||
CameraManager.getInstance().formatStorage(null);
|
CameraManager.getInstance().formatStorage(null);
|
||||||
//4.返航或降落状态无法执行航线
|
//4.返航或降落状态无法执行航线
|
||||||
|
|
@ -565,6 +593,7 @@ public class MissionV3Manager extends BaseManager {
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
// "2": "起飞准备完毕",
|
// "2": "起飞准备完毕",
|
||||||
Movement.getInstance().setMode_code(2);
|
Movement.getInstance().setMode_code(2);
|
||||||
|
LogUtil.log(TAG,"航线上传成功,准备执行任务");
|
||||||
sendEvent2Server("航线上传成功,准备执行任务", 1);
|
sendEvent2Server("航线上传成功,准备执行任务", 1);
|
||||||
isPushKMZSuccess = true;
|
isPushKMZSuccess = true;
|
||||||
mainHandler.postDelayed(new Runnable() {
|
mainHandler.postDelayed(new Runnable() {
|
||||||
|
|
@ -578,6 +607,9 @@ public class MissionV3Manager extends BaseManager {
|
||||||
Movement.getInstance().setMode_code(4);
|
Movement.getInstance().setMode_code(4);
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
Movement.getInstance().setTask_current_step(22);
|
Movement.getInstance().setTask_current_step(22);
|
||||||
|
//关闭避障
|
||||||
|
PerceptionManager.getInstance().setPerceptionEnable(false);
|
||||||
|
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
|
||||||
|
|
||||||
startMission(message);
|
startMission(message);
|
||||||
pushKMZFileTimes = 0;
|
pushKMZFileTimes = 0;
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import dji.v5.manager.KeyManager;
|
||||||
import dji.v5.manager.aircraft.perception.data.ObstacleAvoidanceType;
|
import dji.v5.manager.aircraft.perception.data.ObstacleAvoidanceType;
|
||||||
import dji.v5.manager.aircraft.perception.data.PerceptionDirection;
|
import dji.v5.manager.aircraft.perception.data.PerceptionDirection;
|
||||||
import dji.v5.manager.interfaces.IPerceptionManager;
|
import dji.v5.manager.interfaces.IPerceptionManager;
|
||||||
|
import dji.v5.manager.interfaces.IRadarManager;
|
||||||
|
|
||||||
public class PerceptionManager extends BaseManager {
|
public class PerceptionManager extends BaseManager {
|
||||||
|
|
||||||
|
|
@ -39,14 +40,18 @@ public class PerceptionManager extends BaseManager {
|
||||||
private boolean closePerceptionSuccess;
|
private boolean closePerceptionSuccess;
|
||||||
|
|
||||||
public void setPerceptionEnable(boolean perceptionEnable) {
|
public void setPerceptionEnable(boolean perceptionEnable) {
|
||||||
|
|
||||||
if (PreferenceUtils.getInstance().getCloseObsEnable() && perceptionEnable) {
|
if (PreferenceUtils.getInstance().getCloseObsEnable() && perceptionEnable) {
|
||||||
LogUtil.log(TAG, "全局避障关闭,不开启避障");
|
LogUtil.log(TAG, "全局避障关闭,不开启避障");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Boolean isConnect = KeyManager.getInstance().getValue(createKey(FlightControllerKey.KeyConnection));
|
Boolean isConnect = KeyManager.getInstance().getValue(createKey(FlightControllerKey.KeyConnection));
|
||||||
if (isConnect != null && isConnect) {
|
if (isConnect != null && isConnect) {
|
||||||
|
|
||||||
IPerceptionManager perceptionManager = dji.v5.manager.aircraft.perception.PerceptionManager.getInstance();
|
IPerceptionManager perceptionManager = dji.v5.manager.aircraft.perception.PerceptionManager.getInstance();
|
||||||
|
|
||||||
|
|
||||||
|
//关闭避障
|
||||||
perceptionManager.setObstacleAvoidanceType(perceptionEnable ? ObstacleAvoidanceType.BRAKE : ObstacleAvoidanceType.CLOSE, new CommonCallbacks.CompletionCallback() {
|
perceptionManager.setObstacleAvoidanceType(perceptionEnable ? ObstacleAvoidanceType.BRAKE : ObstacleAvoidanceType.CLOSE, new CommonCallbacks.CompletionCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
|
|
@ -71,6 +76,7 @@ public class PerceptionManager extends BaseManager {
|
||||||
public void run() {
|
public void run() {
|
||||||
closePerceptionTimes++;
|
closePerceptionTimes++;
|
||||||
setPerceptionEnable(false);
|
setPerceptionEnable(false);
|
||||||
|
setObstacleAvoidanceHorizontalEnabled(false);
|
||||||
}
|
}
|
||||||
}, 2000);
|
}, 2000);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -83,8 +89,9 @@ public class PerceptionManager extends BaseManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//开启水平避障
|
//开启水平避障
|
||||||
public void setObstacleAvoidanceHorizontalEnabled() {
|
public void setObstacleAvoidanceHorizontalEnabled(Boolean perceptionEnable) {
|
||||||
if (PreferenceUtils.getInstance().getCloseObsEnable()) {
|
if (PreferenceUtils.getInstance().getCloseObsEnable()) {
|
||||||
LogUtil.log(TAG, "全局避障关闭,不开启避障");
|
LogUtil.log(TAG, "全局避障关闭,不开启避障");
|
||||||
return;
|
return;
|
||||||
|
|
@ -92,7 +99,7 @@ public class PerceptionManager extends BaseManager {
|
||||||
Boolean isConnect = KeyManager.getInstance().getValue(createKey(FlightControllerKey.KeyConnection));
|
Boolean isConnect = KeyManager.getInstance().getValue(createKey(FlightControllerKey.KeyConnection));
|
||||||
if (isConnect != null && isConnect) {
|
if (isConnect != null && isConnect) {
|
||||||
IPerceptionManager perceptionManager = dji.v5.manager.aircraft.perception.PerceptionManager.getInstance();
|
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
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
LogUtil.log(TAG, "开启水平避障");
|
LogUtil.log(TAG, "开启水平避障");
|
||||||
|
|
|
||||||
|
|
@ -71,11 +71,11 @@ public class StickManager extends BaseManager {
|
||||||
|
|
||||||
public void disableVirtualStick1() {
|
public void disableVirtualStick1() {
|
||||||
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false);
|
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false);
|
||||||
VirtualStickManager.getInstance().enableVirtualStick(new CommonCallbacks.CompletionCallback() {
|
VirtualStickManager.getInstance().disableVirtualStick(new CommonCallbacks.CompletionCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
LogUtil.log(TAG, "控制取消成功");
|
LogUtil.log(TAG, "控制取消成功");
|
||||||
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(true);
|
VirtualStickManager.getInstance().setVirtualStickAdvancedModeEnabled(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -150,11 +150,9 @@ sendMsg2Server(message);
|
||||||
|
|
||||||
|
|
||||||
public void startLiveWithRTSP() {
|
public void startLiveWithRTSP() {
|
||||||
|
|
||||||
Boolean isAircraftConnected = KeyManager.getInstance().getValue(DJIKey.create(ProductKey.KeyConnection));
|
Boolean isAircraftConnected = KeyManager.getInstance().getValue(DJIKey.create(ProductKey.KeyConnection));
|
||||||
if (isAircraftConnected == null || !isAircraftConnected) {
|
if (isAircraftConnected == null || !isAircraftConnected) {
|
||||||
LogUtil.log(TAG, "飞行器未连接");
|
LogUtil.log(TAG, "飞行器未连接");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (PreferenceUtils.getInstance().getRtspUserName()!=null&&
|
if (PreferenceUtils.getInstance().getRtspUserName()!=null&&
|
||||||
PreferenceUtils.getInstance().getRtspPort()!=null&&
|
PreferenceUtils.getInstance().getRtspPort()!=null&&
|
||||||
|
|
@ -164,11 +162,15 @@ sendMsg2Server(message);
|
||||||
LogUtil.log(TAG, "自定义RTSP推流:" + PreferenceUtils.getInstance().getRtspUserName()
|
LogUtil.log(TAG, "自定义RTSP推流:" + PreferenceUtils.getInstance().getRtspUserName()
|
||||||
+"--"+PreferenceUtils.getInstance().getRtspPort()+"--"+PreferenceUtils.getInstance().getRtspPassWord());
|
+"--"+PreferenceUtils.getInstance().getRtspPort()+"--"+PreferenceUtils.getInstance().getRtspPassWord());
|
||||||
LiveStreamSettings.Builder streamSettingBuilder = new LiveStreamSettings.Builder();
|
LiveStreamSettings.Builder streamSettingBuilder = new LiveStreamSettings.Builder();
|
||||||
|
|
||||||
LiveStreamSettings streamSettings = streamSettingBuilder.setLiveStreamType(LiveStreamType.RTSP)
|
LiveStreamSettings streamSettings = streamSettingBuilder.setLiveStreamType(LiveStreamType.RTSP)
|
||||||
.setRtspSettings(new RtspSettings.Builder().setPassWord(PreferenceUtils.getInstance().getRtspPassWord()).
|
.setRtspSettings(new RtspSettings.Builder().setPassWord(PreferenceUtils.getInstance().getRtspPassWord()).
|
||||||
setPort(Integer.parseInt(PreferenceUtils.getInstance().getRtspPort())).
|
setPort(Integer.parseInt(PreferenceUtils.getInstance().getRtspPort())).
|
||||||
setUserName(PreferenceUtils.getInstance().getRtspUserName()).build()).build();
|
setUserName(PreferenceUtils.getInstance().getRtspUserName()).build()).build();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
liveStreamManager.setLiveStreamSettings(streamSettings);
|
liveStreamManager.setLiveStreamSettings(streamSettings);
|
||||||
CameraType value = KeyManager.getInstance().getValue(KeyTools.createKey(CameraKey.KeyCameraType, ComponentIndexType.PORT_1));
|
CameraType value = KeyManager.getInstance().getValue(KeyTools.createKey(CameraKey.KeyCameraType, ComponentIndexType.PORT_1));
|
||||||
// if (value != null && (value == CameraType.ZENMUSE_H20T ||
|
// if (value != null && (value == CameraType.ZENMUSE_H20T ||
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,6 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1.校验飞机状态
|
* 1.校验飞机状态
|
||||||
*/
|
*/
|
||||||
|
|
@ -114,6 +113,7 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
}
|
}
|
||||||
//2.关闭避障
|
//2.关闭避障
|
||||||
PerceptionManager.getInstance().setPerceptionEnable(false);
|
PerceptionManager.getInstance().setPerceptionEnable(false);
|
||||||
|
PerceptionManager.getInstance().setObstacleAvoidanceHorizontalEnabled(false);
|
||||||
//3.清空sd卡
|
//3.清空sd卡
|
||||||
CameraManager.getInstance().formatStorage(null);
|
CameraManager.getInstance().formatStorage(null);
|
||||||
//4.返航或降落状态无法执行航线
|
//4.返航或降落状态无法执行航线
|
||||||
|
|
@ -230,6 +230,11 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
*/
|
*/
|
||||||
public void toGenerateKMZFile(MessageDown message) {
|
public void toGenerateKMZFile(MessageDown message) {
|
||||||
Movement.getInstance().setTask_current_step(16);
|
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);
|
MissionDataBean data = new Gson().fromJson(new Gson().toJson(message.getData()), MissionDataBean.class);
|
||||||
Boolean generateKmz=Generakmztools.getInstance().generateKmz(data);
|
Boolean generateKmz=Generakmztools.getInstance().generateKmz(data);
|
||||||
LogUtil.log(TAG,"生成的boole"+generateKmz);
|
LogUtil.log(TAG,"生成的boole"+generateKmz);
|
||||||
|
|
@ -273,7 +278,6 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
List<WaylineExecuteWaypoint> waypoints = waylines.get(0).getWaypoints();
|
List<WaylineExecuteWaypoint> waypoints = waylines.get(0).getWaypoints();
|
||||||
if (waypoints != null && waypoints.size() > 0) {
|
if (waypoints != null && waypoints.size() > 0) {
|
||||||
//将航点列表保存在本地
|
//将航点列表保存在本地
|
||||||
|
|
||||||
Movement.getInstance().setSpeed(configParseInfo.getGlobalTransitionalSpeed());
|
Movement.getInstance().setSpeed(configParseInfo.getGlobalTransitionalSpeed());
|
||||||
|
|
||||||
CurrentWayline.getInstance().setWaypoints(waypoints);
|
CurrentWayline.getInstance().setWaypoints(waypoints);
|
||||||
|
|
@ -299,8 +303,6 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
public void onProgressUpdate(Double progress) {
|
public void onProgressUpdate(Double progress) {
|
||||||
sendEvent2Server("航线上传进度:" + progress, 1);
|
sendEvent2Server("航线上传进度:" + progress, 1);
|
||||||
Movement.getInstance().setTask_current_step(17);
|
Movement.getInstance().setTask_current_step(17);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -316,7 +318,6 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
/**
|
/**
|
||||||
* 7.开始任务
|
* 7.开始任务
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//自主起飞
|
//自主起飞
|
||||||
Movement.getInstance().setMode_code(4);
|
Movement.getInstance().setMode_code(4);
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
|
|
@ -348,7 +349,6 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
//待机
|
//待机
|
||||||
Movement.getInstance().setMode_code(0);
|
Movement.getInstance().setMode_code(0);
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
|
|
||||||
TaskFailManager.getInstance().sendTaskFailMsg2Server(-1);
|
TaskFailManager.getInstance().sendTaskFailMsg2Server(-1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -388,6 +388,7 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
sendEvent2Server("任务开始执行", 1);
|
sendEvent2Server("任务开始执行", 1);
|
||||||
Movement.getInstance().setTask_current_step(23);
|
Movement.getInstance().setTask_current_step(23);
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
|
Movement.getInstance().setTakeoff_result(0);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(@NonNull IDJIError error) {
|
public void onFailure(@NonNull IDJIError error) {
|
||||||
|
|
@ -406,6 +407,8 @@ public class TakeOffToPointManager extends BaseManager {
|
||||||
}, 2000);
|
}, 2000);
|
||||||
} else {
|
} else {
|
||||||
if (!Movement.getInstance().isPlaneWing()) {
|
if (!Movement.getInstance().isPlaneWing()) {
|
||||||
|
Movement.getInstance().setTakeoff_status("wayline_failed");
|
||||||
|
Movement.getInstance().setTakeoff_result(1);
|
||||||
//待机
|
//待机
|
||||||
Movement.getInstance().setMode_code(0);
|
Movement.getInstance().setMode_code(0);
|
||||||
sendFlightTaskProgress2Server();
|
sendFlightTaskProgress2Server();
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.aros.apron.constant.AMSConfig;
|
import com.aros.apron.constant.AMSConfig;
|
||||||
import com.aros.apron.entity.ArucoMarker;
|
import com.aros.apron.entity.ArucoMarker;
|
||||||
import com.aros.apron.entity.ArucoMarkerDimensions;
|
import com.aros.apron.entity.ArucoMarkerDimensions;
|
||||||
|
|
@ -39,6 +41,13 @@ import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
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 {
|
public class ApronArucoDetect {
|
||||||
|
|
||||||
//是否触发识别(如果丢失图传,此值为false)
|
//是否触发识别(如果丢失图传,此值为false)
|
||||||
|
|
@ -68,10 +77,10 @@ public class ApronArucoDetect {
|
||||||
|
|
||||||
// 【关键修改1】M400下视镜头右后方补偿量(像素,正值向右补偿)
|
// 【关键修改1】M400下视镜头右后方补偿量(像素,正值向右补偿)
|
||||||
// 如果还往左偏就调大,往右偏就调小,建议范围 30-80
|
// 如果还往左偏就调大,往右偏就调小,建议范围 30-80
|
||||||
private static final double LENS_OFFSET_X = 15.0;
|
private static double LENS_OFFSET_X = 0;
|
||||||
private static final double LENS_OFFSET_Y = 20.0;
|
private static double LENS_OFFSET_Y = 0;
|
||||||
// 【关键修改2】放宽居中判定阈值(原40,补偿后改为60更合理)
|
// 【关键修改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 pidControlX = null;
|
||||||
public PIDControl pidControlY = null;
|
public PIDControl pidControlY = null;
|
||||||
|
|
@ -98,7 +107,7 @@ public class ApronArucoDetect {
|
||||||
public boolean isDoublePayload() {
|
public boolean isDoublePayload() {
|
||||||
return isDoublePayload;
|
return isDoublePayload;
|
||||||
}
|
}
|
||||||
|
private Handler riseHandler = new Handler(Looper.getMainLooper());
|
||||||
public void setDoublePayload(boolean doublePayload) {
|
public void setDoublePayload(boolean doublePayload) {
|
||||||
isDoublePayload = doublePayload;
|
isDoublePayload = doublePayload;
|
||||||
}
|
}
|
||||||
|
|
@ -115,6 +124,7 @@ public class ApronArucoDetect {
|
||||||
INSTANCE.init();
|
INSTANCE.init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private int trycount=0;
|
||||||
|
|
||||||
public static ApronArucoDetect getInstance() {
|
public static ApronArucoDetect getInstance() {
|
||||||
return OpenCVHelperHolder.INSTANCE;
|
return OpenCVHelperHolder.INSTANCE;
|
||||||
|
|
@ -123,14 +133,13 @@ public class ApronArucoDetect {
|
||||||
private static final float SLOW_LAND_SPEED = -0.3f; // 远场慢降
|
private static final float SLOW_LAND_SPEED = -0.3f; // 远场慢降
|
||||||
private static final float SLOW_SUPER_SPEED = -0.1f; // 超近慢降
|
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() {
|
public void init() {
|
||||||
pidControlX = 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.015f, 0.12f, 0.05f, 2.0f, 0.05f);
|
pidControlY = new PIDControl(0.6f, 0.08f, 0.18f, 0.05f, 2.5f, 0.04f);
|
||||||
pidControlX.reset();
|
pidControlX.reset();
|
||||||
pidControlY.reset();
|
pidControlY.reset();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -142,7 +151,7 @@ public class ApronArucoDetect {
|
||||||
Movement.getInstance().setVirtualStickEnableReason(2);
|
Movement.getInstance().setVirtualStickEnableReason(2);
|
||||||
//保证一帧进入同时 保证只有一次速降
|
//保证一帧进入同时 保证只有一次速降
|
||||||
if (isStartAruco || startFastStick) {
|
if (isStartAruco || startFastStick) {
|
||||||
// LogUtil.log(TAG, "过滤:" + isStartAruco + startFastStick);
|
LogUtil.log(TAG, "过滤:" + isStartAruco + startFastStick);
|
||||||
if (!isStartAruco && startFastStick) {
|
if (!isStartAruco && startFastStick) {
|
||||||
checkThrowingErrorsTimes++;
|
checkThrowingErrorsTimes++;
|
||||||
}
|
}
|
||||||
|
|
@ -150,11 +159,31 @@ public class ApronArucoDetect {
|
||||||
}
|
}
|
||||||
|
|
||||||
isStartAruco = true;
|
isStartAruco = true;
|
||||||
|
|
||||||
/* 如果上一帧任务还没跑完,直接 cancel */
|
/* 如果上一帧任务还没跑完,直接 cancel */
|
||||||
if (lastFuture != null && !lastFuture.isDone()) {
|
if (lastFuture != null && !lastFuture.isDone()) {
|
||||||
LogUtil.log(TAG, "break---");
|
LogUtil.log(TAG, "break---");
|
||||||
lastFuture.cancel(true);
|
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, "执行了");
|
//LogUtil.log(TAG, "执行了");
|
||||||
|
|
@ -197,6 +226,7 @@ public class ApronArucoDetect {
|
||||||
|
|
||||||
boolean marker6Found = false;
|
boolean marker6Found = false;
|
||||||
if (!ids.empty()) {
|
if (!ids.empty()) {
|
||||||
|
trycount=0;
|
||||||
arucoNotFoundTag = false;
|
arucoNotFoundTag = false;
|
||||||
int[] idArray = ids.toArray();
|
int[] idArray = ids.toArray();
|
||||||
int ultrasonicHeight = Movement.getInstance().getUltrasonicHeight();
|
int ultrasonicHeight = Movement.getInstance().getUltrasonicHeight();
|
||||||
|
|
@ -216,26 +246,36 @@ public class ApronArucoDetect {
|
||||||
double pixelWidth = calculateDistance(points[0], points[1]);
|
double pixelWidth = calculateDistance(points[0], points[1]);
|
||||||
|
|
||||||
// 【关键修改3】降落判断加上镜头偏移补偿(向右补偿)
|
// 【关键修改3】降落判断加上镜头偏移补偿(向右补偿)
|
||||||
double centerX = (points[0].x + points[1].x + points[2].x + points[3].x) / 4.0;
|
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 + 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 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 - LENS_OFFSET_Y); ;
|
double errY = Math.abs(centerY - rgbMat.height() / 2.0 ); ;
|
||||||
|
|
||||||
LogUtil.log(TAG, "像素" + (int) pixelWidth +
|
LogUtil.log(TAG, "像素" + (int) pixelWidth +
|
||||||
" errX=" + (int) errX + " errY=" + (int) errY + " (含偏移" + LENS_OFFSET_X + ")");
|
" errX=" + (int) errX + " errY=" + (int) errY + " (含偏移" + LENS_OFFSET_X + ")");
|
||||||
|
|
||||||
/* 近场 + 对准 + 像素够 → 立即速降 */
|
/* 近场 + 对准 + 像素够 → 延迟0.5s后速降 */
|
||||||
if (!startFastStick &&
|
if (!startFastStick &&
|
||||||
pixelWidth >= PIXEL_TRIGGER &&
|
pixelWidth >= PIXEL_TRIGGER &&
|
||||||
// flyingHeight <= 1 &&
|
// flyingHeight <= 1 &&
|
||||||
ultrasonicHeight <= 4 &&
|
ultrasonicHeight <= 4 &&
|
||||||
errX < CENTER_ERR_MAX &&
|
errX < CENTER_ERR_MAX &&
|
||||||
errY < CENTER_ERR_MAX) {
|
errY < CENTER_ERR_MAX) {
|
||||||
startFastStick = true;
|
|
||||||
handler.post(runnable);
|
startFastStick = true; // 先标记,防止重复触发
|
||||||
LogUtil.log(TAG, "6号居中+近场触发速降 pixel=" + (int) pixelWidth +
|
LogUtil.log(TAG, "6号居中+近场满足条件,0.5s后触发速降 pixel=" + (int) pixelWidth +
|
||||||
" errX=" + (int) errX + " errY=" + (int) errY);
|
" 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;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -253,9 +293,9 @@ public class ApronArucoDetect {
|
||||||
endTime = System.currentTimeMillis();
|
endTime = System.currentTimeMillis();
|
||||||
long lostDuration = endTime - startTime;
|
long lostDuration = endTime - startTime;
|
||||||
//1s到8s内
|
//1s到8s内
|
||||||
if (lostDuration > 700 && lostDuration <= 8000) {
|
if (lostDuration > 1200 && lostDuration <= 8000) {
|
||||||
if (Movement.getInstance().getUltrasonicHeight()<=30) {
|
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())) {
|
if (dropTimes > Integer.parseInt(AMSConfig.getInstance().getAlternateLandingTimes())) {
|
||||||
LogUtil.log(TAG, "超过复降限制,去备降点");
|
LogUtil.log(TAG, "超过复降限制,去备降点");
|
||||||
AlternateLandingManager.getInstance().startTaskProcess(null);
|
AlternateLandingManager.getInstance().startTaskProcess(null);
|
||||||
|
|
@ -394,18 +434,28 @@ public class ApronArucoDetect {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 2. 中心 + 误差(带镜头偏移补偿) */
|
/* 2. 中心 + 误差(带镜头偏移补偿) */
|
||||||
double cx = (pts[0].x + pts[1].x + pts[2].x + pts[3].x) / 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;
|
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);
|
Point screenCenter = new Point(imageWidth / 2.0, imageHeight / 2.0);
|
||||||
|
|
||||||
double errX = (cx - screenCenter.x) + LENS_OFFSET_X; // 向右补偿
|
double errX = (cx - screenCenter.x);
|
||||||
double errY = (cy - screenCenter.y) - LENS_OFFSET_Y; // Y方向不变
|
double errY = (cy - screenCenter.y);
|
||||||
|
|
||||||
/* 3. PID 微调水平 */
|
/* 3. PID 微调水平 */
|
||||||
pidControlX.setInputFilterAll((float) (errX / 700.0));
|
pidControlX.setInputFilterAll((float) (errX / 700.0));
|
||||||
pidControlY.setInputFilterAll((float) (-errY/ 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 */
|
/* 4. 远场慢降:像素 < 1500 且 > 2 m */
|
||||||
double pixelWidth = Math.sqrt(Math.pow(pts[1].x - pts[0].x, 2) +
|
double pixelWidth = Math.sqrt(Math.pow(pts[1].x - pts[0].x, 2) +
|
||||||
|
|
@ -467,7 +517,7 @@ public class ApronArucoDetect {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
performOperation();
|
performOperation();
|
||||||
if (handlerCallbackCount < 20) {
|
if (handlerCallbackCount < 25) {
|
||||||
handler.postDelayed(this, 50); // 每 50 毫秒执行一次,1 秒内执行 20 次
|
handler.postDelayed(this, 50); // 每 50 毫秒执行一次,1 秒内执行 20 次
|
||||||
} else {
|
} else {
|
||||||
performNextStep();
|
performNextStep();
|
||||||
|
|
@ -485,9 +535,18 @@ public class ApronArucoDetect {
|
||||||
canLanding = true;
|
canLanding = true;
|
||||||
handlerCallbackCount = 0;
|
handlerCallbackCount = 0;
|
||||||
dropTimes = 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); // 防止重复执行
|
handler.removeCallbacks(runnable); // 防止重复执行
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@ public class DroneHelper {
|
||||||
virtualStickFlightControlParam.setRollPitchControlMode(RollPitchControlMode.VELOCITY);
|
virtualStickFlightControlParam.setRollPitchControlMode(RollPitchControlMode.VELOCITY);
|
||||||
virtualStickFlightControlParam.setYawControlMode(YawControlMode.ANGULAR_VELOCITY);
|
virtualStickFlightControlParam.setYawControlMode(YawControlMode.ANGULAR_VELOCITY);
|
||||||
virtualStickFlightControlParam.setRollPitchCoordinateSystem(FlightCoordinateSystem.BODY);
|
virtualStickFlightControlParam.setRollPitchCoordinateSystem(FlightCoordinateSystem.BODY);
|
||||||
virtualStickFlightControlParam.setPitch(mPitch);//左右
|
virtualStickFlightControlParam.setPitch(mPitch);
|
||||||
virtualStickFlightControlParam.setRoll(mRoll);//前后
|
virtualStickFlightControlParam.setRoll(mRoll);//前后
|
||||||
virtualStickFlightControlParam.setYaw(mYaw);
|
virtualStickFlightControlParam.setYaw(mYaw);
|
||||||
virtualStickFlightControlParam.setVerticalThrottle(mThrottle);//上下
|
virtualStickFlightControlParam.setVerticalThrottle(mThrottle);//上下
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,86 @@ public class PIDControl {
|
||||||
this.mResetFilter = true;
|
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) {
|
private void filtHz(float hz) {
|
||||||
float abs = Math.abs(hz);
|
float abs = Math.abs(hz);
|
||||||
this.mFoltHz = abs;
|
this.mFoltHz = abs;
|
||||||
|
|
|
||||||
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -299,13 +299,25 @@
|
||||||
tools:ignore="MissingConstraints">
|
tools:ignore="MissingConstraints">
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btn_test"
|
android:id="@+id/btn_test"
|
||||||
android:text="旋转"
|
android:text="向前"
|
||||||
android:layout_width="100dp"
|
android:layout_width="100dp"
|
||||||
android:layout_height="100dp"
|
android:layout_height="100dp"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btn_test1"
|
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_width="100dp"
|
||||||
android:layout_height="100dp"
|
android:layout_height="100dp"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue