协议编写完成,待测试

This commit is contained in:
草团君 2024-04-17 17:19:47 +08:00
parent 4c3cb563ee
commit 5870cee759
8 changed files with 686 additions and 512 deletions

View File

@ -5,7 +5,9 @@
"motor.h": "c",
"main.h": "c",
"app.h": "c",
"type_traits": "c"
"type_traits": "c",
"adcs.h": "c",
"uarts.h": "c"
},
"C_Cpp.errorSquiggles": "disabled"
}

View File

@ -158,44 +158,22 @@
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>motor_state</ItemText>
<ItemText>test_buffer,0x10</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>motor_ccr</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>step_motor_flag</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>motor-&gt;handle.step_motor.attribute,0x0A</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>motor_dir</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>deal_done_flag,0x0A</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>uarts</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>1</WinNumber>
<ItemText>uart</ItemText>
<ItemText>self_test,0x0A</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>0x20000090</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -238,16 +216,6 @@
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\DMA1</Name>
<WinId>35904</WinId>
</Entry>
<Entry>
<Name>System Viewer\USART1</Name>
<WinId>35905</WinId>
</Entry>
</SystemViewers>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
@ -508,7 +476,7 @@
<Group>
<GroupName>User</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -812,7 +780,7 @@
<GroupNumber>9</GroupNumber>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\User\board\board.c</PathWithFileName>

View File

@ -1,5 +1,5 @@
:020000040800F2
:10000000704600209D01000895200008650D00083D
:10000000604700209D01000895200008650D00084C
:1000100000000000000000000000000000000000E0
:100020000000000000000000000000003523000870
:100030000000000000000000EB210008372300084A
@ -14,21 +14,21 @@
:1000C00000F002F800F03EF80CA030C80838241800
:1000D0002D18A246671EAB4654465D46AC4201D180
:1000E00000F030F87E460F3E0FCCB6460126334274
:1000F00000D0FB1AA246AB4633431847683F0000C6
:10010000883F0000103A02D378C878C1FAD8520765
:1000F00000D0FB1AA246AB4633431847B841000074
:10010000D8410000103A02D378C878C1FAD8520713
:1001100001D330C830C101D504680C6070470000BD
:100120000023002400250026103A01D378C1FBD813
:10013000520700D330C100D50B6070471FB51FBDFB
:1001400010B510BD00F0BDFD1146FFF7F7FF02F03E
:1001500075FE00F0D5FD03B4FFF7F2FF03BC00F01D
:10015000A1FE00F0D5FD03B4FFF7F2FF03BC00F0F1
:10016000DBFD000070B505460C46164602E00FCCDC
:100170000FC5103E102EFAD2082E02D303CC03C5B1
:10018000083E042E07D301CC01C5361F03E02178B9
:100190002970641C6D1C761EF9D270BD074880471B
:1001A00007480047FEE7FEE7FEE7FEE7FEE7FEE75B
:1001B00004480549054A064B704700007D240008A5
:1001C000C1000008703C00207046002070400020F4
:1001D0007040002001E004C0091F0429FBD28B07F6
:1001C000C1000008603D0020604700206041002021
:1001D0006041002001E004C0091F0429FBD28B0705
:1001E00001D50280801CC90700D002707047002929
:1001F0000BD0C30702D00270401C491E022904D351
:10020000830702D50280801C891EE3E70022EEE707
@ -124,7 +124,7 @@
:1007A0004C00D4420AD15C00D4420BD04B4002D55D
:1007B00092021143E2E749004908DFE75940C90FB7
:1007C000C90718E000200849D8E7054801420DD1C3
:1007D0000342F7D0F2E700000000FF07483B0000AB
:1007D0000342F7D0F2E700000000FF07983D000059
:1007E0000000F07F0000E0FF0000F87F1148594052
:1007F0000143C01241400020C0E70123089A9B0634
:100800009A4205DC032252078918C90FC907B5E7C8
@ -193,7 +193,7 @@
:100BF000AB42F9D84900A942F6D8AB4201D1A9428B
:100C0000F2D0A94201D1002101E061004908D005DC
:100C10000843F0BD1102090EFBD0FF200243D005AE
:100C2000F0BD0A460146104654E70000FE340000BD
:100C2000F0BD0A460146104654E700004E3700006A
:100C30000000C07F0102C21504D00123DB07194365
:100C4000002A0ADB9E239A1A02D40846D040704735
:100C5000FF2241001206914201D900207047C017BF
@ -208,11 +208,11 @@
:100CE00000274908B6460026C0C5C0C5C0C5C0C556
:100CF000C0C5C0C5C0C5C0C5403D49008D46704790
:100D000010B50446C046C0462046FFF724FA10BD81
:100D100000487047103C002001491820ABBEFEE798
:100D100000487047003D002001491820ABBEFEE7A7
:100D20002600020070470000024600BF002A03D1DF
:100D30000348018000BFFEE700BF012070470000AC
:100D4000C400002010B5024807C801F057FD10BDCF
:100D50008400002010B50249086802F087FC10BD2D
:100D4000D000002010B5024807C801F057FD10BDC3
:100D50008C00002010B50249086802F0AFFD10BDFC
:100D6000003A002000BFFEE770B504460D4600269D
:100D7000204600F019F8002810D1A96868680843D7
:100D8000E9680843E168074A11400843E0602069C8
@ -225,32 +225,32 @@
:100DF0003CC2FEFFC268920892000A43C26070477C
:100E00008168024A1140091D81607047E8FFFF7F39
:100E100010B54A1E044B9A5C825853085B004A1E68
:100E2000014CA25C835010BD2B3F000810B54A1E38
:100E2000014CA25C835010BD7B41000810B54A1EE6
:100E3000044B9A5C825801231A434B1E014CE35C1D
:100E4000C25010BD2B3F000810B54A1E044B9A5CDF
:100E4000C25010BD7B41000810B54A1E044B9A5C8D
:100E5000825802231A434B1E014CE35CC25010BD62
:100E60002B3F000830B54B1E054CE35CC3580324F0
:100E60007B41000830B54B1E054CE35CC35803249E
:100E70002403A34313434C1E014D2C5D035130BD8D
:100E8000923E000830B54B1E064CE35C1B185B68B5
:100E8000E240000830B54B1E064CE35C1B185B6863
:100E90001B0C1B0413434C1E024D2C5D2418636075
:100EA00030BD00002B3F000830B54B1E054CE35C05
:100EA00030BD00007B41000830B54B1E054CE35CB3
:100EB000C358054C234013434C1E024D2C5D035177
:100EC00030BD0000923E0008EFBFFFFF10B54B1E83
:100ED000024CE35C1B18DA6010BD00002B3F0008D9
:100EC00030BD0000E2400008EFBFFFFF10B54B1E31
:100ED000024CE35C1B18DA6010BD00007B41000887
:100EE00030B54B1E054CE35CC3588024A343134329
:100EF0004C1E024D2C5D035130BD0000923E000897
:100EF0004C1E024D2C5D035130BD0000E240000845
:100F000030B54B1E054CE35CC3580324A402A34335
:100F100013434C1E014D2C5D035130BD923E000821
:100F100013434C1E014D2C5D035130BDE2400008CF
:100F200030B54B1E054CE35CC3582024A343134348
:100F30004C1E024D2C5D035130BD0000923E000856
:100F30004C1E024D2C5D035130BD0000E240000804
:100F400010B54B1E024CE35C1B189A6010BD0000EC
:100F50002B3F000830B54B1E054CE35CC3584024C2
:100F50007B41000830B54B1E054CE35CC358402470
:100F6000A34313434C1E024D2C5D035130BD0000C2
:100F7000923E000830B5A8231B584C1EA5000F2434
:100F7000E240000830B5A8231B584C1EA5000F24E2
:100F8000AC40A3434C1EA5001446AC402343A82408
:100F9000235030BD30B54B1E054CE35CC3580324D1
:100FA0002402A34313434C1E014D2C5D035130BD5D
:100FB000923E0008024949688143014A51607047E6
:100FB000E2400008024949688143014A5160704794
:100FC00000040140024909688143014A11607047E9
:100FD00000040140024949680143014A51607047D9
:100FE000000401400249C9680143014AD1607047C9
@ -388,7 +388,7 @@
:1018200008400121090708430E49886000BF10499C
:1018300010480068FEF7EEFC0A2148430546FEF713
:10184000E9FC044600E0641E002CFCD110B070BD21
:101850000010024000080050800002404C3E00088A
:101850000010024000080050800002409C40000838
:10186000EFBFFFFF0024014008270140E8FFFF7F92
:10187000400D03000000002008B501200C49096B51
:1018800001430B4A11631146096B0140009100BFEF
@ -485,8 +485,8 @@
:101E30000B4AD1621146C96A0140019100BF00BF3F
:101E40004003029002200390002004900590069029
:101E50000620079002A90748FFF73AF910B070BDB5
:101E600000100240E703000000080140763E000831
:101E70007D3E00080004005000B585B000200190B0
:101E600000100240E703000000080140C6400008DF
:101E7000CD4000080004005000B585B0002001905E
:101E800002900390049010201649896B0143154A73
:101E900091631146896B0140009100BF00BF002192
:101EA000112000F0C3FB112000F03CFB0E486946F6
@ -543,12 +543,12 @@
:1021D000B0434E683603304304465560D361886887
:1021E000106400BF1462002070BD7047014600BF3C
:1021F0000548C068F022104010400009034A125CF4
:102200000846D0407047000000100240B53E00086C
:102200000846D04070470000001002400541000819
:10221000014600BF0548C068072212021040000AAC
:10222000034A125C0846D04070470000001002408C
:10223000C53E0008014600BF0548C0680722D2021B
:1022300015410008014600BF0548C0680722D202C8
:102240001040C00A034A125C0846D04070470000A4
:1022500000100240C53E000810B500BF1648C06817
:10225000001002401541000810B500BF1648C068C4
:102260000C210840002806D004280CD0082812D0E1
:102270000C2816D111E0FFF769F8400B401C012132
:102280008140CC0315E0FFF74FF8002801D00B4C3C
@ -562,7 +562,7 @@
:10230000461C0748C0680F2189040840800C084912
:10231000085C604307463146FDF77CFFF8BD0000CE
:102320000010024000093D000024F40000127A0071
:10233000CD3E00087047704710B501204B49096831
:102330001D4100087047704710B501204B490968DE
:1023400081430143494A116000BF00BF00BF4748B5
:102350000068C007C00F0028F8D00120C00244491F
:1023600009680322D20291430143414A116000BF30
@ -584,12 +584,12 @@
:10246000044A4032D16000BF10BD0000002002408D
:1024700000700040001002400048E8017047000072
:1024800010B50848FEF7BEFF00280AD006480068CD
:1024900001F010F800BF0120C0430249086100BFED
:1024900001F0D2F800BF0120C0430249086100BF2B
:1024A00000BF10BD000801407C00002010B50A48A4
:1024B000FEF7A8FF00280DD000BF08480068401CA8
:1024C0000649086000BF00BF0120C04302490861FF
:1024D00000BF00BF10BD00000010004060000020E1
:1024E00010B50249086801F0D9F910BD003A002082
:1024E00010B50249086801F001FB10BD003A002058
:1024F00030B47446641E2578641CAB4204D3635D1B
:102500005B00E31830BC18471D46F8E7002805DBE0
:10251000C206D20E01219140014A116070470000AD
@ -627,10 +627,10 @@
:1027100010BD000000E100E01CED00E0EFF31080D0
:10272000704780F31088704701460846103000E07B
:10273000001D0268002A03D1024A12689042F7D3B2
:10274000704700002400002010B50648046803E02C
:10274000704700002800002010B50648046803E028
:102750002046FFF7E9FF0446034800688442F7D3A8
:1027600010BD0000200000202400002010B5044609
:102770002146002000F0E6FC10BD10B501E001701C
:1027600010BD0000240000202800002010B5044601
:102770002146002000F084FD10BD10B501E001707D
:10278000401C1346541EA2B2002BF8D110BD0FB44A
:102790006A46908800990A690240824201D101226A
:1027A00000E00022D0B204B070470FB46A469188AE
@ -660,387 +660,424 @@
:10292000DA6000BF029901984A1E2B469A5C8258D1
:1029300001231A434B1EEB5CC25000BF032C02D193
:102940000098FEF75DFAFEBD75000020E8FFFF7FEE
:10295000083F00082038002038B5044600200090C9
:102960002068002802D01D2834D129E000BF00F0E3
:10297000EBF81B49886000F0EFFD0546FEF75AF9B9
:102980001749486000F0D9F81549486100F0F8FB94
:102990000546FEF74FF91249086100F0C7F81049E3
:1029A000086200F073F80546FEF744F90C49C86167
:1029B00000BF0C480068606000BF1D20206000BFA1
:1029C000084960680968081A0A2801D2002038BD41
:1029D00000BFCCE70020206000900320F7E7000054
:1029E000A00000206000002010B500F0F3FA00F015
:1029F0007DF810BD10B500F087F810BD10B50020AF
:102A00000F49086000F002FB00F092FA0D4807C879
:102A1000FFF736FF00F0B8F900BF00BF0A480068B2
:102A2000012108430849086000BF00BF0846C0688C
:102A3000012108430449C86000BF00BF10BD000069
:102A40007C0000208400002000100040F8B50446FF
:102A50000026022500F078F80090FF2020706670B4
:102A60000020A070E070257168460088FF210902EF
:102A700008400112684600880002081881B20091DF
:102A80002A466946601D00F00DFAF8BDF8B500242D
:102A9000002500F04BF80646FEF710F904468B219E
:102AA000C9052046FEF716F806460C4901F00EF956
:102AB00005460B49284601F061F90A490090FEF7E6
:102AC00009F807468321C905FEF704F806460649BA
:102AD00001F0FCF805462846F8BD000000803B45A3
:102AE00000001644000016430000964300200349EE
:102AF0000860034908600349086070470800002027
:102B0000100000201800002010B50548FFF724FF32
:102B1000044800F0FDFC044800F064F910BD00001A
:102B200008000020100000201800002010B504202C
:102B3000FFF78AFE0446204610BD10B50320FFF7BC
:102B400083FE0446204610BD10B50920FFF77CFE29
:102B50000446204610BD0000F8B505460E4618276D
:102B60003946002000F0EEFA0446002C01D0012185
:102B700000E0002108463621FEF7D6F82560A68041
:102B80000448A0600448E060044820610448606193
:102B90002046F8BDBB270008AB270008CB2700085C
:102BA0008F27000870B504460D46002C01D0012186
:102BB00000E0002108464321FEF7B6F8002D01D0C1
:102BC000012100E0002108464421FEF7ADF8A0787D
:102BD000002802D001280AD104E02946204600F04E
:102BE0001FFB05E02946204600F0D6F900E000BFB3
:102BF00000BF70BDF8B504460F46002C01D001217E
:102C000000E0002108463721FEF78EF82579681D7F
:102C1000C6B232462146024800F044F9F8BD000031
:102C2000143A0020F8B50646002E01D0012100E03C
:102C3000002108465621FEF777F8104C00270020A7
:102C400000903079401DC5B22A463146204600F03A
:102C500029F97819C7B2681E81B2601C00F0E1FF43
:102C6000E055781CC7B23C20E055A81CC0B20090CB
:102C70002046009900F07CF8F8BD00001E3B0020C3
:102C8000FEB504460D4601200190002600270020D5
:102C900000902078FF2806D16078002803D1681EB4
:102CA000205C3C2803D0002001900198FEBD2079D3
:102CB000C01DC6B2AE4203D0002001900198F5E7D6
:102CC000A81E275CE81E81B2601C00F0AAFF0090DD
:102CD0000098874203D0002001900198E6E7019810
:102CE000E4E70000F8B507460C46154600262946DD
:102CF0002046FFF7C5FF0646012E0AD10548007899
:102D0000002806D129462046FFF774FF012001491B
:102D10000870F8BD7800002070B5114800780128CF
:102D200000D170BD0F4D104C21462846FFF73AFFE9
:102D30002046FFF777FFF02200210C48FFF71DFD2A
:102D4000852200212846FFF718FD85220021204614
:102D5000FFF713FD00200249087000BFE1E7000003
:102D600078000020143A0020993A00201E3B0020F1
:102D700070B504460D4603492A460868214600F00E
:102D8000DFFE70BD003A00200EB512480068002832
:102D90001FD1F0210122104B0092019102900A46AE
:102DA00001210E4800F018FC0A490860002009685B
:102DB00008700B48074909688860032005490968BD
:102DC000C86002200349096808610249086800F0E8
:102DD00037FE0EBD003A0020E52C00080038014007
:102DE0000000024038B5044600200090206800280A
:102DF00002D0332819D10EE000BF7D20C00000F0C2
:102E0000EFF90C49087000BF0B480068606000BF14
:102E10003320206000BF084960680968081A6428E8
:102E200001D2002038BD00BFE7E7002020600090FD
:102E30000320F7E7040000206000002008B501200F
:102E40001749496B0143164A51631146496B0140CA
:102E5000009100BF00BF00071146896B01439163D9
:102E60001146896B0140009100BF00BF0321081F7C
:102E7000FFF764FBFFF760FAFEF71CFDFEF7FCFCB2
:102E8000FEF7DAFBFFF734F8FEF7F6FFFEF742FF36
:102E9000FFF7B4FDFFF7A8FD01E0FFF7ABFDFCE78E
:102EA0000010024010B503E00B780370491C401C71
:102EB0001346541EA2B2002BF6D110BD70B50546C4
:102EC00044263146002000F03DF90446002C01D094
:102ED000012100E0002108466521FDF725FF20467D
:102EE0000021442201E00170401C1346561EB2B27C
:102EF000002BF8D100BF2570012D0AD10749E162EE
:102F000007492163074961630749A16307492164B0
:102F100001E0002070BD00BF2046FBE74F320008F3
:102F2000A332000863340008F73300086134000856
:102F300010B598B00120FFF7C1FF134908601822AF
:102F4000124912A8FDF70EF91822104918310CA8E1
:102F5000FDF708F910200E490E4A09920A910B90CC
:102F600018220CA903A8FDF7FDF815A807C86B46A1
:102F700007C305480068C46A034812A90EC900685F
:102F8000A04718B010BD00007C000020743F00086E
:102F9000000801400AD7A33C70B504460D46002C3A
:102FA00001D0012100E000210846BC21FDF7BCFE54
:102FB000E078002806D0012805D0032804D0042892
:102FC00004D102E003E002E001E000E000BF00BF46
:102FD00070BD000010B508242146002000F0B2F8B2
:102FE000094908600968002901D0012100E0002199
:102FF0000846B521FDF798FE082200210248006826
:10300000FFF7BBFB10BD00008000002010B5044698
:10301000A1000C4B59584A00A3000B49C858002185
:1030200000F0A4F8A100094B5A58A300064908393A
:10303000C858002100F09AF80121034808300155D2
:1030400010BD0000F03E000854000020003F0008C2
:10305000F3B581B004460025002000902548005DAE
:10306000002804D123481838016820468847029870
:10307000002801D1401EFEBDA0001F4A1158029831
:10308000FDF7C8F80646A0001B4A11580298FDF744
:10309000C1F8002900D0761CA00018490858451E28
:1030A00022E0A1001348083840586900405A00281F
:1030B00003D10098401C009001E00020009000988F
:1030C000B04210D1002707E0A2000A480838805813
:1030D000EA19520086527F1CB742F5D3A000064978
:1030E00008586843C7E76D1E002DDADA0020C04398
:1030F000C1E700005C000020F83E0008F03E000838
:1031000070B504460026002508E0A1000B48405891
:103110006900405A002800D0761C6D1CA0000849A8
:103120000858A842F1D8A2000B469958642272436D
:103130001046FDF76FF8C0B270BD000054000020CB
:10314000F03E000870B504460E4631462046FFF7B3
:103150007FFF0546681C002800D170BDA100024811
:1031600040584019F9E700004C00002030B50346F4
:1031700001E019705B1C1446521E002CF9D130BDC1
:10318000F8B500240025FFF7D8FC0646FDF796FDAC
:1031900004468B21C9052046FDF79CFC06460C49D8
:1031A00000F094FD05460B49284600F0E7FD0A496A
:1031B0000090FDF78FFC07468321C905FDF78AFCC7
:1031C0000646064900F082FD05462846F8BD000087
:1031D00000803B45000016440000164300007A447E
:1031E000F8B5044600252046FDF768FD06460A4866
:1031F0000068FDF763FD07463146FDF76BFC0546A9
:103200000020054908600549284600F05FFD064694
:10321000FDF710FDF8BD0000700000200000C8425E
:1032200070B505460C46E878002806D0012808D07D
:10323000022807D0032807D105E02046FFF706FC47
:1032400003E002E001E000E000BF00BF70BD0FB48A
:10325000F8B5044613ADE0CD002C01D0012100E00B
:10326000002108460621FDF75FFD6A46118C07988C
:10327000FFF772FC60606A46118F0D98FFF76CFCD7
:10328000A060E6602761656100BFE068FEF770F846
:103290002169E068FEF768F800BFF8BC08BC04B01C
:1032A0001847F3B585B00546002D01D0012100E097
:1032B000002108461121FDF737FD2C1D002C01D0FF
:1032C000012100E0002108461321FDF72DFD06989D
:1032D000207601216176069800283ED12168086990
:1032E00049690191009020680490206880680390EB
:1032F0000C21049841180A7813464A7812021343A5
:103300008A7812041343C97809060B43082141182F
:103310000E7832464E78360232438E783604324387
:10332000C97809060A430779394647793F02394384
:1033300087793F043943C6793606314306463778E4
:10334000384677783F023843B7783F043843F678F9
:1033500036063043039EB0473DE02168086949695D
:1033600001910090206804902068C06803900C21AF
:10337000049841180A7813464A78120213438A784F
:1033800012041343C97809060B43082141180E782B
:1033900032464E78360232438E7836043243C9784C
:1033A00009060A430779394647793F023943877945
:1033B0003F043943C67936063143064637783846E6
:1033C00077783F023843B7783F043843F6783606BB
:1033D0003043039EB04700BFA0680168012211433B
:1033E000016000BFE168A068026A0A43026200BF90
:1033F00000BF07B0F0BDFEB505460E461746002DCE
:1034000001D0012100E0002108462B21FDF78CFCB2
:103410002C1D002C01D0012100E0002108462D21A7
:10342000FDF782FC607E012800D1FEBD3046FDF72D
:1034300045FC00902169FDF74DFB0190FDF7FAFB7B
:10344000E06100216162E069002803D12846216B18
:10345000884703E039462846E26A904700BFE4E720
:10346000704770B50546002D01D0012100E0002114
:1034700008461C21FDF758FC2C1D002C01D0012111
:1034800000E0002108461E21FDF74EFC0021617678
:103490006161E16100BFA068FDF76AFFE168A068B3
:1034A000FDF762FF00BFA06B002802D02846A16B89
:1034B000884770BD70B50546002D01D0012100E0A0
:1034C000002108464C21FDF72FFC2C1D002C01D0BB
:1034D000012100E0002108464E21FDF725FCE069AE
:1034E000401EE061606A401C6062207E012803D1BA
:1034F000206A401C206202E0206A401E2062E069CF
:10350000002804D100BF00BF2846216B884770BD4A
:1035100038B50446002000902068002802D02828F2
:1035200013D10AE000BFFFF7F7FB00BF09480068AE
:10353000606000BF2820206000BF064960680968FD
:10354000081A00D138BD00BFEDE7002020600090D0
:103550000320F7E760000020F0B587B000240020CA
:103560000690FFF7F1FA0546FDF7A8FB04468B210C
:10357000C9052046FDF7AEFA0546114900F0A6FB45
:1035800006901049069800F0F9FB0F490190FDF7ED
:10359000A1FA0746FDF774FA05460C4A0C4BFCF7F6
:1035A00027FF00220B4B03910290FDF745F905918F
:1035B0000490FCF7DFFE0690069807B0F0BD00000F
:1035C00000803B450080BB440000CA426891ED7C0E
:1035D0003F35174000002440FFB581B00646154630
:1035E0000B9F002E01D0012100E00021084684211C
:1035F000FDF79AFB3420FFF7B9F80446002C01D000
:10360000012100E0002108468721FDF78DFB049889
:10361000E062A5830C9820632785002D0DDD2846E8
:10362000FFF7A4F8A061A169002901D0012100E001
:10363000002108469621FDF777FB002F0DDD384667
:10364000FFF794F86062616A002901D0012100E06F
:10365000002108469D21FDF767FB0298A0752021F7
:103660000A9808556660204605B0F0BD70B504465E
:10367000002C01D0012100E000210846FF216B3120
:10368000FDF752FB2169A068FDF7C2FB206903002A
:10369000FEF72EFF0873051423334353637300BFF3
:1036A000A0680168022211404908002904D0A068DE
:1036B0000221416000BF00BF00BF5FE000BFA06803
:1036C0000168202211404909002904D0A068202166
:1036D000416000BF00BF00BF50E000BFA0680168AC
:1036E000012252021140490A002904D0A068114663
:1036F000416000BF00BF00BF40E000BFA06801689C
:10370000012252031140490B002904D0A068114640
:10371000416000BF00BF00BF30E000BFA06801688B
:10372000012252041140490C002904D0A06811461E
:10373000416000BF00BF00BF20E000BFA06801687B
:10374000012252051140490D002904D0A0681146FC
:10375000416000BF00BF00BF10E000BFA06801686B
:10376000012252061140490E002904D0A0681146DA
:10377000416000BF00BF00BF00E000BF00BF656840
:1037800000BF00BFFEF7CAFF06460120FEF7C9FFD3
:1037900028684021084328603046FEF7C2FF00BF7A
:1037A00000BF01212A20015520690300FEF7A0FE79
:1037B0000873051423334353637300BFA068016883
:1037C00008221140C908002904D0A06808214160DE
:1037D00000BF00BF00BF5FE000BFA068016880229B
:1037E0001140C909002904D0A0688021416000BFB0
:1037F00000BF00BF50E000BFA06801680122D202F4
:103800001140C90A002904D0A0681146416000BFD8
:1038100000BF00BF40E000BFA06801680122D203E2
:103820001140C90B002904D0A0681146416000BFB7
:1038300000BF00BF30E000BFA06801680122D204D1
:103840001140C90C002904D0A0681146416000BF96
:1038500000BF00BF20E000BFA06801680122D205C0
:103860001140C90D002904D0A0681146416000BF75
:1038700000BF00BF10E000BFA06801680122D206AF
:103880001140C90E002904D0A0681146416000BF54
:1038900000BF00BF00E000BF00BF70BD70B50446B0
:1038A000002C01D0012100E000210846FF21243135
:1038B000FDF73AFA606801682022114049090029A1
:1038C0001BD06068C16911404909002915D06068A2
:1038D000416AC9B2A28A501CA082A0698154A07D0D
:1038E000002851D1E06A002804D0A28A2078E36A37
:1038F000A16998470020A08246E060680168102214
:103900001140090900293FD06068C16911400909C7
:10391000002939D0A07D012831D1E168A068FDF7E8
:1039200077FAE168A0684A1E444B9A5C1218526804
:10393000A08B801AA082E06A002817D0A08A0028F5
:1039400014DDA08AA18B884210DCA28A2078E36A69
:10395000A16998470021A28BA06901E00170401C79
:103960001346551EAAB2002BF8D100BFA28BE16806
:10397000A068FDF787FAE168A068FDF757FA002014
:10398000A0826068FDF77AFD6068016840221140FE
:10399000890900290ED06068FDF728FE002809D0AB
:1039A000206B002801D0206B8047606840210162B5
:1039B00000BF00BF60680168FF2201321140090AA0
:1039C00000290DD06068C169C907C90F01225140A3
:1039D0005140002904D060680121016200BF00BF8E
:1039E0006068FDF7F1FD002809D06068FDF7ECFD87
:1039F000002804D060680221016200BF00BF606837
:103A0000FDF7E8FD002809D06068FDF7E3FD002818
:103A100004D060680421016200BF00BF6068FDF748
:103A2000DFFD002809D06068FDF7DAFD002804D02A
:103A300060680821016200BF00BF70BD2B3F000815
:103A400070B50446A07D002803D16068FDF722FD13
:103A500075E06068FDF712FD6068FDF71BFD2169E8
:103A6000A068FDF7D5F9E168A068FDF7D1F901215B
:103A70006068FDF706FD05462A46E168A068FDF787
:103A80005FFAA269E168A068FDF720FAA28BE168FD
:103A9000A068FDF7F7F9E168A068FDF7D5F9E168DE
:103AA000A068FDF7C3F9656800BF00BFFEF736FEEA
:103AB00006460120FEF735FEA86840210843A860AD
:103AC0003046FEF72EFE00BF00BF656800BF00BF96
:103AD000FEF724FE06460120FEF723FE286810218B
:103AE000084328603046FEF71CFE00BF00BF0021DF
:103AF0006068FDF7C6FC05462A462169A068FDF707
:103B00001FFA626A2169A068FDF7E0F92169A068DF
:103B1000FDF79AF9656800BF00BFFEF7FFFD064696
:103B20000120FEF7FEFDA86880210843A86030460A
:103B3000FEF7F7FD00BF00BF01212A20015570BD2F
:103B4000F8B504460D461646002C01D0012100E0D0
:103B500000210846F321FDF7E7F8002D01D00121EF
:103B600000E000210846F421FDF7DEF8002E01DD1B
:103B7000012100E000210846F521FDF7D5F80027D6
:103B80002020005D012823D12A20005D01281FD1BB
:103B900000212A2001552946606A009603E00A7830
:103BA0000270491C401C009A531E9BB20093002ACD
:103BB000F5D100BF2169A068FDF72AF932462169D5
:103BC000A068FDF75FF92169A068FDF72FF926E0ED
:103BD0000027002014E0002705E039467A1CD7B200
:103BE000FE2900DBF8BD6168CA6980231A40D2094A
:103BF000002AF2D02A5C61688A6200BF411C88B248
:103C0000B042E8DB002705E03846791CCFB2FE2839
:103C100000DBE7E76068FDF7E9FC0028F4D000BFAF
:103C2000E0E730B5024614460020002304E0257882
:103C30006840641C5D1CABB28B42F8DB30BD0000F9
:103C400070B501250400ED074C4020D4441A01D280
:103C5000001B0919C60D4B00F2B2FF2A29D01B0E1A
:103C60002CD000020C02D31A2C43DC402843051947
:103C700010D2280A02D3401C6D0611D0761EF6051C
:103C80008019FF2A00DA70BDC00DC00570BD694003
:103C900000F07AF801200543C541521C761CE8E784
:103CA00064089C40C90161408900E7D10124A04318
:103CB000E4E71B0E440200D0034870BD002AFCD18B
:103CC000C00FC00770BD00BF0000C07F70B54200CC
:103CD00064414B005C41120E39D01B0E38D0FF2AD4
:103CE0003CD0FF2B3AD040024902400A490A060064
:103CF00045184E43000A090AD2184843ED017F3A9D
:103D00000104731A4019190C4318990F04D00121AA
:103D10005B0849075B1A521CD80904D3401CF50301
:103D200001D19D0607D0FF2A08D2D50506D0E407A9
:103D30002043401970BD0125A843F4E7002A01DCA7
:103D4000E00770BD2402FF202043C00570BD1B0E9C
:103D5000FF2A03D0FF2B01D0E00770BDFF264500EE
:103D60003606B54206D84D00B54203D8D218FF2A10
:103D700000D0E7E7004870BD0000C07F70B50125A6
:103D80000400ED074C4022D4441A02D26C40001BC0
:103D90000919C60D4B00F2B2FF2A4BD01B0E50D0B2
:103DA00000020C02D31A2C43DC40A843051B05D5A6
:103DB000AD0019D36D08761E521E37D0F605280ABD
:103DC00001D2801970BD70416D0603D070BD69408D
:103DD000FFF73CFF9C4009026140490001D0401EB2
:103DE00070BD0124A04370BD6D081DD001202B0CB7
:103DF00001D12D0410302B0E01D12D0208302B0FD4
:103E000001D12D01001DAB0F01D1AD00801CEB0FC6
:103E100001D16D00401C6D00361A121A680AF505B2
:103E20004019012A02DB70BD002070BDC036300A87
:103E3000C00770BD1B0E440201D1FF2B00D1024808
:103E400070BD002AF0D070BD0000C07F081C304457
:103E5000586C80000000000400040000080000000E
:103E600008000008000000080000040008000C081A
:103E70001C3044586C80000000000400040000085E
:103E8000000000080000080000000800000400080E
:103E9000000C081C3044586C800000000004000432
:103EA00000000800000008000008000000080000F2
:103EB000040008000C0000000000000000010203E4
:103EC00004060708090000000001020304030406B9
:103ED000080C101820305F6C697374006C6973747F
:103EE00020616C6C20636F6D6D616E64000000007A
:103EF000A0010000010000002000000020000000E0
:103F00000034000020000000081C3044586C800081
:103F10000000000400040000080000000800000881
:103F2000000000080000040008000C081C30445881
:103F30006C8000000000040004000008000000087D
:103F4000000008000000080000040008000C000049
:103F5000081C3044586C800000000004000400007D
:103F6000080000000800000800000008000004002D
:103F700008000C00000400500020000000000000B9
:103F800000000000000000000000000000040050DD
:103F90000010000000000000000000000000000011
:103FA0000000000080807F7E7D7C7B7A7978777648
:103FB00076757473727171706F6E6E6D6C6C6B6A06
:103FC0006A696868676666656464636362616160A4
:103FD000605F5F5E5E5D5D5C5C5B5B5A5A59595821
:103FE000585757565655555554545353525252518B
:103FF000515050504F4F4F4E4E4D4D4D4C4C4C4BE1
:104000004B4B4A4A4A494949484848474747474627
:104010004646454545444444444343434342424263
:10402000424141418182838485868788898B8C8D3A
:104030008E8F919293959697999A9C9D9FA0A2A3FB
:10404000A5A7A8AAACAEB0B2B3B5B7B9BCBEC0C242
:10405000C5C7C9CCCED1D4D7D9DCDFE2E6E9ECF0D4
:10406000F3F7FAFE8440000800000020A0000000E2
:104070000401000824410008A0000020D0450000F1
:1040800020010008000020000000000000000000E7
:104090000000000000000000000000000000000020
:1040A0000000000000000000000000000000000010
:1040B0000000000000000000000000000000000000
:1040C00000000000000000000D3000080131000871
:1040D000E000002040000020E034002042000020EA
:1040E00000000000000000000000000000000000D0
:1040F00000000000000000000000000000000000C0
:104100000000000000000000002401400000024008
:1041100001000000D63E0008DC3E0008C6E533B4CE
:044120004927000823
:10295000584100082038002038B504460020009077
:102960002068002802D0222858D14DE000BF00F096
:1029700011F92D49886000F017FF0546FEF75AF956
:102980002949486008468068FF2109020840001272
:1029900025498968090240182449088000F0F3F8A5
:1029A0002149486100F08AFC0546FEF743F91E49BB
:1029B000086108464069FF210902084001121A48CF
:1029C0004069000208181949488000F0D5F81649F6
:1029D000086200F081F80546FEF72CF91249C8613B
:1029E0000846006AFF210902084001120E48006AE9
:1029F000000208180D49888000BF0D48006860601B
:102A000000BF2220206000BF094960680968081AD9
:102A10000A2801D2002038BD00BFA8E700202060AE
:102A200000900320F7E70000AC00002084000020A5
:102A30006000002010B500F06BFB00F07DF810BDC9
:102A400010B500F087F810BD10B500200F490860E0
:102A500000F07AFB00F0B6FA0D4807C8FFF710FF48
:102A600000F0BEF900BF00BF0A480068012108431A
:102A70000849086000BF00BF0846C068012108433C
:102A80000449C86000BF00BF10BD00007C000020EA
:102A90008C0000200010004070B505460E4614461C
:102AA000002E01D0012100E000210846FF21C231A3
:102AB000FEF73AF9002C01D0012100E00021084680
:102AC000FF21C331FEF730F985223146204600F060
:102AD00015FA657070BD0000F8B50024002500F0FF
:102AE0004BF80646FEF7EAF804468B21C905204656
:102AF000FDF7F0FF06460C4901F010FA05460B49B8
:102B0000284601F063FA0A490090FDF7E3FF074603
:102B10008321C905FDF7DEFF0646064901F0FEF9EF
:102B200005462846F8BD000000803B4500001644DD
:102B30000000164300009643002003490860034943
:102B400008600349086070470C0000201400002052
:102B50001C00002010B50548FFF7FEFE044800F0F9
:102B600099FD044800F06AF910BD00000C00002037
:102B7000140000201C00002010B50420FFF764FEA4
:102B80000446204610BD10B50320FFF75DFE044645
:102B9000204610BD10B50920FFF756FE044620461A
:102BA00010BD0000F8B505460E461827394600202E
:102BB00000F066FB0446002C01D0012100E000215A
:102BC00008463621FEF7B0F82560A6800448A060CC
:102BD0000448E06004482061044860612046F8BD74
:102BE000BB270008AB270008CB2700088F27000869
:102BF00070B504460D46002C01D0012100E00021F3
:102C000008464421FEF790F8002D01D0012100E094
:102C1000002108464521FEF787F8A078002802D059
:102C200001280AD104E02946204600F097FB0AE07B
:102C30002946204600F022FA05E02A4621460320D4
:102C4000FFF72AFF00BF00BF70BD0000F8B50446C3
:102C50000F46002C01D0012100E000210846382158
:102C6000FEF762F82579681DC6B232462146024851
:102C700000F044F9F8BD0000143A0020F8B506460B
:102C8000002E01D0012100E0002108465821FEF766
:102C90004BF8104C0027002000903079401DC5B241
:102CA0002A463146204600F029F97819C7B2681E35
:102CB00081B2601C01F0DDF8E055781CC7B23C2001
:102CC000E055A81CC0B200902046009900F07CF8A6
:102CD000F8BD00001E3B0020FEB504460D46012055
:102CE000019000260027002000902078FF2806D1C0
:102CF0006078002803D1681E205C3C2803D00020A7
:102D000001900198FEBD2079C01DC6B2AE4203D02D
:102D1000002001900198F5E7A81E275CE81E81B20B
:102D2000601C01F0A6F800900098874203D00020B4
:102D300001900198E6E70198E4E70000F8B507463E
:102D40000C461546002629462046FFF7C5FF0646D5
:102D5000012E0AD105480078002806D129462046D0
:102D6000FFF774FF012001490870F8BD78000020CA
:102D700070B511480078002800D170BD0F4D104C7F
:102D800021462846FFF734FF2046FFF777FFF02261
:102D900000210C48FFF7F1FC852200212846FFF7AF
:102DA000ECFC852200212046FFF7E7FC00200249C9
:102DB000087000BFE1E7000078000020143A00200E
:102DC000993A00201E3B002070B504460D46034989
:102DD0002A460868214600F0DBFF70BD003A00205B
:102DE0000EB51248006800281FD1F0210122104BB7
:102DF0000092019102900A4601210E4800F014FD54
:102E00000A4908600020096808700B4807490968EA
:102E10008860032005490968C860022003490968E1
:102E200008610249086800F033FF0EBD003A002037
:102E30003D2D0008003801400000024038B504462E
:102E4000002000902068002802D0392819D110E015
:102E500000BF00F043FC7D20C00000F05FFA0B498A
:102E6000087000BF0A480068606000BF3920206019
:102E700000BF074960680968081A00D138BD00BF63
:102E8000E7E70020206000900320F7E7040000201F
:102E90006000002008B501201749496B0143164A1C
:102EA00051631146496B0140009100BF00BF00070C
:102EB0001146896B014391631146896B0140009172
:102EC00000BF00BF0321081FFFF738FBFFF734FAEC
:102ED000FEF7F0FCFEF7D0FCFEF7AEFBFFF708F8BC
:102EE000FEF7CAFFFEF716FFFFF7AEFDFFF7A2FDE4
:102EF00001E0FFF7A5FDFCE70010024010B503E07C
:102F00000B780370491C401C1346541EA2B2002BC0
:102F1000F6D110BD70B5054644263146002000F0BC
:102F2000AFF90446002C01D0012100E00021084641
:102F30006521FDF7F9FE20460021442201E00170E1
:102F4000401C1346561EB2B2002BF8D100BF2570AC
:102F5000012D0AD10749E1620749216307496163ED
:102F60000749A1630749216401E0002070BD00BF4B
:102F70002046FBE7D93300082D340008E735000868
:102F800081350008E5350008F8B505460C460B48C4
:102F90000068061D0A480778012D09D1007800282D
:102FA00006D1227861680548736B0068984703E092
:102FB0000248316B006888473846F8BD7C00002025
:102FC0000800002010B598B00120FFF7A3FF1349B7
:102FD00008601822124912A8FDF7C4F818221049F7
:102FE00018310CA8FDF7BEF810200E490E4A0992C0
:102FF0000A910B9018220CA903A8FDF7B3F815A8A5
:1030000007C86B4607C305480068C46A034812A98D
:103010000EC90068A04718B010BD00007C00002059
:10302000C4410008000801400AD7A33CF8B5054692
:103030000C4600262879052802DA03263046F8BD1A
:10304000687920700422A91D201DFFF757FF6068D2
:10305000009000990A0EFF231B041940090A521818
:103060001B120099194009025118009A120689187A
:103070000091009961603046E1E70000F8B505462F
:103080000C46002D01D0012100E000210846E2217C
:10309000FDF74AFE002C01D0012100E00021084686
:1030A000E321FDF741FE194807680026E87800286B
:1030B00004D0012803D0022820D113E024E03946AF
:1030C0002846FFF7B3FF0646002E04D139460120FB
:1030D000FFF75AFF0646852229462046FFF70EFFD6
:1030E000667011E039460020FFF74EFF0646852244
:1030F00029462046FFF702FF667005E02246294672
:103100000320FFF7C9FC00BF00BFF8BD800000200E
:1031100010B508242146002000F0B2F809490860E3
:103120000968002901D0012100E000210846DB21C7
:10313000FDF7FAFD0822002102480068FFF71DFB99
:1031400010BD00008000002010B50446A1000C4B0B
:1031500059584A00A3000B49C858002100F0A4F8B0
:10316000A100094B5A58A30006490839C858002144
:1031700000F09AF8012103480830015510BD000005
:10318000404100085400002050410008F3B581B0D0
:1031900004460025002000902548005D002804D149
:1031A000234818380168204688470298002801D132
:1031B000401EFEBDA0001F4A11580298FDF72AF8D4
:1031C0000646A0001B4A11580298FDF723F8002973
:1031D00000D0761CA00018490858451E22E0A10026
:1031E0001348083840586900405A002803D1009815
:1031F000401C009001E0002000900098B04210D1E7
:10320000002707E0A2000A4808388058EA1952004F
:1032100086527F1CB742F5D3A00006490858684380
:10322000C7E76D1E002DDADA0020C043C1E70000B9
:103230005C000020484100084041000870B5044689
:103240000026002508E0A1000B4840586900405ABC
:10325000002800D0761C6D1CA00008490858A84220
:10326000F1D8A2000B469958642272431046FCF72D
:10327000D1FFC0B270BD00005400002040410008E2
:1032800070B504460E4631462046FFF77FFF0546DF
:10329000681C002800D170BDA100024840584019A8
:1032A000F9E700004C00002030B5034601E019703A
:1032B0005B1C1446521E002CF9D130BDF8B5002419
:1032C0000025FFF760FC0646FDF7F8FC04468B215D
:1032D000C9052046FDF7FEFB06460C4900F01EFE20
:1032E00005460B49284600F071FE0A490090FDF79B
:1032F000F1FB07468321C905FDF7ECFB06460649AD
:1033000000F00CFE05462846F8BD000000803B4555
:10331000000016440000164300007A44F8B5044645
:1033200000252046FDF7CAFC06460A480068FDF75E
:10333000C5FC07463146FDF7CDFB05460020054993
:1033400008600549284600F0E9FD0646FDF772FCD5
:10335000F8BD0000700000200000C84270B50546AE
:103360000C46002D01D0012100E000210846FF217C
:103370004D31FDF7D9FC002C01D0012100E00021E6
:103380000846FF214E31FDF7CFFC0026E8780328E0
:1033900001DD032600E000BFFF2020706670A878E2
:1033A000A070E878E070E878032807DB0620207139
:1033B00022790849601DFFF7A1FD09E00220207174
:1033C0002279E0784000034BC118601DFFF796FD9D
:1033D00070BD0000840000200FB4F8B5044613ADA2
:1033E000E0CD002C01D0012100E00021084606219B
:1033F000FDF79AFC6A46118C0798FFF7D3FB6060D3
:103400006A46118F0D98FFF7CDFBA060E66027613B
:10341000656100BFE068FDF7ABFF2169E068FDF77B
:10342000A3FF00BFF8BC08BC04B01847F3B585B0D3
:103430000546002D01D0012100E0002108461121A0
:10344000FDF772FC2C1D002C01D0012100E00021B1
:1034500008461321FDF768FC069820760121617665
:10346000069800283ED121680869496901910090B9
:10347000206804902068806803900C21049841180B
:103480000A7813464A78120213438A7812041343C7
:10349000C97809060B43082141180E7832464E7848
:1034A000360232438E7836043243C97809060A431D
:1034B0000779394647793F02394387793F043943D1
:1034C000C6793606314306463778384677783F0264
:1034D0003843B7783F043843F67836063043039EC6
:1034E000B0473DE021680869496901910090206872
:1034F00004902068C06803900C21049841180A7851
:1035000013464A78120213438A7812041343C97887
:1035100009060B43082141180E7832464E783602D0
:1035200032438E7836043243C97809060A43077954
:10353000394647793F02394387793F043943C67991
:103540003606314306463778384677783F023843A7
:10355000B7783F043843F67836063043039EB047C9
:1035600000BFA068016801221143016000BFE1684B
:10357000A068026A0A43026200BF00BF07B0F0BD44
:10358000F8B505460E461746002D01D0012100E092
:10359000002108462B21FDF7C7FB2C1D002C01D074
:1035A000012100E0002108462D21FDF7BDFB607ED2
:1035B000012800D1F8BD30462169FDF78BFA009053
:1035C000FDF738FBE06100216162E069002803D16A
:1035D0002846216B884703E039462846E26A90472F
:1035E00000BFE7E7704770B50546002D01D0012107
:1035F00000E0002108461C21FDF796FB2C1D002C45
:1036000001D0012100E0002108461E21FDF78CFBBE
:10361000002161766161E16100BFA068FDF7A8FE4D
:10362000E168A068FDF7A0FE00BFA06B002802D0F3
:103630002846A16B884770BD70B50546002D01D0A6
:10364000012100E0002108464C21FDF76DFB2C1DF7
:10365000002C01D0012100E0002108464E21FDF799
:1036600063FBE069401EE061606A401C6062207E8E
:10367000012803D1206A401C206202E0206A401E1B
:103680002062E069002804D100BF00BF2846216BFA
:10369000884770BD38B50446002000902068002897
:1036A00002D02D2813D10AE000BFFFF761FB00BF55
:1036B00009480068606000BF2D20206000BF0649F7
:1036C00060680968081A00D138BD00BFEDE7002026
:1036D000206000900320F7E76000002070B500250F
:1036E0000F4C10480078032800DB70BD0D480078AF
:1036F000012802D0022808D106E00A49487821466C
:1037000000F02CF8054601E000E000BF00BF2946AC
:10371000204600F009F800200249087000BFE4E7E5
:103720000E3C00209800002070B504460D4600268F
:1037300029462046FFF7D0FA0646012E0AD1064850
:103740000078002806D129462046FFF77FFA01209D
:103750000149087070BD000078000020F0B5A3B0EA
:1037600006460D4600270024FF216846017100210E
:1037700041718171C67101720524F0222846FEF75D
:10378000FCFF224601A92846FFF7B8FB601E81B264
:10379000681C00F06EFB2855641C3C202855641CF6
:1037A0002746384623B0F0BDF0B587B0002400208E
:1037B0000690FFF7EFF90546FDF780FA04468B21E6
:1037C000C9052046FDF786F90546114900F0A6FB1C
:1037D00006901049069800F0F9FB0F490190FDF79B
:1037E00079F90746FDF74CF905460C4A0C4BFCF7F6
:1037F000FFFD00220B4B03910290FDF71DF8059190
:103800000490FCF7B7FD0690069807B0F0BD0000E5
:1038100000803B450080BB440000CA426891ED7CBB
:103820003F35174000002440FFB581B006461546DD
:103830000B9F002E01D0012100E0002108468421C9
:10384000FDF772FA3420FEF791FF0446002C01D0F8
:10385000012100E0002108468721FDF765FA049860
:10386000E062A5830C9820632785002D0DDD284696
:10387000FEF77CFFA061A169002901D0012100E0D1
:10388000002108469621FDF74FFA002F0DDD38463E
:10389000FEF76CFF6062616A002901D0012100E03F
:1038A000002108469D21FDF73FFA0298A0752021CE
:1038B0000A9808556660204605B0F0BD70B504460C
:1038C000002C01D0012100E000210846FF216B31CE
:1038D000FDF72AFA2169A068FDF79AFA206903002A
:1038E000FEF706FE0873051423334353637300BFCA
:1038F000A0680168022211404908002904D0A0688C
:103900000221416000BF00BF00BF5FE000BFA068B0
:103910000168202211404909002904D0A068202113
:10392000416000BF00BF00BF50E000BFA068016859
:10393000012252021140490A002904D0A068114610
:10394000416000BF00BF00BF40E000BFA068016849
:10395000012252031140490B002904D0A0681146EE
:10396000416000BF00BF00BF30E000BFA068016839
:10397000012252041140490C002904D0A0681146CC
:10398000416000BF00BF00BF20E000BFA068016829
:10399000012252051140490D002904D0A0681146AA
:1039A000416000BF00BF00BF10E000BFA068016819
:1039B000012252061140490E002904D0A068114688
:1039C000416000BF00BF00BF00E000BF00BF6568EE
:1039D00000BF00BFFEF7A2FE06460120FEF7A1FED3
:1039E00028684021084328603046FEF79AFE00BF51
:1039F00000BF01212A20015520690300FEF778FD50
:103A00000873051423334353637300BFA068016830
:103A100008221140C908002904D0A068082141608B
:103A200000BF00BF00BF5FE000BFA0680168802248
:103A30001140C909002904D0A0688021416000BF5D
:103A400000BF00BF50E000BFA06801680122D202A1
:103A50001140C90A002904D0A0681146416000BF86
:103A600000BF00BF40E000BFA06801680122D20390
:103A70001140C90B002904D0A0681146416000BF65
:103A800000BF00BF30E000BFA06801680122D2047F
:103A90001140C90C002904D0A0681146416000BF44
:103AA00000BF00BF20E000BFA06801680122D2056E
:103AB0001140C90D002904D0A0681146416000BF23
:103AC00000BF00BF10E000BFA06801680122D2065D
:103AD0001140C90E002904D0A0681146416000BF02
:103AE00000BF00BF00E000BF00BF70BD70B504465E
:103AF000002C01D0012100E000210846FF212431E3
:103B0000FDF712F960680168202211404909002977
:103B10001BD06068C16911404909002915D060684F
:103B2000416AC9B2A28A501CA082A0698154A07DBA
:103B3000002851D1E06A002804D0A28A2078E36AE4
:103B4000A16998470020A08246E0606801681022C1
:103B50001140090900293FD06068C1691140090975
:103B6000002939D0A07D012831D1E168A068FDF796
:103B70004FF9E168A0684A1E444B9A5C12185268DB
:103B8000A08B801AA082E06A002817D0A08A0028A3
:103B900014DDA08AA18B884210DCA28A2078E36A17
:103BA000A16998470021A28BA06901E00170401C27
:103BB0001346551EAAB2002BF8D100BFA28BE168B4
:103BC000A068FDF75FF9E168A068FDF72FF9002014
:103BD000A0826068FDF752FC6068016840221140D5
:103BE000890900290ED06068FDF700FD002809D082
:103BF000206B002801D0206B804760684021016263
:103C000000BF00BF60680168FF2201321140090A4D
:103C100000290DD06068C169C907C90F0122514050
:103C20005140002904D060680121016200BF00BF3B
:103C30006068FDF7C9FC002809D06068FDF7C4FC86
:103C4000002804D060680221016200BF00BF6068E4
:103C5000FDF7C0FC002809D06068FDF7BBFC002818
:103C600004D060680421016200BF00BF6068FDF7F6
:103C7000B7FC002809D06068FDF7B2FC002804D02A
:103C800060680821016200BF00BF70BD7B41000871
:103C900070B50446A07D002803D16068FDF7FAFBEB
:103CA00075E06068FDF7EAFB6068FDF7F3FB2169EA
:103CB000A068FDF7ADF8E168A068FDF7A9F801215B
:103CC0006068FDF7DEFB05462A46E168A068FDF75F
:103CD00037F9A269E168A068FDF7F8F8A28BE168FE
:103CE000A068FDF7CFF8E168A068FDF7ADF8E168DE
:103CF000A068FDF79BF8656800BF00BFFEF70EFDEA
:103D000006460120FEF70DFDA86840210843A86083
:103D10003046FEF706FD00BF00BF656800BF00BF6C
:103D2000FEF7FCFC06460120FEF7FBFC286810218C
:103D3000084328603046FEF7F4FC00BF00BF0021B6
:103D40006068FDF79EFB05462A462169A068FDF7DD
:103D5000F7F8626A2169A068FDF7B8F82169A068E0
:103D6000FDF772F8656800BF00BFFEF7D7FC064696
:103D70000120FEF7D6FCA86880210843A8603046E1
:103D8000FEF7CFFC00BF00BF01212A20015570BD06
:103D9000F8B504460D461646002C01D0012100E07E
:103DA00000210846F321FCF7BFFF002D01D00121BF
:103DB00000E000210846F421FCF7B6FF002E01DDEB
:103DC000012100E000210846F521FCF7ADFF0027A6
:103DD0002020005D012823D12A20005D01281FD169
:103DE00000212A2001552946606A009603E00A78DE
:103DF0000270491C401C009A531E9BB20093002A7B
:103E0000F5D100BF2169A068FDF702F832462169AB
:103E1000A068FDF737F82169A068FDF707F826E0EC
:103E20000027002014E0002705E039467A1CD7B2AD
:103E3000FE2900DBF8BD6168CA6980231A40D209F7
:103E4000002AF2D02A5C61688A6200BF411C88B2F5
:103E5000B042E8DB002705E03846791CCFB2FE28E7
:103E600000DBE7E76068FDF7C1FB0028F4D000BF86
:103E7000E0E730B5024614460020002304E0257830
:103E80006840641C5D1CABB28B42F8DB30BD0000A7
:103E900070B501250400ED074C4020D4441A01D22E
:103EA000001B0919C60D4B00F2B2FF2A29D01B0EC8
:103EB0002CD000020C02D31A2C43DC4028430519F5
:103EC00010D2280A02D3401C6D0611D0761EF605CA
:103ED0008019FF2A00DA70BDC00DC00570BD6940B1
:103EE00000F07AF801200543C541521C761CE8E732
:103EF00064089C40C90161408900E7D10124A043C6
:103F0000E4E71B0E440200D0034870BD002AFCD138
:103F1000C00FC00770BD00BF0000C07F70B5420079
:103F200064414B005C41120E39D01B0E38D0FF2A81
:103F30003CD0FF2B3AD040024902400A490A060011
:103F400045184E43000A090AD2184843ED017F3A4A
:103F50000104731A4019190C4318990F04D0012158
:103F60005B0849075B1A521CD80904D3401CF503AF
:103F700001D19D0607D0FF2A08D2D50506D0E40757
:103F80002043401970BD0125A843F4E7002A01DC55
:103F9000E00770BD2402FF202043C00570BD1B0E4A
:103FA000FF2A03D0FF2B01D0E00770BDFF2645009C
:103FB0003606B54206D84D00B54203D8D218FF2ABE
:103FC00000D0E7E7004870BD0000C07F70B5012554
:103FD0000400ED074C4022D4441A02D26C40001B6E
:103FE0000919C60D4B00F2B2FF2A4BD01B0E50D060
:103FF00000020C02D31A2C43DC40A843051B05D554
:10400000AD0019D36D08761E521E37D0F605280A6A
:1040100001D2801970BD70416D0603D070BD69403A
:10402000FFF73CFF9C4009026140490001D0401E5F
:1040300070BD0124A04370BD6D081DD001202B0C64
:1040400001D12D0410302B0E01D12D0208302B0F81
:1040500001D12D01001DAB0F01D1AD00801CEB0F74
:1040600001D16D00401C6D00361A121A680AF50560
:104070004019012A02DB70BD002070BDC036300A35
:10408000C00770BD1B0E440201D1FF2B00D10248B6
:1040900070BD002AF0D070BD0000C07F081C304405
:1040A000586C8000000000040004000008000000BC
:1040B00008000008000000080000040008000C08C8
:1040C0001C3044586C80000000000400040000080C
:1040D00000000008000008000000080000040008BC
:1040E000000C081C3044586C8000000000040004E0
:1040F00000000800000008000008000000080000A0
:10410000040008000C000000000000000001020391
:104110000406070809000000000102030403040666
:10412000080C101820305F6C697374006C6973742C
:1041300020616C6C20636F6D6D616E640000000027
:10414000A00100000100000020000000200000008D
:104150000034000020000000081C3044586C80002F
:10416000000000040004000008000000080000082F
:10417000000000080000040008000C081C3044582F
:104180006C8000000000040004000008000000082B
:10419000000008000000080000040008000C0000F7
:1041A000081C3044586C800000000004000400002B
:1041B00008000000080000080000000800000400DB
:1041C00008000C0000040050002000000000000067
:1041D000000000000000000000000000000400508B
:1041E00000100000000000000000000000000000BF
:1041F0000000000080807F7E7D7C7B7A79787776F6
:1042000076757473727171706F6E6E6D6C6C6B6AB3
:104210006A69686867666665646463636261616051
:10422000605F5F5E5E5D5D5C5C5B5B5A5A595958CE
:104230005857575656555555545453535252525138
:10424000515050504F4F4F4E4E4D4D4D4C4C4C4B8E
:104250004B4B4A4A4A4949494848484747474746D5
:104260004646454545444444444343434342424211
:10427000424141418182838485868788898B8C8DE8
:104280008E8F919293959697999A9C9D9FA0A2A3A9
:10429000A5A7A8AAACAEB0B2B3B5B7B9BCBEC0C2F0
:1042A000C5C7C9CCCED1D4D7D9DCDFE2E6E9ECF082
:1042B000F3F7FAFED442000800000020AC00000032
:1042C0000401000880430008AC000020B446000050
:1042D0002001000800002000000000000000000095
:1042E00000000000000000000000000000000000CE
:1042F00000000000000000000000000000000000BE
:1043000000000000000000000000000000000000AD
:104310000000000000000000493100083D320008A4
:10432000E000002040000020E03400204200002097
:10433000000000000000000000000000000000007D
:10434000000000000000000000000000000000006D
:10435000000000000000000000000000000000005D
:1043600000240140000002400100000000000000A5
:10437000264100082C410008C6E533B4492700084F
:04000005080000C12E
:00000001FF

View File

@ -7,6 +7,7 @@
extern __IO app_t app;
extern motor_t *motor;
uint8_t detect_result = ST_DEV_NORMAL;
static struct flow fl_adc_inspection; // ADC
static struct flow fl_systom_inspection; // 系统
@ -20,12 +21,16 @@ static uint8_t adc_inspection(struct flow *fl)
// 扭力
app.adc.torsion_in13.original_value = get_torsion_adc();
app.adc.torsion_in13.calibration_value = torsion_detect();
sensor_adc[GET_TORSION_VALUE] = S2B_UINT16(app.adc.torsion_in13.original_value);
// 压力
app.adc.pressure_in7.original_value = get_pressure_adc();
app.adc.pressure_in7.calibration_value = pressure_detect();
sensor_adc[GET_PRESSURE_VALUE] = S2B_UINT16(app.adc.pressure_in7.original_value);
// 流量
app.adc.pressure_in8.original_value = get_flow_adc();
app.adc.pressure_in8.calibration_value = flow_detect();
sensor_adc[GET_FLOW_VALUE] = S2B_UINT16(app.adc.pressure_in8.original_value);
FL_LOCK_DELAY(fl, FL_CLOCK_100MSEC); /* 延时100毫秒 */
}
FL_TAIL(fl);
@ -37,7 +42,7 @@ static uint8_t systom_inspection(struct flow *fl)
for (;;)
{
host_rx_msg_deal();
FL_LOCK_DELAY(fl, FL_CLOCK_10MSEC); /* 延时100毫秒 */
FL_LOCK_DELAY(fl, FL_CLOCK_10MSEC); /* 延时10毫秒 */
}
FL_TAIL(fl);
}
@ -47,8 +52,9 @@ static uint8_t idle_inspection(struct flow *fl)
FL_HEAD(fl);
for (;;)
{
test_process();
cpu_percent = scheduler_time_occupancy_get(1000);
FL_LOCK_DELAY(fl, FL_CLOCK_SEC);
FL_LOCK_DELAY(fl, FL_CLOCK_10MSEC);
}
FL_TAIL(fl);
}

View File

@ -2,11 +2,12 @@
#include "motor.h"
void motor_process(frame_msg_t *rx, frame_msg_t *bk);
void sensor_procss(frame_msg_t *rx, frame_msg_t *bk);
void sensor_process(frame_msg_t *rx, frame_msg_t *bk);
void error_process(uint8_t err, frame_msg_t *rx, frame_msg_t *bk);
/************************************* 串口通讯 *************************************/
uart_t *uarts[UART_NUM_MAX];
__IO static BOOL execute_state = 0; // 数据处理标志
__IO static BOOL execute_state = IDLE; // 数据处理标志
static frame_msg_t rx_msg; // 接收数据句柄
static frame_msg_t bk_msg; // 回复数据句柄
static uint8_t host_send_buffer[UART_TXSIZE] = {0}; // 数据发送缓存
@ -70,12 +71,13 @@ static void host_cmd_execute(frame_msg_t *rx_msg, frame_msg_t *bk_msg)
switch (rx_msg->dev_no)
{
case ADC_SENSOR:
sensor_procss(rx_msg, bk_msg);
sensor_process(rx_msg, bk_msg);
break;
case MOTOR:
motor_process(rx_msg, bk_msg);
break;
default:
error_process(ST_CMD_IVALID, rx_msg, bk_msg);
break;
}
}
@ -107,7 +109,7 @@ static void host_data_encode(frame_msg_t *msg)
// 数据处理
void host_rx_msg_deal(void)
{
if (execute_state == TRUE)
if (execute_state == IDLE)
{
return;
}
@ -160,6 +162,8 @@ static void host_uart_init(void)
motor_t *motor;
motor_ctrl_t *motor_param = NULL;
extern uint8_t detect_result;
// 电机初始化
static void motor_init(void)
{
@ -175,6 +179,40 @@ static void motor_init(void)
motor->handle.step_motor.interface.init(motor, dir, en, MIN_STEP_ANGLE, TIM21, LL_TIM_CHANNEL_CH2);
}
static uint8_t motor_param_get(frame_msg_t *rx, motor_ctrl_t *param)
{
uint8_t state = ST_DEV_NORMAL;
// 检查数据长度方向1个字节角度4个字节
if (rx->len < 5)
{
state = ST_CMD_IVALID;
return state;
}
// 方向
param->dir = rx->data[0];
// 角度
osel_memcpy((uint8_t *)&param->angle, (uint8_t *)&rx->data[1], 4);
param->angle = B2S_FLOAT32(param->angle);
return state;
}
static uint8_t motor_ctrl(uint8_t sw, motor_ctrl_t *param)
{
step_motor_t *step_motor = &motor->handle.step_motor;
uint8_t state = detect_result;
if (sw == RUN && detect_result == ST_DEV_NORMAL)
{
step_motor->interface.set_angle(motor, param->angle, (dir_e)param->dir);
}
else
{
step_motor->interface.stop(motor);
}
return state;
}
void motor_process_init(void)
{
motor_param = (motor_ctrl_t *)osel_mem_alloc(sizeof(motor_ctrl_t));
@ -186,26 +224,47 @@ void motor_process_init(void)
void motor_process(frame_msg_t *rx, frame_msg_t *bk)
{
DBG_ASSERT(rx != NULL __DBG_LINE);
DBG_ASSERT(bk != NULL __DBG_LINE);
// step_motor_t *step_motor = &motor->handle.step_motor;
// uint8_t state = ST_DEV_NORMAL;
motor_ctrl_t *ctrl_param = motor_param;
uint8_t state = ST_DEV_NORMAL;
switch (rx->cmd_no)
{
case SET_MOTOR_SPEED: // 设置电机转速
break;
case GET_MIN_STEP: // 获取最小步距
break;
case MOTOR_MOVE: // 运行电机
{
// 读取参数
state = motor_param_get(rx, ctrl_param);
// 运行电机
if (state == ST_DEV_NORMAL)
{
state = motor_ctrl(RUN, ctrl_param);
}
// 回复数据
osel_memcpy((uint8_t *)bk, (uint8_t *)rx, sizeof(frame_msg_t));
bk->state = state;
break;
}
case MOTOR_STOP: // 停止电机
{
// 停止电机
state = motor_ctrl(STOP, ctrl_param);
// 回复数据
osel_memcpy((uint8_t *)bk, (uint8_t *)rx, sizeof(frame_msg_t));
bk->state = state;
break;
}
default:
error_process(ST_CMD_IVALID, rx, bk);
break;
}
}
/************************************* ADc传感器 *************************************/
uint16_t sensor_adc[GET_ALL_VALUE] = {0};
// AD传感器
adc_t adc1 = {
.adc = ADC1,
@ -267,45 +326,108 @@ float32 flow_detect(void)
return val;
}
// 获取扭力值
static void cmd_torsion_value(frame_msg_t *bk)
// 传感器任务
void sensor_process(frame_msg_t *rx, frame_msg_t *bk)
{
DBG_ASSERT(rx != NULL __DBG_LINE);
DBG_ASSERT(bk != NULL __DBG_LINE);
uint8_t state = ST_DEV_NORMAL;
// 计算数据长度
uint8_t data_len = sizeof(uint16_t);
// 采集
uint16_t value = get_torsion_adc();
// TODO 检查数据合法性
// 检查指令合法性
if (rx->cmd_no > GET_ALL_VALUE)
{
state = ST_CMD_IVALID;
goto encode;
}
encode:
// 回复数据
bk->head = PACKET_STX;
bk->state = state;
bk->dev_no = ADC_SENSOR;
bk->cmd_no = GET_TORSION_VALUE;
bk->len = data_len;
value = S2B_UINT16(value);
osel_memcpy((uint8_t *)bk->data, (uint8_t *)&value, data_len);
bk->dev_no = rx->dev_no;
bk->cmd_no = rx->cmd_no;
if (rx->cmd_no >= GET_ALL_VALUE)
{
bk->len = sizeof(uint16_t) * GET_ALL_VALUE;
osel_memcpy((uint8_t *)bk->data, (uint8_t *)&sensor_adc, bk->len);
}
else
{
bk->len = sizeof(uint16_t);
osel_memcpy((uint8_t *)bk->data, (uint8_t *)&sensor_adc[bk->cmd_no], bk->len);
}
}
// 传感器任务
void sensor_procss(frame_msg_t *rx, frame_msg_t *bk)
/************************************* 测试 *************************************/
#if SELF_TEST
test_t self_test = {TEST_DEV_IDEL, 0};
uint8_t test_buffer[UART_RXSIZE] = {0}; // 数据接收缓存
#endif
// 传感器测试指令
static uint8_t test_sensor_cmd(uint8_t cmd, uint8_t *buf)
{
switch (rx->cmd_no)
uint8_t ver_len = 0;
uint8_t index = 0;
frame_msg_t msg;
msg.head = PACKET_STX;
msg.state = ST_DEV_NORMAL;
msg.dev_no = ADC_SENSOR;
msg.cmd_no = cmd;
msg.len = 0;
index = DATA_INDEX;
osel_memset(buf, 0, UART_RXSIZE);
osel_memcpy(buf, (uint8_t *)&msg, index);
buf[index] = xor_compute((uint8_t *)&buf[1], (index - 1));
index += 1;
buf[index] = PACKET_ETX;
index += 1;
ver_len = index;
return ver_len;
}
// 发送测试数据
static void test_rx_cb(uint8_t *data, uint8_t len)
{
BOOL ret = FALSE;
// 数据有效性检查
ret = host_data_verify(data, len);
// 数据解码
if (ret == TRUE && execute_state == IDLE)
{
case GET_TORSION_VALUE: // 获取扭力值
cmd_torsion_value(bk);
host_data_decode(data, len);
execute_state = BUSY;
}
}
// 测试任务
void test_process(void)
{
uint8_t len = 0;
uint8_t *buf = test_buffer;
if (self_test.dev_id >= TEST_DEV_MAX)
{
return;
}
switch (self_test.dev_id)
{
case TEST_DEV_SENSOR:
len = test_sensor_cmd(self_test.cmd_id, buf);
break;
case GET_PRESSURE_VALUE:
break;
case GET_FLOW_VALUE:
break;
case GET_ALL_VALUE:
case TEST_DEV_MOTOR:
break;
default:
break;
}
test_rx_cb(buf, len);
self_test.dev_id = TEST_DEV_IDEL;
}
/************************************* 板卡 *************************************/
@ -320,3 +442,13 @@ void board_init(void)
host_uart_init(); // 串口初始化
ENABLE_TIM(TIM6); // 任务流程定时器使能
}
// 不支持的任务
void error_process(uint8_t err, frame_msg_t *rx, frame_msg_t *bk)
{
DBG_ASSERT(rx != NULL __DBG_LINE);
DBG_ASSERT(bk != NULL __DBG_LINE);
osel_memcpy((uint8_t *)bk, (uint8_t *)rx, sizeof(frame_msg_t));
bk->state = err;
}

View File

@ -4,6 +4,8 @@
#include "adcs.h"
#include "uarts.h"
#define SELF_TEST 1
// 串口协议参数
#define UART_RXSIZE (240u) // 接收缓冲区 240个字节
#define UART_TXSIZE (240u) // 发送缓冲区 240个字节
@ -34,9 +36,9 @@ typedef enum
typedef enum
{
ADC_SENSOR,
MOTOR,
} dev_id_e;
STOP = 0, // 停止
RUN = 1, // 运行
} motor_state_e;
typedef enum
{
@ -48,30 +50,48 @@ typedef enum
UART_NUM_MAX,
} uart_num_e;
// 设备号
typedef enum
{
SET_MOTOR_SPEED,
GET_MIN_STEP,
GET_MOTOR_STATE,
MOTOR_MOVE,
MOTOR_STOP,
ADC_SENSOR, // 传感器
MOTOR, // 电机
} dev_id_e;
// 电机命令号
typedef enum
{
SET_MOTOR_SPEED, // 设置电机速度
MOTOR_MOVE, // 电机启动参数1方向参数2角度
MOTOR_STOP, // 电机停止
} motor_cmd_e;
// 传感器命令号
typedef enum
{
GET_TORSION_VALUE,
GET_PRESSURE_VALUE,
GET_FLOW_VALUE,
GET_ALL_VALUE,
GET_TORSION_VALUE, // 扭力
GET_PRESSURE_VALUE, // 压力
GET_FLOW_VALUE, // 流量
GET_ALL_VALUE, // 全部
} sensor_cmd_e;
// 状态码
typedef enum
{
ST_DEV_NORMAL,
ST_DEV_BUSY,
ST_DEV_MISS,
ST_DEV_NORMAL, // 正常
ST_DEV_BUSY, // 忙碌
ST_DEV_MISS, // 故障
ST_CMD_IVALID, // 无效
} status_code_e;
// 测试
typedef enum
{
TEST_DEV_IDEL,
TEST_DEV_SENSOR,
TEST_DEV_MOTOR,
TEST_DEV_MAX,
} test_dev_e;
typedef struct
{
uint8_t head; // 包头
@ -88,6 +108,14 @@ typedef struct
float32 angle;
} motor_ctrl_t;
typedef struct
{
uint8_t dev_id;
uint8_t cmd_id;
} test_t;
extern uint16_t sensor_adc[GET_ALL_VALUE];
extern void board_init(void);
extern uint16_t get_torsion_adc(void);
extern float32 torsion_detect(void);
@ -97,5 +125,6 @@ extern uint16_t get_flow_adc(void);
extern float32 flow_detect(void);
extern void host_rx_msg_deal(void);
extern void motor_process_init(void);
extern void test_process(void);
#endif // __BOARD_H__

View File

@ -38,7 +38,7 @@ static void step_motor_stop(motor_t *motor)
}
}
static void step_motor_set_angle(motor_t *motor, uint32_t angle, dir_e dir)
static void step_motor_set_angle(motor_t *motor, float32 angle, dir_e dir)
{
DBG_ASSERT(motor != NULL __DBG_LINE);
step_motor_t *handle = &motor->handle.step_motor;

View File

@ -37,7 +37,7 @@ typedef struct
void (*init)(motor_t *motor, gpio_t dir, gpio_t en, float32 min_step_angle, TIM_TypeDef *pwm_timer, uint32_t pwm_channel); // 初始化
void (*run)(motor_t *motor, dir_e dir); // 运行
void (*stop)(motor_t *motor); // 停止
void (*set_angle)(motor_t *motor, uint32_t angle, dir_e dir); // 将角度转换成脉冲个数并运行
void (*set_angle)(motor_t *motor, float32 angle, dir_e dir); // 将角度转换成脉冲个数并运行
void (*stop_cb)(motor_t *motor); // 停止回调函数,在stop中执行
void (*set_speed)(motor_t *motor, uint32_t psc);
} step_motor_interface_t;