From a560fb9cb43a00c2e21b58927aeb52ee2182b71c Mon Sep 17 00:00:00 2001 From: yunhai8432 Date: Thu, 5 Mar 2026 22:57:45 +0800 Subject: [PATCH] 111 --- MDK-ARM/referee.uvguix.yunha | 72 ++++- MDK-ARM/referee.uvoptx | 10 +- MDK-ARM/referee.uvprojx | 10 +- MDK-ARM/referee/cmd_1.o | Bin 16152 -> 16324 bytes MDK-ARM/referee/cmd_behavior.o | Bin 17372 -> 17548 bytes MDK-ARM/referee/config.o | Bin 0 -> 10496 bytes MDK-ARM/referee/init.o | Bin 0 -> 3988 bytes MDK-ARM/referee/referee.build_log.htm | 94 +------ MDK-ARM/referee/referee.lnp | 6 +- MDK-ARM/referee/referee.map | 180 ++++++++++-- MDK-ARM/referee/referee.o | Bin 0 -> 50408 bytes MDK-ARM/referee/referee_1.o | Bin 0 -> 20164 bytes MDK-ARM/referee/referee_referee.dep | 70 ++--- User/component/cmd.c | 387 -------------------------- User/component/cmd.h | 318 --------------------- User/module/cmd/cmd.h | 26 +- User/module/cmd/cmd_example.c | 2 +- 17 files changed, 306 insertions(+), 869 deletions(-) create mode 100644 MDK-ARM/referee/config.o create mode 100644 MDK-ARM/referee/init.o create mode 100644 MDK-ARM/referee/referee.o create mode 100644 MDK-ARM/referee/referee_1.o delete mode 100644 User/component/cmd.c delete mode 100644 User/component/cmd.h diff --git a/MDK-ARM/referee.uvguix.yunha b/MDK-ARM/referee.uvguix.yunha index 188229a..79048bf 100644 --- a/MDK-ARM/referee.uvguix.yunha +++ b/MDK-ARM/referee.uvguix.yunha @@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- D:\yunha\git\RM\referee\User\module\cmd + D:\yunha\git\RM\referee\User\task @@ -110,8 +110,8 @@ 0 - 302 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000027443A5C79756E68615C6769745C524D5C726566657265655C557365725C7461736B5C636D642E630000000005636D642E6300000000C5D4F200FFFFFFFF2D443A5C79756E68615C6769745C524D5C726566657265655C557365725C6D6F64756C655C636D645C636D642E630000000005636D642E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B800000066000000A00500009F020000 + 776 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000070000000100000027443A5C79756E68615C6769745C524D5C726566657265655C557365725C7461736B5C636D642E630000000005636D642E6300000000C5D4F200FFFFFFFF2D443A5C79756E68615C6769745C524D5C726566657265655C557365725C6D6F64756C655C636D645C636D642E630000000005636D642E6300000000FFDC7800FFFFFFFF2D443A5C79756E68615C6769745C524D5C726566657265655C557365725C6465766963655C726566657265652E630000000009726566657265652E6300000000BECEA100FFFFFFFF36443A5C79756E68615C6769745C524D5C726566657265655C557365725C6D6F64756C655C636D645C636D645F6265686176696F722E63000000000E636D645F6265686176696F722E6300000000F0A0A100FFFFFFFF35443A5C79756E68615C6769745C524D5C726566657265655C557365725C6D6F64756C655C636D645C636D645F6578616D706C652E63000000000D636D645F6578616D706C652E6300000000BCA8E100FFFFFFFF28443A5C79756E68615C6769745C524D5C726566657265655C557365725C7461736B5C696E69742E630000000006696E69742E63000000009CC1B600FFFFFFFF35443A5C79756E68615C6769745C524D5C726566657265655C557365725C6D6F64756C655C636D645C636D645F616461707465722E68000000000D636D645F616461707465722E6800000000F7B88600FFFFFFFF35443A5C79756E68615C6769745C524D5C726566657265655C557365725C6D6F64756C655C636D645C636D645F616461707465722E63000000000D636D645F616461707465722E6300000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000B800000066000000A00500009F020000 @@ -1805,8 +1805,8 @@ 59392 File - 2914 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001055495F4155544F5F41494D5F53544F50960000000000000012001055495F4155544F5F41494D5F53544F500E434D445F55495F4E4F5448494E470455495F740E5261646465725F4449525F52706D0D576865656C5F4449525F52706D0B6D6F746F726F66667365740E434841535349535F4D4F44455F740E576865656C5F4449525B695D2D3E0F5261646465725F4449525B695D2D3E0D576865656C5F4449525F6F75740E5261646465725F4449525F6F75740D54656C6573636F70655F6F757413726F746F72363032305F6A69657375616E5F3213726F746F72333530385F6A69657375616E5F3213726F746F72333530385F6A69657375616E5F3113726F746F72363032305F6A69657375616E5F3112726F746F72333530385F6A69657375616E321643414E5F4341505F5354415455535F4F46464C494E45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2928 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001055495F4155544F5F41494D5F53544F509600000000000000130009636D645F65743136731055495F4155544F5F41494D5F53544F500E434D445F55495F4E4F5448494E470455495F740E5261646465725F4449525F52706D0D576865656C5F4449525F52706D0B6D6F746F726F66667365740E434841535349535F4D4F44455F740E576865656C5F4449525B695D2D3E0F5261646465725F4449525B695D2D3E0D576865656C5F4449525F6F75740E5261646465725F4449525F6F75740D54656C6573636F70655F6F757413726F746F72363032305F6A69657375616E5F3213726F746F72333530385F6A69657375616E5F3213726F746F72333530385F6A69657375616E5F3113726F746F72363032305F6A69657375616E5F3112726F746F72333530385F6A69657375616E321643414E5F4341505F5354415455535F4F46464C494E4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3603,12 +3603,12 @@ 0 100 - 1 + 7 ..\User\task\cmd.c - 23 - 1 - 23 + 17 + 31 + 32 1 0 @@ -3616,12 +3616,66 @@ ..\User\module\cmd\cmd.c 0 + 70 + 1 + 1 + + 0 + + + ..\User\device\referee.c + 0 + 28 + 1 + 1 + + 0 + + + ..\User\module\cmd\cmd_behavior.c + 0 1 1 1 0 + + ..\User\module\cmd\cmd_example.c + 0 + 1 + 1 + 1 + + 0 + + + ..\User\task\init.c + 25 + 43 + 12 + 1 + + 0 + + + ..\User\module\cmd\cmd_adapter.h + 36 + 79 + 94 + 1 + + 0 + + + ..\User\module\cmd\cmd_adapter.c + 18 + 105 + 204 + 1 + + 0 + diff --git a/MDK-ARM/referee.uvoptx b/MDK-ARM/referee.uvoptx index 3c812be..a10f61e 100644 --- a/MDK-ARM/referee.uvoptx +++ b/MDK-ARM/referee.uvoptx @@ -892,7 +892,7 @@ component - 1 + 0 0 0 0 @@ -1267,8 +1267,8 @@ 0 0 0 - ..\User\task\cmd.c - cmd.c + ..\User\task\gimbal_ctrl.c + gimbal_ctrl.c 0 0 @@ -1279,8 +1279,8 @@ 0 0 0 - ..\User\task\gimbal_ctrl.c - gimbal_ctrl.c + ..\User\task\cmd.c + cmd.c 0 0 diff --git a/MDK-ARM/referee.uvprojx b/MDK-ARM/referee.uvprojx index 101b4c0..9307b93 100644 --- a/MDK-ARM/referee.uvprojx +++ b/MDK-ARM/referee.uvprojx @@ -982,16 +982,16 @@ 1 ..\User\task\referee.c - - cmd.c - 1 - ..\User\task\cmd.c - gimbal_ctrl.c 1 ..\User\task\gimbal_ctrl.c + + cmd.c + 1 + ..\User\task\cmd.c + shoot_ctrl.c 1 diff --git a/MDK-ARM/referee/cmd_1.o b/MDK-ARM/referee/cmd_1.o index 59b0ba8a79c7f332feb3982a8e8707cc111016e3..3e1fd5af529fc4ca64c5a7b88a904aa2e806212a 100644 GIT binary patch delta 4569 zcmYM232;@_8OP7L+j;j9!%IjZLLy7x1z7^2fFY0&mOuz(VU@N-63CNeAOW(lh;V~Y z31KOC=)fQqsvU|7t&*0dwJHjNcF`7>5j$g;A}G*mZATaeX#d}R--XPa^ZS3_`Je5+ zd(V9@d)A%ycJwm#jo8`eO!~T(n_DBIcgxLfkuDvZ{Yd&zLPzmBZOMGMN4C+Co-I1k z+Na9zD>+Mhp}d4wq!5;{%Y+c$>2skz4_tJF_yZ#2LP%ZLH$qe7pY%94&3gxVb8F)7 zfYatmbsd)Z=xeSPYKL4CJubPCL; z)mX&8LNPZ9bq(A=Q?>S0t>D87dh;0JiB8q%VlPEiPvb9k`kIyMKN#{CG}Hp2x`D?@ z$1GJ3-X*;#Mg0=YF`#Qxg-L6$;+yVlq9LU0w}5%%Ep#Ggfy#iqLE$)|h6j4QXQ})k zm=IDWfu5Kk!dVC`%XTrxUP!apvCPS;88S-K773*TJ;e}qHj-`BB_X^9P=-ALna5~T z6^?6`sCHz3Lp{rcnhcWm%yOw_a$rt3R3-GcDCR6v9S`(uOPvYy99w+|ol4`*b<_mV z*FR9IJkUQ33HuG0=(#~>U#{z`=Hfrg8h7Mu;2BUh^v2>*^E zpAhN{_%-RZmYQe@@e>r;(n}o$i>S-Sq3V6;#iYGW!-e@J+y9c!I5 zS*^|?9717Cs7rxV?7hGN^42>MxmZnxJWk;fq1J=F zX>)Z6!hQ=uGc}YsVOiuaq%*Zmi7&+SgJMJd2p(TgwNwQ(T@yLYQL#XmC{-8eQY^MR zMwy93XjHfaunl_OABovNWUh8Hlf`Z2{UU)n|||P+Jw+=uW?aL@3`riQFeBW;#xk z?#e^UMijFL9zLW$rlvH@6ZS=@cTw!gPA@xGO@*Z8*kgpM0O={U^DMOhdInA|JKt6> zL9ZfR5K>12JuX50HqhfE>O`O?q^MJYE=*Nt0zD~B*cBr%3T?>F;HUH4R^2-gK%PvMG$h!Q74KBRweqQ$cp*oIVMxX2$CpWu4SaJw}#SZIX#WiAxeA% zl{^X69F#6{_AJVNK(~MpDOAlskri90ccT2BEcd%5Qn#*i$lG}UCW>2&eCzXM9eB?= zFmCn8JLtZ*&G()l@5FoFiR6usHNbEGGqtakNxKpG6R*ARsPP?_$gxc(y%#vP`Sal& zAdKxp?k#Q5W4`+qxu26scLMiw{&@b?tMnb6spA)XnTFzK@u&TQY~7Y2oKNl7hhyNb zt4LlO1)18Q*C(ZV{ zG+U1_?%)mNNRoy3_L1y&97gHG_b%IEe-jVVLoU*MLm?UZ1S8MENd7kZ#7BM-@k`{$ z@TbP(hw+QGKksS7Xi6h9=QmTi=vDa({Un8R>{bax~0|4OJX7`Ysl=zSi?Nsnm%|~V^c%(!lwC6tCz*9V~=Om;2j_q)>Jh% z);1!*k+-O}Zb8+OxW-&do7%6W7lxDeUAe0uldf@elWFR@{@uKR*fM#C zG4q&3%vsDz<`U*A=0@fY=04^j=1Jx`=3kifeFpO`5EnQ>-yvurmzmd@H<%7KPwffJ zWM(>Z5OWwahncTq4-fG+aMZ^9Df0mHFq6Ji&@88!A27dS{+IbbW+!|KUXv7m&b-FF!8CCr8&NzYDZaoH#*8wv znd6xy%(=`MlU`9Y(HiDf=5FR8W;^qB=6ggB9Y5p5WhT9&Xu!M7uoI8FGW#&;RYbmA z<|O8$%*UBam<`OeO#12J(Eyqg`bzW(pDgdlPY#_hSy^{0L?Na~iQbAHU!n|2>ESD%r4@xsuoe zHx+X|=eIC-6LGjd%cK*S7V;ty3qHc}Nn$#F?K0oy{2z(%dGB-L0`oHQAtA0Zzv28% zB0AjWIOHPkiBpG}OvD0u65-3>IE&+99Op5M;`Brr2@EugIhR>M#6VR<47`N%%b3mF zzM9)N5qk--g}IaS`-vFm1&)8sal0Sm^M8{>Z=7t*_xuJSK4f+f`v`G~d6n}wi5U1c z$0583DNZ0_!RgGt%wpzrCcP$&_D{3Q9HTN@4;Zn+5K;a7h*Bdps=oz#MfLcRrAGg# zerDtfV`x-|A6a4KMDf)SIqdcnj0&}DKDo`2KxuZ&rny79AmPPdi zU{zEP$SsvEdUbA@Y}N0gKA|5Ry;8oZcaAQT=k!I?9XfkVnfy|(A5&(eX6nCW~S5FFO8A`sd70)hitj_vk;*IruB delta 4446 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 X#E3xy@plS--0(pnFp~XA7YzOng8om? delta 4540 zcmZ9P3vd2q8BiCRZLI5`>V1yn#R3c&Xk8O9R>?6b&6=ABApg21-1Wg@3#}j%eys|-V4atJHQr}dvr~8R2h+U@%5iN`gA%t0tVoz6cRHBrd+~IbX<0v6c z>$BA%n0n&U=L$8+5aROybe*o6pwo5e1wr)}lXXLd`VzXD{EJqryU^Dpbjw<+SYN8X zMLYtR-YC=&ONba;dQ-ZZh_T)#{d@tE@n~(9^g~&SG4yIHq>oca5ssy9D}_qO6go*) z>FNdO3#6wch=4aP-IXrPS#EZ8uCoKdLYi@o71Xm-Hsl$qA0kwVud{Vk>FdXpddAm7 zV?=a50$n%%iZ(-OGGnYLeYo0y>?Eqm6{-)`z|$k8%Jg-friMXpcE~g;pf*uJx=>fU zd|hOy{m@;MFELeb^zZ3XOQrj|ObL@F6a%A?8+98`Ng7%9D@X}@2TE!G45eltLK(16 zqSWonC=L4-O2-uDPH+{Pn<M2NXX`c~lhOeDxbu|+~5;d8Ld(rSVyo*cqFoz&_ z4lje;XywWkstvX#q~uDW)LL4wnK)6R$p1C)jGT_zJbphn{E#km#NL@$SOLr*glL{*zZu*K8;ed&!Y?oGYgnS3$WA* z%0N zECqJcw;~G-&!s8lxOt zWg@r?uTf~IMreu4C|0W7*CjD(rLRkaYL&0c64ZKMk4{t_z8=$8nAg$a(?}To`6t=W zegdJei^yeHqQr0NjE4JfhE_qdH;{+VoStSS>M7l~6^h)}FjVWQxGm~nFnnf}m0*tb zZiPM^W`$74QPqjd94A#2EcB+D<8>A9>q@1PeLW#YJ*tEgF-;5#a|c@fn_6e^XCT#n zAEB`Sgi_kqP-4oz1(u)>J=4c&I?b~v@ZCH8O_LHqhI^GJ$ zdtDWEdm{IFnmpy))il4Wa?eI{!bhIE`jTul5u3M|XT0?PC|xV*Nz1sOqV)uNgtZS) z#vMjDl|pBp7kA)IrE^47-51FA`WSKsRWGF0y&l4gQ%~V@6hcG=F-&g z=iMUNWz9hH?vqp@<1V4cPNbvuZAVG3F?aR`b%q_fjEaB3Yi`GgV<7a_V2nhiLFXiI z>s!;6nvkS-wIuGfx)MSSGB|TdW8JdF^&%^4$Wtx#%|qPI)Y_r*8s@gNENsbYpeL|k z;gZ_9izB+Fp|P=*Woz@Yd9AZsS2Wev)z9w=rTsT5b~@Ho%S03A5;t{FO6+=$wlR0R zGX|wNXF0mW{5$h&=6$Ax+onF_nJLVH%n{5o=2Yf9CLO-0eIs*OgpQzt8&$l>q%#%8 zbhIJzH(=BHu=)%iO~}z&y_Un0bNdpy5?cJYYs+`=SnGnRFneIGGt{<}izxlbO#l7cg6x zbO@q;HZgaA4kh+;f=(zD(;0>MA@d^hGv+PkJ*JLbko>)vA?D-E0_Ip|HM7pd50e@; za^eN%2Byp0!#uz|&isIRp7}TC*UUT2`%Ke{Of;6+*TVCs34}Q@l3C82%$&(=V74+> zGq*AKGT&exWYU&Rgrd146v zr7}My((nH|33PCSi1-f2_c+$Eg;2dBqMmj`ihFaM#&HJ6Ly4(E3}+T_ejE|)CUQI- zbSN>C6ARd|h~qYnS8}|Lh>l-kZsGhcj(^U4o%2VCX+j)jzQg&Ch#2?xw&>^G(M3vR z;C#-8yUggWkvTU_Lp_22y4}>$c()*Lqs(YZ-IoTat&@QLD`%unt zlSj472KQBzO>U3EcDdYLSJ?;6&Ip zORBV!VRu?dl{=^)#ywI}u3ZYdcT1{dwmZ7CTE@A%O8Xn1JSN0R_kF0(;)U4hzEu|Q zJ}3=pTZg(m%QB1=_?>pRBg^{BfLl|RY2@Q&5T0pwSy1M?hsrXw?J4fXvJ7o+j{6;O hB;;n4XJ}i8xmD#EiTklMTd_;w^dJV{(s2cG{U0^8B_sd< diff --git a/MDK-ARM/referee/config.o b/MDK-ARM/referee/config.o new file mode 100644 index 0000000000000000000000000000000000000000..a89c5ba6b91f7c5143ac507b56f49505aac34da5 GIT binary patch literal 10496 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 literal 0 HcmV?d00001 diff --git a/MDK-ARM/referee/init.o b/MDK-ARM/referee/init.o new file mode 100644 index 0000000000000000000000000000000000000000..c39a289c7cd80fb9e4a242a593ad5f7a147c2e03 GIT binary patch literal 3988 zcmbVOU2GIp6h1TCS<1Fu+d}21EuFRtR7huAs0Ax(`4K3kq>^G9EVi?|)9r@+X=Z0D z7=k}hqsEYEc<`w-koaIs@I_+`Dlt50Vw4c$1HRN36MZldO(Y?)e&^2I-C^P;#+%N5 z=R4=SXYM`s&b@u%$)g7qMIqS~>Y)lFa_U7y8xYV#YY}byXyvcJSBCEp;Zd&x@u<}4 zd27IG^clqdB|cNdzf{G)T*a@ORq|KyFIDj`SMlqKD)|$t9_gemp6e3q0neUEs`^^# zhpkIHrRpKiUWR^B>Md0tlN#8H^v|k#qtwG+@3Xt59-3O|hg~E6=}I0Qw(9w3eE#Kh zxcsggci$qOhkP18b9aGU|1hXR;|#aq3(*y2+*QEeq->6^(L&M2aBH+lX+~T%;A~cg zBcbR}-J^9|>z}~h32CH;UB}28qM8Rd!67^$k*P+!tDbfVMl|XnzfWbG4dv8nSjr|v z5uHkcjBvDu_7`&Vg}jw_hV;G1$8@HdtYzziM*pBbQ7B}Gbkoiyvt~Z6Kl5;E)=KQ^ z>pMk;5kFD1?6_kVPfum?8OKP{fuX6hrTm;ZmCiU*$H%5@Yu2(YYijJkXfJZp1hms5 z(2{AVOF6ug{_pGe9>(BJ%S>cQc^u~c9Y)_Hq$LZsW1Z>E4N$mY)mSa9RwLmkp{VLw zwT0Fx>y-`4Mx|A0LoK?Ln6gFTa`M=eRWKS+EB;(p&_bk~i`F;bd#yCC<-Ta`1?3f$ zw!#k4HUt&rUbF$f;t=3!`)fnw6$b$#O)N>MUC~03om%&p))}sy3}4bZ0NSQ-Tx;_i z;2W8Dz-VV-Tx(?>gVDvtW*FUUY=IGDqa(Zn(nU=V_aWaR^2gz;pbpOdcEnqO?mMgN zyP@w4FG8)0UOYlpi>z)g{IahL8Ys0;_?Xr*3OJ%E;ZapZVJZdmtUrCO8v1=@rzne* zxf{E}f}B^X(n3^QA+SPJ7vSQHDf>dyL@6*H0Y}h!5YVMM;Kd(qQE}zW=8P!z(^NS8^>cr zI{SfJm^YF5dgHA`2K&KxFoN#}az8#<;z+uW5y=j69Q+6)_&AVtPjeiTILX*f^eo50 z6O7<v-QsboX3kZ1Z@JhXWoCdwA5tNe@#V&U<*y!`D5$=;4xw zA9(nQhc`U@hOvX_CSxbj_l(^bB-%C{FJYjnxo5u$g3{p9CBjrl#qolv3%-dFdQ45= zRu8v(*w2W5LyR@<{$b8{h>BwiTSoNb%bN30p*Ut0i)Pw-s$`X{W7c!^hYz`U8LQdSAhHYgH++2orCX+fNf=1OJyQcTjqGOXt;*KGcpDnl@igSg6Go5totlP`SMZ)BqSuAFXKE-_=p-E?Q z2{Y@H_#K7fsAcD^?1_A~kUWioxb!F!BVTYV4!Q zlxsU-*||*KbS(c2vzfd_{NK#9UCKL|+_zsm#>Q2J3S~`Ia_WohKm(O_~59|2W9>#<2 z^DhIrHA2IFIcAw}4}AW7*Fadu`S976^ZkNkzTwb%{oBPNWypDY5!DZtZKRZ2?y2nwF-BRSmSl5pq zM%fl*;XH?o@x6o4yk9pd2~g@T2lCxSryie9uE!#D{`tnRuNtA_`Qn-?&-c|pzPre` mUA_!DX}%Q5H-LO{eQ_<9^Mz0^{FPe_i$4wr=aF^har^_aor)6x literal 0 HcmV?d00001 diff --git a/MDK-ARM/referee/referee.build_log.htm b/MDK-ARM/referee/referee.build_log.htm index c99fd5e..811db5b 100644 --- a/MDK-ARM/referee/referee.build_log.htm +++ b/MDK-ARM/referee/referee.build_log.htm @@ -37,90 +37,14 @@ Note: source file '..\User\task\et16s.c' - object file renamed from 'referee\et1 Note: source file '..\User\task\referee.c' - object file renamed from 'referee\referee.o' to 'referee\referee_1.o'. Note: source file '..\User\task\cmd.c' - object file renamed from 'referee\cmd.o' to 'referee\cmd_1.o'. Note: source file '..\User\module\cmd\cmd.c' - object file renamed from 'referee\cmd.o' to 'referee\cmd_1.o'. -../User/task/init.c(15): warning: In file included from... -../User\device/referee.h(632): error: unknown type name 'CMD_Screen_t' - const CMD_Screen_t *screen; - ^ -../User\device/referee.h(715): error: unknown type name 'CMD_Screen_t' - const CMD_Screen_t *screen); - ^ -../User\device/referee.h(728): error: unknown type name 'CMD_UI_t' -uint8_t Referee_PraseCmd(Referee_UI_t *ref_ui, CMD_UI_t cmd); - ^ -../User/task/init.c(72): error: use of undeclared identifier 'CMD_UI_t'; did you mean 'CMD_Init'? - task_runtime.msgq.cmd.referee =osMessageQueueNew(6u, sizeof(CMD_UI_t), NULL); - ^~~~~~~~ - CMD_Init -../User\module/cmd/cmd.h(128): note: 'CMD_Init' declared here -int8_t CMD_Init(CMD_t *ctx, CMD_Config_t *config); - ^ -4 errors generated. -compiling init.c... -../User/device/referee.c(14): warning: In file included from... -../User\device\referee.h(632): error: unknown type name 'CMD_Screen_t' - const CMD_Screen_t *screen; - ^ -../User\device\referee.h(715): error: unknown type name 'CMD_Screen_t' - const CMD_Screen_t *screen); - ^ -../User\device\referee.h(728): error: unknown type name 'CMD_UI_t' -uint8_t Referee_PraseCmd(Referee_UI_t *ref_ui, CMD_UI_t cmd); - ^ -../User/device/referee.c(64): error: unknown type name 'CMD_Screen_t' - const CMD_Screen_t *screen) { - ^ -../User/device/referee.c(570): error: unknown type name 'CMD_UI_t' -uint8_t Referee_PraseCmd(Referee_UI_t *ref_ui, CMD_UI_t cmd) { - ^ -../User/device/referee.c(573): error: use of undeclared identifier 'UI_NOTHING' - case UI_NOTHING: - ^ -../User/device/referee.c(590): error: use of undeclared identifier 'UI_AUTO_AIM_START' - case UI_AUTO_AIM_START: - ^ -../User/device/referee.c(597): error: use of undeclared identifier 'UI_AUTO_AIM_STOP' - case UI_AUTO_AIM_STOP: - ^ -8 errors generated. -compiling referee.c... -compiling cmd_adapter.c... -../User/module/cmd/cmd.c(118): warning: implicit conversion from enumeration type 'CHASSIS_ATTITUDE_MODE_t' to different enumeration type 'Chassis_Mode_t' [-Wenum-conversion] - ctx->output.chassis.cmd.mode = STOP_MODE; - ~ ^~~~~~~~~ -1 warning generated. -compiling cmd.c... -compiling cmd_example.c... -../User/module/config.c(330): error: field designator 'screen' does not refer to any field in type 'CMD_Config_t' - .screen={ - ^ -1 error generated. -compiling config.c... -../User/task/referee.c(9): warning: In file included from... -../User\device/referee.h(632): error: unknown type name 'CMD_Screen_t' - const CMD_Screen_t *screen; - ^ -../User\device/referee.h(715): error: unknown type name 'CMD_Screen_t' - const CMD_Screen_t *screen); - ^ -../User\device/referee.h(728): error: unknown type name 'CMD_UI_t' -uint8_t Referee_PraseCmd(Referee_UI_t *ref_ui, CMD_UI_t cmd); - ^ -../User/task/referee.c(20): error: unknown type name 'CMD_UI_t' -CMD_UI_t ref_cmd; -^ -../User/task/referee.c(54): error: no member named 'screen' in 'CMD_Config_t' - Referee_Init(&ref, &ui,&Config_GetRobotParam()->cmd_param.screen); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ -5 errors generated. -compiling referee.c... -compiling cmd_behavior.c... -../User/module/cmd/cmd.c(118): warning: implicit conversion from enumeration type 'CHASSIS_ATTITUDE_MODE_t' to different enumeration type 'Chassis_Mode_t' [-Wenum-conversion] - ctx->output.chassis.cmd.mode = STOP_MODE; - ~ ^~~~~~~~~ -1 warning generated. -compiling cmd.c... -compiling shoot.c... -"referee\referee.axf" - 18 Error(s), 2 Warning(s). +linking... +referee\referee.axf: Warning: L6304W: Duplicate input file referee\cmd_1.o ignored. +referee\referee.axf: Error: L6218E: Undefined symbol Task_cmd (referred from init.o). +referee\referee.axf: Error: L6218E: Undefined symbol cmd_et16s (referred from cmd_adapter.o). +Not enough information to list image symbols. +Not enough information to list load addresses in the image map. +Finished: 2 information, 1 warning and 2 error messages. +"referee\referee.axf" - 2 Error(s), 1 Warning(s).

Software Packages used:

@@ -145,7 +69,7 @@ Package Vendor: Keil * Component: ARM::CMSIS:CORE:5.4.0 Include file: CMSIS\Core\Include\tz_context.h Target not created. -Build Time Elapsed: 00:00:03 +Build Time Elapsed: 00:00:02 diff --git a/MDK-ARM/referee/referee.lnp b/MDK-ARM/referee/referee.lnp index 59b1018..be12424 100644 --- a/MDK-ARM/referee/referee.lnp +++ b/MDK-ARM/referee/referee.lnp @@ -80,8 +80,8 @@ "referee\vofa_1.o" "referee\et16s_1.o" "referee\referee_1.o" -"referee\cmd_1.o" "referee\gimbal_ctrl.o" +"referee\cmd_1.o" "referee\shoot_ctrl.o" "referee\chassis_ctrl.o" "referee\user_task.o" @@ -90,6 +90,10 @@ "referee\chassis.o" "referee\gimbal.o" "referee\shoot.o" +"referee\cmd_1.o" +"referee\cmd_adapter.o" +"referee\cmd_behavior.o" +"referee\cmd_example.o" --strict --scatter "referee\referee.sct" --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers diff --git a/MDK-ARM/referee/referee.map b/MDK-ARM/referee/referee.map index 04fd128..597982b 100644 --- a/MDK-ARM/referee/referee.map +++ b/MDK-ARM/referee/referee.map @@ -4406,24 +4406,6 @@ Section Cross References referee_1.o(.text.Task_referee) refers to referee.o(.text.Referee_UIRefresh) for Referee_UIRefresh referee_1.o(.text.Task_referee) refers to referee.o(.text.Referee_PraseCmd) for Referee_PraseCmd referee_1.o(.ARM.exidx.text.Task_referee) refers to referee_1.o(.text.Task_referee) for [Anonymous Symbol] - cmd_1.o(.text.Task_cmd) refers to cmsis_os2.o(.text.osKernelGetTickFreq) for osKernelGetTickFreq - cmd_1.o(.text.Task_cmd) refers to dflt_clz.o(x$fpl$dfltu) for __aeabi_ui2d - cmd_1.o(.text.Task_cmd) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv - cmd_1.o(.text.Task_cmd) refers to dfixu.o(x$fpl$dfixu) for __aeabi_d2uiz - cmd_1.o(.text.Task_cmd) refers to cmsis_os2.o(.text.osDelay) for osDelay - cmd_1.o(.text.Task_cmd) refers to cmsis_os2.o(.text.osKernelGetTickCount) for osKernelGetTickCount - cmd_1.o(.text.Task_cmd) refers to config.o(.text.Config_GetRobotParam) for Config_GetRobotParam - cmd_1.o(.text.Task_cmd) refers to cmd_1.o(.bss.cmd) for cmd - cmd_1.o(.text.Task_cmd) refers to user_task.o(.bss.task_runtime) for task_runtime - cmd_1.o(.text.Task_cmd) refers to cmd_1.o(.bss.cmd_for_chassis) for cmd_for_chassis - cmd_1.o(.text.Task_cmd) refers to cmd_1.o(.bss.cmd_for_gimbal) for cmd_for_gimbal - cmd_1.o(.text.Task_cmd) refers to cmd_1.o(.bss.cmd_for_shoot) for cmd_for_shoot - cmd_1.o(.text.Task_cmd) refers to cmd_1.o(.bss.cmd_et16s) for cmd_et16s - cmd_1.o(.text.Task_cmd) refers to cmsis_os2.o(.text.osMessageQueueGet) for osMessageQueueGet - cmd_1.o(.text.Task_cmd) refers to cmsis_os2.o(.text.osMessageQueueReset) for osMessageQueueReset - cmd_1.o(.text.Task_cmd) refers to cmsis_os2.o(.text.osMessageQueuePut) for osMessageQueuePut - cmd_1.o(.text.Task_cmd) refers to cmsis_os2.o(.text.osDelayUntil) for osDelayUntil - cmd_1.o(.ARM.exidx.text.Task_cmd) refers to cmd_1.o(.text.Task_cmd) for [Anonymous Symbol] gimbal_ctrl.o(.text.Task_gimbal_ctrl) refers to cmsis_os2.o(.text.osKernelGetTickFreq) for osKernelGetTickFreq gimbal_ctrl.o(.text.Task_gimbal_ctrl) refers to dflt_clz.o(x$fpl$dfltu) for __aeabi_ui2d gimbal_ctrl.o(.text.Task_gimbal_ctrl) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv @@ -4432,6 +4414,39 @@ Section Cross References gimbal_ctrl.o(.text.Task_gimbal_ctrl) refers to cmsis_os2.o(.text.osKernelGetTickCount) for osKernelGetTickCount gimbal_ctrl.o(.text.Task_gimbal_ctrl) refers to cmsis_os2.o(.text.osDelayUntil) for osDelayUntil gimbal_ctrl.o(.ARM.exidx.text.Task_gimbal_ctrl) refers to gimbal_ctrl.o(.text.Task_gimbal_ctrl) for [Anonymous Symbol] + cmd_1.o(.text.CMD_Init) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 + cmd_1.o(.text.CMD_Init) refers to cmd_adapter.o(.text.CMD_Adapter_InitAll) for CMD_Adapter_InitAll + cmd_1.o(.text.CMD_Init) refers to cmd_behavior.o(.text.CMD_Behavior_Init) for CMD_Behavior_Init + cmd_1.o(.ARM.exidx.text.CMD_Init) refers to cmd_1.o(.text.CMD_Init) for [Anonymous Symbol] + cmd_1.o(.text.CMD_UpdateInput) refers to cmd_adapter.o(.text.CMD_Adapter_GetInput) for CMD_Adapter_GetInput + cmd_1.o(.ARM.exidx.text.CMD_UpdateInput) refers to cmd_1.o(.text.CMD_UpdateInput) for [Anonymous Symbol] + cmd_1.o(.ARM.exidx.text.CMD_RC_BuildChassisCmd) refers to cmd_1.o(.text.CMD_RC_BuildChassisCmd) for [Anonymous Symbol] + cmd_1.o(.ARM.exidx.text.CMD_RC_BuildGimbalCmd) refers to cmd_1.o(.text.CMD_RC_BuildGimbalCmd) for [Anonymous Symbol] + cmd_1.o(.ARM.exidx.text.CMD_RC_BuildShootCmd) refers to cmd_1.o(.text.CMD_RC_BuildShootCmd) for [Anonymous Symbol] + cmd_1.o(.text.CMD_PC_BuildChassisCmd) refers to cmd_behavior.o(.text.CMD_Behavior_ProcessAll) for CMD_Behavior_ProcessAll + cmd_1.o(.ARM.exidx.text.CMD_PC_BuildChassisCmd) refers to cmd_1.o(.text.CMD_PC_BuildChassisCmd) for [Anonymous Symbol] + cmd_1.o(.text.CMD_PC_BuildGimbalCmd) refers to cmd_behavior.o(.text.CMD_Behavior_ProcessAll) for CMD_Behavior_ProcessAll + cmd_1.o(.ARM.exidx.text.CMD_PC_BuildGimbalCmd) refers to cmd_1.o(.text.CMD_PC_BuildGimbalCmd) for [Anonymous Symbol] + cmd_1.o(.text.CMD_PC_BuildShootCmd) refers to cmd_behavior.o(.text.CMD_Behavior_ProcessAll) for CMD_Behavior_ProcessAll + cmd_1.o(.ARM.exidx.text.CMD_PC_BuildShootCmd) refers to cmd_1.o(.text.CMD_PC_BuildShootCmd) for [Anonymous Symbol] + cmd_1.o(.text.CMD_Arbitrate) refers to cmd_behavior.o(.text.CMD_Behavior_ProcessAll) for CMD_Behavior_ProcessAll + cmd_1.o(.ARM.exidx.text.CMD_Arbitrate) refers to cmd_1.o(.text.CMD_Arbitrate) for [Anonymous Symbol] + cmd_1.o(.text.CMD_GenerateCommands) refers to time.o(.text.BSP_TIME_Get_us) for BSP_TIME_Get_us + cmd_1.o(.text.CMD_GenerateCommands) refers to ffltll_clz.o(x$fpl$ffltll) for __aeabi_ul2f + cmd_1.o(.text.CMD_GenerateCommands) refers to cmd_1.o(.text.CMD_SetOfflineMode) for CMD_SetOfflineMode + cmd_1.o(.text.CMD_GenerateCommands) refers to cmd_1.o(.data.sourceHandlers) for sourceHandlers + cmd_1.o(.ARM.exidx.text.CMD_GenerateCommands) refers to cmd_1.o(.text.CMD_GenerateCommands) for [Anonymous Symbol] + cmd_1.o(.ARM.exidx.text.CMD_SetOfflineMode) refers to cmd_1.o(.text.CMD_SetOfflineMode) for [Anonymous Symbol] + cmd_1.o(.text.CMD_Update) refers to cmd_1.o(.text.CMD_UpdateInput) for CMD_UpdateInput + cmd_1.o(.text.CMD_Update) refers to cmd_1.o(.text.CMD_Arbitrate) for CMD_Arbitrate + cmd_1.o(.text.CMD_Update) refers to cmd_1.o(.text.CMD_GenerateCommands) for CMD_GenerateCommands + cmd_1.o(.ARM.exidx.text.CMD_Update) refers to cmd_1.o(.text.CMD_Update) for [Anonymous Symbol] + cmd_1.o(.data.sourceHandlers) refers to cmd_1.o(.text.CMD_RC_BuildChassisCmd) for CMD_RC_BuildChassisCmd + cmd_1.o(.data.sourceHandlers) refers to cmd_1.o(.text.CMD_RC_BuildGimbalCmd) for CMD_RC_BuildGimbalCmd + cmd_1.o(.data.sourceHandlers) refers to cmd_1.o(.text.CMD_RC_BuildShootCmd) for CMD_RC_BuildShootCmd + cmd_1.o(.data.sourceHandlers) refers to cmd_1.o(.text.CMD_PC_BuildChassisCmd) for CMD_PC_BuildChassisCmd + cmd_1.o(.data.sourceHandlers) refers to cmd_1.o(.text.CMD_PC_BuildGimbalCmd) for CMD_PC_BuildGimbalCmd + cmd_1.o(.data.sourceHandlers) refers to cmd_1.o(.text.CMD_PC_BuildShootCmd) for CMD_PC_BuildShootCmd shoot_ctrl.o(.text.Task_shoot_ctrl) refers to cmsis_os2.o(.text.osKernelGetTickFreq) for osKernelGetTickFreq shoot_ctrl.o(.text.Task_shoot_ctrl) refers to dflt_clz.o(x$fpl$dfltu) for __aeabi_ui2d shoot_ctrl.o(.text.Task_shoot_ctrl) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv @@ -4474,7 +4489,6 @@ Section Cross References init.o(.text.Task_Init) refers to user_task.o(.rodata.attr_ai) for attr_ai init.o(.text.Task_Init) refers to et16s_1.o(.text.Task_et16s) for Task_et16s init.o(.text.Task_Init) refers to user_task.o(.rodata.attr_et16s) for attr_et16s - init.o(.text.Task_Init) refers to cmd_1.o(.text.Task_cmd) for Task_cmd init.o(.text.Task_Init) refers to user_task.o(.rodata.attr_cmd) for attr_cmd init.o(.text.Task_Init) refers to shoot_ctrl.o(.text.Task_shoot_ctrl) for Task_shoot_ctrl init.o(.text.Task_Init) refers to user_task.o(.rodata.attr_shoot_ctrl) for attr_shoot_ctrl @@ -4615,6 +4629,53 @@ Section Cross References shoot.o(.text.Shoot_Control) refers to shoot.o(.text.Shoot_CaluTargetRPM) for Shoot_CaluTargetRPM shoot.o(.text.Shoot_Control) refers to shoot.o(.text.Shoot_JamDetectionFSM) for Shoot_JamDetectionFSM shoot.o(.ARM.exidx.text.Shoot_Control) refers to shoot.o(.text.Shoot_Control) for [Anonymous Symbol] + cmd_adapter.o(.text.CMD_ET16s_Init) refers to et16s.o(.text.REMOTE_Init) for REMOTE_Init + cmd_adapter.o(.ARM.exidx.text.CMD_ET16s_Init) refers to cmd_adapter.o(.text.CMD_ET16s_Init) for [Anonymous Symbol] + cmd_adapter.o(.ARM.exidx.text.CMD_ET16s_GetInput) refers to cmd_adapter.o(.text.CMD_ET16s_GetInput) for [Anonymous Symbol] + cmd_adapter.o(.ARM.exidx.text.CMD_ET16s_IsOnline) refers to cmd_adapter.o(.text.CMD_ET16s_IsOnline) for [Anonymous Symbol] + cmd_adapter.o(.text.CMD_Adapter_Register) refers to cmd_adapter.o(.bss.g_adapters) for g_adapters + cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_Register) refers to cmd_adapter.o(.text.CMD_Adapter_Register) for [Anonymous Symbol] + cmd_adapter.o(.text.CMD_Adapter_InitAll) refers to cmd_adapter.o(.data.g_adapter_ET16s) for g_adapter_ET16s + cmd_adapter.o(.text.CMD_Adapter_InitAll) refers to cmd_adapter.o(.text.CMD_Adapter_Register) for CMD_Adapter_Register + cmd_adapter.o(.text.CMD_Adapter_InitAll) refers to cmd_adapter.o(.bss.g_adapters) for g_adapters + cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_InitAll) refers to cmd_adapter.o(.text.CMD_Adapter_InitAll) for [Anonymous Symbol] + cmd_adapter.o(.text.CMD_Adapter_GetInput) refers to cmd_adapter.o(.bss.g_adapters) for g_adapters + cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_GetInput) refers to cmd_adapter.o(.text.CMD_Adapter_GetInput) for [Anonymous Symbol] + cmd_adapter.o(.text.CMD_Adapter_IsOnline) refers to cmd_adapter.o(.bss.g_adapters) for g_adapters + cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_IsOnline) refers to cmd_adapter.o(.text.CMD_Adapter_IsOnline) for [Anonymous Symbol] + cmd_adapter.o(.data.g_adapter_ET16s) refers to cmd_adapter.o(.rodata.str1.1) for [Anonymous Symbol] + cmd_adapter.o(.data.g_adapter_ET16s) refers to cmd_adapter.o(.text.CMD_ET16s_Init) for CMD_ET16s_Init + cmd_adapter.o(.data.g_adapter_ET16s) refers to cmd_adapter.o(.text.CMD_ET16s_GetInput) for CMD_ET16s_GetInput + cmd_adapter.o(.data.g_adapter_ET16s) refers to cmd_adapter.o(.text.CMD_ET16s_IsOnline) for CMD_ET16s_IsOnline + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_FORE) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_FORE) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_BACK) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_BACK) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_LEFT) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_LEFT) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_RIGHT) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_RIGHT) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_ACCELERATE) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_ACCELERATE) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_DECELERATE) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_DECELERATE) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_FIRE) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_FIRE) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_FIRE_MODE) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_FIRE_MODE) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_ROTOR) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_ROTOR) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_AUTOAIM) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_AUTOAIM) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_CHECKSOURCERCPC) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_CHECKSOURCERCPC) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Init) refers to cmd_behavior.o(.text.CMD_Behavior_Init) for [Anonymous Symbol] + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_IsTriggered) refers to cmd_behavior.o(.text.CMD_Behavior_IsTriggered) for [Anonymous Symbol] + cmd_behavior.o(.text.CMD_Behavior_ProcessAll) refers to cmd_behavior.o(.rodata.g_behavior_configs) for g_behavior_configs + cmd_behavior.o(.text.CMD_Behavior_ProcessAll) refers to cmd_behavior.o(.text.CMD_Behavior_IsTriggered) for CMD_Behavior_IsTriggered + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_ProcessAll) refers to cmd_behavior.o(.text.CMD_Behavior_ProcessAll) for [Anonymous Symbol] + cmd_behavior.o(.text.CMD_Behavior_GetConfig) refers to cmd_behavior.o(.rodata.g_behavior_configs) for g_behavior_configs + cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_GetConfig) refers to cmd_behavior.o(.text.CMD_Behavior_GetConfig) for [Anonymous Symbol] + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_FORE) for CMD_Behavior_Handle_FORE + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_BACK) for CMD_Behavior_Handle_BACK + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_LEFT) for CMD_Behavior_Handle_LEFT + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_RIGHT) for CMD_Behavior_Handle_RIGHT + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_ACCELERATE) for CMD_Behavior_Handle_ACCELERATE + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_DECELERATE) for CMD_Behavior_Handle_DECELERATE + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_FIRE) for CMD_Behavior_Handle_FIRE + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_FIRE_MODE) for CMD_Behavior_Handle_FIRE_MODE + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_ROTOR) for CMD_Behavior_Handle_ROTOR + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_AUTOAIM) for CMD_Behavior_Handle_AUTOAIM + cmd_behavior.o(.rodata.g_behavior_configs) refers to cmd_behavior.o(.text.CMD_Behavior_Handle_CHECKSOURCERCPC) for CMD_Behavior_Handle_CHECKSOURCERCPC __2sprintf.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common __2sprintf.o(.text) refers to _sputc.o(.text) for _sputc __2snprintf.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common @@ -7268,10 +7329,34 @@ Removing Unused input sections from the image. Removing et16s_1.o(.ARM.exidx.text.Task_et16s), (8 bytes). Removing referee_1.o(.text), (0 bytes). Removing referee_1.o(.ARM.exidx.text.Task_referee), (8 bytes). - Removing cmd_1.o(.text), (0 bytes). - Removing cmd_1.o(.ARM.exidx.text.Task_cmd), (8 bytes). Removing gimbal_ctrl.o(.text), (0 bytes). Removing gimbal_ctrl.o(.ARM.exidx.text.Task_gimbal_ctrl), (8 bytes). + Removing cmd_1.o(.text), (0 bytes). + Removing cmd_1.o(.text.CMD_Init), (40 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_Init), (8 bytes). + Removing cmd_1.o(.text.CMD_UpdateInput), (104 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_UpdateInput), (8 bytes). + Removing cmd_1.o(.text.CMD_RC_BuildChassisCmd), (82 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_RC_BuildChassisCmd), (8 bytes). + Removing cmd_1.o(.text.CMD_RC_BuildGimbalCmd), (72 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_RC_BuildGimbalCmd), (8 bytes). + Removing cmd_1.o(.text.CMD_RC_BuildShootCmd), (138 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_RC_BuildShootCmd), (8 bytes). + Removing cmd_1.o(.text.CMD_PC_BuildChassisCmd), (42 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_PC_BuildChassisCmd), (8 bytes). + Removing cmd_1.o(.text.CMD_PC_BuildGimbalCmd), (104 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_PC_BuildGimbalCmd), (8 bytes). + Removing cmd_1.o(.text.CMD_PC_BuildShootCmd), (44 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_PC_BuildShootCmd), (8 bytes). + Removing cmd_1.o(.text.CMD_Arbitrate), (100 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_Arbitrate), (8 bytes). + Removing cmd_1.o(.text.CMD_GenerateCommands), (152 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_GenerateCommands), (8 bytes). + Removing cmd_1.o(.text.CMD_SetOfflineMode), (18 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_SetOfflineMode), (8 bytes). + Removing cmd_1.o(.text.CMD_Update), (28 bytes). + Removing cmd_1.o(.ARM.exidx.text.CMD_Update), (8 bytes). + Removing cmd_1.o(.data.sourceHandlers), (64 bytes). Removing shoot_ctrl.o(.text), (0 bytes). Removing shoot_ctrl.o(.ARM.exidx.text.Task_shoot_ctrl), (8 bytes). Removing chassis_ctrl.o(.text), (0 bytes). @@ -7351,5 +7436,56 @@ Removing Unused input sections from the image. Removing shoot.o(.ARM.exidx.text.Shoot_Control), (8 bytes). Removing shoot.o(.bss.Shoot_RunningFSM.pos), (4 bytes). Removing shoot.o(.bss.last_firecmd), (1 bytes). + Removing cmd_adapter.o(.text), (0 bytes). + Removing cmd_adapter.o(.text.CMD_ET16s_Init), (8 bytes). + Removing cmd_adapter.o(.ARM.exidx.text.CMD_ET16s_Init), (8 bytes). + Removing cmd_adapter.o(.text.CMD_ET16s_GetInput), (244 bytes). + Removing cmd_adapter.o(.ARM.exidx.text.CMD_ET16s_GetInput), (8 bytes). + Removing cmd_adapter.o(.text.CMD_ET16s_IsOnline), (6 bytes). + Removing cmd_adapter.o(.ARM.exidx.text.CMD_ET16s_IsOnline), (8 bytes). + Removing cmd_adapter.o(.text.CMD_Adapter_Register), (32 bytes). + Removing cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_Register), (8 bytes). + Removing cmd_adapter.o(.text.CMD_Adapter_InitAll), (58 bytes). + Removing cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_InitAll), (8 bytes). + Removing cmd_adapter.o(.text.CMD_Adapter_GetInput), (52 bytes). + Removing cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_GetInput), (8 bytes). + Removing cmd_adapter.o(.text.CMD_Adapter_IsOnline), (34 bytes). + Removing cmd_adapter.o(.ARM.exidx.text.CMD_Adapter_IsOnline), (8 bytes). + Removing cmd_adapter.o(.bss.g_adapters), (16 bytes). + Removing cmd_adapter.o(.data.g_adapter_ET16s), (24 bytes). + Removing cmd_adapter.o(.rodata.str1.1), (6 bytes). + Removing cmd_behavior.o(.text), (0 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_FORE), (24 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_FORE), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_BACK), (24 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_BACK), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_LEFT), (24 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_LEFT), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_RIGHT), (24 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_RIGHT), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_ACCELERATE), (36 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_ACCELERATE), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_DECELERATE), (36 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_DECELERATE), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_FIRE), (12 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_FIRE), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_FIRE_MODE), (20 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_FIRE_MODE), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_ROTOR), (18 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_ROTOR), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_AUTOAIM), (4 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_AUTOAIM), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Handle_CHECKSOURCERCPC), (36 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Handle_CHECKSOURCERCPC), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_Init), (4 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_Init), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_IsTriggered), (204 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_IsTriggered), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_ProcessAll), (82 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_ProcessAll), (8 bytes). + Removing cmd_behavior.o(.text.CMD_Behavior_GetConfig), (34 bytes). + Removing cmd_behavior.o(.ARM.exidx.text.CMD_Behavior_GetConfig), (8 bytes). + Removing cmd_behavior.o(.rodata.g_behavior_configs), (176 bytes). + Removing cmd_example.o(.text), (0 bytes). -2273 unused section(s) (total 99175 bytes) removed from the image. +2348 unused section(s) (total 101665 bytes) removed from the image. diff --git a/MDK-ARM/referee/referee.o b/MDK-ARM/referee/referee.o new file mode 100644 index 0000000000000000000000000000000000000000..3fa9838cb77e7d1d5841398285886b251b283be1 GIT binary patch literal 50408 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�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 W%J!1d>5aU_?>SLX&XJ-U;rTxbHoXY| literal 0 HcmV?d00001 diff --git a/MDK-ARM/referee/referee_1.o b/MDK-ARM/referee/referee_1.o new file mode 100644 index 0000000000000000000000000000000000000000..a730bdc0f4931dd47ea190d0b41bc5749afa7abd GIT binary patch literal 20164 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 literal 0 HcmV?d00001 diff --git a/MDK-ARM/referee/referee_referee.dep b/MDK-ARM/referee/referee_referee.dep index 8ff0ae3..11d0674 100644 --- a/MDK-ARM/referee/referee_referee.dep +++ b/MDK-ARM/referee/referee_referee.dep @@ -2234,9 +2234,9 @@ I (..\User\component\crc8.h)(0x69A99243) I (..\User\device\referee.h)(0x69A93050) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) I (..\User\component\ui.h)(0x69A99243) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\module\cmd\cmd_behavior.h)(0x695FA70F) I (..\User\module\chassis.h)(0x69A92EFD) @@ -2410,9 +2410,9 @@ I (..\User\component\user_math.h)(0x69A99243) I (D:\Keil_v5\ARM\ARMCLANG\include\float.h)(0x6035A4A0) I (D:\Keil_v5\ARM\ARMCLANG\include\math.h)(0x6035A4A8) I (..\User\device\device.h)(0x69A99244) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\module\cmd\cmd_behavior.h)(0x695FA70F) I (..\User\module\chassis.h)(0x69A92EFD) @@ -2465,12 +2465,26 @@ I (..\User\module\gimbal.h)(0x6975DF62) I (..\User\device\motor_dm.h)(0x69A99243) I (..\User\module\shoot.h)(0x6968CB81) I (..\User\module\config.h)(0x69A92D4B) +F (..\User\task\gimbal_ctrl.c)(0x69A9928C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/gimbal_ctrl.o -MD) +I (..\User\task\user_task.h)(0x69A9928C) +I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) +I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) +I (D:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8) +I (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68B055DB) +I (..\Core\Inc\FreeRTOSConfig.h)(0x69A907C2) +I (..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h)(0x68B055DB) +I (..\Middlewares\Third_Party\FreeRTOS\Source\include\portable.h)(0x68B055DB) +I (..\Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h)(0x68B055DB) +I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h)(0x68B055DB) +I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68B055DB) +I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB) +I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB) F (..\User\task\cmd.c)(0x69A9965B)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/cmd_1.o -MD) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\device\device.h)(0x69A99244) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) @@ -2539,20 +2553,6 @@ I (..\User\device\motor_dm.h)(0x69A99243) I (..\User\module\shoot.h)(0x6968CB81) I (..\User\bsp\time.h)(0x69A99243) I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x6035A4A8) -F (..\User\task\gimbal_ctrl.c)(0x69A9928C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/gimbal_ctrl.o -MD) -I (..\User\task\user_task.h)(0x69A9928C) -I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) -I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) -I (D:\Keil_v5\ARM\ARMCLANG\include\stddef.h)(0x6035A4A8) -I (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68B055DB) -I (..\Core\Inc\FreeRTOSConfig.h)(0x69A907C2) -I (..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h)(0x68B055DB) -I (..\Middlewares\Third_Party\FreeRTOS\Source\include\portable.h)(0x68B055DB) -I (..\Middlewares\Third_Party\FreeRTOS\Source\include\deprecated_definitions.h)(0x68B055DB) -I (..\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM4F\portmacro.h)(0x68B055DB) -I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68B055DB) -I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB) -I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB) F (..\User\task\shoot_ctrl.c)(0x69A9928C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/shoot_ctrl.o -MD) I (..\User\task\user_task.h)(0x69A9928C) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) @@ -2668,9 +2668,9 @@ I (..\User\device\et16s.h)(0x69735766) I (..\User\device\referee.h)(0x69A93050) I (..\User\component\ui.h)(0x69A99243) I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x6035A4A8) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\module\cmd\cmd_behavior.h)(0x695FA70F) I (..\User\module\config.h)(0x69A92D4B) F (..\User\module\config.c)(0x69A91CD0)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/config.o -MD) @@ -2741,9 +2741,9 @@ I (..\User\module\shoot.h)(0x6968CB81) I (..\User\module\chassis.h)(0x69A92EFD) I (..\User\module\struct_typedef.h)(0x68DBD148) I (..\User\device\bmi088.h)(0x69A99243) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\module\cmd\cmd_behavior.h)(0x695FA70F) F (..\User\module\chassis.c)(0x69A7CCB1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/chassis.o -MD) @@ -2939,9 +2939,9 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68B055DB) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68B055DB) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) I (..\User\bsp\time.h)(0x69A99243) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\module\cmd\cmd_behavior.h)(0x695FA70F) I (..\User\module\chassis.h)(0x69A92EFD) @@ -2951,11 +2951,11 @@ I (..\User\device\bmi088.h)(0x69A99243) I (..\User\module\gimbal.h)(0x6975DF62) I (..\User\device\motor_dm.h)(0x69A99243) F (..\User\module\cmd\cmd.c)(0x6989CACD)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/cmd_1.o -MD) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\device\device.h)(0x69A99244) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) @@ -3024,8 +3024,8 @@ I (..\User\device\motor_dm.h)(0x69A99243) I (..\User\module\shoot.h)(0x6968CB81) I (..\User\bsp\time.h)(0x69A99243) I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x6035A4A8) -F (..\User\module\cmd\cmd_adapter.c)(0x69724A11)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/cmd_adapter.o -MD) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +F (..\User\module\cmd\cmd_adapter.c)(0x69A993D1)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/cmd_adapter.o -MD) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\module\cmd\cmd_types.h)(0x69710063) I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8) @@ -3039,8 +3039,8 @@ I (..\User\module\cmd\cmd_behavior.h)(0x695FA70F) I (..\User\module\cmd\cmd_types.h)(0x69710063) I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd.h)(0x69A938D4) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\device\device.h)(0x69A99244) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) @@ -3107,12 +3107,12 @@ I (..\User\module\gimbal.h)(0x6975DF62) I (..\User\device\motor_dm.h)(0x69A99243) I (..\User\module\shoot.h)(0x6968CB81) I (D:\Keil_v5\ARM\ARMCLANG\include\string.h)(0x6035A4A8) -F (..\User\module\cmd\cmd_example.c)(0x695FA70F)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/cmd_example.o -MD) -I (..\User\module\cmd\cmd.h)(0x6986AEE1) +F (..\User\module\cmd\cmd_example.c)(0x69A8FEC4)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -gdwarf-3 -O1 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I ../User/bsp -I ../User/component -I ../User/device -I ../User/module -I ../User/task -I ../User/module/cmd -I./RTE/_referee -ID:/Keil_v5/Arm/Packs/ARM/CMSIS/5.7.0/CMSIS/Core/Include -ID:/Keil_v5/Arm/Packs/Keil/STM32F4xx_DFP/2.17.1/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F407xx -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F407xx -o referee/cmd_example.o -MD) +I (..\User\module\cmd\cmd.h)(0x69A938D4) I (..\User\module\cmd\cmd_types.h)(0x69710063) I (D:\Keil_v5\ARM\ARMCLANG\include\stdint.h)(0x6035A4A8) I (D:\Keil_v5\ARM\ARMCLANG\include\stdbool.h)(0x6035A4A8) -I (..\User\module\cmd\cmd_adapter.h)(0x697249FA) +I (..\User\module\cmd\cmd_adapter.h)(0x69A99531) I (..\User\device\ET16s.h)(0x69735766) I (..\User\device\device.h)(0x69A99244) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68B055DB) diff --git a/User/component/cmd.c b/User/component/cmd.c deleted file mode 100644 index 1effe69..0000000 --- a/User/component/cmd.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - 控制命令 -*/ - -#include "cmd.h" - -#include - -/* USER INCLUDE BEGIN */ - -/* USER INCLUDE END */ - -/* USER DEFINE BEGIN */ - -/* USER DEFINE END */ - -/** - * @brief 行为转换为对应按键 - * - * @param cmd 主结构体 - * @param behavior 行为 - * @return uint16_t 行为对应的按键 - */ -static inline CMD_KeyValue_t CMD_BehaviorToKey(CMD_t *cmd, - CMD_Behavior_t behavior) { - return cmd->param->map.key_map[behavior].key; -} - -static inline CMD_ActiveType_t CMD_BehaviorToActive(CMD_t *cmd, - CMD_Behavior_t behavior) { - return cmd->param->map.key_map[behavior].active; -} - -/** - * @brief 检查按键是否按下 - * - * @param rc 遥控器数据 - * @param key 按键名称 - * @param stateful 是否为状态切换按键 - * @return true 按下 - * @return false 未按下 - */ -static bool CMD_KeyPressedRc(const CMD_RC_t *rc, CMD_KeyValue_t key) { - /* 按下按键为鼠标左、右键 */ - if (key == CMD_L_CLICK) { - return rc->mouse.l_click; - } - if (key == CMD_R_CLICK) { - return rc->mouse.r_click; - } - return rc->key & (1u << key); -} - -static bool CMD_BehaviorOccurredRc(const CMD_RC_t *rc, CMD_t *cmd, - CMD_Behavior_t behavior) { - CMD_KeyValue_t key = CMD_BehaviorToKey(cmd, behavior); - CMD_ActiveType_t active = CMD_BehaviorToActive(cmd, behavior); - - bool now_key_pressed, last_key_pressed; - - /* 按下按键为鼠标左、右键 */ - if (key == CMD_L_CLICK) { - now_key_pressed = rc->mouse.l_click; - last_key_pressed = cmd->mouse_last.l_click; - } else if (key == CMD_R_CLICK) { - now_key_pressed = rc->mouse.r_click; - last_key_pressed = cmd->mouse_last.r_click; - } else { - now_key_pressed = rc->key & (1u << key); - last_key_pressed = cmd->key_last & (1u << key); - } - - switch (active) { - case CMD_ACTIVE_PRESSING: - return now_key_pressed && !last_key_pressed; - case CMD_ACTIVE_RASING: - return !now_key_pressed && last_key_pressed; - case CMD_ACTIVE_PRESSED: - return now_key_pressed; - } -} - -/** - * @brief 解析pc行为逻辑 - * - * @param rc 遥控器数据 - * @param cmd 主结构体 - * @param dt_sec 两次解析的间隔 - */ -static void CMD_PcLogic(const CMD_RC_t *rc, CMD_t *cmd, float dt_sec) { - cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE; - - /* 云台设置为鼠标控制欧拉角的变化,底盘的控制向量设置为零 */ - cmd->gimbal.delta_eulr.yaw = - (float)rc->mouse.x * dt_sec * cmd->param->sens_mouse; - cmd->gimbal.delta_eulr.pit = - (float)(-rc->mouse.y) * dt_sec * cmd->param->sens_mouse; - cmd->chassis.ctrl_vec.vx = cmd->chassis.ctrl_vec.vy = 0.0f; - cmd->shoot.reverse_trig = false; - - /* 按键行为映射相关逻辑 */ - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FORE)) { - cmd->chassis.ctrl_vec.vy += cmd->param->move.move_sense; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_BACK)) { - cmd->chassis.ctrl_vec.vy -= cmd->param->move.move_sense; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_LEFT)) { - cmd->chassis.ctrl_vec.vx -= cmd->param->move.move_sense; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_RIGHT)) { - cmd->chassis.ctrl_vec.vx += cmd->param->move.move_sense; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_ACCELERATE)) { - cmd->chassis.ctrl_vec.vx *= cmd->param->move.move_fast_sense; - cmd->chassis.ctrl_vec.vy *= cmd->param->move.move_fast_sense; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_DECELEBRATE)) { - cmd->chassis.ctrl_vec.vx *= cmd->param->move.move_slow_sense; - cmd->chassis.ctrl_vec.vy *= cmd->param->move.move_slow_sense; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FIRE)) { - /* 切换至开火模式,设置相应的射击频率和弹丸初速度 */ - cmd->shoot.mode = SHOOT_MODE_LOADED; - cmd->shoot.fire = true; - } else { - /* 切换至准备模式,停止射击 */ - cmd->shoot.mode = SHOOT_MODE_LOADED; - cmd->shoot.fire = false; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FIRE_MODE)) { - /* 每按一次依次切换开火下一个模式 */ - cmd->shoot.fire_mode++; - cmd->shoot.fire_mode %= FIRE_MODE_NUM; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_ROTOR)) { - /* 切换到小陀螺模式 */ - cmd->chassis.mode = CHASSIS_MODE_ROTOR; - cmd->chassis.mode_rotor = ROTOR_MODE_RAND; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_OPENCOVER)) { - /* 每按一次开、关弹舱盖 */ - cmd->shoot.cover_open = !cmd->shoot.cover_open; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_BUFF)) { - if (cmd->ai_status == AI_STATUS_HITSWITCH) { - /* 停止ai的打符模式,停用host控制 */ - CMD_RefereeAdd(&(cmd->referee), CMD_UI_HIT_SWITCH_STOP); - cmd->host_overwrite = false; - cmd->ai_status = AI_STATUS_STOP; - } else if (cmd->ai_status == AI_STATUS_AUTOAIM) { - /* 自瞄模式中切换失败提醒 */ - } else { - /* ai切换至打符模式,启用host控制 */ - CMD_RefereeAdd(&(cmd->referee), CMD_UI_HIT_SWITCH_START); - cmd->ai_status = AI_STATUS_HITSWITCH; - cmd->host_overwrite = true; - } - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_AUTOAIM)) { - if (cmd->ai_status == AI_STATUS_AUTOAIM) { - /* 停止ai的自瞄模式,停用host控制 */ - cmd->host_overwrite = false; - cmd->ai_status = AI_STATUS_STOP; - CMD_RefereeAdd(&(cmd->referee), CMD_UI_AUTO_AIM_STOP); - } else { - /* ai切换至自瞄模式,启用host控制 */ - cmd->ai_status = AI_STATUS_AUTOAIM; - cmd->host_overwrite = true; - CMD_RefereeAdd(&(cmd->referee), CMD_UI_AUTO_AIM_START); - } - } else { - cmd->host_overwrite = false; - // TODO: 修复逻辑 - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_REVTRIG)) { - /* 按下拨弹反转 */ - cmd->shoot.reverse_trig = true; - } - if (CMD_BehaviorOccurredRc(rc, cmd, CMD_BEHAVIOR_FOLLOWGIMBAL35)) { - cmd->chassis.mode = CHASSIS_MODE_FOLLOW_GIMBAL_35; - } - /* 保存当前按下的键位状态 */ - cmd->key_last = rc->key; - memcpy(&(cmd->mouse_last), &(rc->mouse), sizeof(cmd->mouse_last)); -} - -/** - * @brief 解析rc行为逻辑 - * - * @param rc 遥控器数据 - * @param cmd 主结构体 - * @param dt_sec 两次解析的间隔 - */ -static void CMD_RcLogic(const CMD_RC_t *rc, CMD_t *cmd, float dt_sec) { - switch (rc->sw_l) { - /* 左拨杆相应行为选择和解析 */ - case CMD_SW_UP: - cmd->chassis.mode = CHASSIS_MODE_BREAK; - break; - - case CMD_SW_MID: - cmd->chassis.mode = CHASSIS_MODE_FOLLOW_GIMBAL; - break; - - case CMD_SW_DOWN: - cmd->chassis.mode = CHASSIS_MODE_ROTOR; - cmd->chassis.mode_rotor = ROTOR_MODE_CW; - break; - - case CMD_SW_ERR: - cmd->chassis.mode = CHASSIS_MODE_RELAX; - break; - } - switch (rc->sw_r) { - /* 右拨杆相应行为选择和解析*/ - case CMD_SW_UP: - cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE; - cmd->shoot.mode = SHOOT_MODE_SAFE; - break; - - case CMD_SW_MID: - cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE; - cmd->shoot.fire = false; - cmd->shoot.mode = SHOOT_MODE_LOADED; - break; - - case CMD_SW_DOWN: - cmd->gimbal.mode = GIMBAL_MODE_ABSOLUTE; - cmd->shoot.mode = SHOOT_MODE_LOADED; - cmd->shoot.fire_mode = FIRE_MODE_SINGLE; - cmd->shoot.fire = true; - break; - /* - case CMD_SW_UP: - cmd->gimbal.mode = GIMBAL_MODE_RELAX; - cmd->shoot.mode = SHOOT_MODE_SAFE; - break; - - case CMD_SW_MID: - cmd->gimbal.mode = GIMBAL_MODE_RELAX; - cmd->shoot.fire = false; - cmd->shoot.mode = SHOOT_MODE_LOADED; - break; - - case CMD_SW_DOWN: - cmd->gimbal.mode = GIMBAL_MODE_RELAX; - cmd->shoot.mode = SHOOT_MODE_LOADED; - cmd->shoot.fire_mode = FIRE_MODE_SINGLE; - cmd->shoot.fire = true; - break; - */ - case CMD_SW_ERR: - cmd->gimbal.mode = GIMBAL_MODE_RELAX; - cmd->shoot.mode = SHOOT_MODE_RELAX; - } - /* 将操纵杆的对应值转换为底盘的控制向量和云台变化的欧拉角 */ - cmd->chassis.ctrl_vec.vx = rc->ch_l_x; - cmd->chassis.ctrl_vec.vy = rc->ch_l_y; - cmd->gimbal.delta_eulr.yaw = rc->ch_r_x * dt_sec * cmd->param->sens_rc; - cmd->gimbal.delta_eulr.pit = rc->ch_r_y * dt_sec * cmd->param->sens_rc; -} - -/** - * @brief rc失控时机器人恢复放松模式 - * - * @param cmd 主结构体 - */ -static void CMD_RcLostLogic(CMD_t *cmd) { - /* 机器人底盘、云台、射击运行模式恢复至放松模式 */ - cmd->chassis.mode = CHASSIS_MODE_RELAX; - cmd->gimbal.mode = GIMBAL_MODE_RELAX; - cmd->shoot.mode = SHOOT_MODE_RELAX; -} - -/** - * @brief 初始化命令解析 - * - * @param cmd 主结构体 - * @param param 参数 - * @return int8_t 0对应没有错误 - */ -int8_t CMD_Init(CMD_t *cmd, const CMD_Params_t *param) { - /* 指针检测 */ - if (cmd == NULL) return -1; - if (param == NULL) return -1; - - /* 设置机器人的命令参数,初始化控制方式为rc控制 */ - cmd->pc_ctrl = false; - cmd->param = param; - - return 0; -} - -/** - * @brief 检查是否启用上位机控制指令覆盖 - * - * @param cmd 主结构体 - * @return true 启用 - * @return false 不启用 - */ -inline bool CMD_CheckHostOverwrite(CMD_t *cmd) { return cmd->host_overwrite; } - -/** - * @brief 解析命令 - * - * @param rc 遥控器数据 - * @param cmd 命令 - * @param dt_sec 两次解析的间隔 - * @return int8_t 0对应没有错误 - */ -int8_t CMD_ParseRc(CMD_RC_t *rc, CMD_t *cmd, float dt_sec) { - /* 指针检测 */ - if (rc == NULL) return -1; - if (cmd == NULL) return -1; - - /* 在pc控制和rc控制间切换 */ - if (CMD_KeyPressedRc(rc, CMD_KEY_SHIFT) && - CMD_KeyPressedRc(rc, CMD_KEY_CTRL) && CMD_KeyPressedRc(rc, CMD_KEY_Q)) - cmd->pc_ctrl = true; - - if (CMD_KeyPressedRc(rc, CMD_KEY_SHIFT) && - CMD_KeyPressedRc(rc, CMD_KEY_CTRL) && CMD_KeyPressedRc(rc, CMD_KEY_E)) - cmd->pc_ctrl = false; - /*c当rc丢控时,恢复机器人至默认状态 */ - if ((rc->sw_l == CMD_SW_ERR) || (rc->sw_r == CMD_SW_ERR)) { - CMD_RcLostLogic(cmd); - } else { - if (cmd->pc_ctrl) { - CMD_PcLogic(rc, cmd, dt_sec); - } else { - CMD_RcLogic(rc, cmd, dt_sec); - } - } - return 0; -} - -/** - * @brief 解析上位机命令 - * - * @param host host数据 - * @param cmd 命令 - * @param dt_sec 两次解析的间隔 - * @return int8_t 0对应没有错误 - */ -int8_t CMD_ParseHost(const CMD_Host_t *host, CMD_t *cmd, float dt_sec) { - (void)dt_sec; /* 未使用dt_sec,消除警告 */ - /* 指针检测 */ - if (host == NULL) return -1; - if (cmd == NULL) return -1; - - /* 云台欧拉角设置为host相应的变化的欧拉角 */ - cmd->gimbal.delta_eulr.yaw = host->gimbal_delta.yaw; - cmd->gimbal.delta_eulr.pit = host->gimbal_delta.pit; - - /* host射击命令,设置不同的射击频率和弹丸初速度 */ - if (host->fire) { - cmd->shoot.mode = SHOOT_MODE_LOADED; - cmd->shoot.fire = true; - } else { - cmd->shoot.mode = SHOOT_MODE_SAFE; - } - return 0; -} - -/** - * @brief 添加向Referee发送的命令 - * - * @param ref 命令队列 - * @param cmd 要添加的命令 - * @return int8_t 0对应没有错误 - */ -int8_t CMD_RefereeAdd(CMD_RefereeCmd_t *ref, CMD_UI_t cmd) { - /* 指针检测 */ - if (ref == NULL) return -1; - /* 越界检测 */ - if (ref->counter >= CMD_REFEREE_MAX_NUM || ref->counter < 0) return -1; - - /* 添加机器人当前行为状态到画图的命令队列中 */ - ref->cmd[ref->counter] = cmd; - ref->counter++; - return 0; -} - -/* USER FUNCTION BEGIN */ - -/* USER FUNCTION END */ diff --git a/User/component/cmd.h b/User/component/cmd.h deleted file mode 100644 index df84538..0000000 --- a/User/component/cmd.h +++ /dev/null @@ -1,318 +0,0 @@ -/* - 控制命令 -*/ - -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -#include "component/ahrs.h" - -/* USER INCLUDE BEGIN */ - -/* USER INCLUDE END */ - -#define CMD_REFEREE_MAX_NUM (3) /* Lines 16 omitted */ - -/* USER DEFINE BEGIN */ - -/* USER DEFINE END */ - -/* 机器人型号 */ -typedef enum { - ROBOT_MODEL_INFANTRY = 0, /* 步兵机器人 */ - ROBOT_MODEL_HERO, /* 英雄机器人 */ - ROBOT_MODEL_ENGINEER, /* 工程机器人 */ - ROBOT_MODEL_DRONE, /* 空中机器人 */ - ROBOT_MODEL_SENTRY, /* 哨兵机器人 */ - ROBOT_MODEL_NUM, /* 型号数量 */ -} CMD_RobotModel_t; - -/* 底盘运行模式 */ -typedef enum { - CHASSIS_MODE_RELAX, /* 放松模式,电机不输出。一般情况底盘初始化之后的模式 */ - CHASSIS_MODE_BREAK, /* 刹车模式,电机闭环控制保持静止。用于机器人停止状态 */ - CHASSIS_MODE_FOLLOW_GIMBAL, /* 通过闭环控制使车头方向跟随云台 */ - CHASSIS_MODE_FOLLOW_GIMBAL_35, /* 通过闭环控制使车头方向35度跟随云台 */ - CHASSIS_MODE_ROTOR, /* 小陀螺模式,通过闭环控制使底盘不停旋转 */ - CHASSIS_MODE_INDENPENDENT, /* 独立模式。底盘运行不受云台影响 */ - CHASSIS_MODE_OPEN, /* 开环模式。底盘运行不受PID控制,直接输出到电机 */ -} CMD_ChassisMode_t; - -/* 云台运行模式 */ -typedef enum { - GIMBAL_MODE_RELAX, /* 放松模式,电机不输出。一般情况云台初始化之后的模式 */ - GIMBAL_MODE_ABSOLUTE, /* 绝对坐标系控制,控制在空间内的绝对姿态 */ - GIMBAL_MODE_RELATIVE, /* 相对坐标系控制,控制相对于底盘的姿态 */ -} CMD_GimbalMode_t; - -/* 射击运行模式 */ -typedef enum { - SHOOT_MODE_RELAX, /* 放松模式,电机不输出 */ - SHOOT_MODE_SAFE, /* 保险模式,电机闭环控制保持静止 */ - SHOOT_MODE_LOADED, /* 上膛模式,摩擦轮开启。随时准备开火 */ -} CMD_ShootMode_t; - -typedef enum { - FIRE_MODE_SINGLE, /* 单发开火模式 */ - FIRE_MODE_BURST, /* N连发开火模式 */ - FIRE_MODE_CONT, /* 持续开火模式 */ - FIRE_MODE_NUM, -} CMD_FireMode_t; - -/* 小陀螺转动模式 */ -typedef enum { - ROTOR_MODE_CW, /* 顺时针转动 */ - ROTOR_MODE_CCW, /* 逆时针转动 */ - ROTOR_MODE_RAND, /* 随机转动 */ -} CMD_RotorMode_t; - -/* 底盘控制命令 */ -typedef struct { - CMD_ChassisMode_t mode; /* 底盘运行模式 */ - CMD_RotorMode_t mode_rotor; /* 小陀螺转动模式 */ - MoveVector_t ctrl_vec; /* 底盘控制向量 */ -} CMD_ChassisCmd_t; - -/* 云台控制命令 */ -typedef struct { - CMD_GimbalMode_t mode; /* 云台运行模式 */ - AHRS_Eulr_t delta_eulr; /* 欧拉角变化角度 */ -} CMD_GimbalCmd_t; - -/* 射击控制命令 */ -typedef struct { - CMD_ShootMode_t mode; /* 射击运行模式 */ - CMD_FireMode_t fire_mode; /* 开火模式 */ - bool fire; /*开火*/ - bool cover_open; /* 弹舱盖开关 */ - bool reverse_trig; /* 拨弹电机状态 */ -} CMD_ShootCmd_t; - -/* 拨杆位置 */ -typedef enum { - CMD_SW_ERR = 0, - CMD_SW_UP = 1, - CMD_SW_MID = 3, - CMD_SW_DOWN = 2, -} CMD_SwitchPos_t; - -/* 键盘按键值 */ -typedef enum { - CMD_KEY_W = 0, - CMD_KEY_S, - CMD_KEY_A, - CMD_KEY_D, - CMD_KEY_SHIFT, - CMD_KEY_CTRL, - CMD_KEY_Q, - CMD_KEY_E, - CMD_KEY_R, - CMD_KEY_F, - CMD_KEY_G, - CMD_KEY_Z, - CMD_KEY_X, - CMD_KEY_C, - CMD_KEY_V, - CMD_KEY_B, - CMD_L_CLICK, - CMD_R_CLICK, - CMD_KEY_NUM, -} CMD_KeyValue_t; - -/* 行为值序列 */ -typedef enum { - CMD_BEHAVIOR_FORE = 0, /* 向前 */ - CMD_BEHAVIOR_BACK, /* 向后 */ - CMD_BEHAVIOR_LEFT, /* 向左 */ - CMD_BEHAVIOR_RIGHT, /* 向右 */ - CMD_BEHAVIOR_ACCELERATE, /* 加速 */ - CMD_BEHAVIOR_DECELEBRATE, /* 减速 */ - CMD_BEHAVIOR_FIRE, /* 开火 */ - CMD_BEHAVIOR_FIRE_MODE, /* 切换开火模式 */ - CMD_BEHAVIOR_BUFF, /* 打符模式 */ - CMD_BEHAVIOR_AUTOAIM, /* 自瞄模式 */ - CMD_BEHAVIOR_OPENCOVER, /* 弹舱盖开关 */ - CMD_BEHAVIOR_ROTOR, /* 小陀螺模式 */ - CMD_BEHAVIOR_REVTRIG, /* 反转拨弹 */ - CMD_BEHAVIOR_FOLLOWGIMBAL35, /* 跟随云台呈35度 */ - CMD_BEHAVIOR_NUM, -} CMD_Behavior_t; - -typedef enum { - CMD_ACTIVE_PRESSING, /* 按下时触发 */ - CMD_ACTIVE_RASING, /* 抬起时触发 */ - CMD_ACTIVE_PRESSED, /* 按住时触发 */ -} CMD_ActiveType_t; - -typedef struct { - CMD_ActiveType_t active; - CMD_KeyValue_t key; -} CMD_KeyMapItem_t; - -/* 行为映射的对应按键数组 */ -typedef struct { - CMD_KeyMapItem_t key_map[CMD_BEHAVIOR_NUM]; -} CMD_KeyMap_Params_t; - -/* 位移灵敏度参数 */ -typedef struct { - float move_sense; /* 移动灵敏度 */ - float move_fast_sense; /* 加速灵敏度 */ - float move_slow_sense; /* 减速灵敏度 */ -} CMD_Move_Params_t; - -typedef struct { - uint16_t width; - uint16_t height; -} CMD_Screen_t; - -/* 命令参数 */ -typedef struct { - float sens_mouse; /* 鼠标灵敏度 */ - float sens_rc; /* 遥控器摇杆灵敏度 */ - CMD_KeyMap_Params_t map; /* 按键映射行为命令 */ - CMD_Move_Params_t move; /* 位移灵敏度参数 */ - CMD_Screen_t screen; /* 屏幕分辨率参数 */ -} CMD_Params_t; - -/* AI行为状态 */ -typedef enum { - AI_STATUS_STOP, /* 停止状态 */ - AI_STATUS_AUTOAIM, /* 自瞄状态 */ - AI_STATUS_HITSWITCH, /* 打符状态 */ - AI_STATUS_AUTOMATIC /* 自动状态 */ -} CMD_AI_Status_t; - -/* UI所用行为状态 */ -typedef enum { - CMD_UI_NOTHING, /* 当前无状态 */ - CMD_UI_AUTO_AIM_START, /* 自瞄状态开启 */ - CMD_UI_AUTO_AIM_STOP, /* 自瞄状态关闭 */ - CMD_UI_HIT_SWITCH_START, /* 打符状态开启 */ - CMD_UI_HIT_SWITCH_STOP /* 打符状态关闭 */ -} CMD_UI_t; - -/*裁判系统发送的命令*/ -typedef struct { - CMD_UI_t cmd[CMD_REFEREE_MAX_NUM]; /* 命令数组 */ - uint8_t counter; /* 命令计数 */ -} CMD_RefereeCmd_t; - -typedef struct { - bool pc_ctrl; /* 是否使用键鼠控制 */ - bool host_overwrite; /* 是否Host控制 */ - uint16_t key_last; /* 上次按键键值 */ - - struct { - int16_t x; - int16_t y; - int16_t z; - bool l_click; /* 左键 */ - bool r_click; /* 右键 */ - } mouse_last; /* 鼠标值 */ - - CMD_AI_Status_t ai_status; /* AI状态 */ - - const CMD_Params_t *param; /* 命令参数 */ - - CMD_ChassisCmd_t chassis; /* 底盘控制命令 */ - CMD_GimbalCmd_t gimbal; /* 云台控制命令 */ - CMD_ShootCmd_t shoot; /* 射击控制命令 */ - CMD_RefereeCmd_t referee; /* 裁判系统发送命令 */ -} CMD_t; - -typedef struct { - float ch_l_x; /* 遥控器左侧摇杆横轴值,上为正 */ - float ch_l_y; /* 遥控器左侧摇杆纵轴值,右为正 */ - float ch_r_x; /* 遥控器右侧摇杆横轴值,上为正 */ - float ch_r_y; /* 遥控器右侧摇杆纵轴值,右为正 */ - - float ch_res; /* 第五通道值 */ - - CMD_SwitchPos_t sw_r; /* 右侧拨杆位置 */ - CMD_SwitchPos_t sw_l; /* 左侧拨杆位置 */ - - struct { - int16_t x; - int16_t y; - int16_t z; - bool l_click; /* 左键 */ - bool r_click; /* 右键 */ - } mouse; /* 鼠标值 */ - - uint16_t key; /* 按键值 */ - - uint16_t res; /* 保留,未启用 */ -} CMD_RC_t; - -typedef struct { - AHRS_Eulr_t gimbal_delta; /* 欧拉角的变化量 */ - - struct { - float vx; /* x轴移动速度 */ - float vy; /* y轴移动速度 */ - float wz; /* z轴转动速度 */ - } chassis_move_vec; /* 底盘移动向量 */ - - bool fire; /* 开火状态 */ -} CMD_Host_t; - -/** - * @brief 解析行为命令 - * - * @param rc 遥控器数据 - * @param cmd 主结构体 - */ -int8_t CMD_Init(CMD_t *cmd, const CMD_Params_t *param); - -/** - * @brief 检查是否启用上位机控制指令覆盖 - * - * @param cmd 主结构体 - * @return true 启用 - * @return false 不启用 - */ -bool CMD_CheckHostOverwrite(CMD_t *cmd); - -/** - * @brief 解析命令 - * - * @param rc 遥控器数据 - * @param cmd 命令 - * @param dt_sec 两次解析的间隔 - * @return int8_t 0对应没有错误 - */ -int8_t CMD_ParseRc(CMD_RC_t *rc, CMD_t *cmd, float dt_sec); - -/** - * @brief 解析上位机命令 - * - * @param host host数据 - * @param cmd 命令 - * @param dt_sec 两次解析的间隔 - * @return int8_t 0对应没有错误 - */ -int8_t CMD_ParseHost(const CMD_Host_t *host, CMD_t *cmd, float dt_sec); - -/** - * @brief 添加向Referee发送的命令 - * - * @param ref 命令队列 - * @param cmd 要添加的命令 - * @return int8_t 0对应没有错误 - */ -int8_t CMD_RefereeAdd(CMD_RefereeCmd_t *ref, CMD_UI_t cmd); - -/* USER FUNCTION BEGIN */ - -/* USER FUNCTION END */ - -#ifdef __cplusplus -} -#endif diff --git a/User/module/cmd/cmd.h b/User/module/cmd/cmd.h index 5f48d6d..44fb93e 100644 --- a/User/module/cmd/cmd.h +++ b/User/module/cmd/cmd.h @@ -42,6 +42,24 @@ typedef struct { /* 配置结构 */ /* ========================================================================== */ +/* AI行为状态 */ +typedef enum { + AI_STATUS_STOP, /* 停止状态 */ + AI_STATUS_AUTOAIM, /* 自瞄状态 */ + AI_STATUS_HITSWITCH, /* 打符状态 */ + AI_STATUS_AUTOMATIC /* 自动状态 */ +} CMD_AI_Status_t; + +/* UI所用行为状态 */ +typedef enum { + UI_NOTHING, /* 当前无状态 */ + UI_AUTO_AIM_START, /* 自瞄状态开启 */ + UI_AUTO_AIM_STOP, /* 自瞄状态关闭 */ + UI_HIT_SWITCH_START, /* 打符状态开启 */ + UI_HIT_SWITCH_STOP /* 打符状态关闭 */ +} CMD_UI_t; + + /* 灵敏度配置 */ typedef struct { float mouse_sens; /* 鼠标灵敏度 */ @@ -49,6 +67,11 @@ typedef struct { float move_fast_mult; /* 快速移动倍率 */ float move_slow_mult; /* 慢速移动倍率 */ } CMD_Sensitivity_t; +/* 分辨率配置 */ +typedef struct { + uint16_t width; + uint16_t height; +} CMD_Screen_t; /* RC模式映射配置 - 定义开关位置到模式的映射 */ typedef struct { @@ -76,7 +99,8 @@ typedef struct { /* 灵敏度设置 */ CMD_Sensitivity_t sensitivity; - + /* 分辨率设置 */ + CMD_Screen_t screen; /* RC模式映射 */ CMD_RCModeMap_t rc_mode_map; diff --git a/User/module/cmd/cmd_example.c b/User/module/cmd/cmd_example.c index 476c32e..b694cee 100644 --- a/User/module/cmd/cmd_example.c +++ b/User/module/cmd/cmd_example.c @@ -3,7 +3,7 @@ * * 本文件展示如何配置和使用新的CMD模块 */ -#include "cmd.h" +#include "module/cmd/cmd.h" /* ========================================================================== */ /* config示例 */