From 044cec1236f9d00cc17554069c3ad013863ff3ee Mon Sep 17 00:00:00 2001 From: Alex xu Date: Thu, 13 Feb 2025 11:44:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=86=85=E5=AE=B9=EF=BC=9A1?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E5=86=85=E5=AD=98=EF=BC=8C=E5=B0=86?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E5=8F=98=E9=87=8F=E5=AE=9A=E4=B9=89=E4=B8=BA?= =?UTF-8?q?xdata=EF=BC=8C=E4=BF=9D=E8=AF=81=E5=85=85=E5=88=86=E7=9A=84idat?= =?UTF-8?q?a=E7=A9=BA=E9=97=B4=EF=BC=9B2=E3=80=81=E5=B0=86bit=E6=A0=87?= =?UTF-8?q?=E5=BF=97=E4=BD=8D=E7=BD=AE=E4=B8=BATRUE=E6=88=96FALSE=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A8=8B=E5=BA=8F=E5=8F=AF=E8=AF=BB=E6=80=A7?= =?UTF-8?q?=EF=BC=9B3=E3=80=81=E5=A2=9E=E5=8A=A0Vox=20ADT=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E5=85=85=E7=94=B5=E5=8A=9F=E8=83=BD=EF=BC=9B4?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E8=B7=9F=E9=9A=8F=E5=85=85=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=9B5=E3=80=81Vox=E5=88=87=E6=8D=A2=E4=B8=BAUart?= =?UTF-8?q?=E9=80=9A=E8=AE=AF=E5=8A=9F=E8=83=BD=E5=90=8E=EF=BC=8C=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=BC=80=E5=90=AFTX=E6=88=96RX=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=86=85=E9=83=A8=E7=9A=84=E4=B8=8A=E6=8B=89?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=89=8D=E8=83=BD=E7=94=9F=E6=95=88=EF=BC=9B?= =?UTF-8?q?6=E3=80=81=E4=BC=98=E5=8C=96=E5=85=B6=E5=AE=83=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=88=96=E8=A7=A3=E5=86=B3bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Out/8837_EVB_250121_1409.bin | Bin 12288 -> 0 bytes Out/8837_EVB_250121_1409.hex | 809 ---------------- Out/8837_EVB_250121_1409_9DE0_010102.bin | Bin 12290 -> 0 bytes Out/8837_EVB_250213_1135.bin | Bin 0 -> 12288 bytes Out/8837_EVB_250213_1135.hex | 753 +++++++++++++++ Out/8837_EVB_250213_1135_9EC6_010102.bin | Bin 0 -> 12290 bytes Project/SY8837_Demo.uvgui.GH | 225 +++-- Project/SY8837_Demo.uvproj | 6 +- .../SY8837_Demo.SearchResults | 35 +- SY8837_Demo.si4project/SY8837_Demo.sip_sym | Bin 369512 -> 369512 bytes SY8837_Demo.si4project/SY8837_Demo.sip_xsb | Bin 36864 -> 40960 bytes SY8837_Demo.si4project/SY8837_Demo.sip_xsd | Bin 688 -> 728 bytes SY8837_Demo.si4project/SY8837_Demo.siwork | Bin 96785 -> 20415 bytes UsrInc/adc/adc.h | 36 +- UsrInc/bat/bat.h | 7 +- UsrInc/charger/charger_module.h | 4 +- UsrInc/discharge/discharge_module.h | 2 +- UsrInc/display/display_ui.h | 2 +- UsrInc/hall/hall.h | 2 +- UsrInc/inc/config.h | 24 +- UsrInc/inc/define.h | 26 +- UsrInc/inc/reg883x.h | 32 +- UsrInc/key/key.h | 4 +- UsrInc/led/led.h | 8 +- UsrInc/pwm/pwm.h | 2 +- UsrInc/sleep/sleep.h | 5 +- UsrInc/system/system.h | 2 +- UsrInc/timer/sys_tim.h | 2 +- UsrInc/uart/uart.h | 2 +- UsrInc/user/user.h | 2 +- UsrInc/userapp/userapp.h | 2 +- UsrInc/vox/vox_module.h | 68 +- UsrInc/watchdog/watchdog.h | 2 +- UsrSrc/InitVars.c | 6 +- UsrSrc/adc/adc.c | 46 +- UsrSrc/bat/bat.c | 18 +- UsrSrc/charger/charger_module.c | 89 +- UsrSrc/discharge/discharge_module.c | 22 +- UsrSrc/display/display_ui.c | 56 +- UsrSrc/hall/hall.c | 14 +- UsrSrc/key/key.c | 188 ++-- UsrSrc/led/led.c | 14 +- UsrSrc/main.c | 4 +- UsrSrc/pwm/pwm.c | 2 +- UsrSrc/sleep/sleep.c | 9 +- UsrSrc/system/system.c | 19 +- UsrSrc/timer/sys_tim.c | 23 +- UsrSrc/uart/uart.c | 20 +- UsrSrc/user/user.c | 2 +- UsrSrc/userapp/userapp.c | 76 +- UsrSrc/vox/vox_module.c | 906 ++++++++++++++---- UsrSrc/watchdog/watchdog.c | 2 +- 52 files changed, 2158 insertions(+), 1420 deletions(-) delete mode 100644 Out/8837_EVB_250121_1409.bin delete mode 100644 Out/8837_EVB_250121_1409.hex delete mode 100644 Out/8837_EVB_250121_1409_9DE0_010102.bin create mode 100644 Out/8837_EVB_250213_1135.bin create mode 100644 Out/8837_EVB_250213_1135.hex create mode 100644 Out/8837_EVB_250213_1135_9EC6_010102.bin diff --git a/Out/8837_EVB_250121_1409.bin b/Out/8837_EVB_250121_1409.bin deleted file mode 100644 index f7ba54825f4442b962642dd312debcee610de01d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 diff --git a/Out/8837_EVB_250121_1409.hex b/Out/8837_EVB_250121_1409.hex deleted file mode 100644 index b348a8e..0000000 --- a/Out/8837_EVB_250121_1409.hex +++ /dev/null @@ -1,809 +0,0 @@ -:03000000022517BF -:10251700758E3075D20078FFE4F6D8FD9000007F05 -:10252700007E01E4F0A3DFFCDEFA758188022572E4 -:102D4B0053797374656D20496E69742E5665723AAA -:0C2D5B002532782532782532780D0A00E8 -:102C7E0012289D7BFF7A2D794B900089E4F0A304F6 -:102C8E00F0A3E4F0A304F0A3E4F0A37402F0121492 -:0D2C9E000DD2AED2BE1226AF122BF080F484 -:1029960075FE0F43FF8075FE2975FFB575A5217578 -:1029A600FE1E43FF01E5A3540F24F8780DF6E5A3B8 -:1029B600C4540F7814F6E5AD540F24F875F00AA444 -:1029C6007810F67812A6ABE5ADC4540F24F875F06E -:0B29D6000AA418F67813A6ACD2BD22AC -:1019B800900085EFF0204403021BD29000B6E0FEB1 -:1019C800A3E07803CEC313CE13D8F9F0EE9000B697 -:1019D800F09000B3E024FD6048147003021A9D14CF -:1019E8007003021B1124FE7003021B81240560038F -:1019F800021BCF780DE6FF3395E0FEC39000B7E0F9 -:101A08009FFF9000B6E09EFE9000BAF0A3EFF0C3EF -:101A1800EE648094804003021BCFE49000BA021B5E -:101A2800CC9000B6E0FEA3E0FF7C097DC4120B0554 -:101A3800780A120A8F9000B6EEF0A3EFF07810E65D -:101A4800FD3395E0FCC3EF9DFFEE9CFE3395E0FD72 -:101A5800FCE47B64FAF9F8120A2FC006C007781272 -:101A6800E675F002A424F4FFE5F03401AB07FA337D -:101A780095E0F9F8D007D006122A259000AFEEF0CD -:101A8800A3EFF0C3EE648094804003021BCFE49080 -:101A980000AF021BCC9000B6E0FEA3E0FF7C097DFE -:101AA800C4120B05780A120A8F9000B6EEF0A3EF65 -:101AB800F07811E6FD3395E0FCC3EF9DFFEE9CFE48 -:101AC8003395E0FDFCE47B64FAF9F8120A2FC006AE -:101AD800C0077813E675F002A424F4FFE5F034019A -:101AE800AB07FA3395E0F9F8D007D006122A25900B -:101AF80000B1EEF0A3EFF0C3EE64809480400302DF -:101B08001BCFE49000B1021BCC9000B6E0FEA3E02E -:101B1800FF7C097DC4120B05780A120A8F9000B663 -:101B2800EEF0A3EFF0E025E0FE9000B6E033900081 -:101B3800B8F0A3CEF09000B8E0FEA3E07802C3337B -:101B4800CE33CED8F9FDAC067814E6FF3395E0FE27 -:101B5800EF24F8FFEE34FFFE12094D7C037DE812F6 -:101B6800095F9000B8EE8FF0120995C39000B8E0B5 -:101B7800648094805051E4804B780DE6FF3395E003 -:101B8800FEC39000B7E09FFF9000B6E09EFEE4FC25 -:101B9800FD7BC47A09F9F8120A2F780A120AA29072 -:101BA80000B6EEF0A3EFF0E025E0FF9000B6E033DA -:101BB800FE9000B4F0A3EFF0C3EE64809480500769 -:101BC800E49000B4F0A3F0C24422900085E09000B5 -:101BD800B3F0C454F04401F5A5E49000B6F0A3F0C6 -:051BE8009000BDF02299 -:03006B0002271851 -:10271800C0E0C0F0C083C082C0D075D000C000C087 -:1027280006C007E5F330E038AFA1780E760008A6BA -:1027380007E5A254031846F608E6F69000BDE0C384 -:102748009408501718E6FE08E6FF9000B6EE8FF0E2 -:102758001209959000BDE004F08005D24453A5FE0F -:1027680075F301D007D006D000D0D0D082D083D066 -:04277800F0D0E0328B -:102B240075FE8743FF207815760375FE7043FF1802 -:102B340053B3F143B302E47817F67819F67815E63F -:102B44007818F6781A76017917E718461846F5B119 -:042B540075B2012233 -:10217900E4FE9000BAE0FCA3E0FDC394E8EC94030C -:1021890040037F0022EF7003022292D3ED940FECFB -:1021990094034003022270ED94CBEC9400500302A7 -:1021A9002270D3ED94AAEC94024022D2207815E64D -:1021B900FF137818F6302111D3ED94BFEC94024047 -:1021C90004C22180047818A607E4FE8070D3ED9438 -:1021D900AAEC94025043ED9437EC9401403BD22190 -:1021E9007815E6FF7818F6302013D3ED9493EC9424 -:1021F900025004C2208006EFC3137818F6781A76C5 -:1022090001301B11D3ED9451EC94015004C21B8091 -:1022190004E4781AF6E4FE8024D3ED9437EC9401B3 -:10222900501BD21BE4781AF6302110ED9426EC9459 -:10223900015004C2218004781A7601E4FE301E118F -:10224900C3ED94F3EC94025006C21EE4FE80027EB4 -:1022590001301F2FD3ED94DDEC94004006C21FE43A -:10226900FE80207E01801CD3ED940FEC9403400680 -:10227900D21E7E01800DD3ED94CBEC94005004D294 -:102289001F7E01C21CC21D8058C21EC21FD3ED94FD -:102299009FEC94035031ED9471EC94004029301C6B -:1022A90010ED9484EC94035006C21CE4FE80027E77 -:1022B90001301D2DD3ED9482EC94004006C21DE43B -:1022C900FE801E7E01801AD3ED949FEC9403400496 -:1022D900D21C800BC3ED9471EC94005002D21D7E88 -:0822E90001781AE6F5B2AF0618 -:0122F10022CA -:1022F200E4FBFAE5E65480FFE4FCFDFEEF700753D1 -:10230200B3FE7816F62278167601E5E830E5057513 -:10231200E8208005E5E530E10453B3FE22E5F23022 -:10232200E50475F22022E5F2540C601353B3FEE586 -:10233200F354C070030223CC75F20C75F3C02275FE -:10234200F3C07F01122179EF600653B3FED222223D -:10235200C222E5F230E432781AE6B401067A107B42 -:102362006880047A0F7BA0EB246AFFEA34FFFEC385 -:102372009000B9E09F9000B8E09E500575F2108081 -:102382000353B3FE78167603227917E778194618B5 -:1023920046F5B1781AE6F5B243B311781CE6FFD3DD -:1023A20094014002C23DEFD394034002C239EFD3FD -:1023B20094074002C23BEFD3940C4002C23AEFD3DF -:0A23C20094114002C23C7816760226 -:0123CC0022EE -:10000E00303F10EFB4010475B5C02253B5BFED44B7 -:04001E0080F5B52292 -:102DC500E5B55480FFEF6008303F05E4F5B5C23F37 -:012DD50022DB -:10283F00C23FE5E520E156E5E230E703D24022E56D -:10284F00E830E00D30244675E8017D3FE4FF0200DB -:10285F000EE4FF122179EF6006122DC5D23E22C27F -:10286F003E303D03022DC5D23F3040217816E6B4ED -:10287F00021BC39000B9E094109000B8E0648094FC -:0E288F008E4005D23FC24022122DC5C23F220C -:102C2200E5E25408FF9000D1E06F6021E5E230E375 -:102C3200089000D07401F08005E49000D0F0D245F5 -:0D2C4200C20FD22FD2319000D1EFF0D24757 -:012C4F002262 -:101FBE00E5E25402FFE4FCFDFEEF70319000C775C0 -:101FCE00F0011209959000C7E0FEA3E0FFC394173D -:101FDE00EE94024004D237800EC3EF9487EE940045 -:101FEE004005203602D236D233C2348040303336EA -:101FFE00D247E4781DF6C233D2349000C9F0900077 -:10200E00C7E0FEA3E0FFD3941EEE94005008D23238 -:10201E00D235D231800EC3EF944FEE94015005307D -:10202E003602D238C236E49000C7F0A3F0303462E4 -:10203E00303F5F303827200F0280287F031228F4AC -:10204E009000C9E0D394235003022165C238781D55 -:10205E007602E49000C6F090002BF0A3F030372902 -:10206E00200F0A7D3FE4FF12000ED20F227F0312D3 -:10207E0028F49000C9E0D394235003022165C2379F -:10208E00E49000CAF0781D7603303502C235C234B2 -:10209E00C20F9000D0E064016003022178781DE643 -:1020AE006402600302213A9000C6E0C3940150100E -:1020BE00E4FD7F01121DE8E490002BF0A3F08054A4 -:1020CE009000C5E0D394054003E4803990002CE0E5 -:1020DE00B4010FE4FD7F02121DE890002C7402F093 -:1020EE00803290002CE06402702A90002BE0601D7C -:1020FE007D017F02121DE8E490002BF0A3F090000A -:10210E00C6F09000C5F0781DF6D2108058E4FD7F21 -:10211E0001121DE89000C6E0D39414400A9000C549 -:10212E00E004F0E4A3F0229000C6802B781DE66454 -:10213E000370379000CAE0FFC394B4501EEF540FE3 -:10214E0070047D0180099000CAE054077006FD7F7F -:10215E0003121DE89000CAE004F022E4781DF6D2C6 -:0A216E00109000CAF07F041228F45C -:012178002244 -:102BBE0075FE0675FF3C75FE0E53FF0F75FE0F5327 -:102BCE00FFF075FE0375FFAAE4900031F09000301F -:102BDE00F0900032F090002FF0C282C283C285C204 -:022BEE0084223F -:102D6700EF14600D14600D14600D2403700BD282F4 -:0A2D770022D28322D28422D28522C8 -:052D0E00900085E0FFCC -:102D1300EF14600D14600D14600D2403700BC28258 -:0A2D230022C28322C28422C285224C -:1027DF00E4FF74332FF582E43400F583E4F07437AB -:1027EF002FF582E43400F583E4F0EF25E0243BF588 -:1027FF0082E43400F583E4F0A3F0EF25E02443F501 -:10280F0082E43400F583E4F0A3F0EF25E0244BF5E8 -:10281F0082E43400F583E4F0A3F0EF25E02453F5D0 -:0F282F0082E43400F583E4F0A3F00FEFB404A3C8 -:01283E002277 -:10277C00AC0774332CF582E43400F583EDF0EAC336 -:10278C0013FEEB13FFEC25E0243BF582E43400F55B -:10279C0083EEF0A3EFF0AF03EC25E02443F582E4E5 -:1027AC003400F583EAF0A3EFF090008AE0FEA3E09A -:1027BC00FFEC25E0244BF582E43400F583EEF0A326 -:1027CC00EFF0EC25E02453F582E43400F583E4F0DB -:0327DC00A3F02245 -:102AE90074332FF582E43400F583EDF074372FF554 -:102AF90082E43400F583EBF0EF25E0243BF582E432 -:102B09003400F583E4F0A37469F0EF25E02453F56C -:0B2B190082E43400F583E4F0A3F02216 -:10103500E4900085F0F0900085E0FFC39404400340 -:1010450002137774332FF582E43400F583E06022D0 -:1010550024FE602414700302113F1470030211B6BC -:1010650024036003021313900085E0FF122D67022D -:101075001313122D0E021313900085E0FF25E024B3 -:101085003BF582E43400F583E0FCA3E0FDEF25E0C9 -:101095002453F582E43400F583E0FEA3E0C39DEE1E -:1010A5009C5005122D678003122D0E900085E0FFE0 -:1010B50025E02443F582E43400F583E0FCA3E0FD5C -:1010C500EF25E02453F582E43400F583E0FEA3E048 -:1010D500C39DEE9C5003021313900085E025E02488 -:1010E50053F582E43400F583E4F0A3F0EF25E02422 -:1010F5004BF582E43400F583E0FEA3E0D39400EEE3 -:1011050094004016900085E025E0244BF582E434F8 -:1011150000F58374FFF5F0120995900085E0FF2531 -:10112500E0244BF582E43400F583E0FCA3E04C6059 -:101135000302131374332F0211D2900085E0FF25AB -:10114500E0243BF582E43400F583E0FCA3E0FDEF09 -:1011550025E02453F582E43400F583E0FEA3E0D3D3 -:101165009DEE9C5005122D678003122D0E90008573 -:10117500E0FF25E02443F582E43400F583E0FCA399 -:10118500E0FDEF25E02453F582E43400F583E0FE2D -:10119500A3E0C39DEE9C5003021313900085E02548 -:1011A500E02453F582E43400F583E4F0A3F0021360 -:1011B50013900085E0FF2437F582E43400F583E0E1 -:1011C50070171229E1C246900085E02433F582E4C8 -:1011D5003400F583E4F0021313900085E0FF243713 -:1011E500F582E43400F583E0FE6402704B2046147A -:1011F500D246EF25E0243BF582E43400F583E4F0A4 -:10120500A37469F0900085E0FF25E0243BF582E4B6 -:101215003400F583E475F001120995EF25E0243BD0 -:10122500F582E43400F583E0FCA3E0C394FEEC947E -:101235000050030212FD804EEE6401705A204617DD -:10124500D246900085E025E0243BF582E43400F5A4 -:1012550083E4F0A374FEF0900085E0FF25E0243BD5 -:10126500F582E43400F58374FFF5F0120995EF2556 -:10127500E0243BF582E43400F583E0FEA3E0D3945B -:1012850069EE94005072900085E02437F582E434CD -:1012950000F583E4F08061900085E0FF2437F58256 -:1012A500E43400F583E06403704EEF25E0243BF55C -:1012B50082E43400F583E0FEA3E0FFC394FEEE94E0 -:1012C500004004D246800BD3EF946AEE940050029E -:1012D500C246900085E025E0243B30460DF582E4CA -:1012E5003400F58374FFF5F0800BF582E43400F5E6 -:1012F50083E475F001120995900085E0FF25E0244F -:101305003BF582E43400F583A3E0FD122945900006 -:1013150085E0FF701174332FF582E43400F583E026 -:10132500900031F08043900085E0B401102433F53E -:1013350082E43400F583E0900030F0802C90008545 -:10134500E0B402102433F582E43400F583E0900024 -:1013550032F08015900085E0B4030E2433F582E465 -:101365003400F583E090002FF0900085E004F00252 -:10137500103BE4900085F0900085E0FFC394045095 -:101385001BEF25E02453F582E43400F583E475F082 -:0C13950001120995900085E004F080DB57 -:0113A1002229 -:102B580075FE1E43FF0275FE2143FF0875D4867576 -:102B6800FE2143FF0475FE2143FF02300E0875FE67 -:102B78002453FFC3800675FE2443FF3C9000D6749F -:032B88000FF02229 -:10005600D2AC759A01D2B9D2BDD2A9D2AB75FE295E -:0400660043FFB02282 -:10006E00C2ACE4F59AD2B9C2BDC2A9C2AB75FE2923 -:04007E0053FF4F22BB -:092E0C0012006E43870202005619 -:102DB100E5E25401FFEF7006201103304704C247DA -:042DC100C322D32234 -:10289D0075FE01E4F5FF122D81122DFF122DE4E4DA -:1028AD00F58675B7C375FE6A75FF0475FE6C43FF3B -:1028BD000B12299675FE8043FF0275FE0E53FFFC29 -:1028CD0043FF0175FE1775FF3CD2A8D2AF122B2422 -:1028DD007D697F03122D9B122BBE1227DF122B5801 -:0728ED009000CD7401F02200 -:03000300020006F2 -:03000600D24732AC -:03004B00022E1D65 -:062E1D0075EB3CD24732C8 -:03005300022E2357 -:062E230075F302D24732F4 -:0E2DD6009000AEEFF0122E159000AEE0FF223E -:082E15002041FDD2418F9922FA -:102D810075FE0E53FFF343FF04D2DF43878075BA0C -:0A2D91000375AAFD759852D2AC221A -:03002300022DF2B9 -:0D2DF200309904C299C241309802C2983253 -:0D2DFF0075BB03759DDC759B92439A012204 -:062B8B009000A9120AD619 -:102B9100E49000ACF0F09000ACE0C39FE49E501CC8 -:102BA1002042FDD2429000A9E475F001120ABF1241 -:0C2BB10008B2F59C9000ACE004F080DA63 -:012BBD0022F5 -:030083000223CD88 -:1023CD00C0E0C083C082C0D075D000C000C005C0C1 -:1023DD0006C007E59B30E105539BFDC242E59B30EE -:1023ED00E076539BFED2479000D2E0146019146042 -:1023FD003424027063E59C9000D2B455087401F04A -:10240D00A3E4F0800E8018E59C9000D2B4AA10745D -:10241D0002F0A3E0FF04F074692FF8A69C8039E464 -:10242D00F0A3F080339000D3E0FF04F074692FF82F -:10243D00A69C786BE62404FFE433FEE0FDC39FEE1B -:10244D006480F87480985005ED9420400B9000D373 -:10245D00E4F09000D2F0D243D007D006D005D000E2 -:09246D00D0D0D082D083D0E0323F -:10247600536C65657020537461746520286C696EB1 -:10248600653A2564290D0A004348475F5354413A8B -:1024960025642C53545F564F583A307825782C5380 -:1024A6005441303A307825782C535441313A3078BB -:1024B60025782C535441323A307825782C535441A0 -:1024C600333A307825782C535441343A307825788D -:1024D6002E4465635F536C6565703A25640D0A008A -:1024E6004465636E745F536C65657044656C6179B1 -:1024F6002052656C6F61642E0D0A00456E7465721C -:10250600205374616E646279204D6F6465210D0AF3 -:0125160000C4 -:062AAC004300CD0402020C -:102CCE009000BCE0FF04F01219B89000BCE0B4060E -:102CDE000204F09000BCE0C3940840037402F0229A -:102D2D00122C22121FBE122C50302311C22312223C -:0E2D3D00F212283F1225B7120C671217072258 -:101BED00E4900085F09000CDE0FFA3E0FE6F606B08 -:101BFD00A3EEF09000CDE0A3F024FE60351460421A -:101C0D0014604624036003021DE790008AE4F0A3EC -:101C1D007403F07B647A007D02E4FF12277C900050 -:101C2D008AE4F0A37403F07B647A007D027F0102E5 -:101C3D00277C200E03021DE7D24575E80CC20DC2AC -:101C4D000E229000D6740FF0227BFF7A24797690C5 -:101C5D000089E4F0A374D9F0021D6E9000CEE0244B -:101C6D00FE6035146076147003021D812403600339 -:101C7D00021DE79000CBE004F0E0C394085003028E -:101C8D001DE79000CD7402F0E49000CBF0781CE6D7 -:101C9D006003021DE7021D7AE5F6700CE5F8700889 -:101CAD00E5FA7004E5E1602D9000CD7403F0E5F6E2 -:101CBD00540FFFE4FCFDFE7B08FAF9F8C3120A7E0F -:101CCD0070069000CD7404F075E11F75F60F75F870 -:101CDD00FC75FABC229000CD7403F022202703027C -:101CED001DE7C22775FE6E900085E5FFF07BFF7A3C -:101CFD0024798E7816E6FF900089E4F0A3EFF0903A -:101D0D000085E0FF90008BE4F0A3EFF0AFE2A3E4D9 -:101D1D00F0A3EFF0AFE3A3E4F0A3EFF0AFE4A3E49F -:101D2D00F0A3EFF0AFE5A3E4F0A3EFF0AFE6A3E48B -:101D3D00F0A3EFF09000D6E0FF900097E4F0A3EF52 -:101D4D00F012140D9000D6E0D394004017E014F07B -:101D5D00204703021DE7C247740FF07BFF7A2479F9 -:101D6D00E602140D7BFF7A25790112140D9000CD3A -:101D7D007404F022122DB1505B122B587F041228DF -:101D8D00F4122DC5E490008AF0A3F0FBFAFDFF12CA -:101D9D00277CE490008AF0A3F0FBFAFD7F01122767 -:101DAD007CE490008AF0A3F0FBFAFD7F0212277C01 -:101DBD00E490008AF0A3F0FBFAFD7F0312277C90DC -:101DCD0000317402F0900030F0900032F090002F4E -:0A1DDD00F0022E0C9000CD7402F00D -:011DE70022D9 -:102BF000302626C2269000CCE0FF04F0EF14600CD3 -:102C000014600E24027012122CCE800D122D2D8015 -:102C100008121BEDE49000CCF0302805C2281210F9 -:022C200035225B -:102CEE0000000000000000000000000000000000D6 -:102CFE0000000000000000000000000000000000C6 -:032AB200016800B8 -:1028F400EF24FE601E14602814602F24FE6035242B -:1029040005703D43BD8853BDBB75FE6F53FFF24355 -:10291400FF092243BDCC75FE6F53FFFE43FF0C221B -:1029240053BD7753B7CF43B7302253B7CF43B70321 -:1029340053BD772253B7CC53BD7775FE6A43FF303E -:012944002270 -:10170700203F0302197F304559200F0A7D3FE4FF30 -:1017170012000ED20F227F031228F4E4900003F088 -:10172700900001F0A3F0C200C201D20B9000D0E0FC -:101737007020C230D202D203C205C208C204C20955 -:10174700C20AD211C248900026F0A3F090002EF0F2 -:101757008008C202C203D205C206C20FC20DC20E62 -:10176700C245900001E0C39405500302191F300BD6 -:1017770005C20B0218F320002ED200E5E354A06047 -:1017870021E5E354A0FFE4FCFDFE7BA0FAF9F8C3D2 -:10179700120A7E90002A70057402F0800A7401F024 -:1017A7008005E490002AF020050302183790000214 -:1017B700E0C3940550077F061228F4802620013ADB -:1017C700900003E0FFD39414501EEF54037003FD01 -:1017D7008009900003E020E0077D017F06121DE8E5 -:1017E700900003E004F080487F041228F4E490009E -:1017F70003F0D201D210C2118036781DE670313065 -:101807001004C2108022E5E354A0FBE4FAF9F89033 -:101817000000E0FFE4FCFDFEC3120A7E6012E5E370 -:1018270054A06004D230D231E5E354A0900000F018 -:1018370020020302197C30483F200F237D3FE4FF3D -:1018470012000ED20FD211E4900026F0A3F0900000 -:101857002EF0900001F0C208D20BC200D204227F02 -:10186700031228F4C20FD203900001E0D39403506F -:101877000302191FC248804D20044A900002E0FF6E -:10188700D39414501BEF54037003FD80099000029A -:10189700E020E0077D017F81121DE890000280783B -:1018A700900003E0FFD39414501BEF54037003FD23 -:1018B7008009900003E020E0077D017F07121DE803 -:1018C7009000038053E5E8540C6026200E1E90001C -:1018D70003E004F0E0C3940550030219B7E4F07580 -:1018E700E80C7F031228F4D20DC211227F040228CC -:1018F700F4C20DC20E3003097F031228F4C203801D -:101907007420083DE5E354AC64AC600330392190A2 -:101917000001E0D394285004E004F022D208E490B8 -:101927000004F0900001F0C2097F041228F48045FA -:10193700900027E0703F7B017A00790912008680CA -:1019470034900004E0FFD39414501EEF5403700347 -:10195700FD8009900004E020E0077D017F80121DD3 -:10196700E8900004E004F0800C200909D2097F0404 -:101977001228F4C211C2072220070BD2077F0412D4 -:1019870028F4C2118022E5E354A0FBE4FAF9F890A9 -:101997000000E0FFE4FCFDFEC3120A7E6012E5E3EF -:1019A70054A06004D230D231E5E354A0900000F097 -:0119B700220D -:06008600900085120AD66D -:10008C0090002EE01470030201631470030202420C -:10009C001470030202B314700302041F24046003DF -:1000AC0002059F900085120AB690001E1208CB60C4 -:1000BC000302059F7868E6D3940A50260690001A2E -:1000CC00743F12092B300C0302059F900085120A15 -:1000DC00B690001A1208CBFDE4FF12000ED20C02EF -:1000EC00059FE47868F6C20C900085120AB6900061 -:1000FC0016E412092B900015E412092B900013E45E -:10010C0012092B900012E412092B900011E4120931 -:10011C002B900010E412092B900018E412092B907C -:10012C000017E412092B90000EE4F5F0120A02906D -:10013C00000CE4F5F0120A02900019E412092B905D -:10014C00001B743F12092B90002E7401F0E49000F8 -:10015C0007F0A3F002059FE5E35408FFE4FCEF6011 -:10016C001CE5E354046016900085120AB690001E3C -:10017C00740112092BE490002EF002059FE5E35464 -:10018C0008FFE4FCEF704A9000B1E0FEA3E0FF90A2 -:10019C000085120AB6900002EE8FF0120A027D055D -:1001AC0012095FEF7802C333CE33CED8F9FF90003B -:1001BC0085120AB6900006EE8FF0120A029000B279 -:1001CC00E025E0FF9000B1E03390000A8FF0120AB6 -:1001DC0002E5E35404FFE4FCEF704F9000AFE0FE47 -:1001EC00A3E0FF900085120AB6EE8FF01209E3909F -:1001FC0000AFE0FEA3E0FF7D0512095FEF7802C3BC -:10020C0033CE33CED8F9FF900085120AB690000495 -:10021C00EE8FF0120A029000B0E025E0FF9000AFE4 -:10022C00E0339000088FF0120A02900085120AB693 -:10023C0090001D020594D3900008E09405900007EF -:10024C00E094005002806FE4900007F0A3F0E5E327 -:10025C005408FFEF701F9000B1E0FEA3E0FF900088 -:10026C0085120AB690000EEE8FF0120A029000185A -:10027C00740112092BE5E35404FFE4FCEF701F90AA -:10028C0000AFE0FEA3E0FF900085120AB690000CD0 -:10029C00EE8FF0120A02900017740112092B9000D5 -:1002AC002E7403F002059FD3900008E09402900096 -:1002BC0007E09400500AE475F00112099502059FBD -:1002CC00E4900007F0A3F0900085120AB690000AA3 -:1002DC001209ABFFAEF090000E1209ABD39FE5F004 -:1002EC009E501C900085120AB69000081209ABFFB4 -:1002FC00AEF090000C1209ABD39FE5F09E4011E4D8 -:10030C0090002EF0900085120AB690001D0203E1B9 -:10031C00900085120AB69000181208CB6401706D1B -:10032C0090000E1209ABFFAEF0D39414EE94005073 -:10033C0031E5E330E31F900016740112092B900095 -:10034C001A1208CBC3943F4044900085120AB69011 -:10035C000018E48035900085120AB69000137401E1 -:10036C008028900085120AB69000061209ABFDD3C6 -:10037C00EF9DEE95F09000854008120AB6900013A0 -:10038C008006120AB6900016740112092B90008593 -:10039C00120AB69000171208CB6401600302059F85 -:1003AC0090000C1209ABFFAEF0D39414EE940050F5 -:1003BC0034E5E330E222900015740112092B900011 -:1003CC001A1208CBC3943F500302059F900085126C -:1003DC000AB6900017E48035900085120AB690009A -:1003EC001274018028900085120AB690000412093C -:1003FC00ABFDD3EF9DEE95F09000854008120AB648 -:10040C009000128006120AB6900015740112092B86 -:10041C0002059FD3900008E09414900007E094002C -:10042C005031E475F0011209959000B1E0FEA3E0A3 -:10043C00FF900085120AB690000EEE8FF0120A02A1 -:10044C009000AFE0FFA3E090000CCF8FF0120A02F7 -:10045C0002059FE4900007F0A3F0900085120AB605 -:10046C009000181208CB640160030204FD90001781 -:10047C001208CB6401707A9000061209ABFFAEF043 -:10048C0090000E1209ABFDACF0C39FEC9E4018908F -:10049C000085120AB690000A1209ABFFD3ED9FEC4F -:1004AC0095F0500302059F900085120AB690000447 -:1004BC001209ABFFAEF090000C1209ABFDACF0C30F -:1004CC009FEC9E4018900085120AB6900008120905 -:1004DC00ABFFD3ED9FEC95F0500302059F90008588 -:1004EC00120AB6900016740112092B900015020521 -:1004FC0094900085120AB69000181208CB64017013 -:10050C00419000061209ABFFAEF090000E1209AB41 -:10051C00FDACF0C39FEC9E4015900085120AB6907E -:10052C00000A1209ABFFD3ED9FEC95F0401490003C -:10053C0085120AB6900016740112092B90002E74C5 -:10054C0002F0900085120AB69000171208CB6401D5 -:10055C0070419000081209ABFFAEF090000C12092C -:10056C00ABFDACF0D39FEC9E5015900085120AB6F3 -:10057C009000041209ABFFC3ED9FEC95F050149062 -:10058C000085120AB6900015740112092B90002EEA -:10059C007402F0900085120AB69000181208CBFF76 -:1005AC006401600D9000171208CB64016003020710 -:1005BC00A29000131208CBFE6401600D9000121281 -:1005CC0008CB6401600302071CEFB4011E900017F6 -:1005DC001208CBB40115EEB401119000131208CB24 -:1005EC00B40108900014740112092B900018120821 -:1005FC00CBFFB401189000171208CB7010900013A9 -:10060C001208CB6401702390001404801AEF701A46 -:10061C009000171208CBB401119000121208CBB441 -:10062C000108900014740112092B900013E41209B4 -:10063C002B900012E412092B9000141208CB6401C9 -:10064C0060030207BB900085120AB690001A1208CC -:10065C00CBD39400400890001A74FE1208F8900056 -:10066C00191208CBFF90001A1208CBD39F4021908F -:10067C0000B9E024C8FF9000B8E03400FEC390003D -:10068C00B5E09FEE6480F89000B4E0648098504828 -:10069C00900085120AB69000191208CBFF90001A30 -:1006AC001208CBD39F9000855013120AB690001AF3 -:1006BC00EF12092B90001CE412092B8013120AB6BE -:1006CC0090001C740112092B90001A74021208F885 -:1006DC0090002E7404F0801390002E7402F09000A1 -:1006EC0085120AB690001CE412092BE4900007F066 -:1006FC00A3F0900085120AB6900014E412092B9016 -:10070C00001C1208CBFF90001A1208CBFD02079FA9 -:10071C00900085120AB69000161208CB6401600D89 -:10072C009000151208CB640160030207BB90001601 -:10073C00E412092B900015E412092B90001A1208F0 -:10074C00CBC3943F500E900085120AB690001A74D9 -:10075C00021208F890002E7404F0900085120AB66C -:10076C0090001B1208CBFF90001A1208CBC39F40BD -:10077C0013900085120AB690001AEF12092B900004 -:10078C002E7401F0900085120AB690001A1208CB54 -:10079C00FDE4FF02000E90002EE0D394024010E422 -:0F07AC00F0900085120AB690001E740112092BFE -:0107BB00221B -:0B2A69009000A9120AD69000ACEDF01E -:102A7400E4FE9000ACE0FD14F0ED60299000A9E4C0 -:102A840075F001120ABF1208B26EFEE4FFEFC394A0 -:102A94000850DFEE30E007C313648CFE8004EEC3FD -:072AA40013FE0F80E8AF06EE -:012AAB002208 -:081DE800900085EFF0A3EDF07F -:101DF000E4A3F0A3F078897C007D017BFF7A2C7945 -:101E0000EEFE7F2012088CE4900089F0A37455F058 -:101E1000A374AAF0900085E0FE90008DF0900086FB -:101E2000E0FD90002DF0EE120ADF1E43011E72024B -:101E30001EC1031ECE061ECE071F17801F1F810066 -:101E4000001F2D90008C7402F0ED700E90008E74C7 -:101E500002F0E490002BF0021F2D900086E0640158 -:101E60006003021F2D90008E04F0E490002CF0021D -:101E70001F2D90008C7420F07F05900086E075F097 -:101E800012A424442FF8E6FE74892FF582E434006E -:101E9000F583EEF00FEFB412E17F17EFC3940D401E -:101EA00003021F2D900086E075F00DA4242A2FF860 -:101EB000E6FE74892FF582E43400F583EEF00F809E -:101EC000DA90008C7402F090008E04F0805F900035 -:101ED0008C7405F090008E7401F0781CE675F005A6 -:101EE000A4A3F0A37420F0900086E0FF700D900092 -:101EF00028E07002800F9000298015EFB4012E9029 -:101F00000029E0700890009174FFF0802090002874 -:101F1000E0900091F0801690008C7401F0800E909B -:101F2000008C7402F090002AE090008EF090008CFB -:101F3000E02404FFE433900087F0A3EFF07B017A04 -:101F4000007989FD122A69900087E0FCA3E02489CA -:101F5000F58274003CF583EFF07F011228F49000C5 -:101F600086E0FF700843BD0253BDFE8016EFB4014A -:101F70000843BD2053BDEF800AEFB4FF0643BD22E6 -:101F800053BDEE900088E02402FF900087E034000B -:101F9000FE7B017A007989122B8B900086E0FF701E -:101FA0000753BDFD43BD0122EFB4010753BDDF431D -:0D1FB000BD1022EFB4FF0653BDDF43BD118D -:011FBD002201 -:10263900EF24FA605014604D24067069E4FE746D4D -:102649002EF8E6FF90002DE075F012A424442EF830 -:10265900A6070EEEB412E7E4FE747F2EF8E6FF90AB -:10266900002DE075F00DA4242A2EF8A6070EEEB46D -:1026790008E790002DE0700690002B04F0229000EE -:102689002C7401F022786DE6B4E30D900005740115 -:10269900F008E6900028F0229000067401F0786EA8 -:0526A900E6900029F09D -:0126AE002209 -:102C5000E4FFFE900085F0304323C243FB7A007905 -:102C600069786BE62403FD122A697E00786BE624FE -:0D2C70006CF8E6B50707786CE6FF12263910 -:012C7D002234 -:102AB500011C00C139602A005B0BB80BEA0C1C0C29 -:102AC500800CB20CE40D160D480D7A0DAC0E100EEF -:102AD500420E740EA60ED80F0A0F3C0F870FD210A8 -:032AE5001D106859 -:1025B700E4FFEF25E0245BF582E43400F583E0FCDB -:1025C700A3E0FDC39000B9E09D9000B8E09C4005F2 -:1025D7000FEFB415DD781CE6FEEFD39E4004180616 -:1025E7008003781B16E5E16007E4F5E1781CA60790 -:1025F700781BE6FED394BE5006EEC3940A500778C4 -:102607001CA607187664781CE6FFD394005002D204 -:102617003DEFD394015002D239EFD394055002D243 -:102627003BEFD3940A5002D23AEFD3940F5002D221 -:012637003C66 -:01263800227F -:1026AF009000C3E06062E4F0D2259000C1E004F036 -:1026BF00E0C394054004E4F0D2269000C4E004F097 -:1026CF00E0C3940A4004E4F0D2289000BEE475F011 -:1026DF0001120995C39000BFE094649000BEE0948E -:1026EF00004006E4F0A3F0D2239000C0E004F0E035 -:1026FF00C394FA4013E4F0D2249000C2E004F0E057 -:09270F0094044004E4F0D22722F6 -:03000B00020026CA -:10002600C0E0C083C082C0D074FC258CF58C746699 -:10003600258AF58A9000C37401F0D0D0D082D0838F -:03004600D0E032D5 -:0E2DE400758901758CFC758A66D2A9D28C2285 -:1029E100EFD39401501675FE0EEF25E02404FE741A -:1029F10003A806088002C333D8FC801475FE0FEFCC -:102A010024FE25E0FE7403A806088002C333D8FC27 -:102A1100F452FFEFB4040C75FE0F53FFF075FE0E78 -:042A210053FF0F222E -:102D9B0075FE54EF5407F5FF75FE56AF058FFF75A3 -:062DAB00FE5375FF01223A -:10294500EFD39401501875FE0EEF25E02404FE74B4 -:1029550003A806088002C333D8FC42FF801675FE23 -:102965000FEF24FE25E0FE7403A806088002C3339A -:10297500D8FC42FFEF70038DCE22EFB401038DCF5B -:1029850022EFB402038DDE22EFB40304AF058FDF1F -:01299500221F -:032FFD00010102CD -:102CAB00E4FB7D04FF122AE9E4FB7D047F01122A79 -:102CBB00E9E4FB7D047F02122AE9E4FB7D047F0338 -:032CCB00022AE9F1 -:100C6700303159C231E49000D4F0781BF690008AF5 -:100C7700F0A3F0FBFAFDFF12277CE490008AF0A3B3 -:100C8700F0FBFAFD7F0112277CE490008AF0A3F0C5 -:100C9700FBFAFD7F0212277CE490008AF0A3F0FBA9 -:100CA700FAFD7F0312277C9000317402F090003028 -:100CB700F0900032F090002FF0D2472220220F2030 -:100CC7003E0C200D03020D7C300E03020D7C202B01 -:100CD70005D22BD23122900031E06402601A9000D5 -:100CE7008AE4F0A3740AF07B147A007D02E4FF1211 -:100CF700277C9000317403F0900030E06402601AA2 -:100D070090008AE4F0A3740AF07B147A007D027FD6 -:100D17000112277C9000307403F0900032E06402E7 -:100D2700601A90008AE4F0A3740AF07B147A007DBD -:100D3700027F0212277C9000327403F090002FE0AC -:100D47006402601A90008AE4F0A3740AF07B147AB4 -:100D5700007D027F0312277C90002F7403F0200D83 -:100D6700030210349000D4E0C394285003020EB25B -:100D7700D20ED23122302B0CC22BC22DC22CC22F45 -:100D8700C230D2487816E6FF7003020E8C640370F7 -:100D97005E202D07D22DC22C022CABE490008AF0E6 -:100DA700A3F0FBFA7D01FF12277CE490008AF0A3F1 -:100DB700F0FBFA7D017F0112277CE490008AF0A303 -:100DC700F0FBFA7D017F0212277CE490008AF0A3F2 -:100DD700F0FBFA7D017F0312277C9000317401F04C -:100DE700900030F0900032F090002FF0020E832038 -:100DF7002C0DD22CC22DD231E49000D5F0807D90FD -:100E070000D4E0C394015055E004F0A3E014601A45 -:100E170014602714603424037062900031E0640486 -:100E2700605A7B017D04E4FF802E900030E064046B -:100E3700604A7B017D047F01801E900032E06404DC -:100E4700603A7B017D047F02800E90002FE06404EE -:100E5700602A7B017D047F03122AE9801F9000D45A -:100E6700E0C3940F5005E004F08011E49000D4F043 -:100E7700A3E004F0E0C394044002E4F0C22FC230C0 -:100E8700C232D22E22302C0AC22C122CABD231D233 -:100E97004822202F0C202E09203006203203021072 -:100EA700349000D4E0FFC394015004E004F022EF33 -:100EB700C394644003020FDF9000D4E004F0303B9A -:100EC70037900031E064037003021034E490008A25 -:100ED700F0A3F07B64FA7D03FF12277C9000317446 -:100EE70004F0E490008AF0A3F0FBFAFD7F011227DB -:100EF7007C9000307402802D303A41E490008AF0F3 -:100F0700A3F0FBFA7D01FF12277C9000317401F0FA -:100F1700E490008AF0A3F0FBFA7D017F0112277CA1 -:100F27009000307401F0E490008AF0A3F0FBFAFD22 -:100F37007F0212277C90003274028043E490008A7B -:100F4700303C53F0A3F0FBFA7D01FF12277C9000A1 -:100F5700317401F0E490008AF0A3F0FBFA7D017F81 -:100F67000112277C9000307401F0E490008AF0A30E -:100F7700F0FBFA7D017F0212277C9000327401F0AA -:100F8700E490008AF0A3F0FBFAFD7F0312277C9020 -:100F9700002F7402F022F0A3F0FBFA7D01FF122765 -:100FA7007CE490008AF0A3F0FBFA7D017F01122711 -:100FB7007CE490008AF0A3F0FBFA7D017F02122700 -:100FC7007CE490008AF0A3F0FBFA7D017F031227EF -:100FD7007C90003174018048C22FC22EC230C232C9 -:100FE700E490008AF0A3F0FBFAFDFF12277CE4905F -:100FF700008AF0A3F0FBFAFD7F0112277CE4900042 -:101007008AF0A3F0FBFAFD7F0212277CE490008AA6 -:10101700F0A3F0FBFAFD7F0312277C9000317402E6 -:0D102700F0900030F0900032F090002FF0BB -:011034002299 -:10253700022C7EE493A3F8E493A34003F68001F210 -:1025470008DFF48029E493A3F85407240CC8C333A5 -:10255700C4540F4420C8834004F456800146F6DF74 -:10256700E4800B0102040810204080902AACE47E2E -:10257700019360BCA3FF543F30E509541FFEE49369 -:10258700A360010ECF54C025E060A840B8E493A330 -:10259700FAE493A3F8E493A3C8C582C8CAC583CA5B -:1025A700F0A3C8C582C8CAC583CADFE9DEE780BE13 -:012AE80000ED -:1007BC00E709F608DFFA8046E709F208DFFA803E1F -:1007CC0088828C83E709F0A3DFFA8032E309F6080C -:1007DC00DFFA8078E309F208DFFA807088828C8374 -:1007EC00E309F0A3DFFA806489828A83E0A3F60828 -:1007FC00DFFA805889828A83E0A3F208DFFA804C02 -:10080C0080D280FA80C680D4806980F280338010D8 -:10081C0080A680EA809A80A880DA80E280CA803341 -:10082C0089828A83ECFAE493A3C8C582C8CCC583B9 -:10083C00CCF0A3C8C582C8CCC583CCDFE9DEE78089 -:10084C000D89828A83E493A3F608DFF9ECFAA9F008 -:10085C00EDFB2289828A83ECFAE0A3C8C582C8CC5E -:10086C00C583CCF0A3C8C582C8CCC583CCDFEADE77 -:10087C00E880DB89828A83E493A3F208DFF980CCD9 -:10088C0088F0EF60010E4E60C388F0ED2402B404D2 -:10089C000050B9F582EB2402B4040050AF23234579 -:0608AC00822390080C738A -:1008B200BB010689828A83E0225002E722BBFE0244 -:0908C200E32289828A83E4932277 -:1008CB00BB010CE58229F582E5833AF583E02250E2 -:1008DB0006E92582F8E622BBFE06E92582F8E2222C -:0D08EB00E58229F582E5833AF583E4932246 -:1008F800BB010FF8E58229F582E5833AF583E02804 -:10090800F0225009C58229F8E58226F622BBFE09A5 -:10091800C58229F8E22582F222F8EA2583F583E9DF -:03092800932822EF -:10092B00F8BB010DE58229F582E5833AF583E8F002 -:10093B00225006E92582C8F622BBFE05E92582C8AE -:02094B00F22296 -:10094D00EF8DF0A4A8F0CF8CF0A428CE8DF0A42EBE -:02095D00FE2278 -:10095F00C2D5EC30E709B2D5E4C39DFDE49CFCEEB3 -:10096F0030E715B2D5E4C39FFFE49EFE120B44C3DC -:10097F00E49DFDE49CFC8003120B4430D507C3E4D7 -:06098F009FFFE49EFE2222 -:10099500C5F0F8A3E028F0C5F0F8E58215827002ED -:0609A5001583E038F0228A -:1009AB00BB0110E58229F582E5833AF583E0F5F08A -:1009BB00A3E0225009E92582F886F008E622BBFE67 -:1009CB000AE92582F8E2F5F008E222E5832AF583AD -:0809DB00E993F5F0A3E9932272 -:1009E300BB010A89828A83F0E5F0A3F0225006F75F -:0F09F30009A7F01922BBFE06F3E5F009F319225C -:100A0200F8BB0111E58229F582E5833AF583E8F026 -:100A1200E5F0A3F0225009E92582C8F608A6F022E3 -:0D0A2200BBFE09E92582C8F2E5F008F222CA -:100A2F00E88FF0A4CC8BF0A42CFCE98EF0A42CFC66 -:100A3F008AF0EDA42CFCEA8EF0A4CDA8F08BF0A4E4 -:100A4F002DCC3825F0FDE98FF0A42CCD35F0FCEB43 -:100A5F008EF0A4FEA9F0EB8FF0A4CFC5F02ECD3908 -:0F0A6F00FEE43CFCEAA42DCE35F0FDE43CFC2275 -:102A2500C2D5E830E70FB2D5E4C39BFBE49AFAE4DC -:102A350099F9E498F8EC30E717B2D5122A5B120B36 -:102A4500D5E4C39BFBE49AFAE499F9E498F880038A -:102A5500120BD530D50DE4C39FFFE49EFEE49DFD2A -:042A6500E49CFC22CF -:100A7E00EB9FF5F0EA9E42F0E99D42F0E89C45F0CE -:010A8E002245 -:100A8F00E8600FECC313FCED13FDEE13FEEF13FF45 -:030A9F00D8F12269 -:100AA200E86010ECA2E713FCED13FDEE13FEEF136A -:040AB200FFD8F02257 -:090AB600E0FBA3E0FAA3E0F92241 -:100ABF00F8E0FBA3A3E0F925F0F0E58215827002C0 -:070ACF001583E0FA38F02264 -:090AD600EBF0A3EAF0A3E9F02221 -:100ADF00D083D082F8E4937012740193700DA3A3A6 -:100AEF0093F8740193F5828883E4737402936860BA -:060AFF00EFA3A3A380DFBA -:100B0500EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D7D -:100B1500FDE43CFCE8A42EC8C5F03DFDE43CFCEF3B -:0D0B2500A4FFE5F028FEE43DFDE43CFC22C9 -:1013A200E5082489F582E43400F583E005082290FB -:1013B2000086301903900089E475F001120ABF0219 -:1013C20008B22012E97F2ED2128018EF540F249017 -:1013D200D43440D4FF30160BEF24BFB41A005003AC -:1013E2002461FFE50960021509050CE50C70020590 -:1013F2000B30190E900086E475F001120ABFEF025D -:101402000B32022DD67403D2198003E4C219F508F7 -:10141200900086120AD6E4F509F50BF50CE5096091 -:10142200077F201213E580F5750AFFC213C212C2AC -:1014320014C215C217C218C21A1213B1FF700D30AE -:1014420019057F001213F6AF0CAE0B22B4255FC252 -:10145200D5C2161213B1FF24D0B40A00501A75F087 -:101462000A780930D50508B6FF0106C6A426F6207B -:10147200D5047002D21580D924CFB41A00EF5004DB -:10148200C2E5D2160215F7D21380C6D21280C0D29C -:101492001480BCD2D580BAD21780B47F201213E553 -:1014A2002014077401B5090040F11213A2FF1213B0 -:1014B200E502141FD21AD21880951213A2FB12133E -:1014C200A2FA1213A2F94A4B700679C87A167BFF68 -:1014D20020142EE509602A7E008E82758300120890 -:1014E200CB60060EEE650A70F0C2D5EBC0E0EAC032 -:1014F200E0E9C0E0EE12163ED0E0F9D0E0FAD0E02A -:10150200FB1208B2FF60AAEBC0E0EAC0E0E9C0E06B -:101512001213E5D0E02401F9D0E03400FAD0E0FB68 -:10152200E50A0460DCD50AD980877BFF7A16793A0E -:10153200D214809C791080027908C218C21A8008DD -:10154200D2D5790A8004790AC2D5E50A047002F577 -:101552000AE4FAFDFEFF1213A2FC7B082013131209 -:1015620013A2FD7B1030120A1213A2FE1213A2FF65 -:101572007B20EC3382D592D55013C3E43012069F00 -:10158200FFE49EFEE42013039DFDE49CFCE4CBF803 -:10159200C213EC700CCFCECDCCE824F8F870F380F7 -:1015A20017C3EF33FFEE33FEED33FDEC33FCEB33C9 -:1015B200FB994002FB0FD8E9EB301305F8D0E0C4E9 -:1015C20048B213C0E00AEC4D4E4F78207B0070C247 -:1015D200EAB50A0040BCC0E0121640D0F0D0E020CC -:1015E2001304C4C0E0C4B213C0F01213CED0F0D5BD -:1015F200F0EB02141F120ADF14BC53153658148D77 -:101602004C148942153A4F15424415424914A243DB -:08161200154855152C46152C56 -:10161A0045152C4716E85014912D14952E14B82B05 -:10162A0014992314B62016D12A145148000014B074 -:10163A003F3F3F00790AA2D5201514301709B91087 -:10164A00020404B9080104A2D5201802500104209A -:10165A0014689214B509005034C0E07F203015197F -:10166A007F30A21472187217500F121697C214C242 -:10167A0018C217C21A7F30800F301703E9C0E01270 -:10168A0013E5301703D0E0F9D0E0B509CC301717CD -:10169A007F30B9100C1213E57F583016077F788017 -:1016AA0003B908031213E53014057F2D0213E57FF1 -:1016BA0020201AF87F2B2018F322921480CF286E4C -:1016CA00756C6C2900D2131213A23013F8C2137866 -:1016DA000930D50108F60214512D50434958121306 -:1016EA00A22403B405004001E49016E3931213D632 -:0D16FA00743A1213D6D21575090402153684 -:100B3200BB010689828A83F0225002F722BBFE01A2 -:020B4200F3229C -:100B4400BC000BBE0029EF8DF084FFADF022E4CC95 -:100B5400F875F008EF2FFFEE33FEEC33FCEE9DEC5E -:100B6400984005FCEE9DFE0FD5F0E9E4CEFD22EDA4 -:100B7400F8F5F0EE8420D21CFEADF075F008EF2FEE -:100B8400FFED33FD4007985006D5F0F222C398FDDF -:050B94000FD5F0EA227C -:100B990075F008758200EF2FFFEE33FECD33CDCC13 -:100BA90033CCC58233C5829BED9AEC99E582984096 -:100BB9000CF582EE9BFEED9AFDEC99FC0FD5F0D673 -:100BC900E4CEFBE4CDFAE4CCF9A88222B800C1B99D -:100BD9000059BA002DEC8BF084CFCECDFCE5F0CBDB -:100BE900F97818EF2FFFEE33FEED33FDEC33FCEB14 -:100BF90033FB10D703994004EB99FB0FD8E5E4F9CF -:100C0900FA227818EF2FFFEE33FEED33FDEC33FCBB -:100C1900C933C910D7059BE99A4007EC9BFCE99AAF -:100C2900F90FD8E0E4C9FAE4CCFB2275F010EF2FF4 -:100C3900FFEE33FEED33FDCC33CCC833C810D707F4 -:100C49009BEC9AE899400AED9BFDEC9AFCE899F82F -:0E0C59000FD5F0DAE4CDFBE4CCFAE4C8F922C2 -:00000001FF diff --git a/Out/8837_EVB_250121_1409_9DE0_010102.bin b/Out/8837_EVB_250121_1409_9DE0_010102.bin deleted file mode 100644 index 5f25540f7ce1622a3581aa49d485d2aa163df5a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12290 zcmeHtdvp}XnQwQ`Q=`|YXY@cI7@83XkVJ#<3qLewFpxNoCz0agY|gnJCt}xR9X!{W zVFxg%Eg9Q5*q$}=t^s4Rh;aQNCdLATZEU5-IK&p9G?wFJcSGCs2mz9&1C}C$G<|>7 zJtHLBS?`{cf9^S#gQlv!`rh?b)mK%`lovCURa&-yq8Mr>U+YY^(dNj3cCPNgyM0T9 zfdd@HR9$SB+nd{)+B?G|<(mgKhyT9(iGe3#R6IRcoz0yxp|38Z$UmlfhO{@b zjg}5eN2HgeS0bs|e(hJ_Gpj`0s|;+D4vR;`mqY@u)9wU(#_<@nk#&3=qpD?h$i&b; zBEQUH{r7e9Yo6vc2ThD+r;d0qMoneyAL@YUech*89D$kE7*!gsWwYk;Ipgt4fj6pX zER`qafLw{*Hz?+0m=r0%k5Pq2;W7%=C<=_iX%r%7Dr`m>89lsZ26DChHo& z3^+!KQ8u+zh0w&Adb_5KB!g2>GY5+@;-`jb$Om5ac&yMjW7KPMs#Vr9cufD(MBI7{ zn{`hz%EW6<)SUR_@>sXk=#EkQ<#Iywnp_j396AY+Mtj8Xf>@gx*kXELzA#@L); z{40a;KEl|pGtQ`1##mZT0VuavV6NOk1sLIhwB@?l$j>{= z5Q}w0;#L#!lpzrA*9AJ1hzdVGOGejlc}6)0oArwJsv4v6P&u_Tp}r89lIgQ&`f@UT zz5;zDG6-di>C;TT1VPk5hkjyk0?Sh^?ta)hKXHaX1GS6N`jKFZx77NUj1elrHJQ3A zObZp6h80prPbGKsKMVCX`s}O&G3^qpdYNH|DFJA)E<7FlMBA(K7efAL90GWv{J{7L zP&`frcDxGauTp_ct6*>(^R+we>-lM4|J5PgCu^-TM((5@C0`yA!;>(^JesjAv^GW& zcZ`kH=w3Cxv-bsGNyb_FIG*a;+54E z!H2e8h#A0B2As_Vifszk@Tmr38(rAnMi&@}ZL~c`xzoX-b8MsGWfEZ_r-6bnp8*`R zP?`*tW>|onFrPp^akX@h$$l&20x}s+wNO5YEDfhv`%sLU1P~S|y=SLydW*y#9QSSs9vM~s?sRl!llwlgEY$gmE+FEncKJ?xygeWWLUATL8zI!=cSZ1PnB z@tr;>W`s-H60&WKfq;pPi=n`;T0Ygn_?*gEr?GQzXR`+Fr-y~5XR|Jn@|MS&HaDNm zQd?19aK`A1o-z7Dr0-66eBw<*1U-(E^DO?n41gEe^I4^7y zUKIW)d?tJ#)DYa>VP#9}v7=4LI*vAXsAIL$=l*n7$R!Bq2ItGY!!N0QS2%-29>W_) zasE#|!oQ~}Apf$^@wl1{(s|zw#vfPvyiA*!3LGA2x?t4y&6sgp(~Ous=cjMcRzf9n z0p=|CR*E^J3sJUkZ_zo4rr85ciRMKEq}zI~ylJQ#D0<~H?rNuwoIi9GAXlhdAnRz; zY`|s?f<&)>R^D`x8#-U!JkWe@O9eOd7M**Qqz4p)@iBsKA(e|<@=0~~i|WbE>h6jY zs8**qv8$Iqo3+17iSHOyo*(Jw&lZx#PEC0s#bz&wD>_&(q0V>N;)>qE9aV=~p%RKj zQ(;qxDQuRnS7D#?s(5)oZH0|l#KuQeJ2BHi>Yoj$c9_~chv*EPbHpzW;xILVbObv8 zCF}pFlZaO?CDg1-lZaUbSNZm&(Fo&XgZ4cTo6_qS6RQ0p*YmWxyW?l-?#hvKPm$jz z)IR*4NB#JVD&SQe*O#lK=YUmt{2F!S0yfdHyz)>j~!f#$6+QuF-y1D(TWb`7=Py-d$(M!&FYb(kc(P%9ptz z)KHeI>X@g7;i?O2>v`C&a!5^^hLkNKY<*ioxvi~RhEN%3dc0ZrX_(n^UohF)+A5sx zg_<2l)sEvs$=xT8s#Qd{p54{Qj;c44YI3)hP%Bc3-heyx_=78%zrZ>4CGKr1`yFaF z2LBQ5mnx@p3`JCXa-P;-lj^M*>EF@&oX>(HmEWbFQ%;O>eM19k|05o0O6r%Yf!S9x z>a#r;uy&~zx%hLVKs?W(C(=Y2Y>w9)@2KfG+EjD2X?x$c-mQtI=X^N>P5s+becMKR zw~m0|W97sZ<@m7Darwn2?hy6s!_@cRq^f#ny;_qJeI-*_?xFn%Qz30@3|$%lWSsfAL8@KuV=1Bnk&sm zYBXPNV1n4lo>0`*utQzvUQ4ZKa2_yNnZSboDhyo}^daGdps&Or+M!R!nD>hW`P#JOUXSSijEd1-mHs9VEXCvS6uDfGWQRW=DdOyw(M z4q8u7@Yi~JqQlUh;4!o_E+gB@RhKb&&7R6!sZy+x$dGiY!g@nBI`BQ&jAg|gEOiHG zxq}P6rqB;{ADV-Iw~k(KRy3hn_n0~OP10_p1>_m~)9o1b;hMy7qgaLn3ogUKv10Lz|B1|T5&V&u4a^qNz)AGMR z?80*Rwwic%jQnpg=QwcNs3N8|$`}$e2Ez4E;hK2^P0B(FJ8zKlrh;B_Y%i$Qe-C<1 zNLO7X-H|o6>K{;LtMW2{a@l)hhIFJ=9!&yJmjU1$9N*FZe82)S?2=U^yOK3v_%j%P zl_Vo^96KxmDq(+nh8XOTqv9;*Bd2m4bH}>E8qWAx&t}ApQ9#_cbYoyJQy^vf|4R!_ z{cSDCIL>=r#*9!gJNr{{DN)8-lLjj4m+?{!Oz3vcQn$2}cp;-RSsGUwqd6XG9IMA8 z$}m3OlIq3L*Tk@+!ngZzT=+ZB(qc&$J)RgWQ(t14_UQzc`UtEfr|AcE^)ogps&KFF z+^be%S^V}FX%T-ZGJIxfsgQjt+45t;i7{M3^x>E0ru{*L3)vax7{+~Z^bmdQ?Avr` zs9;<~V@*&6KY_Q=&M^<;pv$X5r4D8$fETC&IpWD}ro8dk^K_4xRmORvK7({Ym_UKa z#H>urkDakMlI8N>xrE)jDKpR(JNC3k`AMc2wMoZwyvx}4d)RZ0)euVi~XQRTi@S3bI{Xe4lz=p@CWZnsFw_w#e`JE6#hkW z3Gc&(cF8TgEp-WRO2tB(F4^O@h3NxXl<&{1YnKL9822=(R4NgkMf(c=hVgg#o41Fo zYmTigTBmv3)zEs*2I{G%NHc|FRM48&zrqnx#jXqO^7(f8T)W)Q7TwY*U+$ELJLM~^ zeZLlbd8`i-I%O}7&V>}|PB_fL|LAi3L3nJPwzg=^A}IL$8mGXlu@ffP%I5?#Ha93*WWJ>H?A&?TWbo~$9cwabp)JHCBq z)U%EXiRTYEDBs)dGF#;9R6Avl%luxu{2q{0)^(y&?NTqmfvn@S`|Y~IYwvbH`7QUR z#f6LREL^;#aPc?XyZnXAzgJkfw6OBF!pdbuJpuPWSGk|9b|0GS-a5m5&{OogIqvT) zrzrQYYHMq$HI7|foAXBCP14#?)#o`W7q-<+vP?NUpT3e-{pR= zc=e>No%fAcOlkwhJBA7tF$sS5bNaW}wTQ=5hI z(Mqi7%of)5ad;7aq{2v+nJK*1Q)^nZP0!x`JI~M3ZC@tzy2IE9Qw`D3BkcC|TErC=z6K70nVa;l{K6=jc>D4D5J_Uta6UpE2ey ziR5+}4-k)ub}3t=B(vd2F<-*EMPtV`>0S_*3wL^W6PFoI!}zn|G@v)1~w*D&k_?e89B&7aPth;__sx3=4&Yds()~v~y({Bs<0S?fK##Vo0~N4gl+aei zB_uMCnY^yPSFbLi2Y!K$gZiR$L^bmE7{$p!DOgJvLsz}(caR(Q>gG=>P zz3goI#B5U6HH!;`ptdVABJ>rV8zvZ;Q4s!dIA7(kQ+n5|CP@ks!9S=> z*{T?ILN=tVCb3xd@R*oLMMwphJWy;nj217ZCp^!Z>95N?9 z4OS5>lbRT;&o`D#dwR(X;T7;Wu6!e(PKylYM}|fs!*4?+g3Nhl5oY47ND8`aOlYdE z<5T3&ZRnYVFL1VqQ9pyyNp;_6twwn!T`K7^kuJN95*8Dpf7Ov$H!g`kCT9v?vFuho z%XFE`;1XS0H{;GlrF;#oBNA0Pw(7OO57@bP>x%$ebriP$?QTbyYCLulkCLcJs;zyh z(u!b+ZhDAXPeYT+HT@|hS@zA4x(P$|J^a0_`vLLwBr1=}c&MpT`;jk9_0v-yWTyVw zH1&ja>IvJlVqw~}hbd|rMq@K1^o5XBK4lEvT$LfQ9Q7*!#M7$HAK%@zvrN>YuA974+b&tXj!Jfs_SRVX5iuOVqrAVu}G|A-S+ z&8k-mxWs4mj6MaDq4_cDH&0skEWbe%@e6;* z*WSZlKg*NP2o?HH3N8r#8JNn`SBTd~%T_bMeIJbH68!6Ce>uCFKye+gKTttt;;&)E zYs7^jMyk_@qUlj&Dh&+cX*#l<_p!Ot0jDwwH<$H*j0h0wW7JW|xA;toa6^o$#BnVj zD2%@UR$?H91q6yy@ElOc!7}|0W{loY^(Yh=l$^rdY34*2GAo~hFh>~U5*;96E>Xu6 zLNfLNxdmw>nOAqPe|(Z0mwMwXvsz7Yp}v+6jq^4a0{G=#3@9ggqJ`a>D_SzhPcH!UT>>?W(*<+1 zWRFcr2^rLYzpv%G-WJ+-qcok65DJeA6k9-nlb1)ZCgX%pv~)GiPbR#+19bFE7R*Yt zbP&9}01_U7$Zb_V(20--7^!Rn9WCu1*uT%pDOZLQ-St9x+Suw|PeqFc zxoFX9I?=-?ERi0MU`ZtSPtEAz5*PV|Idaj13UW&qK#5EB?HHvQ9g&MUkxT6y{t$!H z*Cc~h^hz8j5+Y>*#I@1Zwa#_-3Ffu=>wbR0`(y1q5(4c0hvl6l1$ZG~iClCFCS8No zCT>mf+32LDB})fh(^d7qUVtSGNj>dj#G8}Ino-_>(uVRzlsPCDp)5do6ZB`e%x5~0 zPO6=1w~)*$v7P_aQn!6nT#TB$x^8<)S{9=u-0@B#7rad9M~UarZu_1c>m7D9Ax|hV zATK*HVelD>Sq-n8H?-$@;RbARs(`ic)Ky^gAG`GhF@-SJA8*5WxV7}Pczie}ogy!m zk}CO0qStBZq{coLs=I&1ijb!+d~bM#r{eyVt5z&3ZSr{T!Mk2B>D zGL;+f(219&R-b85pz(hBxiFhR>TTYfWAU2z>hqU)jy3ztpWh|WO9xLYLN?8q?M{zR zh|SrnY@oLU-)`0FYxzW0{j?Ma@$h-FzP(%yzUVuICV6Eg+{sJp2S=MfFy2i`O@C>9 zN72ZY(GN2BLi#d70&52etml0eY@vn!iSS7!PrcwXmskZ;baD|=Cz~?xX>`gSTXb@F z>Qu`+0c(F8Ur*TxsAP465pQI^ka(j}l6bSAB=P1zN#ZRZ8Cat&}{Gp;sI5qs*NE|IbGuks_)O$wTp|>ky)H~^$G|aen<(38j zWU>~KD3)f#sCEN=*yjSdH%5u1joWO(Z5EkIs`1U6F`39zy2Q)Z@B6oC-fGIe$ClVt zZz@?jXzw13QAe;F*#pHT-6=b9!a*a?CvY73EYgy?U!)?JXnhuB<^XPH7VNc!Ybw)2 z*r%S4yHXciTJN}PRQ-su&qP3(`|k53??8&E@9?A}b2F{u62RC!BJAW8?dmnAqK2=_ zBw31n4?gY&SZ`;95Eqg7%J9y#$FoL+nOixrHj(grdRO8z{;Wyzaacj+T;97h(nFJ5 z0eroHs}y~0L}n}9!il%=H=7t#YkA*vq~2}JWPLqs!N#bciJtOVq*~F3toW!{%SBSO zGJqF@huJFpD$2m4kvHOz)Q=;YIg+~HuVu5d|0R+V{2CKU<<)5;evOW#iX+-h(u>kQ zcCL5*O6rxzx)QR_efUHlr)>64`dIuNIsQ(@DKR=a>h;U^=D zHK8by%7;W89VfuC)jxTHq;;kzPoiKBu&DBj=2&iMhGJ+Xs)&Ctbn z2m%4|Z-pb==G_^nDaPh5Gdk!8z0qvJYjS&zX`VOANhHxDj+aUS3$WWr@UnM9G)V}1=e*J@KF74mB(b+7-~ z|2m^YiwC2V29Z~#6DaK8CHnRq*-wK8Lx!-N?$_**j~>-42wF55KF=OWdF!;eU`6TI zZb~1T4G$rg-Amrq_R8^{3cgtMEFP5>Pw>(JHtfA*W%(ndSP|{UC}l>>6wzJ=llkCr z_03mo5}U=1;v*bCbEb&3vV&~lNp~>E9n3=#z_OJmgj}|&O0ct&`#{~H@)Z`bf^}X) z&KPzqYQK{oz%Aux{282NE;|py??0tfXx=YzguHx-oUXHJ8%lET64Q`1UHimq}BLE@_|FL^s4j@I}>wR z6+Tz4tT$_TP$nf(u5^XTR7}jAb1~{|Vi-H=5UI6U8FFp+Hd&p0CNSivulc9n0KhG| z#(%FVlr1)KVlxNNi5oe#l4Ga6!&V0P83p1Dmb=JS)UxGousQ$07TdVGH9rln_=)Em zt5$}q?^^NTqVfe%<3I9=i9DqyPHN_)M>uICh7c>)CBJ5tPWvAdB5#@^FONo^`>wPX zJ@v_Y+kh5H-GxN~MO{Rr$#BqGGGz4>nD}L8aao)@#U&0PpG^kse62+pIDmySM!lL; z*=jsOy((*5WD_0PJQ8{0@9{PEW{%%#7PpGG^3O5ia|BeMM&|2CRqsa5{R p7>2sbbL*&d>(g7g$c3AvWeXyg82o;X=l*~9|AQW&X=aD~e*wEvWM2RP diff --git a/Out/8837_EVB_250213_1135.bin b/Out/8837_EVB_250213_1135.bin new file mode 100644 index 0000000000000000000000000000000000000000..4fb8bae3570e63e9f2a082152195086eb1b1b9d1 GIT binary patch literal 12288 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 - 167 - 2141 - 4061 - 1129 + 164 + -392 + 1528 + 1126 0 - 1333 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000D000000000000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000B3A6BE00FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000EAD6A300FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6C65645C6C65642E6300000000056C65642E6300000000F6FA7D00FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C68616C6C5C68616C6C2E63000000000668616C6C2E6300000000B5E99D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000C3020000 + 1585 + 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000100000000F0000000100000036453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000FFDC7800FFFFFFFF4C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000BECEA100FFFFFFFF41453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000F0A0A100FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E41353100000000BCA8E100FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C757365725C757365722E680000000006757365722E68000000009CC1B600FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000F7B88600FFFFFFFF3C453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C696E635C636F6E6669672E680000000008636F6E6669672E6800000000D9ADC200FFFFFFFF48453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C636861726765725C636861726765725F6D6F64756C652E680000000010636861726765725F6D6F64756C652E6800000000A5C2D700FFFFFFFF40453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000B3A6BE00FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000EAD6A300FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C6C65645C6C65642E6300000000056C65642E6300000000F6FA7D00FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C68616C6C5C68616C6C2E63000000000668616C6C2E6300000000B5E99D00FFFFFFFF3B453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C756172745C756172742E630000000006756172742E63000000005FC3CF00FFFFFFFF39453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C557372496E635C6164635C6164632E6800000000056164632E6800000000C1838300FFFFFFFF3F453A5C746F646179776F726B5C32303234313230325F7470333431305C5359383833375F44656D6F5C5573725372635C73797374656D5C73797374656D2E63000000000873797374656D2E6300000000CACAD500FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40000006600000080070000C3020000 @@ -134,7 +134,7 @@ 16 - D8000000EF000000A00300007F010000 + F40000006600000090050000F6000000 @@ -190,7 +190,7 @@ 0 16 - 000000002D02000090050000BD020000 + 03000000300200008D050000A4020000 16 @@ -210,7 +210,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -230,7 +230,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -250,7 +250,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -270,7 +270,7 @@ 0 16 - A3040000660000008D05000001010000 + A3040000660000008D05000010020000 16 @@ -330,7 +330,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -350,7 +350,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -370,7 +370,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -390,7 +390,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -410,7 +410,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -430,7 +430,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -530,7 +530,7 @@ 0 16 - 03000000C70200008D05000027030000 + 03000000C70200007D070000CD030000 16 @@ -550,7 +550,7 @@ 0 16 - F40000006300000090050000DF000000 + F7000000660000008D050000C6000000 16 @@ -610,7 +610,7 @@ 0 16 - A0040000630000009005000029020000 + A3040000660000008D05000010020000 16 @@ -630,7 +630,7 @@ 0 16 - 000000002D02000090050000A9020000 + 03000000300200008D050000A4020000 16 @@ -690,7 +690,7 @@ 0 16 - F40000006300000090050000DF000000 + F7000000660000008D050000C6000000 16 @@ -730,7 +730,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -750,7 +750,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -770,7 +770,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -790,7 +790,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -810,7 +810,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -830,7 +830,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -850,7 +850,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -870,7 +870,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -890,7 +890,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -910,7 +910,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -930,7 +930,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -950,7 +950,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -970,7 +970,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -990,7 +990,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1010,7 +1010,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1030,7 +1030,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1050,7 +1050,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1070,7 +1070,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1090,7 +1090,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1110,7 +1110,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1130,7 +1130,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1150,7 +1150,7 @@ 0 16 - 0300000066000000ED000000A4020000 + 0300000066000000ED00000093020000 16 @@ -1170,7 +1170,7 @@ 0 16 - 00000000C40200009005000040030000 + 03000000C70200007D070000CD030000 16 @@ -1190,7 +1190,7 @@ 0 16 - 03000000C70200008D05000027030000 + 03000000C70200007D070000CD030000 16 @@ -1210,7 +1210,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -1230,7 +1230,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -1250,7 +1250,7 @@ 0 16 - 03000000C70200008D05000027030000 + 03000000C70200007D070000CD030000 16 @@ -1270,7 +1270,7 @@ 0 16 - 03000000C70200008D05000027030000 + 03000000C70200007D070000CD030000 16 @@ -1310,7 +1310,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1330,7 +1330,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1350,7 +1350,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1370,7 +1370,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1390,7 +1390,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1410,7 +1410,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1430,7 +1430,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1450,7 +1450,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1470,7 +1470,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1490,7 +1490,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1510,7 +1510,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1530,7 +1530,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1550,7 +1550,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1570,7 +1570,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1590,7 +1590,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1610,7 +1610,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1630,7 +1630,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1650,7 +1650,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1670,7 +1670,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1690,7 +1690,7 @@ 0 16 - A3040000660000008D0500007C010000 + A3040000660000008D05000010020000 16 @@ -1704,7 +1704,7 @@ 0 0 0 - 32767 + 966 0 8192 0 @@ -1744,7 +1744,7 @@ 0 0 0 - 32767 + 476 0 8192 1 @@ -1764,7 +1764,7 @@ 0 0 0 - 32767 + 612 0 8192 2 @@ -1790,7 +1790,7 @@ 0 16 - 03000000300200008D05000090020000 + 03000000300200008D050000A4020000 16 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000D8000000EF000000A00300007F010000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000D8000000EF000000C8010000BA010000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000AC020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D8000000EF000000C8010000BA010000000000004F000000F0000000AC0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000D8000000EF000000C8010000BA010000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000AC02000080070000B00200000100000001000010040000000100000002FDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000D8000000EF000000A00300007F01000000000000B002000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000AC020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F0000000C3020000000000004F000000F0000000AC0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000AC02000080070000B00200000100000001000010040000000100000002FDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000C702000080070000FD03000000000000B002000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2914 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000036162739600000000000000140003616273083230323431303135084144435F43544C310F636872675F69635F64697361626C6508636872675F69635F04343235300E496E697469616C5F5354373733350564656275671C4932435F57726974655F4F6E654279746528305844342C307830312C1C4932435F57726974655F4F6E654279746528305844342C307831302C0B536C6565705F64656C61791B4932435F57726974655F4F6E654279746528305844342C307830371B4932435F57726974655F4F6E654279746528305844342C3078313010636872675F63757272656E745F736574174932435F57726974655F4F6E654279746528305844342C1B4932435F57726974655F4F6E654279746528305844342C30783033023033084C444F5F43544C30043437303008766F6C5F766261740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 + 2929 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D45617270686F6E655F56626174960000000000000014000D45617270686F6E655F5662617403616273083230323431303135084144435F43544C310F636872675F69635F64697361626C6508636872675F69635F04343235300E496E697469616C5F5354373733350564656275671C4932435F57726974655F4F6E654279746528305844342C307830312C1C4932435F57726974655F4F6E654279746528305844342C307831302C0B536C6565705F64656C61791B4932435F57726974655F4F6E654279746528305844342C307830371B4932435F57726974655F4F6E654279746528305844342C3078313010636872675F63757272656E745F736574174932435F57726974655F4F6E654279746528305844342C1B4932435F57726974655F4F6E654279746528305844342C30783033023033084C444F5F43544C3004343730300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008546172676574203196000000000000000100085461726765742031000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000004004E00000000000000000000000000000000010000000100000001807202000000000400530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3603,12 +3603,12 @@ 0 100 - 0 + 15 ..\UsrSrc\main.c - 40 + 0 18 - 46 + 48 1 0 @@ -3616,8 +3616,8 @@ ..\UsrSrc\vox\vox_module.c 0 - 6 - 35 + 111 + 132 1 0 @@ -3633,18 +3633,18 @@ ..\UsrSrc\userapp\userapp.c - 0 - 98 - 110 + 4 + 121 + 140 1 0 ..\Src\startup\STARTUP.A51 - 1 + 8 11 - 26 + 38 1 0 @@ -3660,18 +3660,18 @@ ..\UsrSrc\key\key.c - 0 - 19 - 31 + 24 + 246 + 278 1 0 \todaywork\20241202_tp3410\SY8837_Demo\UsrInc\inc\config.h - 14 - 183 - 206 + 1 + 293 + 315 1 0 @@ -3696,9 +3696,9 @@ ..\UsrSrc\adc\adc.c - 0 - 40 - 44 + 2 + 25 + 47 1 0 @@ -3721,6 +3721,33 @@ 0 + + ..\UsrSrc\uart\uart.c + 1 + 76 + 98 + 1 + + 0 + + + ..\UsrInc\adc\adc.h + 2 + 26 + 54 + 1 + + 0 + + + ..\UsrSrc\system\system.c + 16 + 140 + 158 + 1 + + 0 + diff --git a/Project/SY8837_Demo.uvproj b/Project/SY8837_Demo.uvproj index edaf86d..1ef9222 100644 --- a/Project/SY8837_Demo.uvproj +++ b/Project/SY8837_Demo.uvproj @@ -257,8 +257,8 @@ 0 - 0x0 - 0x200 + 0x100 + 0x100 0 @@ -357,7 +357,7 @@ - 0X0000-0X01FF + 0X0100-0X01FF diff --git a/SY8837_Demo.si4project/SY8837_Demo.SearchResults b/SY8837_Demo.si4project/SY8837_Demo.SearchResults index ea6ec96..6f22cdc 100644 --- a/SY8837_Demo.si4project/SY8837_Demo.SearchResults +++ b/SY8837_Demo.si4project/SY8837_Demo.SearchResults @@ -1,15 +1,20 @@ ----- Enter_Sleep_Cnt_Restart_Flag Matches (14 in 8 files) ---- -LED_Display_App in display_ui.c (UsrSrc\display) : Enter_Sleep_Cnt_Restart_Flag = 1; -Hall_Handler in hall.c (UsrSrc\hall) : Enter_Sleep_Cnt_Restart_Flag = 1; -Key_Handler in key.c (UsrSrc\key) : Enter_Sleep_Cnt_Restart_Flag = 1; -sleep.c (UsrSrc\sleep) line 37 : bit Enter_Sleep_Cnt_Restart_Flag; -Check_Require_Sleep in sleep.c (UsrSrc\sleep) : if( ( CHIP_STA0 & VIN_PRESENT ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*鍏呯數涓佹湁涓柇銆佽虫満澶勪簬鍏呯數鐘舵佹儏鍐典笅锛孊oost閲嶈浇杈撳嚭锛岀郴缁熶笉杩涗紤鐪犳ā寮忋 */ -Check_Require_Sleep in sleep.c (UsrSrc\sleep) : printf("Not Get Into Sleep(ChgStatus:%d,Vox_Vout:%d,Restart_Flag:%d).\r\n",(uint16_t)ChgStatus,(uint16_t)Vox_Vout_Enable,(uint16_t)Enter_Sleep_Cnt_Restart_Flag); -Check_Require_Sleep in sleep.c (UsrSrc\sleep) : Enter_Sleep_Cnt_Restart_Flag = 0; -sleep.h (UsrInc\sleep) line 40 : extern bit Enter_Sleep_Cnt_Restart_Flag; -EX0_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; -EX2_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; -EX3_isr in system.c (UsrSrc\system) : Enter_Sleep_Cnt_Restart_Flag = 1; -uart1_Interrupt in uart.c (UsrSrc\uart) : Enter_Sleep_Cnt_Restart_Flag = 1; -SysTem_State_Machine in userapp.c (UsrSrc\userapp) : if(Enter_Sleep_Cnt_Restart_Flag) -SysTem_State_Machine in userapp.c (UsrSrc\userapp) : Enter_Sleep_Cnt_Restart_Flag = 0; +---- gCharge_Cfg Matches (23 in 1 files) ---- +charger_module.c (UsrSrc\charger) line 51 : s_gCharger_Cfg gCharge_Cfg; +Charger_Init in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nTrickle_Cur = TRICKLE_CUR_SET; +Charger_Init in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nIterm_Cur = ITERM_CUR_SET; +Charger_Init in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting; +Charger_Init in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nVFloat = VFLOAT_SET; +Charger_Init in charger_module.c (UsrSrc\charger) : REG_CHG1 = gCharge_Cfg.nTrickle_Cur | gCharge_Cfg.nIterm_Cur | gCharge_Cfg.nConstant_Cur ; //璁剧疆Charger鐨勬稉娴佸厖鐢电數娴併佹埅姝㈠厖鐢电數娴併佹亽娴丆C銆 +Charger_Init in charger_module.c (UsrSrc\charger) : REG_CHG2 = gCharge_Cfg.nVFloat; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting / 2; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting / 2; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nVFloat = VFLOAT_SET; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nVFloat = VFLOAT_JEITA_HOT; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nVFloat = VFLOAT_JEITA_HOT; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : gCharge_Cfg.nVFloat = VFLOAT_SET; +PMU_NTC_Handle in charger_module.c (UsrSrc\charger) : REG_CHG2 = gCharge_Cfg.nVFloat; +Charger_Handler in charger_module.c (UsrSrc\charger) : if( gCharge_Cfg.nVFloat == CHG_VFLOAT_4_200V ) +Charger_Handler in charger_module.c (UsrSrc\charger) : REG_CHG1 = gCharge_Cfg.nTrickle_Cur | gCharge_Cfg.nIterm_Cur | gCharge_Cfg.nConstant_Cur ; //璁剧疆Charger鐨勬稉娴佸厖鐢电數娴併佹埅姝㈠厖鐢电數娴併佹亽娴丆C銆 +Charger_Handler in charger_module.c (UsrSrc\charger) : REG_CHG2 = gCharge_Cfg.nVFloat; //璁剧疆CV鐢靛帇闃堝笺 diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_sym b/SY8837_Demo.si4project/SY8837_Demo.sip_sym index 87522d0d02f52fb5d7e02a4f7bcc71daf7bdf525..b6941c7040a85aed3ec54bdeca4bb8e01469d7ec 100644 GIT binary patch delta 14582 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 F{%>?^(?b9N delta 13508 zcmeHNkAGCvmCu`ZfdnQnlgTe3zyJdT2r!W-K_g5sNOXe^8Z`=(L4F7tBnS#Z!~sF0 zPW9o1oFG^dgDbVM27{egV>=Xd={9SJU24&W8e7&<#Wu9q!b)|&=f0a~cZ+|(em?s? zc{%5v?>YDPk8{tP)9+-TekVICt6xe=WlD-T(KjXKS9rIkq@)}?Fycc)wl4Ox30JC- zJ`kcHUPa}xp}y@wA%kX2hKhs?zv`FWrbWp#A!vW6={6o|+bnK3sHQ{+Wm>LH%c=Bb z(<)3(3-RKH1vWl09G8$V`pQRLGKkmiIa>ai~IaQ+K2f0&+QCMdkJk zpRD;$(UwdN8D7(sl9C3

jn3m*kP59=Z0cN1pDFin|TF#4??Knfz#iPe%VNWaEIC zce<83l+m`ZyUZZZURd@4ZsFzUPx8g|X6c^=%S^vaj&!%JAJ}80X9JpqS5aED%k;I? zd0^lAE_%oS@BscPN^}2W_+*dQ?#^^Kun1lZQAz~uYL=~s1zntP_+^#PlKu-qre^yo zvdbl;Co?9aGXyo>1T>LpQRG`jK(5WQsBwi6Aj>dBTS0cnu-lu39J#%U%GGCm(#o-@ zdo~)xq7n_2$d9)9>OVDvEYFS6(O;OE^3*mDMG7Igm>W}r#riy0in2Z>mZ3hamsx4t zV4gVH(zqh0Ei$;wkdaX$eE>u!(OyN#7$bZ#@uiTRLoC%*Jd$jAIcspVLDv?V(4D)2f7%C(xT%iu3;E@uhZ`Q*-++Zp7fqX zMfPDz50A-U)ZHhQrPMUf$dSSyqs9rQP(yMT$wHI zV6tgMuHkD-j_eY$vY$sLhKjbt*fPV*;BQgAUOG&AbA2*@T+AK@9(x`JE~rF}5ayF? z7+)lF$A{IdWDTB`tTA04sPnbO#+MuN_=on~MyIr$pMU{Z3z3z1A+mD0nuD_ObO>I|Pe%STDc9EtHJ{isuZFyG+m+^0M#MEZ*uk=_swCxvD59jf6N*BoH z7QBkKeYbLKe_^2rvOY1xWK{_6U8jT6hs?Xz}qPzk#+vYA?<)y}BuF-PkzyY#n-By`c7my9>Eebyji(#->&bi`Q zt~!&FvoYtx5252;g2Gq;QAY7Z>Fg(_@7WC&L-wSK%BBs?=>LFRzR}A10JY>U{ChgO zExlG4{TG(antAK&g>y=;r(c3L_-fZwgc1t)`oMDCM%Y_cvj0Zfz1mhQ9F2%BZTANKXeC#jB|NJlag%P1rv= zHe0eg5s)=oEb>3?vNK7M-bb5dcuzo{c+{di3BA}>OGbVv(({nTgLwIQ(4JdITD%Ho%~|&%#hEeXhv^tP zkZ}3r{O4lcl}Iwol%JJqctfkuo1Wb=iSeT*_A;}{lEf5@2fcJW!C_{@IBbMEvEBxc}MR80&% z{wX!n*fF3Tn(#s}TaU$G$}|q8sR>pH2~V^_+WZ@HIGqj{MU-qY`o#Zjm~rnwV{Lre zL}PKSj658OC%$V$vegO=z<^h1KyAjMgkhgG`4Djv^Hm?7gP7L7V|dhAz5fuD*roul zqH0j*|3r(qnJk{9#Gb)WFQNi2B4s{BT zfs8wj>3BN!wpJgHB&&~C>hT@#7)5@vwh4Pn%%t}}Hk!R|^c5ewO!;w3V+aQHcZNmP zH;F*J^0aXAbbysC%}GF8dRVImx5bORMP6mxeFi{U;2acQHWD)S=4PqVjWw z<-J#94z;n1jIGj`Lv5_}b6{&U=1|6(>0mz*pxnP2mJB^@A1|x5;%eKt6PWjIEpw=i zMb86Uq%numhzn@o0xfo^ZF2eox~KI^tU}-^E49)}8{G3>$Zw&RIn>6&U!aaXgKfK| zT4yPp{Q_mJ&`F2dChZqdR<~sasQPcnI1DWw35TjKC;ykw3jZ0qJA*fCrJEUS_HNWU z&jaOWqg*}8M|EEzI~MU|?4=uNyWz^&8FIxg0kN;Vv&V&||Dzubv*vFa@+z0>8;9I& z0&|91S9F!#^aNwhP-|=rEfOw0Ib2eq8G8+4-Rr2 z#nDq_d!l?V7=ZV3-pHvjlj|bk*RZUJO0!(Jdga=xS8CNOm1=4>`ePzQyem0W9VqdR zY!u;b)-86Z9`Sr3;w?j5`(56hTEn5X#`mOL0S;9wiyFteViYda_1~?PcH6ZG=fki`%N$B)^HJEPJ!c=akAscVjoP-^&aZkr zFsB1Gw$sM^6E5A6hbCZRI(?^Y$hN5~fXz2`VaY@kW@&@RK>4xgWbx;PK0emk;b(IO2kVwaLyu7FkIm<=t~&|>9vM6N^)S89<%`Tj|nQ`rih z8)wL#o1!Yiqkz2Z027UyxAH|!Dd=4r zTBxCg?50!0RVain1YC$i+25s#t5Jr!Z+L+5eM3<;t1p4oQf=i>)u4lb)O~_34m16< z{2C42fw0nCb-ZjT*Wx7l}n$`bls%3U5Xl5#ym5g)-&U2du9Z? zL}omBttM&4^C`~qGZI(9ObZj`kPzrK!*T$7hXll7>A9dy+7i7 z(GouU2bh>tdjjNlo0fOCR&yvFa+|o_B@8z;{v2+0T{;XCgJD=Q5L~$3l}V9DOb_*N zvUlYDv~Q4U)kmRLD{kU|Veu~<)aC>3X^+#8L65yV_EkJ8Cpp9E9<@?y|%K&wO zp=1*VDsLbL%F2YiXRV-O4^m}WNclShbRGZjmfi1}tqxg(J6DI{gIT2N>;QVm0p3cVSiiacm}ip)U$P%u5K zk>5dZGK32o55OCE6}4Npd>AmE_}pTi_=?(C-f&>NyjaG|OHmt30^^IV4KCB*GFt7& zNT{F%D=*jb<+f4r2yQ_F4Lbu)CUy%dUysT+j)c6X9sym;M6z-elBe%M%~J#5dbVJt z)?IY@se_ZXwE${HW8^L%qre!5PK|=-1asjqbfY7YNo*{VHFW?&`QSXSK=~YVK~~;B z4&0doIL)~)-n6SXe>^7FkCA4XLv7460Tr&n#WXqHPe(WrwFLEyH~q#Vw0VkIN&w#{#&>$-I03twC@} z=9UzKJGv2E?&aV@VJNp>Ku>gXvhg+3O^GpPE=8xHL|nipdXw;~*EsvQd*RPDbkhSf${4a-du`6I{tBkez4lR2Z_BYrzGX zidShKALHt(IqHLMtTfS(!Q)AijiT z+5_Cd$<`_~vf|h1*P5G=3>Bg>fm^`Eg5XXtcVaTQSS7gVJSaz|phrTtB8iY2Rta;F zd035+z5w>$hGdTgVE*k`A70deJrAb*c;#8Qk33a?I2geYQ+_h&Koxcagbi$Gg-<|! zJj!JK9We1B$tFzs@hPa_PC)!|g(0T=3{p@xAQ}FPogp88{0vmkj(Mo)kws`)`FtoL z9*IvE5CsL6ZOwTdr$S?YRp{YbdP4i^1jp1X+tEFz*D@4u)E9!1z}$Mb-!>k$)LP z9P*ZKGgbDyl1s-~Qc{K->h3mYi7AD_%jwwN=4>wq7`Pjl^3z|nwP(3mPFwL$&VMUl z{DRIdH=p6yU4ZtjKt`Pd!ByP@ZtJ7q-1maxuo|^C@OncMkxP3#lIJ=3 zwG-1)gJg6CtRkzyB|gL1Ts#@8F7tjQ;W6R-V=nkGxY{+Wf?E+4--E1zYmw}^(uEy! zGm@t`>7NO`h6fnnt)SvTa1EPq{H;UxFF_?rwnFtFQgn*5T)rN2YbhGXqv=q)k$De6 z>-2AtO_I4_5zK>E!hGunG_dCjEZmKdbG(mgeu$ntgQWD=BVsxcT8*^;Yc`;I4gHa< zd>F~%@hCHO6FBz-xF_LZ*sVJ_8Sw+Cd4w$xKeqk7KorURiO@^j@5-eUNU9hqSM@$! z<@@Za#x_HheL=d&CunF3lBYe$@*HzwCAj^Mg6mELH-9Ut*%1$rXB!v)aT)_K#6gCv*M}kWWVl%F%C|jRW3CtKdE2?Jrlkvf`nq&6++G5m1U| zx>Eb_=cB^-A!!b9$>an~1Hw${-f1>s_q0EbO@Rh$O`+}eW;1_JQ=gH>Lc|yKvH0}i zi&v3}=sUhUsqbl%waH}mb(_8aiX^W9ru_VzvYx|A=pE%$#!`MqKYh+@8}K4nt}h(s z_~X0H_XlvT(%CZ}k5^Gz{SvG@4&uvnsx z@w;~a$;1LT`VC*K@g;;mi}IM4;8m1A6;kT=Fde3AkwX>K0Z0WSSet_piYln41rS0S zX)NN9hM>7$nK=}A1@*wLB;@H2c=5qyI02EjSX(=k9{N7_>riz5zYF`e6nYi5*uFC9 z)TH513gYcOOlMr|>_M^XIziNR*? zKCs-^O!@g9Ep3DN=U`dPl%EqSDk$3dR zqo(+@qHHa3b#w)6xqm9?z=x=JaFG#+ukSXG_V+ZP z=m8b8$`*!izG-3Q^>en5DC4mW7|+m%&+zMl+^Z(WFMMkLi!q>1*TF~`NI(0`+(n_8 zhRETXOT7HtgDP?@GgCIjANd2XtJ`#=2~7QPfkRqloC{Mb6{0!g zeJnq215xaMZC4 zQ+{}9v9d@ROn3JcyV!e*2l|QgM*UPQ60YGRcont3QKShAr#F0;_c5bSrHMxMA&nLI zLz<$j7~kJtWQvStWX|O=<>#nL?+z3%kS7brAlJJB0Ao+l=0T#Fe}Lc}g5*rRy)>Vu zdBom~F2p7|E2jMXun&FW5ieXKprxW@tzL8~|1L#2Iw2Uaqr-Ge{MHO{i=iCKc&AUa zxEx1wPc~YINvm%1JZZT-Ovg}Zj@bJTpZxgx9~Zd--y@troNmyIDy9{$z6>B)^;jML z#lla=2cv}G2buhFp6Z66j^`gkWV9rY)h-dZ+dfn@|4&b*Y8Z@g2)N0=-%O2P942Z^ z>RIf{RDl+2q_DiRQ3n@l?NAOJG*ijVh&P-c1@rbB!L>Q?+6|1N&To`U%3~ zStLE{;2lvPDN+74%T0~3hl^iq*%mc!Lrn} z7Oi)X{#GoS(>ckDO;KtZhp)&%vk(1rns|yDr(qSadR*Hareo6OqxDx|5Lw2Cz4WkM zPVj1!(>lct+0OvZ13k-jTDq@BeesKrKJ3iSppUK*!>OS}=wG1ly5R$g4NBzPem*L{ zhTDg5JnJ*Ww1hU7h@2lx7x<}3cr7*o*8jb(U>ePxA)4#w8N$nTV=>b-=(ywvoIrUY z5%Xps>4umoZ(14jMo2V!hiEZV77vN9EahL8eH~ajJre_=u6KK`1$Pu*4=7xQ&KRK! zV#?15I$MVA!n4G_sEpL&kt$5vK8tgiiRn;%9S+kGF z&eHHKJI+>D4wD&L=1?0exgOXwjXBiDdKkM#V-BV5H=qlqYOzC=iIGE1r|{)^*FTAy zyw_?KhuXQiE0Alc#vE#63C6~0%%QYs4(4gcaP&j|jp&CSUjALob>9k^brZO%O32E> z;O5^4?mTmzRp46Yf`cc4YsAeg+XGqVE#TZ$STIMK!-WT1LnTi+9k&VI3Nin1P}Y>; z`oJmYa@cSiQZ1)oTyZ-%Ty+BVRjg11(Lv@ALW0{Lf!n|Q4kW8@29S3rICzSjRO3iq;Ub{h=bvj+KoN8@>@vamk8J%7J}m+j!*}4 z$#->xb%O4@33h+hL;&s&poG98HmybpCzzXmGi0&5z#*=L$k$?Uh<6F9twA~Gkd(Ef z;jArzyn8jQ<}U?T_dE*pECW~e1S)ZaxyYYUJ5Lk*^!0bcsy7B%upC%&E%NSWPFiwN^r3TpqgmdDmQ_yf1VndTGY zE4=)CrNS-6Pe2nPF)U=}5K|M_1h5k{K8gBd>T`oBpBtG}`V>0oJzdRrK=GII9(~SY zPVz;um%gWJuRaJSVmJ#EwK&uGbjsD)<~EpM_Xehu$dF<$MQ+7O&9aX)#&jIL&X|7>mizi0s83fjxPqPFtbO3R znd^KIqp_nNT-~p*Y|9B8f(zJsnA`s`^jaIhg};R{U$P5a{_U{HeGXjYDd=@FSH1?a z=x%VHs7qjD#+VlE!TL(RXP>zfQ6F?_%0zpX?s*=uR?p`~0p&k0)*3M~s>DqC@Od$Z zsz)2R;TL%*{2kbL2Qfolz^oE`kqW&j>YI>g=LG*~fTuR!(-oD*?|oF=$a?sdD~qnu z&{YcZHvz&0TtP(|DxyP87!tmwvxP&IMcoT%QPP6<#@KPRK~a01lr#gZnSn0oVJ^8C zU9fK-IR7sZ*Q#5BdRD!NWbsk}?tcb{KqtO_fs@@5LHd^&*9i+E;$V{ z>$~9a{Yg;xEgW@aFT<*J1&(eo-hbCMaj0FRmhZu)I|n~3t+^(bA}ufp{}ku>D_~0A z#c|F|5188TgGpAw&wmvRM|e*$6V1Sh{xf_8Yej;;v{f8HhWPz-p#C*T634I;fU!fq z%iCCK7B+%|sL@efBZt~GN&=&!ALIA4=)V*nt$v*^e_n(Gzk?XajtmbK{{YtSYHNoo z>-d=;@NMbuJn+)?OM2Rr`UW!Tb)b9cVSD9t0Q;ZL@(=_aA^S&%*!!mK^QxW8@pKfwhsr~Pd=z>M75g(F-l-f)2P8J4bHFIMzz_r3 z?lW!wnL+hG5-()@QK!GAbi;>i&%D z)2B}eE``Hz89V_lcRW5Aaa}Ueb!d|7vZ(8t3h87xRVlstp7UeUA1_@VhpXU(HUmkx%MiuH1wx5&vuD(>VV zRnsw9Xh~UUYR_W^p?-qEGw7SgOuto>eC13uWgSluNUXJA}fsUq3_9ObtEaFkEE{iTm^`%725{iTn@@<*Zkq+GXuqHqOVgZgXX zOR;~BGNUC|^~-Fc-5(o@T~5V0(^*H^KPW z6dnQ(h3l|=2j{x`>wsK$f2H%?@i+|i9iA_@uc2yHu2Om3|5LD`q3U$Gd~I;jao+Z% zOH@ct_S%ziz{^!heTN<^`p7pF(Rd3lS0&-3-cq`;U5|iA!dt=bh~vT5 zw~;uWte-=^HI~0zsb1aZlXOWWrLGX3*3#1C6XU(4rKSBaxxKMi@^JVF_+#0hX8BLx zHSnkKXYl9nBjWh9?b}pb->jp^uSR~596zS~68K>FNNnFx@X>G@%TI+h`~|k}OZY4J zYxo=ZTlhQpd-w`AT zrnoB_y%cH!4l!pNLY``@#edwv)e=4iTdsJYkPPHct?0A_(xoi z-j(y0SY7!G@O!Q!FBN$Ex1_DHes6JqRgz5k_JQ|>kC*egWJ*u<=0nOXucwIX@wCqN zMSH{T=7z7AGIu@Z6RK|tT_yT2R31!Ji1~YHR()HkDK}8f=qhhqi9DQ1y6%^3`IxBB zjPLS2MEU8n8mIeB`M%1GD)X`4K-`~%jQeHo-@0zGtxe5q?^i>!W+uzT{KrcWd zxEij3YvDS0GCT#|8{P-r7oG}hc)2(}Z2#_uydItgPlp@eM%Ww~Yo8C<_05D&Kzn8( zpAGL1&w-oZxo|Vw0=L5R;M>IgjoqHx^TqLJJW(Eh#{0|boAE#_-+}Sk3D1Y0ED+aA zQ{PkY9E|5CcrLsbJRT0h&2S6c3jeF;7b`HnR>CJbj>Pv9*OO3rBz_X|dguHYiBE&4 z!wqmFe6qMdw(C0u>zjf0oGQyt3dLs1`ixJL%SR{0XUW|77&)G!lk_ffe;FSmuE!zc zqv7M=W8r1+@i6CmugK$}qEtT&A1~*tCjUKGjDKVEu&(Q3Xs(wb;~Y2_?gQ^4uK&}U zJG2k>!vVMuZkF2{tMJd3`!7~evA^6O#&h81V*l9r?@x07#43~j?D_Ef^89Az$Jd(q zM=v$lPES;*ZTi^Lz44e1O;+(HZ+omOIG^5KY@eN9e=WDq_#61|oqw0e{h?El5d631 z+k?gSmo`ps?l1PYHRs#=iSxCcZ`Z@qV9v+0cJEKJ{gLgD%*n?5WA9i0)5b$j+y7nv z`@U&d&sWN}e|N_7fe%ccYwmFE$L2SR^LJ?^8QKNqKQ!g~DDy2>cX^*U-)UVMnIq=I zcKPda%<8*8rvBFJ;Tzx^;hW%_;akM>A6x$g;`xvDt!{hbw_*9);XB|v;k&TD3$ebt zvA$LCJ@CEoeenHQ{{!%Y@I&y!XzxX6@1bIU+x_pMftCrabx zYOa`1SfAQklhWcXaq>2NTr z=85{PKM?bYaD7|r%i?*L^$nu_a4-?S5x!o`KTP@f4X#@^6!V*KWh%UpTwilX6(n5e z(-%AC{c65b-mflk@_<_4(x_`%?#p$(QJ(8RQQkcL>*^fSV!M1U+zY-&w6Dyk0tboh zF;+{Y&BOAW#Pfj}^-b+Ji}O=iFq-Tw&NpSjWGWBt1?R&B@U@Psqu0UL!#7ArgUK7= zo8X(_Ti{#a+u+;bJK#IvyWqRwRq#FVz3_d1!(3n1-t+M?Gd}*+{gFAbWdF(bK(+_| zU-W={AE7K3jov8c`(-UnO$7zw{8X!JmWuoNGUG$wL*Z}5`?+Q2`R*<~HyfsRt-nM5 zrFehW=HDa#3i){P{kJV|z6{UI;Ox$`4k9l`UMlWi%5?jpFg#lJhsn#37a^a3ycl^o z@-fIG$j2g|hrfGBs| z(tN)+-%}Ifk=O(9gJM2m^M~MVMERM?S+h42`+KH&pWO_Gwd29MNxbhfQ%|3@xl_J% zuKBWBly9B81@hj=w?w`U@)1s6Q{TtQYwEW~ZobSC>#wQb#?7YdhTHAq;Os2Z{=b^t+~L0yzRPvt z-S8^UX|w#;dpz6v#%?ao9})BXatnA%cmzBW-U{9t-Ui+l-VWX#-T~eb-U)t5?w`0% z9V_>T@ykx`SI0TIU%lexDv}7rmU(%`uOdGl`D^lcNmS|O;(QS?ejWJ<$XCEC;S=GL z;FIA~;8Wo@ob9R7r#ahGrB8>?fX{@_g3pG}fzO4{gWp7d-DQ4{)^mxCw1?;3?YOM- zEpL0$5%WCue6PNY-*$4py1>c(>SuXAONA2`dbx_!#G+^Bd)EW&Dsg?VzQ`?~Xmj&K zJAARXKhkFTx=Y;U>-vl9gUtuP+lcl~3`bJi!cU9xHh%`*4&`@(A4B==k?#OMj`GjK zPrwhzHsd`GhFJN5qH2e(wtm_HS z!Oz1lxK6wXzXZSRdh#pqtMF^$croqQufqptj+CzZBb&eBF0bE&--6$U-+|v1$EU6T zGIM;73U}Gv&8d2>(`L~ zAo|nhaqQn8(Vm~MKYoUPfq#X6gMUYVUY+UBu3c)|^9T0tpJ>ltuz7g3_I+`?d=8uo z=fS;lz4@?RJ|8ZCd&BF%eR9S4j7%u+E7xb-5AF{SfbSRc?P#oI@*U!OQV|U45$67( z`|p3G=hn||-dBv5ieO@riMvitX8ctI>-2}>d{I#r*Oz+pcV+z%^2?B4E}e?&E8r{P ztKhpt`zsqe^xoq7QyHraPZjOAK3n{LpfZ-Im@3*=nF{HVa(Ux@knaoMD(g4p9}xXx z>w6H6z*mdyvE^5L_hTv+ifb+EkCm3{hrH#}v9dDtgZTcVWyXy5F=GB?{je-wsnmFH zyr*OFaOGCw`EabYvH4EXpVlk9<&`bJ623;XKW6sdweWTD_3#bwAo2Vs*4dH#*z1pU ztVZb@z5Bt8KM}b(_vo8MZoNk4KBaG#x$&n??o+ooxleuOR z;pBztb|)`XUpo0{b%&FWR$n=Jk-F2#i`3UnUaanN@?!OklaEn%JNX#3O7wr+r%Rs~ z(G2X3<;cs0>?s4mjeCOt|d)++tJ@WgI|KR5F``tYLBk~83|0K8Hui`&D_NiYS z`_-?G1L`-&h3a?5qtzddi`1X8J$_yKm+Odmn7;P>8Tad04xH;co(K1m`!As4`O<|d zzMtHG!9=7$=Al^SgYdRq`&E2aOY^$o`_tCh&3Yib9y|!%UOZooS5)gA#qXD`*E83R z{%XAWS1Id<S7{_gp`fOT)#|FPQe3UPgjw=8H}2l+YT`W!dqOXTsB2#5X<*XOu#2>GAL|APC- z@t>?!Pr~=g?dfcvWxtu|nL@^mTg3fOYiGywR=7TM{p$KY!{&Xx`c=HP!uJ&1&$a() zxWDVbGw=Y{h0ns%#qSx-`gH@`2+x3L!n4Htobd&7b%&S_*!tI%`_uS2cz^MIpDnM= ztGT(|_cPXWknd;meDeg!er!Hj?r-BJl%Fedt>d-L$m>mgs{2n`+WH2feb2+|!7so| zu>CD!{kHyA*u0s$_U|!NbvAb1DbAnPw~FyvRUNM0PMn_;=KI<~-u_J|O2+zLgx44C z(>f7;Njedp@UpO>e#Ki}S-%Qz;5nTLSNdLq2TMnM>UDTSY4g7L8}LSs{pwBlEzc^E zOocXBjvR>Ng^ ze@XR+@Mexfv5(-*9Vf!8;Vs~g;da?Re2o?TeOr_cN+p&kW5I&v%UD7mD_^o8PxoiRDv%pD*FMBI!Au@>e8No>eN~^Nkk$ zp9+L3iX2CL#jgEh9LJMm9VdLdy7pJg^%eSjHPWMfzFO%bpRZ23*yo!pJ=W(NC+j!Q zTfT*NlQz%Szk_|^cu6(RZS}(e_&M==j8s^MHWK%j#-+Q<`pplXzlZm5>{ma)dpZuN zy`;;1>PL9IW54#`(?(nvHwYNKbwkFgx3}CGZ^bB zvVV+AWc^X|{S6#)Y`)KdOQkDfrN6<`}tz`w})5|NO3 zlcwkWgLFq*XX7(o|D;oi>hLCVJS25=pzN>Oq~1iFA5+FViu>)fZweJ8sPoZ`CZRM%rq^PEoU!qDlSO?{&SXSgmp)Ag9M92bo_ z+q0>!D0GfzQ(v*~T*qUI&T~B0cfMz{{MgV1p3U-={tMxY;EUl)TnC=@&d2Fa^L*_& zY4iN)d1>?fsY9IatLxi38qD$4^N7;A6Zs2bebvE4YQD^k8#Bje*ATS%j7)vzS7qkY zY3f@b%Ns9*XPWYP<}WCSi0C7FF_3baN zr`C(b`C9Ah;DN%nzJuT;@Jn8Qs!sERkeA_C;8)?-;Md`c<@UBWww+?OuRsmy>L24v zM0-s8lSjhS#rst?CDq9WxDhT9=M!5#1ed~LxD1{E*TQx1WVjrTz!TvKV*XZR{=m{< z-us`brm?O4H(9WSin(|ongW`Fo^R=B!^j_jAB7)-ABQ(W{ZAl& z65bf)pF+L~@~4q+iu@VmLy$j<{5iN#_IIRGkA{ojYv60)>)=!1Q{mI#MtBB16W&Q& z4{KVQ^ia9|v8aAtZm;n$@%^XyIg1{K^25dT(AKvZyg9rDyd^vWUM+r)Y3o1CoH+(7 zbCok6>yaqG6}&b4v8>N*&uQj-)Z6?*G*h4P8{+*=TmLq4d6TEb`(`#ju;*ga-JYe$ zmmuF3_05pyFH`?^$Y&y-1#d6QoA&Gg?+AZV;C=sU+y5rEcPEq|1@8>+0{dV;9Dobq z(QuKp>7O-d|66GPC}(`P>0)QRCiDx=_)h5I&iGE~F(^M)uD_*C?+TBDcY}9__kcf@ zhb0rh~FRv-}~> zcy7~+o$=hJ4@G_u@)Fb+aK>*!hmenw=PR@Ro#9eh-t<=(E`vYE_P&Shoq+P?a0H$R zPlBUx1zZWo;JCEe{x8t}_tE~l#eAtIR-IY}S2^|7=>(jFQ*bq01J}ZJ@HI|*>hxsi z_^Q)W#QnbcIir42+}~OE70+X=U&>V*WeyJWk2e29zdYA_7r5T1z%oKI_2CWR!SIIgRJ8Y1v{xg44f%e^Uq}81{3iSs z{5D*V`rkqRE<6q8-$Onf`TNKlkbi)@5&4J6KZ0k7@@9AI)grgvOzaQqnJ8Z_=kq3C zM?5dE<#%?jR}1y0@_g5_P|rerv*F{!{iUsMe|h|w<>$an@LaeVZh>3jd2kzi503vr zx&5YnpJ97nmE}$TC;IO%*t{HPu5eu+yZztG^&97i`(>Nohw|<6dTG{oznKq?Qd2YU zch(rcf&T5l`D(sg-qinqGoP%}3!L-!Lj9m@kE#Dn)W1;HXYz+keF0Uowmpwv`9*R( znDUQe`yPWIho69-g!{_&nfedF`WC|n!Uw@mq5iAI?=@_HFF}7jjqUwX)@SCk&aQF!LNcdRUzh-+rkh$?u@X_!w@Uif-Xzz!}kAs&9 zYjc773jO_&$nEj8o%nv#?!Qj#&$qDtU8@UQ5B7jZsWj^p73*oW)+ z3gj!{6XBEKli^e3@n?>=Q{mI#)8RAVGvTw~v*B~#bK&#g^U;3umk^xmwIBTz!S(%X zdA&8;`z`9bK(5c6k1m8Sf-iQlu?-%#K)*FlaU+X{e-Q{l-_rEq@Bkq5#Hy8K6)_-C7o3MP2xWBgL zZ$_Sn{1)W-$ZthH7u(;A?OzAW-&SD0?i2lYdx07xeFuCed>4E-yb8Vtz85y%>^tkf z5BdG@1Mq|JL-51!Dd?~B(O>4xnYGVL?EV^s@irUdryb+rW{kI6a^3#EE!W-N+u=Ll z3oyPe%Xi2BA!zU6_Ul}+e~&=_9tj@>9}Tx*dpq*n`aAR7?U@fRfG@)KT%PaNcSXKi z-<9xH@behoFW~st82e)gj^|C055@i(hW#-d-VELx-U8kd?nL_^LHoZ!{vC3b&)Pjc zviVegE!%e*e!rH8&rdXW#$x z{ys)^_Wi$P_Wi%L?{_QvK4SL$KkxinW8NpszW*os!@Qri+W9{8AOHT}kIwVcrvLUn d;NLr+$S$Alfou9Vt84%O delta 2755 zcmchZTWlLe6ozMZy>`+h&Du#*aw*=rY13A1vW=Ryh$dOvF-@8@abr79A7JfVn%;!n zG*uINiJOK?nl@Q{B7sCzSq(fw4TIDo1h^nkDsG{Oi?|32A;DYo07XbVFzYCIye}Xj zvC^*n?Kv~&KQm{JHkRUI2`>35#yl)w%~XO=Aq;R^Ol#;LGRYNUNb%dZVw8{c%h}>q zS0QB10DY*cv!x87hGljR^s5|LP3!Rr*lC)Qs^~0#+vr%Efk6^v`!0lvmYrPT5p|jg z;BxvQBJ6kUW`gulpE`tuW1y8LNUBKVtgi@+?5-|f8jg#0Zc2c-cux9P zn(~o5tBKD?_3)f^O%X;bGTPkB+8jo0swunTOIit6Qp?$fnJv}dAHnc$(c2_lCSq|H z&TfUfqstdBSFsGCas?7AqaamyK`K@tT_JHFBe+&v3tF*+4}-O`8PdfP(JB}Cd99L% zko`VxBthv82HBAYWt}1>>259;fG0d0h2*-JSkA1Dr_=8tv1*yOn5bU?&GSahf%@^x zpr!itjE?vwg>3EV9Lw1C5eVu0rvR>vS3%yCCeh6aOdnoM#4U?Fh?~7}IYd%&6pO`- zm?7t>Fv#^9S*VvVz6sXt>#Hg<^RqdRQr) zXEw8~r>o;d$}q6I17eLSNH%KhO_GgsTva)GDHE`La7?|DlSI1*5=zoBgR>i=JIyjq z?Vbbb4FRq>Yq^^O+@(Kn2&CTCgt?0X47+Dm-(m{C!_%Tp(-a)&1E^`)L_#fQte+rH zT_J5B^wJ$J(b+uJ1<;?y+yw-~gFj&l1P^Wk?O+I`AqApCibFJK6ZZ#ws@1?Y zGjSZ6!?*x$9Da-TyWQl}k$eo%W72quIoqCkTDt;#=slR5RW#&Vl=_+ zFvE|>&p~Whb~tmqx>c8f-Da3L(FExe2}q12@H^lHU=Dz4XXa>hg*O9^1~>AUpg%Hd`LZ zoV1?EsQP~HATs*|#*jE20`ZKOTc9(X=^Xzo*GIj?#Mc8|W>!w6E3%R40(y*U<`Y5Z zbxhOK$KPdIkZ%7xHy(7I-3Fnv(to*0=xl-`n*LB?5;nEbEa^1QXAELZVX&2hk~wB&WTmzW}-AK6(HE diff --git a/SY8837_Demo.si4project/SY8837_Demo.sip_xsd b/SY8837_Demo.si4project/SY8837_Demo.sip_xsd index d186954cf3e66fa2ddc496dcf955776b5bae9bc7..aaa1c3d59618f234e6ae58b3823d8007e93644d1 100644 GIT binary patch delta 262 zcmdnMdV_UB57Qo|i4*Is85kJ2pjZP)e_>=`a1egL)xng>4&*X8F*0y~Xb`aC05Kq79RmX!jP2&{;{#%YO)vmzIsi1` zEl9)x$aw+ew1GGQK#l;Df>8sAlK?a>0mOg+DQ1LmA>qOCAkjt;F#)J=`aL`uZ+A&*^3&>?~Vr1X|(I8;O$q7=* zuna^nlyOe>U{v7f1hEBxoB~D#gGnHcLK!E60*CE7x+bn#ozyu3~CczL5Kjs%X~i3(}(J-T$6qAzV;myK+MWp2-ai zrd5}6L3Y}rG+hWYEXPK2;FCt`|HqF&nK$P!)`Sa`r~$_@@H@drfCqpFDQ_NQyRKvG z*UgNLU7}aje_mY0*c2SUyoRy=Am@d(jQw#IV+T4In}7M~dgG-|of;WAbq2j_$vJy@ z-FSja`BF60$2&qkANTZh^ROIYpV%5(a(le-v+l;tTU^UxOPAoVsqv;Q`VWqmx|UTH zY3Xy-awpTVfMWs20*(b73pf_IC@t{kDW|(NpORP;+zhrINC6svS8Sat-Wn@|CSrI${`Umn0Z42^efV(i}A z8EdzcxseVCJl@UNfA22In1(z;79g1qf0?m=q5Xr8F?L^(v0otF5=0@$dM@L5D)jpu zXRMQy22q`6;M!B@SDrDyinVNishs3bLq6$3x=}sR4Wt}$EZ|tcv4CR%#{w6R1t`QZ z9YB~a6O|WRFQ!HHwotX)NGr ziS-oKLNV6vkGb=CZ(NJV0y!m~jz!c=J{Ixy`EFXb(xqjv=6A@kz{O?(3hxtWi@#8G z?#S{{>G+{Tx-X|JdMM%FbXXF_IwL=C5czQ{QQ1onNb7(~-%jVc0x$u?w?C#2QIRp5;qQvW9JxBM2y-rhEAMk@1q zT}KOJ-}?wWp^}Uj5^5nP_(k)S4rX*{5?bKgo^VamTA$+yC*jnX6kV?73D-S3Djj&L z+!G$@8s8Jr4%bTLtlq&7c|zLtTB*_#-oJEII`VG0CrmCw-ZyLUgtXtDiPOw}Ve<#% z30G`n?71b0y<6c4H^_|b{|G$c_P7=UF8mi%ti$7^C#?m}?Fm<{mRC5QaMDhYi@f92 zJmHe?sN_Fb?g?AN<9kAi{aT4U;Y8y5dcrFq z{`mEWCF1P4oBu|haQ7m{Zhd3dFnK~>17rI>0#6tpP-1}N3CZpbUGNq-wqCy(F}!DkD8iQsRQsInpRPZxbp zakVZv)Cm!Rh`U{;yoGXBQwuztR@FTBWHsKc7PWXm2z*4_aqZDNw(V?;d0R37Lc!?ZuGQ6*S={f(y=g@*Xli?&Q9(L z1*Z(F#VdQ<-H|3y{fv)C=p_$=@qp++(+O#4Z*(e+h8sWMz?6Rv=`l13vn2w?gR9qIgZ%V^`fX$m-h?5HAy1ljP`VFwkK-xV&rtb&JjFVJ z<3r+U)^{QB5Z<0ygR;Fa>TN&)$2)M6=V7-3>U|scnGvLyBYzv}kAdF2q zx^C#Z2>c7+e?gt~DE~dui_!j4)VTq9^^o0(^m@qp3F>Zu9w(7UFYgkqsrBuTOgxo! zDc(|RwxO2h9a$xY>5K45&L& zS=E)ar4qF2%N)cdElNz@~X<1BvkfBv32vI-c)>*o3u5LNsu{vPp6D| zY;W{QX!(U|-{Se*nHb%(tT23eJ6 zPf13Sd?-;%t@h~1rnG3hP@ISw=G`+nArGbGvO7|V30%>}^=NN?kwuMhO?H&b$-K4L zQ(QiIETie-A8D{v~eXT zZC%NvLkcLUiIppxSGy)G1^@CeGyy64{Y2bVlD0;OdUWOpC9!li3CnDqhCY2lT7VbZ z%>pF)R^UZ<tB}(-(dJ2LyW6g6yiE>s_rO3wFU1Z_r^~}Z z9vsY=qN#Eyo5rG?hqbt-(tCzPGt59i6gM>d8H7$(k&1E@TW%iqhq@y(M1Fl=k2~m> zgY7qpjB9U`J0fmQ`qBQ~L(v7=%tt!A%rhk1yW=}?+T374QT1;p(RenUA<`S>UG9!< z9_i?myG>ooieMl7^@L9I$_oOryPM2sDviy26Q{SAc|gr-Nn^@RPw;3wJ*dJ+iVPN@SyiZDd?rQTH0qrcb5+j6<0#`S=bS$c*l zbUL$Rem9~+rGSe$XK3n0hV!a9PQ928J^3@$(!)uWfvOvX4JyJ?mVnhbH7tRvMMB0| zgHz`8s|-?^tyPHl2aJxQ`jq11XuOW2u2ZT$8aLbn#AC$UrTn9XZ%69?R z0k7hA{3Rd&)C14sw);7t8F&}B)+c}jKoQKBaE3jAw{$AjD)`5;Sv3}5_7?c$M9W-p zo9N5Lwh5brln*r~V0%ArteotdNUWSnYaZKr7;8X#dwF9IWZlc#3*nKZis*t{4A_JM zWvxO;&DVh?nqeVv;KSKb8JBiVp;5AH`MzD*DooOU-g^(r|EG=fpJ}eJ8ZRhG oJd_wrYeicIBTbEHj{P{9v3pc(MMz19aU!Jlf;uFyBB-PM53T&|?EnA( literal 96785 zcmeHw3wRXAm2L|hOKz|k3%=h|BBPLG1Ig}QZ5}qcS?_AINtOifMtR%>6DO8$Uc`3R_y4P_ zMm3`zF$^Nt1AV^lpQ^4?k5i|5`kbn+?jE0K7&V4*-X(zHkkEi{SzSkKL;a4sTidqP z6?zI67T_n)5iMF+;Hj&=t+=>oNuVO!+^Wa(+Zz`~+gk4ohdT7+tkh`Q{omN$R^1k= zyQ{U62sF1gY;OwZhqAKMn$XuEezSJ0qEF0HvAuUS z;Lx*R>FweN$8+1FC?_-@*@w?Ob4k z8<0lmZ8hV#6(GTN6U1=$hYaKOTMXmFdko{zcEflc@n!3V`HboLb0dcFp8?3VemGA7 zqL)FY)+l_!uwh(yo5iR67a+Y9{8a$+A;}>}1C9n94LBNbG;r2wpaDH1u*4}SHuZp6 z`+RvW*CZ|kDyMauJ7-y84B^0e-R65`_@GRG2w|+TB=>zXd{~B$AdJ4X+k8}pyJYx& z8Gb;9k0Eq7l;l2+aMy%x^KuzpfiQA=N$yoLyc!|fcgt`lLgt?(!)s(XTZY%l@SQT8 zE5qw$I8TQ2Ww=0w`7*pgh8`If$gog`MKW9{!$k<$kHri(K4~tIVX;hKD#K+6sh8yl zJ!ZGLLWVaY9N1ElTOz}oWayRrav4_0&?m!{2#qVd%~c3lz7iqjSS`bwWw=K2s}LT^ z>o(USr2hQ!_!b#%kYTk9Yh<_)A?w{F!&_zeE`+S-c7&{VvkU_=49c(`A?3S6h9Ma? zAf&#+GTbV|M)EPNd8A+uG|^ zRo0b8qZRcX^>tOPq57t}ns9Tpu4ZLz;nI~0^E;X`$92fjz}cn&m=S}R0$iawH|>B~ zdB@EY)crKxfII9d$yIEI05ZrvO6|>rWB#SNvkrq8xo|}(jBA$1~0W&zzE%JVfji4eo z(%g^rh%`z`HBePl3DrgQP-Rq=Qdo(12S9$Ob6V+TmW~%jpaZEuol<^1b_(e9^f9}A>eV~Nq|ZfT|`}v>285kMN-ZPN@q-TLX;1KW);Jd*0f&T)23A_rN0CI30 zF@Y(-6~MJXKClGv0;_=yz`KD4;4YvU*a_?cJ`8*u_zds`;48pC0WSapz>k2R0lx-* z5BvoD0-px<0$&8a27D9v7vKlL ze*?UUGX(q@7>9A4089n01g-;a0E&T9;AWs2r~}?^=c^;n+wdad42m--&_KpYxC130 z!o`NGbJrpMi%Es8S7L=HiVO0xw>ujQ z_naWB&+c=p)91vcOliZy|3z7bH>o_glT)v zAFXM&>K{x^oOp*wC-Rh!!@EX0={(*+(uq7(FYhYpL^(O9XGn@|ebzj&W3QOz&&F{B z;E6nI_RLy4L9LFQ$_faVCMYwZ>%xUPkDah|F%CTDI|f}0{T}*w&C&_x2ywX)6*LdO z7q7TLEQhchN%e0o;-Pn0JeDOf55b*K4U(t&$~?qs;1XG<(l7H6?EmYyqr-GvPeI5( z<6cWoYh=DIqzzrNR;(;dLfTaTmqu0qA`#*F#YG;^;%XjJY;jmD4k;xM3q0bGf{DXI zaY$Lj;lgUAP9~B18lN@0rfm@|+>T2B2IxZC&<<<0$A>)c2VMlGfLDqTfwAIL?n13@ z3Dq?M4dE?~E#dr#S5~t8R4U=4B$4{2Ch?OW%BT(sGF(TbOv-WNsmjsb6b?u0#BY9R zrL3j&RBPFeyBPJ+Xq^o6L&<{^yz^NzdZ{%yYtRbMrzp~bSEg~EEUHO3ZI&b+E=@Qr zC`ddkstKa0r!df+o1QeUMf?iysvvJz-ZB#|?!8ZaVtnXm&JWy}&zJCzJ+?P2x7W9I z)bS_#pA{0iaemHi4W!}DmM>o7xU=W>S#oalUb(aWssm=%%?A?P*<-&+bZ3=Dl&|7J znI4o;=?sU~APt}ksHdxT43vq1PoIUve4gKSo1H-9|0cGl+KD26e^NUGI37g0atY&k zQNI^p-E?hlx=*$hR42pftPG}pGSHr z@VX7}5YoNC8#cVJBAsg+Z>He!1rWJc<3}U*opt^MxWI9XPBAxE*kwqzC}8d1(5K#zw{7wAOZ9RL?TxT9Vt^6r%h+-0v5d4n>6 zJMVQ;=d^Ow44l*6YZi;mB}b5v=&3wldOmM0n9)t6FU7SxyKPPTkp7PVw<|plP&Xmq z0f5_^o(8zZ=}~}NpST5zTct)gk`!8KVVsI^)lZ}dS*al57V-y9o^>STW=ft)5w0Cm zg!jpaST|y1qRMljitt|}YUL88h`3Z_vWidxg2fGrA~ID)c;bnaX(}?EkyOrm40`Pc zL|0|L$jja4;a9rNo}|fw8Xwo{1EvdO#CjEZkmd!bDMID-BP|FpAEhR`;N+he8qIlU zCkRzb46Q|8SR^#dktN)i0`&JWgU`ArxDKHPE*;w_WQ z#gyX^&WPe4|M8Km)g*{gwcrW}i$DM$7W zup{}X8le3n=#;1_$G|G=O0P(K5W+Y%a>_yXYA(PBYIUNk@wdQyVCE=1KA5SKUhcg% zJWg-uS3Q`-Q}Qck!UK0_@FQN~Owffa2i$Nl_I%eb+%n}}X5&W2qa#YFP7NU~IMwoxDL65N^1+5g4`~#KCb>$3A}3WD zqd4KTs|-Sl2jCcs=co~%Vw4J3WCmQ8XE zXpQlDR^vL>nS!?ryjeE9I+UX<*Vyp5&5OL*HoVQ?jRWsm8y;nu10LTgq7#yh9|DVk zxi-A-BfSu~-iG(@NM8cXv*B@tjCz@G!+TMdTVTWcE_g)%-({i`yT-T!eIvZd=ND1DZ=mS&6DHc6Ekw?f#mMFlV^A$_D z#Z1XlDZ({l%3o{sQum?R3H5LHK%++j-3dN)KQ6pp-! zL&b!*OG>g<`k<}Ofnlv&0Il>vE5--+pF>&+Vt~%W|A%i>nu++HS8o(EnNMJK{l-J% zcNSqLa~w<7A36hzstt|pp-6q()^J@scGkS<9jbKb9MeELGnpc1CUcIR73WTO>1!z{ z-^T4bU>=;aLcAG~nxGHl#(h{_EA(p=@vVM3kyi?^-WzRr4Kj1N4ey}jRoL)ekUXCa z?`M)H-Vi9`3{>BgUloP_RV(lJ(qAI_;Ry$eEKivJl=5WheUK9TB++rEj8m)>o~-UU zGON;V6#mK(q)-}UzFMrh7Gw2wujVB&7DLT@@>v+iiC9u6XJ zk0)`dRQDVcddSKX`9a<**sXw8*H`cV=R{($N4~P%pnK05=-K6HqaP;nG!dVs;nst7%T?6U(Qw7f3 z`m%kP9r@GHK-}V2z*57f(k*^4$CoBNv+I8QMUG#(e}?J*Ahbsmuykh;>Gci zQFq}5Ax9-_FyFd-HR4}vSt@Mw=2?dE$pPO39@yyLx$$zVF}Bfs3>hmO(Wd$xDhzCI zbasRpS=z(3usb@@ zwv$J?#fJAyi)HYO13HOv(lOvy2y|j{spRp?1UfOfP4f7)0-czwWTAc3i996>zgnP^ zC@1UWmke}bGGCo~DZ=_Bp3Zu=oOXsUr zPuc7mppPC>S+~jN36*ycd7~lA3uDh;1H5SS;59c2NmJd?V|#)!i_Ak=LWwa%SL;)j z7<}g~-vSy$+EBOkJaQ^AC~~?t7N17meSo@c{5;~kz0ZedehM51eh0h>Wct3|%(UT@ zqRIh5rx^*Nk`kOk?s45FA3b~M>xIH6KOg7wPk!=L;SKP~89zA2J~`LTwuN^P&bpZx zNarWpHIRl+UgmRr@@yYwNB%T4pggi*8J;fyU}6N(b342xaUDxlr`($ue9u9YQRxi( zkQPIl?)foYwbKP&Us5|=+u-#9Cz=x5Q|z56wjQpC7Yu?yOMKYqHm^kde>@&xiNA*&e|qH5YqZ2K zBHnTaEV0e%SOg+Ck;Sx8SIj7~wKC3bC1w2Z1|W%YWB zU{wK?&d|RQ79Dk^vcv<(A4MJ-LK5>8x8l2kL}N-IRR?#?^5Zzk0(sGR-h-Avd_Za%FbE-we_^Ffz%fa@4S#73 zOl`s*l^}|HS2T-U+raAqqDVVdZ+*p)RyRIv-i!mbe_PtGa@RlA)84o++SYn!IMh+6 zCntQtCs{lLqWGnFGtlyEz>Ty@`FVf@@$|0ZP5(jUeFkddhq`$S?Q4%;FIyU}}wLgY9KWo5Vjg@PW^d^4P>`=CA;N+&YxNLFh*}DbgG`=9OSuOt8I zX+X_kb=SfLE9?G`MAu?Q%ShK^C7Pyv*=FNf%tbm~i>4Gju#9#aUMbQsD>m-2;jKnG z-y3Wm*!{fFS?z)JL!h0x*N1f@eQ`Ze}lkT>>64pm=!h^J3 zb4G4+;m(OOzQrY#i`ECByx&fA(Q2`J(;w+J=iE8$qH*v@bj_%^ae$qR=D~@w>z+gx ztuG(jN`7nOqAjW6`JjNP5k&FmJj=c0ix0jI^h3mnmYoR^`QiGK;{HxrDA><#NpSY2u2gfehG?pJOF?>5L2%a~oojvdvIlq8pi1r!i9hEUKica_Y>G2uoZ)|1%_-xVKAup!Z9NyUxH`!0-op9g_{!JCx-b zNXK9=atwBskFq0vIvP+0yKf$LMgqFQ?ujO@1*rOH=SW@G!bJmgd8$((Tkjh{W zfajHlmL-_a-_~s&!}Q(*qpjDa+8IO{KV;K+29DiQUdpWUb|Gy@=2ZrJ0LMMa2AelG z2vyKUgDpEl!%ReReB}7B!H!$wcqE8im!OL1Tf0r(qgwcv%Y|8f8TSXifA#sn3$Z8T zf@Ovgfmx=QW3@!jJsH+}Sld+SyoMF}&1O2eS@JC{IE%MCp1l8sWeYvdJUW}taYy#l z8c?^Jxm2snauBAkwsej9O06)Lt|YTeyD}N3jNx*dCHh~3LEH4G4eu53SZ0Kq_a%#nzxOA0{H4zejwrj;8CCp;KwAM2KE7Iy%_}g1f4k*y!~r- zLj!!W*L!idISuiLCtoTY%*Sxo=J}FqCd|17n|=|WaU+Lk>>NzB2c#{$wYa#b(|ON^ z(5~~7%^FC@!7Oqd%xoTFNA@%|pd3u^JF)HqH%NDZD&hXvRihjQ5Aw$VJ&zy9F1R+S zTrDs7K|pUO59>bOyKti>g{w6<2Wvb@?F{0$59zFjP%;f6Eh_V>bsq!r9CIbzs7Ws9 zM96|=++EP?Kbgo9pmAzP8XKAZzk@>{KFIDTkDVJJnlA(e?J3v zV4A`Wb%0}qp?8O}Ujyk_;=+~AQcw1ew9|u=X+T+G7mUsTtT7D~iI%kgJ)>LVDDn?n zmuQLINb>+JPYR+gz9}}A+igxo{Db?Z3cK~cu^zMh!7Ikk$5RAfL_Bl`?AG@7a9e#e zS|>xtenI~ZWv>R(v0EOWW4E$*gdNG#)qt{F9@w9toRP6CZI0(8cB=9?nQt%Y*H+RH_x~yt|Wlsx4(PB)DX|Zc} zo3yT^1XC!c!t@6iA#}<8Fs=s=Cq67Vr@h-e2<*YiGHYYYN^)iEnP&H};2<<{ApWN_V7FGcGk9rQ{{-|!ZKEXm)cAH#+?SCmx*sUX&e6{t>dSWi; zTZmVVvEAasF8GX{^+5G-Og&NUy!8ZQ;ZSyIARW6^R_4sNvTIZwY17pJ&4@zWZq3Ba z&d!otrjuxQ{3{ae7I__lYZ$ANZfL6dludJ^z9E3wY0rp0*tDVKufnk*W>TaC3c@IQ z09~LXB@hT0OcE^KDDnq2L&`b_aomN5lQ$rFk#~-KkVS1k>Oyn`1{ zNv<-6;?blkqiAMt`c($e;#PEd&iUQuMTmdC?;XO--?_#xZn*OYbzD}x+h-V$jj@^M zo~AqMI|yf06?%6l`!$e`nJ;zBeD)8t(*s)#D3i=kSyjW07mL6g=~gwibflU8xy<0^ zixo6dbt;P+gNgSinRyqiZE^BfV^f*=E)*VwP`W^!%S&<(L#Tr{CJLq+9YmQvl+ole z25{_0!^r{~NQ=q5$`9$nac8n0l3Z{IncOJMMpVHbr1d5DEQkyffv!p2CSU7*^hSLJyg`R4n0C-D#X zj>6V4er%HSl@#w~cBU`(!{(&E%{7pYU0LGTmACmQI^vCm2GkN`*HyR)cXi^5UUAYA zqiRpB==C7KA5iHGJvfd5v{`z(YA1@txB>9>mBT%_F&M?FVeK;emBRtZHVEkT#c_U_Yz%bukYHo!yAe(gEWMawhxjGetW6dXLKCtL=VB% z!ab;benWo~@oXF~0FvKaobDTn<2Odn`bZF3qV`;MCAmCj_Ah!v_)xFoNzM0d^L}++ z@MzAfh}W&-((%~7dRTw;gyT2~^*TRUtbufVs71xj+&qhi*bzNV4JhBnfbS6nbl)ao zvx}J3Di0tCe`pXEUvJ7q4*==(p-4e6KaWZyx0mG7GBrm}2)p$G>>U2^rMq9a6tB$B zLHx`9v9()VQ;y!wE+CS&Q&(Mh<6~J^mN+Sr&U(PpZ;ls)ucj%R^TMx`?hA}tD}ve8}O^#gi4Jq0DX#{f@ZVtcBc0puS9 z^mYtdQP|?-=Xbi0R-5$v&H&PS?n_)lPw*;4#qkuZ`5J_3evl^qWy{2KS)CX{l>^^e z5qDB(#JMa#8{qPLys}e@1X1#KG#hIy$z|2w@&8^J`7h1ErzkJl_v4AU#b5hQxJfYb zRNz>?NN`(tM;+iy?V;DRflhAZmiQ{p;wNWL-v7eVqQ#DpKO4?i8A6!;bfp?c^=Z%#Ds z7T#6_N+-PN^@$6uH+OMOCfVINSr4hDM}c&AAsk2E-vMs|{7&;lz;wV3%moU8q5v9QpB;yFVH}nzIJ+>J4Li4~qLw z+jq2ggqvmHd~yrgcPN`RkdC8Tu*h*#vw4gi*-x$k-BFEAhlBXTL`T(Fl<2*&M%}3# zoPj68AF!NC^6*%lF$9O#y&&-oY_%|016xXR>F+Gt_8VchR$@`*kG+SA`LW2|*BZv_ zXW)(3$sdahQAmdz4P>bX(y?2fg^u0I(&2T)K8XhSJU79)uv&fazy{U!l_$KKr9bJe z2BxXT(?AK4v`|9cZh&*Dn{0TuA_IBe6g;qu%29Y#qwwyq;oXn+_*uq~4X*;}l%>Ij z*MM|V>nOatM&WhZ@WQB%H$`?N@zfZo^@~3E4s#Cs#W$KbN9A6WAjZY@<_fW2k_%3} zMROCt{U)@-T#=~+xQ;O!NMiwtUFW)%(1B>1DTMgp5}AllWD&_z5iuoZMzO@gh>(?c z%sBpp?hE-Ld+?>i4}tlMunPp(i`^~AF4k_8&RH40o+;Y2`w*BH`pNs80?6nZzJ0~A#Xp@`nP>fq@Bw0kkA(D5VA5H`^aWg zN{!y;TUOW6+EBma?$)+#b%mb7g$4KtbVQ357I^BaZ!0b?S`w%TH@E8X{PxC$(YDq* z!=a9Zzig+Ip$*@3<) zeNB@35_Sifs9>dJyYi}@Oy!z!eXq%9t5iLgAwv8Ga(&Q7uB*V)!E$7f1U)UW<%`PI`Ggo$*ZNI&x31=^i(%uj8nTcoF*A zY@@H);1N3MTB?+{pMj~Sgus#sIIHC&@iz`f^z8Pd8|{W`ZB(?-{cqDR9&g; zqmql)FhW1S^zy166=o_|?T7Z8eC4sKC)GGAx&8|SMDQ9xko59a3Z7$<1DUB@b3Wc{ z4ow}F>ty=+9vUV%?;%Kfc`L;*J}V=c%GL9sUXx!iQuX}}BE(Ld_b%CFpl5Q?4ugT)!-5O`K6Z! zOOP7lO!d`&sMqwE>FeufXq6xp0o03Lp6R4#tsrB4&3L%iNy z#CU1t1p_~2GLosjjEkN#cTE_UE7kR0$@MSddlo!r z@;;rcM$8@U{8c4a7#Rr`P=)mJsvch3NSW%Zcz>_SeJ@rm*0tX5daurVuI~`ELz4lH zqh20|g07HZrg9CP=rsq<8y?40^E4$_Guk7#{6bqqx%Bcl6jUL@Oy%l4wBM|pHZ0f4 z&aZpW9&v#Lo7c6~OaLFVA$Hup}q0_eM-lJ$bxyJnT@z@HnRO3zfe1Lk|R3=%)dcOE0flERgzI zkf9x7J$k)w7rAoLFaF=zcgDH?`398$`ad%KHyM6GhKFQ$hYTN-VT%mAWyotWsYHfi z?Hk8DCrDFd_&?U6*yG9QujKK6%CKLCHEaDBZY{mLep@(D-MYOk6ux+k@3uhAt<$Wa zI^Zu|y&+Iu(_b$74;qUfvRvzM`Xg*z^3}9?cqRaL&ywN_{uh}3Y1oq zPc5%p6)0c7uDYglT}_~Ta`bFto8-g*912B%GYo5iKGdY^-WEIYSebewh0xD z?a`+C9UE8YM<(K9dW;9QH|B??Rrx9cWo_a5j>eX)fvU!>k&eLnEn6lqd3{S@WmEmu zDQm(z0{*sedwZZg(%RM$Xl#4WWM6$-G}77<4wOf>id@reas}|Y*@^yJ*9Q2x^gwmE zAU+r60e%mDwt~^rTwly3mYi(`s2$VOqwudhn(FCiTP+3}4 z74WSqEvxd;BoWH=xN+;E^YInp_GKxC>Qgv9UIYIGP7z`kE|xRS!)ry6)(sxbM>5ZF z;}LG~W}tjBZza;2!Mo331xKgVQ-QyK9P*hV^%cEd7Rnkv(m&rYUUb`zon~8o59~r~LcSf#%;xIntR`#*t zc(*}#a&ZPCF&ul54kt|9EVu)q%0B?!-mhB=7e7W~8@#VUq(z=xn)^JC_W~aPZUvfv z-=LB!5#|6(fPcmD*MLt04+5>gyMc0GHZTDgf}r#czY2T~;KqnfAOQG*Lf}f^JmA+k zxG4%8g^au@_6+bCa5oSHRsr(>PO?rQ5535K;91~KfIiI)0EssQISC|PRJMM7bxmN? z`i(V#wWYOFtyE*uruDS}&Na$PF-cli!?ickB}^BY7i|h)=7pl*s@2h{Iu|pp^&8if z`$jT7n>Za4Of~tK&XViP{ejBWmSXEQH%6HOoHI2=~eMgo4?U?;-j0P5YwyFD*Qz!!_ndrY&XSJ^; zE?>=t)#Yodd}2bmdfn=pxPDjH_%^JKCv(k|G-1=qs`XGUvvMv@nw&5zC5NkXr1Qm$ zZ(Y1G9%4!vifpZEZo_mgK03a2Xf430ZAIB_Yu8smo^``Aa^CFU;H$0<6j!HU6bc4c zDoGR9)s&;5Rxw45H$siC3U>s`eASp+H?#?ET-54yfpy!P zbj6xMyoH3dgZTN9uy}x}zi&fa)&v$5ce!jV#ezdz=%j^*_!w&o5Zr4?(iS4(r>WI} z#081CxFZ)P;?-*l6md!I*CXOZv~`L2S#7iO5I-a1gQV6e;{R8hQe0q&pE>%vMf}XM zUB8HPE9}-W;@lCUu(^20v~>**%Nzg~VL^Ue;g9{GN}Qm*m{b1&^XVa6$%kI(F}aQD zb!0pUv;y;hpW@2=3E);>67V9fzA<1P@Izc(KLV@;CIH_-3%t^nSxt#;-He{nM2|L6 zd2OfX9;gXyMiU{55jXA`)j)f!I+FQhOv!M1b9v<{dF9Bw?IyfuWcHDfPnOD!%J>{m z)5gr!o5U0(;W6(}MuW)nS(}!tzv$^rhccR!vqvMQu^IJ=H4XPEv#BuaNSX>~{%4J^ XoMg0SMp06%nT0mXKkk{^yZ`?HnEZ46 diff --git a/UsrInc/adc/adc.h b/UsrInc/adc/adc.h index c6cff8a..31380c2 100644 --- a/UsrInc/adc/adc.h +++ b/UsrInc/adc/adc.h @@ -3,7 +3,7 @@ * * @file adc.h * @brief adc module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -34,39 +34,33 @@ /******************************************************************************\ Variables definitions \******************************************************************************/ -extern idata int8_t ADC_Offset_Error; //ADC Offset Error 校准值寄存器 +extern int8_t ADC_Offset_Error; //ADC Offset Error 校准值寄存器 -extern idata uint8_t Vor_Isense_Gain_Error; +extern uint8_t Vor_Isense_Gain_Error; -extern idata uint8_t Vol_Isense_Gain_Error; +extern uint8_t Vol_Isense_Gain_Error; -extern idata int8_t Vor_Isense_Offset_Error; +extern int8_t Vor_Isense_Offset_Error; -extern idata int8_t Vol_Isense_Offset_Error; +extern int8_t Vol_Isense_Offset_Error; -extern xdata uint8_t ADC_Chn_Num; +extern uint8_t ADC_Chn_Num; -extern idata uint16_t g_Value_Adc; +extern uint16_t g_Value_Adc; -extern xdata uint16_t g_Value_Adc_Avg; -#if 0 -extern xdata uint16_t g_Value_Adc0; - -extern xdata uint16_t g_Value_Adc1; +extern uint16_t g_Value_Adc_Avg; -extern xdata uint16_t g_Vref_Adc; -#endif -extern xdata int16_t g_Vntc_Adc; +extern int16_t g_Vntc_Adc; -extern xdata int16_t g_pmu_Adc_Ivol; +extern int16_t g_pmu_Adc_Ivol; -extern xdata int16_t g_pmu_Adc_Ivor; +extern int16_t g_pmu_Adc_Ivor; -extern xdata int16_t g_Vbat_Adc; +extern int16_t g_Vbat_Adc; -extern xdata int16_t g_pmu_Adc_Vout; +extern int16_t g_pmu_Adc_Vout; -extern xdata uint8_t g_ADC_Chn; +extern uint8_t g_ADC_Chn; /* ADC通道枚举。 */ typedef enum { diff --git a/UsrInc/bat/bat.h b/UsrInc/bat/bat.h index 1542416..305ac2d 100644 --- a/UsrInc/bat/bat.h +++ b/UsrInc/bat/bat.h @@ -3,7 +3,7 @@ * * @file bat.h * @brief bat module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -40,10 +40,9 @@ Variables definitions \******************************************************************************/ -extern idata uint8_t bat_level; +extern uint8_t bat_level; - -extern idata uint8_t offset_bat_level; +extern uint8_t offset_bat_level; extern bit F_batlevel_low; //电池低压 extern bit F_batlevel_protect; //低电保护 diff --git a/UsrInc/charger/charger_module.h b/UsrInc/charger/charger_module.h index 8b91659..1905187 100644 --- a/UsrInc/charger/charger_module.h +++ b/UsrInc/charger/charger_module.h @@ -1,9 +1,9 @@ /* ****************************************************************************** * - * @file Charger_module.h + * @file charger_module.h * @brief charger module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrInc/discharge/discharge_module.h b/UsrInc/discharge/discharge_module.h index 06a116d..753037b 100644 --- a/UsrInc/discharge/discharge_module.h +++ b/UsrInc/discharge/discharge_module.h @@ -3,7 +3,7 @@ * * @file discharge_module.h * @brief discharge module - * @ic sy8837 + * @ic sy8837/8 * * @version 1.0 * @date 2024/12/02 09:59:40 diff --git a/UsrInc/display/display_ui.h b/UsrInc/display/display_ui.h index 3e91314..a256889 100644 --- a/UsrInc/display/display_ui.h +++ b/UsrInc/display/display_ui.h @@ -3,7 +3,7 @@ * * @file display_ui.h * @brief display ui module - * @ic sy8837 + * @ic sy8837/8 * * @version 1.0 * @date 2025/01/14 09:59:40 diff --git a/UsrInc/hall/hall.h b/UsrInc/hall/hall.h index 0eb7227..f2c5988 100644 --- a/UsrInc/hall/hall.h +++ b/UsrInc/hall/hall.h @@ -44,7 +44,7 @@ extern CoverStatus_E CoverStatus; extern bit CoverEvent_Flg; -extern xdata uint8_t Hall_Sta_bk; +extern uint8_t Hall_Sta_bk; #if HALL_ENABLE diff --git a/UsrInc/inc/config.h b/UsrInc/inc/config.h index 11ee656..9f83173 100644 --- a/UsrInc/inc/config.h +++ b/UsrInc/inc/config.h @@ -1,9 +1,9 @@ /* ****************************************************************************** * - * @file Config.h - * @brief Config module - * @ic sy8835 + * @file config.h + * @brief config module + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -288,7 +288,7 @@ #define VOX_ADT_CUR_SET VOX_ADT_Cur_4_5UA //配置VOX负载识别电流阈值。 -#define VOX_IOFF_CUR_SET Vox_Ioff_3mA //配置VOX IOFF检测阈值。 +#define VOX_IOFF_CUR_SET Vox_Ioff_3mA << 6 //配置VOX IOFF检测阈值。 #define VOX_LIGHT_TO_HAVEY_DEB VOX_LIGHT_TO_HAVEY_128 //配置VOX 轻载转重载滤波时间。 @@ -300,21 +300,21 @@ #define VOX_CHG_FULL_5V_LEAST_CNT 40 //配置关盖条件下,VOX 耳机充满后,VOX输出5V持续时间(100ms * 40) -#define HALL_OPEN_VOX_5V_DEBOUNCE 5 //配置开盖动作后,VOX 输出5V持续时间(100ms * 5),单位:ms。 +#define HALL_OPEN_VOX_5V_DEBOUNCE 5 //配置开盖动作后,VOX 输出5V持续时间(100ms * 5),单位:100ms。 -#define HALL_OPEN_VOX_0V_DEBOUNCE 5 //配置开盖动作后,VOX 输出0V持续时间(100ms * 5),单位:ms。 +#define HALL_OPEN_VOX_0V_DEBOUNCE 5 //配置开盖动作后,VOX 输出0V持续时间(100ms * 5),单位:100ms。 -#define VOX_OCP_HICUUP_DEBOUNCE 5 //配置关盖条件下,VOX 打嗝时间(100ms * 5),单位:ms。 +#define VOX_OCP_HICUUP_DEBOUNCE 5 //配置关盖条件下,VOX 打嗝时间(100ms * 5),单位:100ms。 -#define HALL_CLOSE_VOX_5V_HOLD_CNT 3 //配置关盖动作后,VOX 输出5V持续时间(100ms * 3),单位:ms。 +#define HALL_CLOSE_VOX_5V_HOLD_CNT 3 //配置关盖动作后,VOX 输出5V持续时间(100ms * 3),单位:100ms。 /* 双向通讯协议选择 */ -#define JIELI 1 //杰理耳机芯片 +#define JIELI 0 //杰理耳机芯片 #define ZHONGKE 0 //中科蓝讯耳机芯片 -#define XUANHENG 0 //玄恒耳机芯片 +#define XUANHENG 1 //玄恒耳机芯片 /* Vox跟随充参数设置。(100ms调用周期) */ @@ -324,13 +324,13 @@ #define Vox_FOLLOW_CHG_PTM_THD 200 //PTM模式启动阈值(VOUT - VBAT),单位mV。 -#define VOX_FOLLOW_CHG_INIT_CNT 10 //启动跟随充VOX VOUT输出最高电压持续时间,1s,单位:ms。 +#define VOX_FOLLOW_CHG_INIT_CNT 10 //启动跟随充VOX VOUT输出最高电压持续时间,1s,单位:100ms。 #define VOX_FOLLOW_CHG_PMID_UP_STEPS 2 //VOX VOUT上升调节档位数。 #define VOX_FOLLOW_CHG_PMID_DOWN_STEPS 2 //VOX VOUT下降调节档位数。 -#define VOX_FOLLOW_CHG_PMID_UP_CNT 20 //VOX VOUT上升调节周期(2s),单位:ms。 +#define VOX_FOLLOW_CHG_PMID_UP_CNT 20 //VOX VOUT上升调节周期(2s),单位:100ms。 #define VOUT_MAX_THD Boost_Vout_5_225V //VOX VOUT输出最大阈值。 diff --git a/UsrInc/inc/define.h b/UsrInc/inc/define.h index add21f4..8b3c67e 100644 --- a/UsrInc/inc/define.h +++ b/UsrInc/inc/define.h @@ -3,7 +3,7 @@ * * @file define.h * @brief define module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -27,8 +27,6 @@ #define TIMER1_ENABLE 0 //Timer1 定时周期1ms。(120Bytes) -#define UART0_ENABLE 1 //UART0功能。(133Bytes) - #define UART1_ENABLE 1 //UART1功能 #define WTG_ENABLE 1 //看门狗功能使能(7Bytes) @@ -41,12 +39,14 @@ #endif -#define HALL_ENABLE 1 //Hall功能。(Hall 46Bytes) - #define KEY_ENABLE 1 //Key功能(111Bytes) #define VOX_ENABLE 1 //1080Bytes +#define VOX_COVER_ENABLE //带HALL,关盖应用 + +//#define VOX_ADT_ENABLE //无HALL,耳机入盒充电应用 + #define VOX_FOLLOW_CHG 1 //2111Bytes #if VOX_ENABLE @@ -57,6 +57,16 @@ #endif +#ifdef VOX_ADT_ENABLE //耳机入仓自动识别充电的,就不需要HALL功能。 + +#define HALL_ENABLE 0 + +#else + +#define HALL_ENABLE 1 //Hall功能。(Hall 46Bytes) + +#endif + #define CHARGER_ENABLE 1 //94Bytes #define DISCHARGE_ENABLE 1 //75Bytes @@ -77,11 +87,13 @@ #define BAT_VALUE 1 //171Bytes -#define _DEBUG_ALL //打开打印功能 +//#define _DEBUG_ALL //打开打印功能 #ifdef _DEBUG_ALL - #define _DEBUG_MAIN + #define UART0_ENABLE //UART0功能,Debug Log。(133Bytes) + +// #define _DEBUG_MAIN // #define _DEBUG_KEY // #define _DEBUG_VOX // #define _DEBUG_FOLLOW diff --git a/UsrInc/inc/reg883x.h b/UsrInc/inc/reg883x.h index 84423c9..bfe09bf 100644 --- a/UsrInc/inc/reg883x.h +++ b/UsrInc/inc/reg883x.h @@ -1,14 +1,24 @@ -/*--------------------------------------------------------------------- -REG3102.H - -Header file for TP3410 microcontroller. - -Initial Released by zheng, 2021-01-13. - - Thinkplus Semiconductor co., ltd, All Rights Reserved! -----------------------------------------------------------------------*/ -#ifndef _REG3102_H_ -#define _REG3102_H_ +/* + ****************************************************************************** + * + * @file reg883x.h + * @brief Header file for TP3315 microcontroller. + * @ic sy8837/8 + * + * @version 1.0 + * @date 2024/11/01 10:59:40 + * @author Alex Xu + * + * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. + * All Rights Reserved + * + * History: + * Revision Date Author Desc + * 1.0.0 2024/11/01 Alex Xu build this file + ****************************************************************************** + */ +#ifndef _REG883X_H_ +#define _REG883X_H_ //------------------------ Ext SFR Registers ------------------------- /*------ GPIO/MFP Registers ------*/ diff --git a/UsrInc/key/key.h b/UsrInc/key/key.h index a5c6e24..29b58d7 100644 --- a/UsrInc/key/key.h +++ b/UsrInc/key/key.h @@ -3,7 +3,7 @@ * * @file key.h * @brief key module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -47,7 +47,7 @@ typedef enum { KEY_EVENT_LL_8S, //Key super long press for 8s interrupt flag }KEY_EVENT_E; -extern idata KEY_EVENT_E Event_key; +extern KEY_EVENT_E Event_key; /******************************************************************************\ Functions definitions diff --git a/UsrInc/led/led.h b/UsrInc/led/led.h index e4ea597..d9ca2c3 100644 --- a/UsrInc/led/led.h +++ b/UsrInc/led/led.h @@ -2,8 +2,8 @@ ****************************************************************************** * * @file led.h - * @brief led dispaly module - * @ic sy8835 + * @brief led module + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -63,9 +63,9 @@ sbit pin_LED_4 = P0^5; /* 配置P02-P05限流输出,<03h> --P0_DRV */ #define P0_DRV_NONE 0x00 -#define P0_DRV_400 0xAA +#define P0_DRV_400 0xFF -#define P0_DRV_800 0xFF +#define P0_DRV_800 0xAA /******************************************************************************\ Typedef definitions diff --git a/UsrInc/pwm/pwm.h b/UsrInc/pwm/pwm.h index 5e28bea..5e11437 100644 --- a/UsrInc/pwm/pwm.h +++ b/UsrInc/pwm/pwm.h @@ -3,7 +3,7 @@ * * @file pwm.h * @brief pwm module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrInc/sleep/sleep.h b/UsrInc/sleep/sleep.h index 94d6df6..01c5cfc 100644 --- a/UsrInc/sleep/sleep.h +++ b/UsrInc/sleep/sleep.h @@ -3,7 +3,7 @@ * * @file sleep.h * @brief sleep module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -37,6 +37,9 @@ #if SLEEP_ENABLE extern uint8_t Decnt_SleepDelay; + +extern const uint8_t Enter_Standby_Tim; + extern bit Enter_Sleep_Cnt_Restart_Flag; //extern uint8_t Enter_ShipMode_Debounce; diff --git a/UsrInc/system/system.h b/UsrInc/system/system.h index 83c9fc8..e4a1626 100644 --- a/UsrInc/system/system.h +++ b/UsrInc/system/system.h @@ -3,7 +3,7 @@ * * @file system.h * @brief system module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrInc/timer/sys_tim.h b/UsrInc/timer/sys_tim.h index 10a38ac..d97b60f 100644 --- a/UsrInc/timer/sys_tim.h +++ b/UsrInc/timer/sys_tim.h @@ -3,7 +3,7 @@ * * @file sys_tim.h * @brief system timer module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrInc/uart/uart.h b/UsrInc/uart/uart.h index 974e8ec..f45a6da 100644 --- a/UsrInc/uart/uart.h +++ b/UsrInc/uart/uart.h @@ -3,7 +3,7 @@ * * @file uart.h * @brief uart module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrInc/user/user.h b/UsrInc/user/user.h index 3f57bcd..3b64fd0 100644 --- a/UsrInc/user/user.h +++ b/UsrInc/user/user.h @@ -3,7 +3,7 @@ * * @file user.h * @brief user module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrInc/userapp/userapp.h b/UsrInc/userapp/userapp.h index c25ccb3..730e1dc 100644 --- a/UsrInc/userapp/userapp.h +++ b/UsrInc/userapp/userapp.h @@ -3,7 +3,7 @@ * * @file userapp.h * @brief userapp module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrInc/vox/vox_module.h b/UsrInc/vox/vox_module.h index 644111c..a3942b6 100644 --- a/UsrInc/vox/vox_module.h +++ b/UsrInc/vox/vox_module.h @@ -1,9 +1,9 @@ /* ****************************************************************************** * - * @file VOX_Module.h + * @file vox_module.h * @brief VOL/R module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 @@ -34,18 +34,27 @@ /*软件版本信息*/ #define FW_VER 0x001 //程序版本 -extern bit Vox_Vout_Enable; - extern bit Vox_Output_Short_Flag; #define IVOX_THN 20 //耳机跟随充电流下降阈值 #define IVOX_THP 200 //耳机跟随充电流上升阈值 +#define VOL_TYPE 0x00 -#define VOL_TYPE 0x00 +#define VOR_TYPE 0x01 -#define VOR_TYPE 0x01 +#define VOX_MAX_CHAN 0x02 + + typedef enum { + + VOX_NONE_IN_BOX = 0, //空仓 + + VOX_GET_INTO_BOX, //耳机入仓 + + VOX_STAY_IN_BOX, //耳机在仓 + + }Vox_State_e; /*耳机配对状态*/ typedef enum { @@ -69,6 +78,26 @@ extern bit Vox_Output_Short_Flag; }e_Vox_Paired_State; +#ifdef VOX_COVER_ENABLE + + extern bit Vox_Vout_Enable; //Vox功率输出标志位 + +#else + + extern bit Vor_Vout_Enable; //Vor功率输出标志位 + + extern bit Vol_Vout_Enable; //Vol功率输出标志位 + + extern bit Vor_GetOut_Box_Flag; + + extern bit Vol_GetOut_Box_Flag; + + extern Vox_State_e Vor_State; + + extern Vox_State_e Vol_State; + +#endif + #if VOX_ENABLE /******************************************************************************\ @@ -298,8 +327,6 @@ typedef enum { VOL_CHAN = 0x00, VOR_CHAN = 0x01, - - VOX_MAX_CHAN = 0x02, VOX_BOTH = 0xFF, @@ -337,8 +364,6 @@ typedef enum { VOL_CHAN = 0x11, VOR_CHAN = 0x22, - - VOX_MAX_CHAN = 0x02, VOX_BOTH = 0xff, @@ -395,8 +420,6 @@ typedef enum { VOR_CHAN = 0x25, VOX_BOTH = 0x21, - - VOX_MAX_CHAN = 0x02, }e_Vox_Chan; @@ -479,9 +502,9 @@ extern bit OpenCover_TX_Cmd_Flag; #ifdef VOX_RX -extern xdata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 +extern uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 -extern xdata uint8_t Vox_Get_BES_Addr_Flag[2] ; +extern uint8_t Vox_Get_BES_Addr_Flag[2] ; #endif @@ -530,12 +553,27 @@ extern g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg; extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select); +#ifdef VOX_ADT_ENABLE + +extern void Vol_Det_Machine(void); +extern void Vor_Det_Machine(void); + +#else + extern void Vox_Det_Machine(void); + +#endif + #if VOX_FOLLOW_CHG extern void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ); #endif -extern void VOX_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode); +#ifdef VOX_ADT_ENABLE +extern void VOL_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode); +extern void VOR_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode); +#else +extern void VOX_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode); +#endif #ifdef VOX_RX extern void HandleVoxCommMsg(void); #endif diff --git a/UsrInc/watchdog/watchdog.h b/UsrInc/watchdog/watchdog.h index 24837ce..1d98c9e 100644 --- a/UsrInc/watchdog/watchdog.h +++ b/UsrInc/watchdog/watchdog.h @@ -3,7 +3,7 @@ * * @file watchdog.h * @brief watchdog module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:59:40 diff --git a/UsrSrc/InitVars.c b/UsrSrc/InitVars.c index 3321b8e..d470a90 100644 --- a/UsrSrc/InitVars.c +++ b/UsrSrc/InitVars.c @@ -1,9 +1,9 @@ /* ****************************************************************************** * - * @file adc.c - * @brief adc module - * @ic sy8835 + * @file InitVar.c + * @brief InitVar module + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 15:00:40 diff --git a/UsrSrc/adc/adc.c b/UsrSrc/adc/adc.c index e61e174..e458e90 100644 --- a/UsrSrc/adc/adc.c +++ b/UsrSrc/adc/adc.c @@ -3,7 +3,7 @@ * * @file adc.c * @brief adc module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 15:00:40 @@ -34,45 +34,37 @@ \******************************************************************************/ -idata int8_t ADC_Offset_Error; //ADC Offset Error 校准值寄存器 +int8_t ADC_Offset_Error; //ADC Offset Error 校准值寄存器 -idata int8_t Bat_ADC_Offset_Error; +int8_t Bat_ADC_Offset_Error; -idata uint8_t Vor_Isense_Gain_Error; +uint8_t Vor_Isense_Gain_Error; -idata uint8_t Vol_Isense_Gain_Error; +uint8_t Vol_Isense_Gain_Error; -idata int8_t Vor_Isense_Offset_Error; +int8_t Vor_Isense_Offset_Error; -idata int8_t Vol_Isense_Offset_Error; +int8_t Vol_Isense_Offset_Error; -xdata uint8_t ADC_Chn_Num; +uint8_t ADC_Chn_Num; -idata uint16_t g_Value_Adc; +uint16_t g_Value_Adc; -xdata uint16_t g_Value_Adc_Avg; +uint16_t g_Value_Adc_Avg; -#if 0 -xdata uint16_t g_Value_Adc0; +int16_t g_Vntc_Adc; -xdata uint16_t g_Value_Adc1; +int16_t g_pmu_Adc_Ivol; -xdata uint16_t g_Vref_Adc; -#endif +int16_t g_pmu_Adc_Ivor; -xdata int16_t g_Vntc_Adc; +int16_t g_Vbat_Adc; -xdata int16_t g_pmu_Adc_Ivol; +int16_t g_pmu_Adc_Vout; -xdata int16_t g_pmu_Adc_Ivor; +uint8_t g_ADC_Chn; -xdata int16_t g_Vbat_Adc; - -xdata int16_t g_pmu_Adc_Vout; - -xdata uint8_t g_ADC_Chn; - -xdata uint8_t Adc_Index; +uint8_t Adc_Index; bit ADC_Cal_Over_Flag; @@ -223,7 +215,7 @@ void PMU_ADC_Chn_Data( PMU_ADC_CHANNELS_E pmu_Adc_Chn ) break; } - ADC_Cal_Over_Flag = 0; + ADC_Cal_Over_Flag = FALSE; #ifdef _DEBUG_ADC printf("adc chn:%d,adc_value:%d,Ivol:%d,Vbat:%d,Vout:%d,Ivor:%d,Vntc:%d.\r\n",(uint16_t)ADC_Chn_Num,(uint16_t)g_Value_Adc_Avg,(uint16_t)g_pmu_Adc_Ivol,(uint16_t)g_Vbat_Adc,(uint16_t)g_pmu_Adc_Vout,(uint16_t)g_pmu_Adc_Ivor,(uint16_t)g_Vntc_Adc); @@ -271,7 +263,7 @@ void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6 } else { - ADC_Cal_Over_Flag = 1; + ADC_Cal_Over_Flag = TRUE; ADC_CTL1 &= ~0x01; //Disable ADC. } diff --git a/UsrSrc/bat/bat.c b/UsrSrc/bat/bat.c index 0ee1d3f..55a6a0f 100644 --- a/UsrSrc/bat/bat.c +++ b/UsrSrc/bat/bat.c @@ -3,7 +3,7 @@ * * @file bat.c * @brief Voltage-based RC model gauge algorithm - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 17:35:40 @@ -20,9 +20,9 @@ #include "bat.h" #include "adc.h" -idata uint8_t bat_level = 0; +uint8_t bat_level; -bit F_batlevel_low = 0; //电池低压 +bit F_batlevel_low; //电池低压 #if 0 @@ -481,7 +481,7 @@ bit F_batlevel_50p; bit F_batlevel_75p; -idata uint8_t offset_bat_level; +uint8_t offset_bat_level; /*充电电池电压会浮高,具体电压需要测试。*/ const uint16_t Boost_batlevel_Threshold[C_batLevel_SetMax] = @@ -581,27 +581,27 @@ void check_bat_level(void) if( bat_level <= C_bat_level_protect ) { - F_batlevel_protect = 1; + F_batlevel_protect = TRUE; } if( bat_level <= C_bat_level_lowpower ) { - F_batlevel_low = 1; + F_batlevel_low = TRUE; } if( bat_level <= C_bat_level_25p_power ) { - F_batlevel_25p = 1; + F_batlevel_25p = TRUE; } if( bat_level <= C_bat_level_50p_power ) { - F_batlevel_50p = 1; + F_batlevel_50p = TRUE; } if( bat_level <= C_bat_level_75p_power ) { - F_batlevel_75p = 1; + F_batlevel_75p = TRUE; } } diff --git a/UsrSrc/charger/charger_module.c b/UsrSrc/charger/charger_module.c index 4556d09..5f69b84 100644 --- a/UsrSrc/charger/charger_module.c +++ b/UsrSrc/charger/charger_module.c @@ -3,7 +3,7 @@ * * @file charger_module.c * @brief charger module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 17:35:40 @@ -38,7 +38,7 @@ idata TE_CHG_STA ChgStatus; // CHG状态 /******************************************************************************\ Macro definitions \******************************************************************************/ -#define NTC_PRO_DEBOUNCE_TIM 10 +#define NTC_PRO_DEBOUNCE_TIM 10 /******************************************************************************\ Variables definitions @@ -46,7 +46,7 @@ idata TE_CHG_STA ChgStatus; // CHG状态 -idata uint8_t gConstant_Cur_Max_Setting; //Charge最大充电电流。 +uint8_t gConstant_Cur_Max_Setting; //Charge最大充电电流。 idata s_gCharger_Cfg gCharge_Cfg; @@ -162,7 +162,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > JEITA_NTC_CHG_COLD_HIGH_TMP ) //0.5*ICC充电 { - NTC_250mA_Chg_Flag = 1; + NTC_250mA_Chg_Flag = TRUE; gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting / 2; @@ -170,7 +170,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > JEITA_NTC_CHG_COLD_HYST_HIGH_TMP ) { - NTC_500mA_Chg_Flag = 0; + NTC_500mA_Chg_Flag = FALSE; //gCharge_Cur.nConstant_Cur = gConstant_Cur_Max_Setting / 2; } @@ -185,7 +185,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) else if( NTC_Adc <= JEITA_NTC_CHG_WARM_LOW_TMP && NTC_Adc > JEITA_NTC_CHG_WARM_HIGH_TMP ) //1*ICC充电 { - NTC_500mA_Chg_Flag = 1; + NTC_500mA_Chg_Flag = TRUE; gCharge_Cfg.nConstant_Cur = gConstant_Cur_Max_Setting; @@ -193,7 +193,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_LOW_TMP ) { - NTC_250mA_Chg_Flag = 0; + NTC_250mA_Chg_Flag = FALSE; // gCharge_Cur.nConstant_Cur = gConstant_Cur_Max_Setting; } @@ -209,7 +209,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc <= JEITA_NTC_CHG_WARM_HYST_HIGH_TMP ) { - NTC_Change_CV_Chg_Flag = 0; + NTC_Change_CV_Chg_Flag = FALSE; // gCharge_Cur.nVFloat = CHG_VFLOAT_4_200V; } @@ -224,7 +224,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) else if( NTC_Adc <= JEITA_NTC_CHG_HOT_LOW_TMP ) //浮充电压4.05V { - NTC_Change_CV_Chg_Flag = 1; + NTC_Change_CV_Chg_Flag = TRUE; gCharge_Cfg.nVFloat = VFLOAT_JEITA_HOT; @@ -232,7 +232,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if(NTC_Adc <= JEITA_NTC_CHG_HOT_HYST_LOW_TMP) { - NTC_500mA_Chg_Flag = 0; + NTC_500mA_Chg_Flag = FALSE; // gCharge_Cur.nVFloat = CHG_VFLOAT_4_050V; } @@ -249,7 +249,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc < JEITA_NTC_CHG_PRO_HYST_LOW_TMP) { - CHG_NTC_Low_Pro_Flag = 0; + CHG_NTC_Low_Pro_Flag = FALSE; + NTC_Flag = FALSE; } else @@ -262,7 +263,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > JEITA_NTC_CHG_PRO_HYST_HIGH_TMP ) { - CHG_NTC_High_Pro_Flag = 0; + CHG_NTC_High_Pro_Flag = FALSE; + NTC_Flag = FALSE; } else @@ -275,7 +277,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > JEITA_NTC_CHG_PRO_LOW_TMP ) //不充电 { - CHG_NTC_Low_Pro_Flag = 1; + CHG_NTC_Low_Pro_Flag = TRUE; #ifdef _DEBUG_CHARGER printf("NTC Low Pro!NTC_Adc:%d,(line:%d)\r\n",(uint16)NTC_Adc,(uint16)__LINE__); @@ -286,7 +288,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) if( NTC_Adc <= JEITA_NTC_CHG_PRO_HIGH_TMP ) //不充电 { - CHG_NTC_High_Pro_Flag = 1; + CHG_NTC_High_Pro_Flag = TRUE; NTC_Flag = TRUE; @@ -296,13 +298,14 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) } } - DisChg_NTC_Low_Pro_Flag = 0; - DisChg_NTC_High_Pro_Flag = 0; + DisChg_NTC_Low_Pro_Flag = FALSE; + DisChg_NTC_High_Pro_Flag = FALSE; } else //放电模式 { - CHG_NTC_Low_Pro_Flag = 0; - CHG_NTC_High_Pro_Flag = 0; + CHG_NTC_Low_Pro_Flag = FALSE; + + CHG_NTC_High_Pro_Flag = FALSE; if( NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP && NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP ) //正常放电 { @@ -310,7 +313,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP ) { - DisChg_NTC_Low_Pro_Flag = 0; + DisChg_NTC_Low_Pro_Flag = FALSE; + NTC_Flag = FALSE; } else @@ -323,7 +327,8 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP ) { - DisChg_NTC_High_Pro_Flag = 0; + DisChg_NTC_High_Pro_Flag = FALSE; + NTC_Flag = FALSE; } else @@ -336,12 +341,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > NTC_DISCHG_PRO_LOW_TMP ) { - DisChg_NTC_Low_Pro_Flag = 1; + DisChg_NTC_Low_Pro_Flag = TRUE; } else if( NTC_Adc < NTC_DISCHG_PRO_HIGH_TMP ) { - DisChg_NTC_High_Pro_Flag = 1; + DisChg_NTC_High_Pro_Flag = TRUE; } NTC_Flag = TRUE; @@ -358,7 +363,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc < IEC_NTC_CHG_HYST_LOW_TMP ) { - CHG_NTC_Low_Pro_Flag = 0; + CHG_NTC_Low_Pro_Flag = FALSE; NTC_Flag = FALSE; } @@ -372,7 +377,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > IEC_NTC_CHG_HYST_HIGH_TMP ) { - CHG_NTC_High_Pro_Flag = 0; + CHG_NTC_High_Pro_Flag = FALSE; NTC_Flag = FALSE; } @@ -386,12 +391,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if(NTC_Adc > IEC_NTC_CHG_PRO_LOW_TMP) { - CHG_NTC_Low_Pro_Flag = 1; + CHG_NTC_Low_Pro_Flag = TRUE; } else if(NTC_Adc <= IEC_NTC_CHG_PRO_HIGH_TMP) { - CHG_NTC_High_Pro_Flag = 1; + CHG_NTC_High_Pro_Flag = TRUE; } #ifdef _DEBUG_CHARGER @@ -400,13 +405,15 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) NTC_Flag = TRUE; } - DisChg_NTC_Low_Pro_Flag = 0; - DisChg_NTC_High_Pro_Flag = 0; + DisChg_NTC_Low_Pro_Flag = FALSE; + + DisChg_NTC_High_Pro_Flag = FALSE; } else //放电模式 { - CHG_NTC_Low_Pro_Flag = 0; - CHG_NTC_High_Pro_Flag = 0; + CHG_NTC_Low_Pro_Flag = FALSE; + + CHG_NTC_High_Pro_Flag = FALSE; if( (NTC_Adc <= NTC_DISCHG_PRO_LOW_TMP) && (NTC_Adc > NTC_DISCHG_PRO_HIGH_TMP) ) //正常放电 { @@ -414,7 +421,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc < NTC_DISCHG_HYST_LOW_TMP ) { - DisChg_NTC_Low_Pro_Flag = 0; + DisChg_NTC_Low_Pro_Flag = FALSE; NTC_Flag = FALSE; } @@ -428,7 +435,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if( NTC_Adc > NTC_DISCHG_HYST_HIGH_TMP ) { - DisChg_NTC_High_Pro_Flag = 0; + DisChg_NTC_High_Pro_Flag = FALSE; NTC_Flag = FALSE; } @@ -442,12 +449,12 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta) { if(NTC_Adc > NTC_DISCHG_PRO_LOW_TMP) { - DisChg_NTC_Low_Pro_Flag = 1; + DisChg_NTC_Low_Pro_Flag = TRUE; } else if(NTC_Adc <= NTC_DISCHG_PRO_HIGH_TMP) { - DisChg_NTC_High_Pro_Flag = 1; + DisChg_NTC_High_Pro_Flag = TRUE; } NTC_Flag = TRUE; @@ -560,12 +567,12 @@ void Charger_Handler(void) { CHG_CTL &= ~CHG_EN; //Disable Charger. - CHG_NTC_Pro_Flag = 1; + CHG_NTC_Pro_Flag = TRUE; return; } - CHG_NTC_Pro_Flag = 0; + CHG_NTC_Pro_Flag = FALSE; #endif @@ -606,27 +613,27 @@ void Charger_Handler(void) if( bat_level > ( C_bat_level_protect + 1 ) ) { - F_batlevel_protect = 0; + F_batlevel_protect = FALSE; } if( bat_level > (C_bat_level_lowpower + 2) ) { - F_batlevel_low = 0; + F_batlevel_low = FALSE; } if( bat_level > (C_bat_level_25p_power + 2) ) { - F_batlevel_25p = 0; + F_batlevel_25p = FALSE; } if( bat_level > (C_bat_level_50p_power + 2) ) { - F_batlevel_50p = 0; + F_batlevel_50p = FALSE; } if( bat_level > (C_bat_level_75p_power + 2) ) { - F_batlevel_75p = 0; + F_batlevel_75p = FALSE; } #endif diff --git a/UsrSrc/discharge/discharge_module.c b/UsrSrc/discharge/discharge_module.c index 3b7a3e3..69a8854 100644 --- a/UsrSrc/discharge/discharge_module.c +++ b/UsrSrc/discharge/discharge_module.c @@ -3,7 +3,7 @@ * * @file discharge_module.c * @brief discharge module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 17:35:40 @@ -104,7 +104,7 @@ bit gBoost_UVLO_Flag; { BST_EN = 0x00; //Boost Disable - gBoost_Prepared_Flag = 0; + gBoost_Prepared_Flag = FALSE; #ifdef _DEBUG_DISCHARGE printf("Bst Close\r\n"); @@ -139,11 +139,11 @@ void DisCharge_Handler(void) /*放电过流保护 --- 硬件实现*/ #if 0 - gBoost_Prepared_Flag = 1; + gBoost_Prepared_Flag = TRUE; #else - gBoost_Prepared_Flag = 0; + gBoost_Prepared_Flag = FALSE; /* 过温保护 --- 硬件实现 */ if( CHIP_STA3 & 0x02 ) @@ -154,7 +154,7 @@ void DisCharge_Handler(void) /*Boost Input UVLO 硬件实现*/ if( (CHIP_STA0 & BOOST_BATUV) ) //用于清软件标志位。 { - gBoost_UVLO_Flag = 1; + gBoost_UVLO_Flag = TRUE; return; } @@ -184,12 +184,12 @@ void DisCharge_Handler(void) DisCharge_Boost_Close(); - Boost_NTC_Pro_Flag = 1; + Boost_NTC_Pro_Flag = TRUE; return; } - Boost_NTC_Pro_Flag = 0; + Boost_NTC_Pro_Flag = FALSE; #endif @@ -204,7 +204,7 @@ void DisCharge_Handler(void) #endif - gBoost_Prepared_Flag = 1; + gBoost_Prepared_Flag = TRUE; /* VIN 存在时,Boost 在电池电压高于 UVLO(硬件关闭 2.8/3.0V,硬件清 boost 使能。开 @@ -218,15 +218,15 @@ void DisCharge_Handler(void) { if( g_Vbat_Adc >= OPEN_BOOST_VIN ) { - gBoost_Prepared_Flag = 1; + gBoost_Prepared_Flag = TRUE; - gBoost_UVLO_Flag = 0; + gBoost_UVLO_Flag = FALSE; } else { DisCharge_Boost_Close(); //Boost Disable - gBoost_Prepared_Flag = 0; + gBoost_Prepared_Flag = FALSE; } } } diff --git a/UsrSrc/display/display_ui.c b/UsrSrc/display/display_ui.c index f1926d8..0be691e 100644 --- a/UsrSrc/display/display_ui.c +++ b/UsrSrc/display/display_ui.c @@ -118,7 +118,7 @@ uint8_t Breathing_Light_Cnt; // if( LED_On_Flag ) { - LED_On_Flag = 0; + LED_On_Flag = FALSE; LED_On_Timer = 0; @@ -127,7 +127,7 @@ uint8_t Breathing_Light_Cnt; // Display_AllOff(); #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; + Enter_Sleep_Cnt_Restart_Flag = TRUE; #endif return; } @@ -138,9 +138,9 @@ uint8_t Breathing_Light_Cnt; // { if( !LED_On_Flag1 ) { - LED_On_Flag1 = 1; + LED_On_Flag1 = TRUE; - LED_On_Flag = 1; + LED_On_Flag = TRUE; } else { @@ -172,9 +172,9 @@ uint8_t Breathing_Light_Cnt; // } else { - Vox_Ocp_Flag = 1; + Vox_Ocp_Flag = TRUE; - LED_On_Flag = 1; + LED_On_Flag = TRUE; } } } @@ -185,17 +185,17 @@ uint8_t Breathing_Light_Cnt; // /* 保护消失后,需要开启5V升压一段时间。 */ if( LED_On_Flag1 ) { - LED_On_Flag1 = 0; + LED_On_Flag1 = FALSE; - LED_On_ChgDone_Flag = 0; + LED_On_ChgDone_Flag = FALSE; - LED_On_Chg_Flag = 0; + LED_On_Chg_Flag = FALSE; - CoverEvent_Flg_led = 0; + CoverEvent_Flg_led = FALSE; - Earphone_Chg_Flag_led = 0; + Earphone_Chg_Flag_led = FALSE; - Wkup_Earphone_Flag = 1; + Wkup_Earphone_Flag = TRUE; } #endif @@ -206,9 +206,9 @@ uint8_t Breathing_Light_Cnt; // { if( !LED_On_ChgDone_Flag ) { - LED_On_ChgDone_Flag = 1; + LED_On_ChgDone_Flag = TRUE; - LED_On_Chg_Flag = 0; + LED_On_Chg_Flag = FALSE; LED_Breating_Light_Off(); @@ -221,11 +221,11 @@ uint8_t Breathing_Light_Cnt; // { if( !LED_On_Chg_Flag ) { - LED_On_Chg_Flag = 1; + LED_On_Chg_Flag = TRUE; - LED_On_ChgDone_Flag = 0; + LED_On_ChgDone_Flag = FALSE; - LED_On_Flag = 1; + LED_On_Flag = TRUE; #ifdef PWM_ENABLE Breathing_Light_Cnt = LED_R; #endif @@ -296,25 +296,25 @@ uint8_t Breathing_Light_Cnt; // } } - CoverEvent_Flg_led = 0; + CoverEvent_Flg_led = FALSE; - Earphone_Chg_Flag_led = 0; + Earphone_Chg_Flag_led = FALSE; - Key_Press_short_irq_led = 0; + Key_Press_short_irq_led = FALSE; - Disp_Bat_Lev = 1; + Disp_Bat_Lev = TRUE; } else { if( LED_On_Chg_Flag ) { - LED_On_Chg_Flag = 0; + LED_On_Chg_Flag = FALSE; LED_Breating_Light_Off(); - LED_On_Flag = 1; + LED_On_Flag = TRUE; - Wkup_Earphone_Flag = 1; + Wkup_Earphone_Flag = TRUE; return; } @@ -364,13 +364,13 @@ uint8_t Breathing_Light_Cnt; // } else { - CoverEvent_Flg_led = 0; + CoverEvent_Flg_led = FALSE; - Disp_Bat_Lev = 0; + Disp_Bat_Lev = FALSE; - Earphone_Chg_Flag_led = 0; + Earphone_Chg_Flag_led = FALSE; - Key_Press_short_irq_led = 0; + Key_Press_short_irq_led = FALSE; Display_AllOff(); //清LED显示 } diff --git a/UsrSrc/hall/hall.c b/UsrSrc/hall/hall.c index 0852940..e4437d0 100644 --- a/UsrSrc/hall/hall.c +++ b/UsrSrc/hall/hall.c @@ -3,7 +3,7 @@ * * @file hall.c * @brief hall module - * @ic sy8837 + * @ic sy8837/8 * * @version 1.0 * @date 2024/12/02 15:00:40 @@ -41,7 +41,7 @@ bit CoverEvent_Flg; //Hall #if HALL_ENABLE -xdata uint8_t Hall_Sta_bk; +uint8_t Hall_Sta_bk; /******************************************************************************\ Functions definitions @@ -110,21 +110,21 @@ xdata uint8_t Hall_Sta_bk; #endif } - CoverEvent_Flg = 1; + CoverEvent_Flg = TRUE; - Boost_Open_Flag = 0; + Boost_Open_Flag = FALSE; - CoverEvent_Flg_led = 1; + CoverEvent_Flg_led = TRUE; #ifdef LED_DISPLAY - LED_On_Flag = 1; + LED_On_Flag = TRUE; #endif Hall_Sta_bk = Hall_Sta; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; + Enter_Sleep_Cnt_Restart_Flag = TRUE; #endif diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c index 5f16000..5f8d96c 100644 --- a/UsrSrc/key/key.c +++ b/UsrSrc/key/key.c @@ -3,7 +3,7 @@ * * @file key.c * @brief key module - * @ic sy8837 + * @ic sy8837/8 * * @version 1.0 * @date 2024/12/02 15:00:40 @@ -35,11 +35,11 @@ \******************************************************************************/ #define KEY_PRESS_500MS_CNT 30 //按键按下500ms(调用周期15ms) -#define KEY_PRESS_2S_CNT 135 //按键按下计数2s(调用周期20ms) +#define KEY_PRESS_2S_CNT 135 //按键按下计数2s(调用周期15ms) #define KEY_PRESS_5S_CNT 335 -#define KEY_PRESS_8S_CNT 535 //按键按下计数8s(调用周期20ms) +#define KEY_PRESS_8S_CNT 535 //按键按下计数8s(调用周期15ms) #define KEY_TWS_PAIR_TIMER 20 @@ -51,7 +51,7 @@ #define KEY_LL_TX_Interval_2 16 -#define KEY_LIFT_CNT 35 +#define KEY_LIFT_CNT 35 //调用周期15ms /******************************************************************************\ Variables definitions @@ -61,7 +61,7 @@ bit Key_Press_l_irq; bit Key_Press_ll_irq; -idata KEY_EVENT_E Event_key; +KEY_EVENT_E Event_key; uint8_t Key_TWS_Pair_Tim; @@ -109,7 +109,7 @@ uint8_t Key_Lift_Debounce; Key_Press_Debounce++; if( Key_Press_Debounce >= KEY_PRESS_8S_CNT ) //长按8s,VOX掉电 { - Key_Press_ll_irq = 1; + Key_Press_ll_irq = TRUE; #ifdef _DEBUG_KEY printf("supper long 8s press.(line:%d)\r\n",(u16)__LINE__); #endif @@ -119,13 +119,13 @@ uint8_t Key_Lift_Debounce; { if( !nKey_Press_2s_Flag ) { - nKey_Press_2s_Flag = 1; + nKey_Press_2s_Flag = TRUE; } } - Key_Press_Flag = 1; + Key_Press_Flag = TRUE; - Key_Lift_Flag = 0; + Key_Lift_Flag = FALSE; } else { @@ -134,24 +134,24 @@ uint8_t Key_Lift_Debounce; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; + Enter_Sleep_Cnt_Restart_Flag = TRUE; #endif Event_key = KEY_EVENT_Empty; - Key_Press_Flag = 0; + Key_Press_Flag = FALSE; - Key_Lift_Flag = 1; + Key_Lift_Flag = TRUE; Key_Lift_Debounce = 0; if( (Key_Press_Debounce <= KEY_PRESS_500MS_CNT) ) //松开按键,按下时间小于500ms,则识别为短按,显示电量 { - Key_Press_short_irq_led = 1; + Key_Press_short_irq_led = TRUE; - nKey_Press_short_irq = 1; + nKey_Press_short_irq = TRUE; #ifdef LED_DISPLAY - LED_On_Flag = 1; + LED_On_Flag = TRUE; #endif } else @@ -159,11 +159,11 @@ uint8_t Key_Lift_Debounce; { if( nKey_Press_2s_Flag ) { - Key_Press_l_irq = 1; + Key_Press_l_irq = TRUE; } } - nKey_Press_2s_Flag = 0; + nKey_Press_2s_Flag = FALSE; #ifdef _DEBUG_KEY printf("Key lift(line:%d).\r\n",(u16)__LINE__); @@ -181,15 +181,25 @@ uint8_t Key_Lift_Debounce; { DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX); - Boost_Open_Flag = 1; + Boost_Open_Flag = TRUE; #ifdef _DEBUG_KEY printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__); #endif return; } - +#if VOX_ENABLE + +#ifdef VOX_ADT_ENABLE + + Vol_State = VOX_GET_INTO_BOX; + + Vor_State = VOX_GET_INTO_BOX; +#else VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V - +#endif + +#endif + if( Key_Lift_Debounce <= KEY_LIFT_CNT ) { Key_Lift_Debounce++; @@ -197,7 +207,7 @@ uint8_t Key_Lift_Debounce; return; } - Key_Press_l_irq = 0; + Key_Press_l_irq = FALSE; /*todo*/ Event_key = KEY_EVENT_L_2S; @@ -212,44 +222,11 @@ uint8_t Key_Lift_Debounce; printf("long 2s press\r\n"); #endif } - /*长按8s,系统强制进shipmode.*/ - if( Key_Press_ll_irq ) - { - if( !Boost_Open_Flag ) - { - DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX); - - Boost_Open_Flag = 1; -#ifdef _DEBUG_KEY - printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__); -#endif - - return; - } - - VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V - - if( Key_Lift_Debounce <= KEY_LIFT_CNT ) - { - Key_Lift_Debounce++; - - return; - } - - Key_Press_ll_irq = 0; - Key_TWS_Clear_Pair_Tim = 0; - /*todo*/ - Event_key = KEY_EVENT_LL_8S; - -#ifdef _DEBUG_KEY - printf("supper long 8s press.(line:%d)\r\n",(u16)__LINE__); -#endif - } if( nKey_Press_short_irq ) { - nKey_Press_short_irq = 0; + nKey_Press_short_irq = FALSE; /*todo*/ // Event_key = KEY_EVENT_SHORT; @@ -259,11 +236,56 @@ uint8_t Key_Lift_Debounce; #endif } - Key_Lift_Flag = 0; + Key_Lift_Flag = FALSE; - Boost_Open_Flag = 0; + Boost_Open_Flag = FALSE; } + /*长按8s,VOX先升压。*/ + if( Key_Press_ll_irq ) + { + if( !Boost_Open_Flag ) + { + DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX); + + Boost_Open_Flag = TRUE; +#ifdef _DEBUG_KEY + printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__); +#endif + + return; + } + +#if VOX_ENABLE + +#ifdef VOX_ADT_ENABLE + + Vol_State = VOX_GET_INTO_BOX; + + Vor_State = VOX_GET_INTO_BOX; +#else + VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V +#endif + +#endif + if( Key_Lift_Debounce <= KEY_LIFT_CNT ) + { + Key_Lift_Debounce++; + + return; + } + + Key_Press_ll_irq = FALSE; + + Key_TWS_Clear_Pair_Tim = 0; + /*todo*/ + Event_key = KEY_EVENT_LL_8S; + +#ifdef _DEBUG_KEY + printf("supper long 8s press.(line:%d)\r\n",(u16)__LINE__); +#endif + } + #if 1 if ( CoverStatus == OPEN ) { @@ -292,12 +314,27 @@ uint8_t Key_Lift_Debounce; if(Key_TWS_Pair_Cnt > KEY_TWS_PAIR_CNT) //耳机蓝牙地址置换超时10s,关闭蓝牙地址置换,开启VOX 5V。 { Key_TWS_Pair_Cnt = 0; +#if XUANHENG + HandleTxCommand(CMD_PAIRING_IMD,VOR_CHAN); + + HandleTxCommand(CMD_PAIRING_IMD,VOL_CHAN); + +#endif Event_key = KEY_EVENT_Empty; - OpenCover_TX_Cmd_Flag = 1; -#if VOX_ENABLE - VOX_EN_Type(VOX_ADT_Mode); + OpenCover_TX_Cmd_Flag = TRUE; +#if VOX_ENABLE + +#ifdef VOX_ADT_ENABLE + + Vol_State = VOX_GET_INTO_BOX; + + Vor_State = VOX_GET_INTO_BOX; +#else + VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V +#endif + #endif #ifdef _DEBUG_KEY printf("Key Pair TimeOut(line:%d).\r\n",(uint16_t)__LINE__); @@ -351,9 +388,19 @@ uint8_t Key_Lift_Debounce; Event_key = KEY_EVENT_Empty; - OpenCover_TX_Cmd_Flag = 1; - - VOX_EN_Type(VOX_ADT_Mode); + OpenCover_TX_Cmd_Flag = TRUE; +#if VOX_ENABLE + +#ifdef VOX_ADT_ENABLE + + Vol_State = VOX_NONE_IN_BOX; + + Vor_State = VOX_NONE_IN_BOX; +#else + VOX_EN_Type(VOX_ADT_Mode); //VOX Enable 5V +#endif + +#endif #ifdef _DEBUG_KEY printf("Key Pair Get VOL(line:%d).\r\n",(uint16_t)__LINE__); #endif @@ -429,11 +476,22 @@ uint8_t Key_Lift_Debounce; { Event_key = KEY_EVENT_Empty; - OpenCover_TX_Cmd_Flag = 1; + OpenCover_TX_Cmd_Flag = TRUE; Key_TWS_Clear_Pair_Tim = 0; - VOX_EN_Type(VOX_ADT_Mode); +#if VOX_ENABLE + +#ifdef VOX_ADT_ENABLE + + Vol_State = VOX_NONE_IN_BOX; + + Vor_State = VOX_NONE_IN_BOX; +#else + VOX_EN_Type(VOX_ADT_Mode); //VOX Enable 5V +#endif + +#endif } } } diff --git a/UsrSrc/led/led.c b/UsrSrc/led/led.c index 8f64c00..59cde26 100644 --- a/UsrSrc/led/led.c +++ b/UsrSrc/led/led.c @@ -3,7 +3,7 @@ * * @file led.c * @brief led module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 15:00:40 @@ -275,7 +275,9 @@ void LED_Drv(void) if( LED.Light_Dir[i] == SHOW_NONE ) { PWM_Disable(i); - PWM_Dir_Flag = 0; + + PWM_Dir_Flag = FALSE; + LED.State[i] = LED_OFF; } else @@ -284,7 +286,7 @@ void LED_Drv(void) { if( !PWM_Dir_Flag ) { - PWM_Dir_Flag = 1; + PWM_Dir_Flag = TRUE; LED.Flash_Duty[i] = PWM_REL_VALUE; } @@ -300,7 +302,7 @@ void LED_Drv(void) { if( !PWM_Dir_Flag ) { - PWM_Dir_Flag = 1; + PWM_Dir_Flag = TRUE; LED.Flash_Duty[i] = PWM_REL_FULL; } @@ -316,12 +318,12 @@ void LED_Drv(void) { if( LED.Flash_Duty[i] >= PWM_REL_FULL ) { - PWM_Dir_Flag = 1; + PWM_Dir_Flag = TRUE; } else if( LED.Flash_Duty[i] <= (PWM_REL_VALUE + 1) ) { - PWM_Dir_Flag = 0; + PWM_Dir_Flag = FALSE; } if(PWM_Dir_Flag) diff --git a/UsrSrc/main.c b/UsrSrc/main.c index eb5a61a..fa7d578 100644 --- a/UsrSrc/main.c +++ b/UsrSrc/main.c @@ -3,7 +3,7 @@ * * @file main.c * @brief main module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 17:35:40 @@ -47,7 +47,7 @@ void main(void ) #ifdef _DEBUG_MAIN - printf("System Init.Ver:%2x%2x%2x\r\n",(uint16_t)FW_VER0, (uint16_t)FW_VER1, (uint16_t)FW_VER2); + printf("System Init.Ver:%02x%02x%02x\r\n",(uint16_t)FW_VER0, (uint16_t)FW_VER1, (uint16_t)FW_VER2); #endif diff --git a/UsrSrc/pwm/pwm.c b/UsrSrc/pwm/pwm.c index dc95ea6..76ec82b 100644 --- a/UsrSrc/pwm/pwm.c +++ b/UsrSrc/pwm/pwm.c @@ -3,7 +3,7 @@ * * @file pwm.c * @brief pwm module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 09:50:40 diff --git a/UsrSrc/sleep/sleep.c b/UsrSrc/sleep/sleep.c index c5001b2..4afae74 100644 --- a/UsrSrc/sleep/sleep.c +++ b/UsrSrc/sleep/sleep.c @@ -3,7 +3,7 @@ * * @file sleep.c * @brief sleep module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 17:35:40 @@ -203,12 +203,17 @@ void Enter_Sleep(void) */ bit Check_Require_Sleep(void ) { +#ifdef VOX_ADT_ENABLE + if( ( CHIP_STA0 & VIN_PRESENT ) || ( ON == Vol_Vout_Enable ) || ( ON == Vor_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*充电中、有中断、耳机处于充电状态情况下,Boost重载输出,系统不进休眠模式。 */ +#else if( ( CHIP_STA0 & VIN_PRESENT ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*充电中、有中断、耳机处于充电状态情况下,Boost重载输出,系统不进休眠模式。 */ +#endif +// if( ( CHIP_STA0 & VIN_PRESENT ) || ( ON == Vox_Vout_Enable ) || Enter_Sleep_Cnt_Restart_Flag ) /*充电中、有中断、耳机处于充电状态情况下,Boost重载输出,系统不进休眠模式。 */ { #ifdef _DEBUG_SLEEP printf("Not Get Into Sleep(ChgStatus:%d,Vox_Vout:%d,Restart_Flag:%d).\r\n",(uint16_t)ChgStatus,(uint16_t)Vox_Vout_Enable,(uint16_t)Enter_Sleep_Cnt_Restart_Flag); #endif - Enter_Sleep_Cnt_Restart_Flag = 0; + Enter_Sleep_Cnt_Restart_Flag = FALSE; /*处理对应的保护和中断唤醒事件。*/ return false; diff --git a/UsrSrc/system/system.c b/UsrSrc/system/system.c index 6801916..5348d2f 100644 --- a/UsrSrc/system/system.c +++ b/UsrSrc/system/system.c @@ -3,7 +3,7 @@ * * @file system.c * @brief system module - * @ic sy8837 + * @ic sy8837/8 * * @version 1.0 * @date 2024/12/02 15:00:40 @@ -69,7 +69,7 @@ void System_Init(void) SFRADDR = P0_PD; //Disable P00\P01 Pull Down. SFRDATA = 0x00; -#if UART0_ENABLE +#ifdef UART0_ENABLE UART0_Init(); #endif @@ -107,7 +107,8 @@ void System_Init(void) SFRADDR = VOX_CON0; //设置VOX负载识别电流4.5uA。见Config.h文件。 SFRDATA = VOX_ADT_CUR_SET; - SFRADDR = VOX_CON2; //设置VOX轻重载转换滤波时间。bit3:2 VOX轻载转重载滤波时间;bit1:0 VOX重载转轻载滤波时间 + SFRADDR = VOX_CON2; //设置VOX轻重载转换滤波时间。bit3:2 VOX轻载转重载滤波时间;bit1:0 VOX重载转轻载滤波时间;bit7:6 Vox IOFF检测阈值设置。 + SFRDATA &= ~0xCF; SFRDATA |= (VOX_LIGHT_TO_HAVEY_DEB << 2) | VOX_HAVEY_TO_LIGHT_DEB | VOX_IOFF_CUR_SET ; #endif @@ -161,7 +162,13 @@ void System_Init(void) #ifdef SLEEP_ENABLE WakeUp_Init_Set(); #endif + Decnt_SleepDelay = ENTER_STANDBYMODE_CNT; + Boost_Open_Flag = FALSE; +#ifdef VOX_ADT_ENABLE + Vol_GetOut_Box_Flag = TRUE; + Vor_GetOut_Box_Flag = TRUE; +#endif Systerm_State.Next_State = POWER_ON_STATE; } @@ -203,7 +210,7 @@ void Sys_Clk_Adjust(uint8_t Clk_Div) void EX0_isr(void) interrupt Interrupt_Vector_IE0 { #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; + Enter_Sleep_Cnt_Restart_Flag = TRUE; #endif } @@ -227,7 +234,7 @@ void EX2_isr(void) interrupt Interrupt_Vector_IE2 IRQ_FLAG3 = 0x3C; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; + Enter_Sleep_Cnt_Restart_Flag = TRUE; #endif } @@ -252,7 +259,7 @@ void EX3_isr(void) interrupt Interrupt_Vector_IE3 IRQ_FLAG10 = Standby_Tmr_WkUp; #if SLEEP_ENABLE - Enter_Sleep_Cnt_Restart_Flag = 1; + Enter_Sleep_Cnt_Restart_Flag = TRUE; #endif } diff --git a/UsrSrc/timer/sys_tim.c b/UsrSrc/timer/sys_tim.c index 463cfc4..e30d6a2 100644 --- a/UsrSrc/timer/sys_tim.c +++ b/UsrSrc/timer/sys_tim.c @@ -25,7 +25,6 @@ #include "led.h" #include "pwm.h" - /******************************************************************************\ Macro definitions \******************************************************************************/ @@ -85,14 +84,14 @@ void Sys_Tim0_Handler(void) return; F_sys_tim_tick = 0; //system tick - F_sys_tim_1ms = 1; + F_sys_tim_1ms = TRUE; //---------------5ms---------------------------------------- cnt_sys_tim_5ms++; if(cnt_sys_tim_5ms >= 5) { cnt_sys_tim_5ms = 0; - F_sys_tim_5ms = 1; + F_sys_tim_5ms = TRUE; } //---------------10ms---------------------------------------- @@ -100,7 +99,7 @@ void Sys_Tim0_Handler(void) if(cnt_sys_tim_10ms >= 10) { cnt_sys_tim_10ms = 0; - F_sys_tim_10ms = 1; + F_sys_tim_10ms = TRUE; } //---------------100ms---------------------------------------- @@ -108,7 +107,7 @@ void Sys_Tim0_Handler(void) if(cnt_sys_tim_100ms >= 100) { cnt_sys_tim_100ms = 0; - F_sys_tim_100ms = 1; + F_sys_tim_100ms = TRUE; } //------------------------------------------------- @@ -116,14 +115,14 @@ void Sys_Tim0_Handler(void) if(cnt_sys_tim_250ms>=250) { cnt_sys_tim_250ms = 0; - F_sys_tim_250ms = 1; + F_sys_tim_250ms = TRUE; //-----------------250ms------------------------- cnt_sys_tim_1s++; if(cnt_sys_tim_1s >= 4) { cnt_sys_tim_1s = 0; - F_sys_tim_1s = 1; + F_sys_tim_1s = TRUE; } } } @@ -168,7 +167,7 @@ void tim0_Interrupt(void) interrupt Interrupt_Vector_TF0 //interrupt address is TH0 += C_TIM0_Reload >> 8; TL0 += C_TIM0_Reload & 0xFF; - F_sys_tim_tick = 1; + F_sys_tim_tick = TRUE; } /* @@ -207,13 +206,19 @@ void Sys_Tim0_Init(void) */ void tim1_Interrupt(void) interrupt Interrupt_Vector_TF1//interrupt address is 0x000B { +// uint8_t Sfr_ADDR_BK = 0; //1ms TF1 = 0; TH1 += C_TIM1_Reload >> 8; TL1 += C_TIM1_Reload & 0xFF; - F_sys_tim1_tick = 1; +// Sfr_ADDR_BK = SFRADDR; +// /* TODO:操作其它SFRADDR寄存器*/ + + F_sys_tim1_tick = TRUE; + +// SFRADDR = Sfr_ADDR_BK; } /* diff --git a/UsrSrc/uart/uart.c b/UsrSrc/uart/uart.c index 3c29950..f51e3c9 100644 --- a/UsrSrc/uart/uart.c +++ b/UsrSrc/uart/uart.c @@ -3,7 +3,7 @@ * * @file uart.c * @brief uart module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 15:00:40 @@ -105,7 +105,7 @@ void Uart0SendData(uint8_t Txdata) #endif -#if UART0_ENABLE +#ifdef UART0_ENABLE /* ******************************************************************************* @@ -178,7 +178,7 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI if(TI0) { TI0 = 0; - busy0 = 0; + busy0 = FALSE; } /*处理UART0接收中断*/ @@ -240,9 +240,8 @@ void Uart1SendPacket(uint16_t Length,uint8_t *TransBuf) for(i=0;i= VOX_IOFF_DET_DEBOUNCE ) //重载转轻载(耳机出仓后)需延时5s,Vox掉Vout 5V后转入ADT模式。 + { + nVol_Output_Debounce = 0; + + VOL_EN_Type(VOX_ADT_Mode); + + nVol_Chg_Full_Flag = TRUE; +#ifdef _DEBUG_VOX + printf("Vol Full And In ADT.(line:%d)\r\n",(u16)__LINE__); +#endif + } + + } + else + if ( ( CHIP_STA1 & ( VOL_LoadOn | VOL_Ioff ) ) == VOL_LoadOn ) //无IOFF有Loadon,说明:1、耳机出仓后4s内,耳机再次入仓;2、10分钟未满,耳机电池退出锂保状态,进入正常充电; + { + nVol_Output_Debounce = 0; + + nVol_Intobox_Disp_Flag = TRUE; + + if( nVol_Chg_Full_Flag ) //Vox在ADT模式后检测到loadon标志,则说明耳机已充满,不再抽电,等loadon消失,判断耳机出盒。 + { + Vol_Vout_Enable = OFF; +#ifdef _DEBUG_VOX + printf("Vol Full.(line:%d)\r\n",(u16)__LINE__); +#endif + } + else + { + if( nVol_Outbox_Disp_Flag ) //左耳4s内再次入盒,左耳对应的入盒灯效闪一次。 + { + nVol_Outbox_Disp_Flag = FALSE; + + if( nVol_GetOut_Box_Flag ) + { + nVol_GetOut_Box_Flag = FALSE; + /*重启跟随充*/ +#if VOX_FOLLOW_CHG + Vox_Fllow_Chg.Vox_Follow_Start = OFF; + + Vox_Fllow_Chg.Vox_Follow_Stop = OFF; + + Follow_Chg_Sta = Vox_Follow_Chg_InitSta; +#endif + + Earphone_Chg_Flag_led = TRUE; //用于灯效显示 +#ifdef LED_DISPLAY + LED_On_Flag = TRUE; +#endif + +#ifdef _DEBUG_VOX + printf("Vol Get In Again.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + + Vol_Vout_Enable = ON; //正常充电标志置ON。 + + Vol_GetOut_Box_Flag = FALSE; +#ifdef _DEBUG_VOX + printf("Vol Ching.(line:%d)\r\n",(u16)__LINE__); +#endif + } + + + } + else + if ( !( CHIP_STA1 & VOL_LoadOn ) ) //无Loadon,说明,耳机出仓 + { + nVol_Loadon_Det_Debounce++; + if( nVol_Loadon_Det_Debounce >= VOX_NO_LOADON_CNT ) //耳机充满后,断开内部下拉电阻延时计数,根据实际应用调整。 + { + nVol_Loadon_Det_Debounce = 0; + + nVol_Intobox_Disp_Flag = FALSE; + + nVol_Outbox_Disp_Flag = FALSE; + + nVol_GetOut_Box_Flag = FALSE; + + Vol_State = VOX_NONE_IN_BOX; +#ifdef _DEBUG_VOX + printf("Vol Out Box.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + + break; + + case VOX_NONE_IN_BOX: //空仓 + + VOL_EN_Type(VOX_ADT_Mode); + + Vol_Vout_Enable = OFF; + + Vol_GetOut_Box_Flag = TRUE; //左耳出盒标志置1,用于抽电灯效 + + if( CHIP_STA1 & VOL_LoadOn ) //adt模式下出现loadon信号,则说明Vol通道有耳机入盒。 + { + nVol_Loadon_Det_Debounce++; + if( nVol_Loadon_Det_Debounce >= VOX_LOADON_DET_DEBOUNCE ) //Vox Loadon信号检测延时计数,loadon信号软件数字滤波,根据实际耳机进行调试; + { + nVol_Loadon_Det_Debounce = 0; + + Vol_State = VOX_GET_INTO_BOX; + + /*置灯效显示标志*/ + Earphone_Chg_Flag_led = TRUE; +#ifdef LED_DISPLAY + LED_On_Flag = TRUE; +#endif + +#ifdef _DEBUG_VOX + printf("Vol Det Loadon.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + else + { + nVol_Loadon_Det_Debounce = 0; + } + + break; + + default: + break; + } + } + else //bat保护后,VOX恢复到最初状态。 + { + Vol_State = VOX_GET_INTO_BOX; + + Vol_Vout_Enable = OFF; + + if( !nVol_Get_Chip_STA_Flag ) + { + nVol_Get_Chip_STA_Flag = TRUE; + + VOL_EN_Type(VOX_ADT_Mode); //VOL Disable 5V And Enable VOR ADT + + nCHIP_STA1_Vol = CHIP_STA1 & VOL_LoadOn; + } + else + { + /*耳机出入盒判断*/ + if( nCHIP_STA1_Vol != ( CHIP_STA1 & VOL_LoadOn ) ) //查询耳机loadon状态,loadon状态改变,则说明有耳机出入盒。 + { + if( CHIP_STA1 & VOL_LoadOn ) //Vox入盒 + { + Earphone_Chg_Flag_led = TRUE; //用于灯效显示 +#ifdef LED_DISPLAY + LED_On_Flag = TRUE; +#endif +#ifdef _DEBUG_VOX + printf("VOL Get Into Box Bat Low.(line:%d)\r\n",(u16)__LINE__); +#endif + } + + nCHIP_STA1_Vol = CHIP_STA1 & VOL_LoadOn; + } + } + } +} + +Vox_State_e Vor_State; + +bit Vor_GetOut_Box_Flag; //Vor 出盒标志,用于耳机抽电灯效。 +/* +******************************************************************************* +* void Vor_Det_Machine(void) +* +* Description : Vor Detect:耳机识别。 (100ms调用周期) +* +* Arguments : NONE + +* Returns : NONE + +* Notes : NONE +* +******************************************************************************* +*/ +void Vor_Det_Machine(void) +{ + static uint8_t nVor_Loadon_Det_Debounce; //loadon标志检测延时计数 + + static uint8_t nVor_Output_Debounce; //Vox重载转轻载延时计数 + + static bit nVor_Chg_Full_Flag; //耳机充满标志 + + static bit nVor_GetOut_Box_Flag; + + static bit nVor_Outbox_Disp_Flag; + + static bit nVor_Intobox_Disp_Flag; + + static bit nVor_Get_Chip_STA_Flag; + + static uint8_t nCHIP_STA1_Vor; + + if( gBoost_Prepared_Flag ) + { + switch( Vor_State ) + { + case VOX_GET_INTO_BOX: //耳机入仓 + + /*开启Vox Vout 5V前需要先开Boost。*/ + if( !Boost_Open_Flag ) + { + DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX); + + Boost_Open_Flag = TRUE; +#ifdef _DEBUG_VOX + printf("Boost Open.(line:%d)\r\n",(u16)__LINE__); +#endif + return; + } + + VOR_EN_Type(VOX_VOUT_Mode); //Vox开启Vout 5V输出 + + Vor_Vout_Enable = ON; + + Boost_Open_Flag = FALSE; + + nVor_Chg_Full_Flag = FALSE; + + nVor_GetOut_Box_Flag = FALSE; + + nVor_Intobox_Disp_Flag = FALSE; + + nVor_Outbox_Disp_Flag = FALSE; + + nVor_Output_Debounce = 0; + + /*重启跟随充*/ +#if VOX_FOLLOW_CHG + Vox_Fllow_Chg.Vox_Follow_Start = OFF; + + Vox_Fllow_Chg.Vox_Follow_Stop = OFF; + + Follow_Chg_Sta = Vox_Follow_Chg_InitSta; +#endif + +#ifdef _DEBUG_VOX + printf("Vor Get Into Box.(line:%d)\r\n",(u16)__LINE__); +#endif + + Vor_State = VOX_STAY_IN_BOX; + + break; + + case VOX_STAY_IN_BOX: //耳机在仓 + + if ( ( CHIP_STA1 & ( VOR_LoadOn | VOR_Ioff ) ) == VOR_Ioff ) //充电过程中出现只有IOFF,则出现如下三种情况:1、耳机出仓;2、耳机电池充满;3、耳机电池锂保。 + { + if( nVor_Intobox_Disp_Flag ) //Vor耳机在正常充电过程中,被拔出。 + { + nVor_Outbox_Disp_Flag = TRUE; + + nVor_Intobox_Disp_Flag = FALSE; + + nVor_GetOut_Box_Flag = TRUE; + + Vor_GetOut_Box_Flag = TRUE; //右耳出盒标志置1,用于抽电灯效 + +#ifdef _DEBUG_VOX + printf("Vor Get Out.(line:%d)\r\n",(u16)__LINE__); +#endif + } + + nVor_Output_Debounce++; + if( nVor_Output_Debounce >= VOX_IOFF_DET_DEBOUNCE ) //重载转轻载(耳机出仓后)需延时5s,Vox掉Vout 5V后转入ADT模式。 + { + nVor_Output_Debounce = 0; + + VOR_EN_Type(VOX_ADT_Mode); + + nVor_Chg_Full_Flag = TRUE; +#ifdef _DEBUG_VOX + printf("Vor Full And In ADT.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + else + if ( ( CHIP_STA1 & ( VOR_LoadOn | VOR_Ioff ) ) == VOR_LoadOn ) //无IOFF有Loadon,说明:1、耳机出仓后4s内,耳机再次入仓;2、10分钟未满,耳机电池退出锂保状态,进入正常充电; + { + nVor_Output_Debounce = 0; + + nVor_Intobox_Disp_Flag = TRUE; + + if( nVor_Chg_Full_Flag ) //Vox在ADT模式后检测到loadon标志,则说明耳机已充满,不再抽电,等loadon消失,判断耳机出盒。 + { + Vor_Vout_Enable = OFF; +#ifdef _DEBUG_VOX + printf("Vor Full.(line:%d)\r\n",(u16)__LINE__); +#endif + } + else + { + if( nVor_Outbox_Disp_Flag ) //左耳4s内再次入盒,左耳对应的入盒灯效闪一次。 + { + nVor_Outbox_Disp_Flag = FALSE; + + if( nVor_GetOut_Box_Flag ) + { + nVor_GetOut_Box_Flag = FALSE; + /*重启跟随充*/ +#if VOX_FOLLOW_CHG + Vox_Fllow_Chg.Vox_Follow_Start = OFF; + + Vox_Fllow_Chg.Vox_Follow_Stop = OFF; + + Follow_Chg_Sta = Vox_Follow_Chg_InitSta; +#endif + + Earphone_Chg_Flag_led = TRUE; //用于灯效显示 +#ifdef LED_DISPLAY + LED_On_Flag = TRUE; +#endif + +#ifdef _DEBUG_VOX + printf("Vor Get In Again.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + + Vor_Vout_Enable = ON; //正常充电标志置ON。 + + Vor_GetOut_Box_Flag = FALSE; +#ifdef _DEBUG_VOX + printf("Vor Ching.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + else + if ( !( CHIP_STA1 & VOR_LoadOn ) ) //无Loadon,说明,耳机出仓 + { + nVor_Loadon_Det_Debounce++; + if( nVor_Loadon_Det_Debounce >= VOX_NO_LOADON_CNT ) //耳机充满后,断开内部下拉电阻延时计数,根据实际应用调整。 + { + nVor_Loadon_Det_Debounce = 0; + + nVor_Intobox_Disp_Flag = FALSE; + + nVor_Outbox_Disp_Flag = FALSE; + + nVor_GetOut_Box_Flag = FALSE; + + Vor_State = VOX_NONE_IN_BOX; +#ifdef _DEBUG_VOX + printf("Vor Out Box.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + else + { + nVor_Loadon_Det_Debounce = 0; + } + + break; + case VOX_NONE_IN_BOX: //空仓 + + VOR_EN_Type(VOX_ADT_Mode); + + Vor_Vout_Enable = OFF; + + Vor_GetOut_Box_Flag = TRUE; //右耳出盒标志置1,用于抽电灯效 + + if( CHIP_STA1 & VOR_LoadOn ) //adt模式下出现loadon信号,则说明Vor通道有耳机入盒。 + { + nVor_Loadon_Det_Debounce++; + if( nVor_Loadon_Det_Debounce >= VOX_LOADON_DET_DEBOUNCE ) //Vox Loadon信号检测延时计数,loadon信号软件数字滤波,根据实际耳机进行调试; + { + nVor_Loadon_Det_Debounce = 0; + + Vor_State = VOX_GET_INTO_BOX; + + /*置灯效显示标志*/ + Earphone_Chg_Flag_led = TRUE; +#ifdef LED_DISPLAY + LED_On_Flag = TRUE; +#endif + +#ifdef _DEBUG_VOX + printf("Vor Det Loadon.(line:%d)\r\n",(u16)__LINE__); +#endif + } + } + + break; + + default: + break; + } + } + else //bat保护后,VOX恢复到最初状态。 + { + Vor_State = VOX_GET_INTO_BOX; + + Vor_Vout_Enable = OFF; + + if( !nVor_Get_Chip_STA_Flag ) + { + nVor_Get_Chip_STA_Flag = TRUE; + + VOR_EN_Type(VOX_ADT_Mode); //VOR Disable 5V And Enable VOR ADT + + nCHIP_STA1_Vor = CHIP_STA1 & VOR_LoadOn; + } + else + { + /*耳机出入盒判断*/ + if( nCHIP_STA1_Vor != ( CHIP_STA1 & VOR_LoadOn ) ) //查询耳机loadon状态,loadon状态改变,则说明有耳机出入盒。 + { + if( CHIP_STA1 & VOR_LoadOn ) //Vox入盒 + { + Earphone_Chg_Flag_led = TRUE; //用于灯效显示 +#ifdef LED_DISPLAY + LED_On_Flag = TRUE; +#endif +#ifdef _DEBUG_VOX + printf("VOR Get Into Box Bat Low.(line:%d)\r\n",(u16)__LINE__); +#endif + } + + nCHIP_STA1_Vor = CHIP_STA1 & VOR_LoadOn; + } + } + } +} + +#else + /* ******************************************************************************* * void Vox_Det_Machine(void) @@ -461,7 +1018,7 @@ void Vox_Det_Machine(void) { DisCharge_Boost_Open(OFF,BOOST_VOUT_MAX); //开关盖Boost输出5.2V,保证耳机一定能被唤醒。Boost Enable;异常时由硬件主动关闭。开启Boost,开启Vox 5v会在开启Boost之后(100ms延时)。 - Boost_Open_Flag = 1; + Boost_Open_Flag = TRUE; return; } @@ -474,33 +1031,33 @@ void Vox_Det_Machine(void) Vox_TX_Timer = 0; - Get_CHIP_STA1_Flag0 = 0; + Get_CHIP_STA1_Flag0 = FALSE; - Get_CHIP_STA1_Flag1 = 0; + Get_CHIP_STA1_Flag1 = FALSE; - CoverEvent_Flg1 = 1; + CoverEvent_Flg1 = TRUE; if( CoverStatus == CLOSE ) //1、关盖关闭COM_CTRL;显示灯效。(无需查询Loadon、IOFF状态,无论耳机是否在仓,Vox 5V输出。) { - Earphone_Chg_Flag_led = 0; //关盖取消耳机入盒灯效,显示关盖灯效。 + Earphone_Chg_Flag_led = FALSE; //关盖取消耳机入盒灯效,显示关盖灯效。 - Cover_Close_Flag = 1; + Cover_Close_Flag = TRUE; - Cover_Close_Flag1 = 1; + Cover_Close_Flag1 = TRUE; - Cover_Open_Flag = 0; + Cover_Open_Flag = FALSE; - Vox_Chg_Full_Flag = 0; + Vox_Chg_Full_Flag = FALSE; - Cover_Close_Force_Vout_Flag = 0; + Cover_Close_Force_Vout_Flag = FALSE; - Vox_Getinto_Sleep_Flag = 0; + Vox_Getinto_Sleep_Flag = FALSE; - Vox_Chn_Select = 0; + Vox_Chn_Select = FALSE; Vox_Vout_Enable = ON; - Wkup_Earphone_Flag = 0; + Wkup_Earphone_Flag = FALSE; #if VOX_FOLLOW_CHG Vox_Fllow_Chg.Vox_Follow_Start = OFF; @@ -516,25 +1073,25 @@ void Vox_Det_Machine(void) } else //2、开盖处理:5v 500ms 转0V 500ms,后转ADT模式。 { - Cover_Close_Flag = 0; + Cover_Close_Flag = FALSE; - Cover_Close_Flag1 = 0; + Cover_Close_Flag1 = FALSE; - Cover_Open_Flag = 1; + Cover_Open_Flag = TRUE; - Cover_Open_5V_Flag = 0; + Cover_Open_5V_Flag = FALSE; #ifdef _DEBUG_VOX printf("Box Open.(line:%d)\r\n",(u16)__LINE__); #endif } - Boost_Open_Flag = 0; + Boost_Open_Flag = FALSE; - Vox_Output_Short_Flag = 0; + Vox_Output_Short_Flag = FALSE; - Vox_Ocp_Flag = 0; + Vox_Ocp_Flag = FALSE; - CoverEvent_Flg = 0; + CoverEvent_Flg = FALSE; } /* 开关盖后,VOX先升压5.2V 一段时间,唤醒耳机,后转入ADT,获取盒内耳机数量。 */ if( Vox_Voltage_Hold_Timer < HALL_OPEN_VOX_5V_DEBOUNCE ) //开盖后5V N00ms。 @@ -546,7 +1103,7 @@ void Vox_Det_Machine(void) if ( CoverEvent_Flg1 ) { - CoverEvent_Flg1 = 0; + CoverEvent_Flg1 = FALSE; VOX_EN_Type(VOX_ADT_Mode); @@ -556,7 +1113,7 @@ void Vox_Det_Machine(void) { if ( !Get_CHIP_STA1_Flag0 ) //获取耳机在盒数量。 { - Get_CHIP_STA1_Flag0 = 1; + Get_CHIP_STA1_Flag0 = TRUE; if ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) { @@ -620,7 +1177,6 @@ void Vox_Det_Machine(void) HandleTxCommand(VHOUSE_CMD_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。 #elif XUANHENG HandleTxCommand(CMD_HEARTBEAT,VOR_CHAN); - #endif #endif @@ -634,9 +1190,9 @@ void Vox_Det_Machine(void) Vox_Output_Debounce = 0; - Get_CHIP_STA1_Flag1 = 1; + Get_CHIP_STA1_Flag1 = TRUE; - OpenCover_TX_Cmd_Flag = 1; + OpenCover_TX_Cmd_Flag = TRUE; Vox_Vout_Enable = OFF; #ifdef _DEBUG_VOX @@ -650,7 +1206,7 @@ void Vox_Det_Machine(void) { if( OpenCover_TX_Cmd_Flag ) { - OpenCover_TX_Cmd_Flag = 0; + OpenCover_TX_Cmd_Flag = FALSE; CHIP_STA1_BK = CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ); @@ -662,9 +1218,9 @@ void Vox_Det_Machine(void) { if ( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag_led = 1; + Earphone_Chg_Flag_led = TRUE; #ifdef LED_DISPLAY - LED_On_Flag = 1; + LED_On_Flag = TRUE; #endif } #ifdef _DEBUG_VOX @@ -686,7 +1242,7 @@ void Vox_Det_Machine(void) { DisCharge_Boost_Open(OFF, BOOST_VOUT_MAX); //Boost Enable;异常时由硬件主动关闭。开启Boost,开启Vox 5v会在开启Boost之后(100ms延时)。 - Boost_Open_Flag = 1; + Boost_Open_Flag = TRUE; Vox_Vout_Enable = ON; #if VOX_FOLLOW_CHG @@ -698,25 +1254,25 @@ void Vox_Det_Machine(void) #endif Vox_Voltage_Hold_Timer = 0; - Vox_Chg_Full_Flag = 0; + Vox_Chg_Full_Flag = FALSE; - CoverEvent_Flg1 = 1; + CoverEvent_Flg1 = TRUE; - Get_CHIP_STA1_Flag0 = 0; + Get_CHIP_STA1_Flag0 = FALSE; - Cover_Close_Force_Vout_Flag = 1; + Cover_Close_Force_Vout_Flag = TRUE; return; } VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V #ifdef _DEBUG_VOX - printf("Close Box And Force Voltage Up.\r\n"); + printf("Close Box And Force Voltage Up.\r\n "); #endif - Boost_Open_Flag = 0; + Boost_Open_Flag = FALSE; - Cover_Close_Flag1 = 1; + Cover_Close_Flag1 = TRUE; if( Vox_Voltage_Hold_Timer <= HALL_CLOSE_VOX_5V_HOLD_CNT ) //关盖Boost VOUT 5V保持时间。 { @@ -725,7 +1281,7 @@ void Vox_Det_Machine(void) return; } - Wkup_Earphone_Flag = 0; + Wkup_Earphone_Flag = FALSE; } else { @@ -823,7 +1379,7 @@ void Vox_Det_Machine(void) VOX_EN_Type(VOX_VOUT_Mode); - Vox_Output_Short_Flag = 1; + Vox_Output_Short_Flag = TRUE; Vox_Vout_Enable = OFF; } @@ -836,9 +1392,9 @@ void Vox_Det_Machine(void) return; } - Vox_Output_Short_Flag = 0; + Vox_Output_Short_Flag = FALSE; - Vox_Ocp_Flag = 0; + Vox_Ocp_Flag = FALSE; /* 发完关盖码后,开启VOX VOUT 5V输出。 */ if( Cover_Close_Flag1 ) @@ -847,7 +1403,7 @@ void Vox_Det_Machine(void) #ifdef _DEBUG_VOX printf("VOX Vout 5V(STA1:0x%x,line:%d).\r\n",(uint16_t)CHIP_STA1, (uint16_t)__LINE__); #endif - Cover_Close_Flag1 = 0; + Cover_Close_Flag1 = FALSE; } else { @@ -865,13 +1421,13 @@ void Vox_Det_Machine(void) #ifdef _DEBUG_VOX printf("VOX CHG Full.\r\n"); #endif - Vox_Chg_Full_Flag = 1; + Vox_Chg_Full_Flag = TRUE; Vox_Output_Cnt = 0; Vox_Voltage_Hold_Timer = 0; - Vox_Getinto_Sleep_Flag = 0; + Vox_Getinto_Sleep_Flag = FALSE; VOX_EN_Type(VOX_ADT_Mode); //VOX Enable ADT } @@ -921,7 +1477,7 @@ void Vox_Det_Machine(void) { if( !Vox_Getinto_Sleep_Flag ) { - Vox_Getinto_Sleep_Flag = 1; + Vox_Getinto_Sleep_Flag = TRUE; VOX_EN_Type(VOX_ADT_Mode); @@ -935,13 +1491,13 @@ void Vox_Det_Machine(void) } } - Bat_Low_Pro_Flag = 0; + Bat_Low_Pro_Flag = FALSE; } else { if( !Bat_Low_Pro_Flag ) //低电保护后,VOX开启ADT模式。判断耳机出入盒,并显示相应的灯效。 { - Bat_Low_Pro_Flag = 1; + Bat_Low_Pro_Flag = TRUE; VOX_EN_Type(VOX_ADT_Mode); @@ -957,9 +1513,9 @@ void Vox_Det_Machine(void) { if( CHIP_STA1 & ( VOR_LoadOn | VOL_LoadOn ) ) { - Earphone_Chg_Flag_led = 1; + Earphone_Chg_Flag_led = TRUE; #ifdef LED_DISPLAY - LED_On_Flag = 1; + LED_On_Flag = TRUE; #endif } @@ -968,6 +1524,8 @@ void Vox_Det_Machine(void) } } +#endif + #if VOX_FOLLOW_CHG /* @@ -984,7 +1542,6 @@ void Vox_Det_Machine(void) * ******************************************************************************* */ -idata uint8_t Vox_Follow_Init_Deb = 0; void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { @@ -1008,34 +1565,34 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) #ifdef _DEBUG_FOLLOW printf("Follow CHG InitSta Set Max Vpmid.(Vox_sta:0x%x)(line:%d)\r\n",(uint16_t)CHIP_STA1, (uint16_t)__LINE__); #endif - nVpmid_Value_Setting = 1; + nVpmid_Value_Setting = TRUE; } } else { Vox_Follow_Init_Deb = 0; /* 参数初始化。 */ - nVpmid_Value_Setting = 0; + nVpmid_Value_Setting = FALSE; - n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_TYPE] = OFF; - n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_TYPE] = OFF; - n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] = OFF; - n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_TYPE] = OFF; - n_Vox_Fllow_Chg->IVox_TC_Mode[VOR_CHAN] = OFF; + n_Vox_Fllow_Chg->IVox_TC_Mode[VOR_TYPE] = OFF; - n_Vox_Fllow_Chg->IVox_TC_Mode[VOL_CHAN] = OFF; + n_Vox_Fllow_Chg->IVox_TC_Mode[VOL_TYPE] = OFF; - n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = OFF; + n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] = OFF; - n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = OFF; + n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] = OFF; - n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] = 0; + n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] = 0; - n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] = 0; + n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] = 0; n_Vox_Fllow_Chg->Vpmid_Threshold_Neg = VOUT_MIN_THD; @@ -1068,11 +1625,11 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) /*获取当前Ivox。Vox开启功率,且Ioff处于重载状态。*/ if( !( CHIP_STA1 & VOR_Ioff ) ) { - n_Vox_Fllow_Chg->IVox_Init[VOR_CHAN] = g_pmu_Adc_Ivor; + n_Vox_Fllow_Chg->IVox_Init[VOR_TYPE] = g_pmu_Adc_Ivor; - n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] = IVOR_Threshold_Neg(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 80% + n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_TYPE] = IVOR_Threshold_Neg(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 80% - n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] = IVOR_Threshold_Pos(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 2 + n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_TYPE] = IVOR_Threshold_Pos(g_pmu_Adc_Ivor); //Ivox_Threshold_Neg = IVox_Init * 2 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOR Chging(Ivor:%dmA).(line:%d)\r\n",(u16)g_pmu_Adc_Ivor,(uint16_t)__LINE__); #endif @@ -1081,11 +1638,11 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if( !( CHIP_STA1 & VOL_Ioff ) ) { - n_Vox_Fllow_Chg->IVox_Init[VOL_CHAN] = g_pmu_Adc_Ivol; + n_Vox_Fllow_Chg->IVox_Init[VOL_TYPE] = g_pmu_Adc_Ivol; - n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] = IVOL_Threshold_Neg(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 80% + n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_TYPE] = IVOL_Threshold_Neg(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 80% - n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] = IVOL_Threshold_Pos(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 2 + n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_TYPE] = IVOL_Threshold_Pos(g_pmu_Adc_Ivol); //Ivox_Threshold_Neg = IVox_Init * 2 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta1,VOL Chging(Ivol:%dmA).(line:%d)\r\n",(u16)g_pmu_Adc_Ivol,(uint16_t)__LINE__); #endif @@ -1111,9 +1668,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if ( !( CHIP_STA1 & VOR_Ioff ) ) { - n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] = g_pmu_Adc_Ivor; + n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] = g_pmu_Adc_Ivor; - n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = ON; //判断VOR有耳机在盒正常抽电 + n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] = ON; //判断VOR有耳机在盒正常抽电 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta2,Get IVOR:%dmA.(line:%d)\r\n",(uint16_t)g_pmu_Adc_Ivor,(u16)__LINE__); #endif @@ -1121,9 +1678,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) if ( !( CHIP_STA1 & VOL_Ioff) ) { - n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] = g_pmu_Adc_Ivol; + n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] = g_pmu_Adc_Ivol; - n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = ON; //判断VOL有耳机在盒正常抽电 + n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] = ON; //判断VOL有耳机在盒正常抽电 #ifdef _DEBUG_FOLLOW printf("Follow CHG Sta2,Get IVOL:%dmA.(line:%d)\r\n",(uint16_t)g_pmu_Adc_Ivol,(u16)__LINE__); #endif @@ -1144,8 +1701,8 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) { Vox_Follow_Chg_Debounce = 0; - if ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] ) || \ - ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] ) ) //当前电流大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。 + if ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_TYPE] ) || \ + ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_TYPE] ) ) //当前电流大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。 { Follow_Chg_Sta = Vox_Follow_Chg_InitSta; @@ -1156,87 +1713,87 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) } else { - if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] == ON ) + if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] == ON ) { - if ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] <= VOX_CV_TC_CURRENT ) //检测到Ivor小于CV/TC电流阈值,则说明耳机进入CV/TC阶段 + if ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] <= VOX_CV_TC_CURRENT ) //检测到Ivor小于CV/TC电流阈值,则说明耳机进入CV/TC阶段 { if ( CHIP_STA1 & VOR_Ioff ) //检测到Ivor Ioff,则VPMID升档。 { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_TYPE] = ON; if ( n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present >= VOUT_MAX_THD ) //Vpmid电压升到最大,并且IOFF标志存在,则说明耳机充满。 { - n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = OFF; + n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] = OFF; } #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CV),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CV),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE],(u16)__LINE__); #endif } else //未检测到Ivor Ioff,则Vpmid降档 { - n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CV),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CV),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE],(u16)__LINE__); #endif } } else { - if ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] ) + if ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_TYPE] ) { - n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CC),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CC),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE],(u16)__LINE__); #endif } else { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_TYPE] = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CC),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CC),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE],(u16)__LINE__); #endif } } } - if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] == ON ) + if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] == ON ) { - if ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] <= VOX_CV_TC_CURRENT ) //检测到Ivol小于CV/TC电流阈值,则说明耳机进入CV/TC阶段 + if ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] <= VOX_CV_TC_CURRENT ) //检测到Ivol小于CV/TC电流阈值,则说明耳机进入CV/TC阶段 { if ( CHIP_STA1 & VOL_Ioff ) //检测到Ivol Ioff,则VPMID升档。 { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_TYPE] = ON; if ( n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present >= VOUT_MAX_THD ) //Vpmid电压升到最大,并且IOFF标志存在,则说明耳机充满。 { - n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = OFF; + n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] = OFF; } #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CV),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CV),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE],(u16)__LINE__); #endif } else //未检测到Ivol Ioff,则Vpmid降档 { - n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_TYPE] = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CV),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CV),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE],(u16)__LINE__); #endif } } else { - if ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] ) + if ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_TYPE] ) { - n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_TYPE] = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CC),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CC),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE],(u16)__LINE__); #endif } else { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_TYPE] = ON; #ifdef _DEBUG_FOLLOW - printf("Follow CHG Sta3(CC),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__); + printf("Follow CHG Sta3(CC),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE],(u16)__LINE__); #endif } } @@ -1253,25 +1810,25 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) /* 每2s检测一次IVOX电流。 */ Vox_Follow_Chg_Debounce++; - n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] = g_pmu_Adc_Ivor; + n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] = g_pmu_Adc_Ivor; - n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] = g_pmu_Adc_Ivol; + n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] = g_pmu_Adc_Ivol; } else { Vox_Follow_Chg_Debounce = 0; /* 充电效率优先 */ #ifdef FOLLOW_CHG_EFFICIENCY - if ( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] == ON ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] == ON ) ) + if ( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] == ON ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] == ON ) ) { - if ( ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] ) || \ - ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] ) ) && \ - ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] ) || \ - ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] ) ) ) + if ( ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_TYPE] ) || \ + ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_TYPE] ) ) && \ + ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_TYPE] ) || \ + ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_TYPE] ) ) ) { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_TYPE] = ON; - n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_TYPE] = ON; Follow_Chg_Sta = Vox_Follow_Chg_Sta2; #ifdef _DEBUG_FOLLOW @@ -1290,13 +1847,13 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) #endif { /* 充电速度优先 */ - if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] == ON ) + if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] == ON ) { /* 当检测到 IVOX < IVOX_THN or IVOX > IVOX_THP,则PMID 升高一个step(或N个step,根据实际测试设定。) */ - if ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] ) || \ - ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] ) ) + if ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_TYPE] ) || \ + ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_TYPE] ) ) { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_TYPE] = ON; Follow_Chg_Sta = Vox_Follow_Chg_Sta2; #ifdef _DEBUG_FOLLOW @@ -1311,12 +1868,12 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) #endif } - if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] == ON ) + if ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] == ON ) { - if ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] ) || \ - ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] ) ) + if ( ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] > n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_TYPE] ) || \ + ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_TYPE] < n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_TYPE] ) ) { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_TYPE] = ON; Follow_Chg_Sta = Vox_Follow_Chg_Sta2; #ifdef _DEBUG_FOLLOW @@ -1339,14 +1896,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) break; } - if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] == ON ) || ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] == ON ) ) + if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] == ON ) || ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] == ON ) ) { - if( ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) || ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] == ON ) ) //当需要降压Vpmid,则每降一次档位,都会充电至少2s。 + if( ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] == ON ) || ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_TYPE] == ON ) ) //当需要降压Vpmid,则每降一次档位,都会充电至少2s。 { - if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] == ON ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] == ON ) ) + if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] == ON ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] == ON ) ) { - if( ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) && ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) ) + if( ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] == ON ) && ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] == ON ) ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; #ifdef _DEBUG_FOLLOW @@ -1354,9 +1911,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) #endif } } - if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] == ON ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] == OFF ) ) + if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] == ON ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] == OFF ) ) { - if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) + if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] == ON ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; #ifdef _DEBUG_FOLLOW @@ -1365,9 +1922,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) } } else - if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] == OFF ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] == ON ) ) + if( ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_TYPE] == OFF ) && ( n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_TYPE] == ON ) ) { - if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] == ON ) + if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_TYPE] == ON ) { n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON; #ifdef _DEBUG_FOLLOW @@ -1376,9 +1933,9 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) } } - n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_TYPE] = OFF; - n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_TYPE] = OFF; if ( n_Vox_Fllow_Chg->Vpmid_SubSta_Flag == ON ) { @@ -1427,11 +1984,11 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg ) else { /* PMID > PMID_THP,且VOL和VOR的任意一支路电流超过阈值,Ivol_THN > Ivol > Ivol_THP 或 Ivor_THN > Ivor > Ivor_THP。*/ - if( ( n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] == ON ) || ( n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] == ON ) ) + if( ( n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_TYPE] == ON ) || ( n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_TYPE] == ON ) ) { - n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_TYPE] = OFF; - n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = OFF; + n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_TYPE] = OFF; if( n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present < VOUT_MAX_THD ) { @@ -1937,7 +2494,22 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select) #endif /* vor、vol都使用uart1进行分时通讯,设置TX模式*/ +#ifdef VOX_ADT_ENABLE + + if(nVox_Chn_Select == VOL_CHAN) + { + VOL_EN_Type( VOX_COMM_Mode_Uart ); + } + else + { + VOR_EN_Type( VOX_COMM_Mode_Uart ); + } + +#else + VOX_EN_Type( VOX_COMM_Mode_Uart ); + +#endif if(nVox_Chn_Select == VOL_CHAN) { @@ -2264,15 +2836,23 @@ void HandleRxMsg(VOX_BES_COMMAND_E RxCommand) void HandleVoxCommMsg(void) { - uint16_t CrcCheckSum = 0; uint8_t i = 0; + #if XUANHENG - uint16_t Data_Len = 0; + + uint16_t CrcCheckSum = 0; + + uint16_t Data_Len = 0; + +#else + + uint8_t CrcCheckSum = 0; + #endif /*RX数据处理*/ if( Uart1_RX_Finish_Flag ) { - Uart1_RX_Finish_Flag = 0; + Uart1_RX_Finish_Flag = FALSE; #ifdef _DEBUG_VOX printf("RX1_Buffer[0]:0x%x,RX1_Buffer[1]:0x%x,RX1_Buffer[2]:0x%x,RX1_Buffer[3]:0x%x,RX1_Buffer[4]:0x%x,RX1_Buffer[5]:0x%x,RX1_Buffer[6]:0x%x,line:%d\r\n",(u16)RX1_Buffer[0],(u16)RX1_Buffer[1],(u16)RX1_Buffer[2],(u16)RX1_Buffer[3],(u16)RX1_Buffer[4],(u16)RX1_Buffer[5],(u16)RX1_Buffer[6],(u16)__LINE__); diff --git a/UsrSrc/watchdog/watchdog.c b/UsrSrc/watchdog/watchdog.c index 9ab972a..f4a4e66 100644 --- a/UsrSrc/watchdog/watchdog.c +++ b/UsrSrc/watchdog/watchdog.c @@ -3,7 +3,7 @@ * * @file watchdog.c * @brief watchdog module - * @ic sy8835 + * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 15:00:40