diff --git a/baseflight.uvgui.timecop b/baseflight.uvgui.timecop index c325186e6..9a6fac964 100755 --- a/baseflight.uvgui.timecop +++ b/baseflight.uvgui.timecop @@ -5,29 +5,23 @@
### uVision Project, (C) Keil Software
- - - System Viewer\I2C2 - - 133 - - + 38003 Registers - 115 100 + 115 93 346 Code Coverage - 1136 261 + 1136 680 204 Performance Analyzer - 1296 194 194 100 + 1296 194 194 132 @@ -96,8 +90,8 @@ 0 - 1795 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000015000000080000000100000035443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C737461727475705F73746D3332663130785F6D642E730000000016737461727475705F73746D3332663130785F6D642E7300000000A5C2D700FFFFFFFF28443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F6164632E6300000000096472765F6164632E63000000005FC3CF00FFFFFFFF28443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F6932632E6800000000096472765F6932632E6800000000FFDC7800FFFFFFFF23443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6D772E6800000000046D772E6800000000C5D4F200FFFFFFFF52443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6C69625C53544D3332463130785F5374645065726970685F4472697665725C7372635C73746D3332663130785F6770696F2E63000000001073746D3332663130785F6770696F2E6300000000C1838300FFFFFFFF25443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6D61696E2E6300000000066D61696E2E6300000000B5E99D00FFFFFFFF26443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C626F6172642E680000000007626F6172642E6800000000C5D4F200FFFFFFFF27443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C73657269616C2E63000000000873657269616C2E6300000000FFDC7800FFFFFFFF23443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6D772E6300000000046D772E6300000000BECEA100FFFFFFFF2C443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F6D7075333035302E63000000000D6472765F6D7075333035302E6300000000F0A0A100FFFFFFFF2C443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F6164786C3334352E63000000000D6472765F6164786C3334352E6300000000BCA8E100FFFFFFFF2D443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F686D63353838336C2E63000000000E6472765F686D63353838336C2E63000000009CC1B600FFFFFFFF24443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C696D752E630000000005696D752E6300000000F7B88600FFFFFFFF28443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C73656E736F72732E63000000000973656E736F72732E6300000000D9ADC200FFFFFFFF28443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F6932632E6300000000096472765F6932632E6300000000B5E99D00FFFFFFFF2B443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F626D703038352E63000000000C6472765F626D703038352E6300000000B3A6BE00FFFFFFFF2B443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F73797374656D2E63000000000C6472765F73797374656D2E6300000000EAD6A300FFFFFFFF51443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6C69625C53544D3332463130785F5374645065726970685F4472697665725C7372635C73746D3332663130785F7263632E63000000000F73746D3332663130785F7263632E6300000000F6FA7D00FFFFFFFF51443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6C69625C53544D3332463130785F5374645065726970685F4472697665725C696E635C73746D3332663130785F7263632E68000000000F73746D3332663130785F7263632E68000000005FC3CF00FFFFFFFF52443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6C69625C53544D3332463130785F5374645065726970685F4472697665725C696E635C73746D3332663130785F6770696F2E68000000001073746D3332663130785F6770696F2E6800000000CACAD500FFFFFFFF28443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F70776D2E6300000000096472765F70776D2E6300000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000DE0000005E00000000080000FE020000 + 629 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000007000000030000000100000027443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C636F6E6669672E630000000008636F6E6669672E6300000000FFDC7800FFFFFFFF2B443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F73797374656D2E63000000000C6472765F73797374656D2E6300000000BECEA100FFFFFFFF23443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6D772E6800000000046D772E6800000000BCA8E100FFFFFFFF25443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6D61696E2E6300000000066D61696E2E6300000000F0A0A100FFFFFFFF26443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6D697865722E6300000000076D697865722E6300000000BCA8E100FFFFFFFF27443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C73657269616C2E63000000000873657269616C2E63000000009CC1B600FFFFFFFF2B443A5C666C795F3132325C70726F6A656374735C62617365666C696768745C6472765F73797374656D2E68000000000C6472765F73797374656D2E6800000000F7B88600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000DE0000005E00000000080000FE020000 @@ -1583,6 +1577,26 @@ 0A0000000A0000006E0000006E000000 + + 50029 + 50029 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + 50034 50034 @@ -2303,6 +2317,26 @@ 0A0000000A0000006E0000006E000000 + + 50393 + 50393 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6B04000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + 50407 50407 @@ -2923,6 +2957,46 @@ 0A0000000A0000006E0000006E000000 + + 50646 + 50646 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E100000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50649 + 50649 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + 50666 50666 @@ -2943,6 +3017,26 @@ 0A0000000A0000006E0000006E000000 + + 50671 + 50671 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + 50678 50678 @@ -3183,6 +3277,66 @@ 0A0000000A0000006E0000006E000000 + + 50730 + 50730 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50734 + 50734 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E100000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50741 + 50741 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E100000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + 50743 50743 @@ -3284,8 +3438,8 @@ - 50770 - 50770 + 50758 + 50758 0 0 0 @@ -3304,8 +3458,8 @@ - 50771 - 50771 + 50761 + 50761 0 0 0 @@ -3324,8 +3478,8 @@ - 50775 - 50775 + 50764 + 50764 1 0 0 @@ -3336,7 +3490,7 @@ 0 16 - E100000075000000F50500008E000000 + 6B04000075000000F50500008E000000 16 @@ -3344,8 +3498,8 @@ - 50803 - 50803 + 50770 + 50770 0 0 0 @@ -3364,8 +3518,8 @@ - 50804 - 50804 + 50771 + 50771 0 0 0 @@ -3384,9 +3538,9 @@ - 50890 - 50890 - 0 + 50775 + 50775 + 1 0 0 0 @@ -3396,7 +3550,7 @@ 0 16 - 0300000082020000930100009B020000 + E100000075000000F50500008E000000 16 @@ -3404,9 +3558,9 @@ - 50912 - 50912 - 1 + 50784 + 50784 + 0 0 0 0 @@ -3416,7 +3570,7 @@ 0 16 - E100000075000000F50500008E000000 + 0300000082020000930100009B020000 16 @@ -3424,8 +3578,8 @@ - 50913 - 50913 + 50786 + 50786 0 0 0 @@ -3444,8 +3598,8 @@ - 50914 - 50914 + 50791 + 50791 0 0 0 @@ -3464,8 +3618,28 @@ - 50915 - 50915 + 50793 + 50793 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6B04000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50796 + 50796 0 0 0 @@ -3484,9 +3658,9 @@ - 50916 - 50916 - 1 + 50801 + 50801 + 0 0 0 0 @@ -3496,7 +3670,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 0300000082020000930100009B020000 16 @@ -3504,19 +3678,19 @@ - 59392 - 59392 - 1 + 50803 + 50803 + 0 0 0 0 - 882 + 32767 0 - 8192 + 4096 0 16 - 00000000000000007D0300001A000000 + 0300000082020000930100009B020000 16 @@ -3524,9 +3698,9 @@ - 59393 - 0 - 1 + 50804 + 50804 + 0 0 0 0 @@ -3536,7 +3710,7 @@ 0 16 - 000000003E0400000008000051040000 + 0300000082020000930100009B020000 16 @@ -3544,19 +3718,19 @@ - 59398 - 59398 - 1 + 50818 + 50818 + 0 0 0 0 - 373 + 32767 0 - 8192 - 1 + 4096 + 0 16 - 000000001A0000008001000034000000 + 0300000082020000930100009B020000 16 @@ -3564,9 +3738,9 @@ - 593980 - 59398 - 1 + 50826 + 50826 + 0 0 0 0 @@ -3576,7 +3750,7 @@ 0 16 - 00000000000000000108000017000000 + 0300000082020000930100009B020000 16 @@ -3584,19 +3758,319 @@ - 59399 - 59399 - 0 + 50841 + 50841 + 1 0 0 0 - 602 + 32767 0 - 8192 - 2 + 4096 + 0 16 - 0000000034000000650200004E000000 + 6B04000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50846 + 50846 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6B04000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50848 + 50848 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50852 + 50852 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50864 + 50864 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E100000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50890 + 50890 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50912 + 50912 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E100000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50913 + 50913 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50914 + 50914 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50915 + 50915 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000082020000930100009B020000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50916 + 50916 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 6B04000075000000F50500008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59392 + 59392 + 1 + 0 + 0 + 0 + 882 + 0 + 8192 + 0 + + 16 + 00000000000000007D0300001A000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59393 + 0 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 000000003E0400000008000051040000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59398 + 59398 + 1 + 0 + 0 + 0 + 373 + 0 + 8192 + 1 + + 16 + 000000001A0000008001000034000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 593980 + 59398 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 00000000000000000008000017000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 59399 + 59399 + 0 + 0 + 0 + 0 + 602 + 0 + 8192 + 2 + + 16 + 0000000034000000650200004E000000 16 @@ -3612,7 +4086,7 @@ File 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020000001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C6572030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C6572030000 1423 @@ -3665,9 +4139,169 @@ 1 Debug - -1 - -1 - 1 + -1 + -1 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + DE0000004B0000000008000092010000 + + + 16 + DE0000005E00000000080000A5010000 + + + + 1005 + 1005 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000D70000004C020000 + + + 16 + 1A0000002D000000F4000000AC020000 + + + + 109 + 109 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 0300000062000000D700000003030000 + + + 16 + 1A0000002D000000F4000000AC020000 + + + + 1465 + 1465 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1466 + 1466 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1467 + 1467 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1468 + 1468 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1506 + 1506 + 0 + 0 + 0 + 0 + 32767 + 0 + 16384 + 0 + + 16 + 7306000062000000FD07000003030000 + + + 16 + 1A0000002D000000AA010000BD010000 + + + + 1913 + 1913 + 0 0 0 0 @@ -3677,19 +4311,159 @@ 0 16 - DE0000004B0000006C06000092010000 + E100000062000000FD07000079010000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1935 + 1935 + 1 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 16 - DE0000005E0000006C060000A5010000 + 1A0000002D000000AA010000BD010000 - 1005 - 1005 + 1936 + 1936 1 0 0 + 1 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D000000AA010000BD010000 + + + + 1937 + 1937 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D000000AA010000BD010000 + + + + 1939 + 1939 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1940 + 1940 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1941 + 1941 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 1942 + 1942 + 0 + 0 + 0 + 0 + 32767 + 0 + 32768 + 0 + + 16 + 0704000080020000FD0700006E030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 195 + 195 + 0 + 0 + 0 0 32767 0 @@ -3705,8 +4479,8 @@ - 109 - 109 + 196 + 196 0 0 0 @@ -3725,9 +4499,9 @@ - 1465 - 1465 - 1 + 197 + 197 + 0 0 0 0 @@ -3737,7 +4511,7 @@ 0 16 - 0704000037030000FD07000025040000 + 03000000A2030000FD07000025040000 16 @@ -3745,59 +4519,139 @@ - 1466 - 1466 + 198 + 198 + 1 + 0 + 0 + 1 + 32767 + 0 + 32768 + 0 + + 16 + 00000000690200000004000087030000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 199 + 199 + 1 + 0 + 0 + 1 + 32767 + 0 + 4096 + 0 + + 16 + 000000009F030000000800003E040000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 203 + 203 1 0 0 + 1 + 32767 + 0 + 8192 + 0 + + 16 + DE0000005F0000000008000092010000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 204 + 204 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E100000062000000FD07000079010000 + + + 16 + 1A0000002D00000016030000CC000000 + + + + 221 + 221 + 0 + 0 + 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 00000000000000000000000000000000 16 - 1A0000002D00000016030000CC000000 + 0A0000000A0000006E0000006E000000 - 1467 - 1467 + 2506 + 2506 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + E100000062000000FD07000079010000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 1468 - 1468 + 343 + 343 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + E100000062000000FD07000079010000 16 @@ -3805,28 +4659,28 @@ - 1506 - 1506 + 346 + 346 0 0 0 0 32767 0 - 16384 + 4096 0 16 - 7306000062000000FD07000003030000 + E100000062000000FD07000079010000 16 - 1A0000002D000000AA010000BD010000 + 1A0000002D00000016030000CC000000 - 1913 - 1913 + 35824 + 35824 0 0 0 @@ -3837,7 +4691,7 @@ 0 16 - E1000000620000006906000079010000 + E100000062000000FD07000079010000 16 @@ -3845,19 +4699,19 @@ - 1935 - 1935 - 1 + 35885 + 35885 + 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 7306000062000000FD07000003030000 16 @@ -3865,19 +4719,19 @@ - 1936 - 1936 - 1 + 35886 + 35886 + 0 0 0 - 1 + 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 7306000062000000FD07000003030000 16 @@ -3885,19 +4739,19 @@ - 1937 - 1937 + 35887 + 35887 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 7306000062000000FD07000003030000 16 @@ -3905,88 +4759,88 @@ - 1939 - 1939 + 35888 + 35888 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 1940 - 1940 + 35889 + 35889 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 1941 - 1941 + 35890 + 35890 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 1942 - 1942 + 35891 + 35891 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 0704000037030000FD07000025040000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 195 - 195 + 35892 + 35892 0 0 0 @@ -3997,16 +4851,16 @@ 0 16 - 0300000062000000D700000003030000 + 7306000062000000FD07000003030000 16 - 1A0000002D000000F4000000AC020000 + 1A0000002D000000AA010000BD010000 - 196 - 196 + 35893 + 35893 0 0 0 @@ -4017,56 +4871,56 @@ 0 16 - 0300000062000000D700000003030000 + 7306000062000000FD07000003030000 16 - 1A0000002D000000F4000000AC020000 + 1A0000002D000000AA010000BD010000 - 197 - 197 + 35894 + 35894 0 0 0 0 32767 0 - 32768 + 4096 0 16 - 03000000A2030000FD07000025040000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 198 - 198 - 1 + 35895 + 35895 + 0 0 0 - 1 + 0 32767 0 - 32768 + 4096 0 16 - 0000000020030000000400003E040000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 199 - 199 + 35896 + 35896 0 0 0 @@ -4077,36 +4931,36 @@ 0 16 - 03000000A2030000FD07000025040000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 203 - 203 - 1 + 35897 + 35897 + 0 0 0 - 1 + 0 32767 0 - 8192 + 4096 0 16 - DE0000005F0000006C06000092010000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 204 - 204 + 35898 + 35898 0 0 0 @@ -4117,16 +4971,16 @@ 0 16 - E1000000620000006906000079010000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 221 - 221 + 35899 + 35899 0 0 0 @@ -4137,16 +4991,16 @@ 0 16 - 00000000000000000000000000000000 + 7306000062000000FD07000003030000 16 - 0A0000000A0000006E0000006E000000 + 1A0000002D000000AA010000BD010000 - 2506 - 2506 + 35900 + 35900 0 0 0 @@ -4157,7 +5011,7 @@ 0 16 - E1000000620000006906000079010000 + 7306000062000000FD07000003030000 16 @@ -4165,8 +5019,8 @@ - 343 - 343 + 35901 + 35901 0 0 0 @@ -4177,16 +5031,16 @@ 0 16 - E1000000620000006906000079010000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 346 - 346 + 35902 + 35902 0 0 0 @@ -4197,16 +5051,16 @@ 0 16 - E1000000620000006906000079010000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 35824 - 35824 + 35903 + 35903 0 0 0 @@ -4217,16 +5071,16 @@ 0 16 - E1000000620000006906000079010000 + 7306000062000000FD07000003030000 16 - 1A0000002D00000016030000CC000000 + 1A0000002D000000AA010000BD010000 - 35885 - 35885 + 35904 + 35904 0 0 0 @@ -4245,8 +5099,8 @@ - 35886 - 35886 + 35905 + 35905 0 0 0 @@ -4265,28 +5119,28 @@ - 35887 - 35887 - 0 + 38003 + 38003 + 1 0 0 - 0 + 1 32767 0 4096 0 16 - 7306000062000000FD07000003030000 + 0300000062000000D70000004C020000 16 - 1A0000002D000000AA010000BD010000 + 1A0000002D000000F4000000AC020000 - 35888 - 35888 + 38007 + 38007 0 0 0 @@ -4297,17 +5151,17 @@ 0 16 - 7306000062000000FD07000003030000 + 03000000A2030000FD07000025040000 16 - 1A0000002D000000AA010000BD010000 + 1A0000002D00000016030000CC000000 - 35889 - 35889 - 0 + 49929 + 49929 + 1 0 0 0 @@ -4317,16 +5171,16 @@ 0 16 - 7306000062000000FD07000003030000 + 6B04000075000000F50500008E000000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35890 - 35890 + 49930 + 49930 0 0 0 @@ -4337,16 +5191,16 @@ 0 16 - 7306000062000000FD07000003030000 + 070400009302000097050000AC020000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35891 - 35891 + 49933 + 49933 0 0 0 @@ -4357,16 +5211,16 @@ 0 16 - 7306000062000000FD07000003030000 + 070400009302000097050000AC020000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35892 - 35892 + 49934 + 49934 0 0 0 @@ -4377,17 +5231,17 @@ 0 16 - 7306000062000000FD07000003030000 + 070400009302000097050000AC020000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35893 - 35893 - 0 + 49937 + 49937 + 1 0 0 0 @@ -4397,16 +5251,16 @@ 0 16 - 7306000062000000FD07000003030000 + 6B04000075000000F50500008E000000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35894 - 35894 + 49938 + 49938 0 0 0 @@ -4417,17 +5271,17 @@ 0 16 - 7306000062000000FD07000003030000 + 0704000023030000970500003C030000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35895 - 35895 - 0 + 49939 + 49939 + 1 0 0 0 @@ -4437,16 +5291,16 @@ 0 16 - 7306000062000000FD07000003030000 + 6B04000075000000F50500008E000000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35896 - 35896 + 49940 + 49940 0 0 0 @@ -4457,16 +5311,16 @@ 0 16 - 7306000062000000FD07000003030000 + 0704000023030000970500003C030000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35897 - 35897 + 49941 + 49941 0 0 0 @@ -4477,16 +5331,16 @@ 0 16 - 7306000062000000FD07000003030000 + 0704000023030000970500003C030000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35898 - 35898 + 49942 + 49942 0 0 0 @@ -4497,17 +5351,17 @@ 0 16 - 7306000062000000FD07000003030000 + 0704000023030000970500003C030000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35899 - 35899 - 0 + 49943 + 49943 + 1 0 0 0 @@ -4517,16 +5371,16 @@ 0 16 - 7306000062000000FD07000003030000 + E100000075000000FD0700008E000000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35900 - 35900 + 49945 + 49945 0 0 0 @@ -4537,16 +5391,16 @@ 0 16 - 7306000062000000FD07000003030000 + 0704000023030000970500003C030000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35901 - 35901 + 49946 + 49946 0 0 0 @@ -4557,17 +5411,17 @@ 0 16 - 7306000062000000FD07000003030000 + 0704000023030000970500003C030000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35902 - 35902 - 0 + 49947 + 49947 + 1 0 0 0 @@ -4577,17 +5431,17 @@ 0 16 - 7306000062000000FD07000003030000 + E100000075000000FD0700008E000000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35903 - 35903 - 0 + 49950 + 49950 + 1 0 0 0 @@ -4597,17 +5451,17 @@ 0 16 - 7306000062000000FD07000003030000 + E100000075000000FD0700008E000000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35904 - 35904 - 0 + 49995 + 49995 + 1 0 0 0 @@ -4617,56 +5471,56 @@ 0 16 - 7306000062000000FD07000003030000 + 6B04000075000000F50500008E000000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 35905 - 35905 - 1 + 50001 + 50001 + 0 0 0 - 1 + 0 32767 0 4096 0 16 - 700600005F000000000800001C030000 + 070400004A0300009705000063030000 16 - 1A0000002D000000AA010000BD010000 + 0A0000000A0000006E0000006E000000 - 38003 - 38003 - 1 + 50006 + 50006 + 0 0 0 - 1 + 0 32767 0 4096 0 16 - 0300000062000000D700000003030000 + 070400004A0300009705000063030000 16 - 1A0000002D000000F4000000AC020000 + 0A0000000A0000006E0000006E000000 - 38007 - 38007 + 50008 + 50008 0 0 0 @@ -4677,16 +5531,16 @@ 0 16 - 03000000A2030000FD07000025040000 + 070400004A0300009705000063030000 16 - 1A0000002D00000016030000CC000000 + 0A0000000A0000006E0000006E000000 - 49929 - 49929 + 50009 + 50009 1 0 0 @@ -4705,8 +5559,8 @@ - 49930 - 49930 + 50010 + 50010 0 0 0 @@ -4717,7 +5571,7 @@ 0 16 - 070400009302000097050000AC020000 + 070400004A0300009705000063030000 16 @@ -4725,8 +5579,8 @@ - 49933 - 49933 + 50018 + 50018 0 0 0 @@ -4737,7 +5591,7 @@ 0 16 - 070400009302000097050000AC020000 + 070400004A0300009705000063030000 16 @@ -4745,9 +5599,9 @@ - 49934 - 49934 - 0 + 50034 + 50034 + 1 0 0 0 @@ -4757,7 +5611,7 @@ 0 16 - 070400009302000097050000AC020000 + E100000075000000FD0700008E000000 16 @@ -4765,9 +5619,9 @@ - 49937 - 49937 - 1 + 50063 + 50063 + 0 0 0 0 @@ -4777,7 +5631,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 070400004A0300009705000063030000 16 @@ -4785,9 +5639,9 @@ - 49938 - 49938 - 0 + 50064 + 50064 + 1 0 0 0 @@ -4797,7 +5651,7 @@ 0 16 - 0704000023030000970500003C030000 + E100000075000000FD0700008E000000 16 @@ -4805,8 +5659,8 @@ - 49939 - 49939 + 50065 + 50065 1 0 0 @@ -4825,8 +5679,8 @@ - 49940 - 49940 + 50066 + 50066 0 0 0 @@ -4837,7 +5691,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400003F0200009705000058020000 16 @@ -4845,8 +5699,8 @@ - 49941 - 49941 + 50067 + 50067 0 0 0 @@ -4857,7 +5711,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400003F0200009705000058020000 16 @@ -4865,8 +5719,8 @@ - 49942 - 49942 + 50068 + 50068 0 0 0 @@ -4877,7 +5731,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400003F0200009705000058020000 16 @@ -4885,8 +5739,8 @@ - 49943 - 49943 + 50069 + 50069 1 0 0 @@ -4905,8 +5759,8 @@ - 49945 - 49945 + 50074 + 50074 0 0 0 @@ -4917,7 +5771,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400004A0300009705000063030000 16 @@ -4925,8 +5779,28 @@ - 49946 - 49946 + 50113 + 50113 + 1 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + E100000075000000FD0700008E000000 + + + 16 + 0A0000000A0000006E0000006E000000 + + + + 50120 + 50120 0 0 0 @@ -4937,7 +5811,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400004A0300009705000063030000 16 @@ -4945,8 +5819,8 @@ - 49947 - 49947 + 50123 + 50123 1 0 0 @@ -4957,7 +5831,7 @@ 0 16 - E100000075000000FD0700008E000000 + 6B04000075000000F50500008E000000 16 @@ -4965,9 +5839,9 @@ - 49950 - 49950 - 1 + 50146 + 50146 + 0 0 0 0 @@ -4977,7 +5851,7 @@ 0 16 - E100000075000000FD0700008E000000 + 0704000023030000970500003C030000 16 @@ -4985,8 +5859,8 @@ - 49995 - 49995 + 50152 + 50152 1 0 0 @@ -5005,9 +5879,9 @@ - 50001 - 50001 - 0 + 50165 + 50165 + 1 0 0 0 @@ -5017,7 +5891,7 @@ 0 16 - 070400004A0300009705000063030000 + 6B04000075000000F50500008E000000 16 @@ -5025,8 +5899,8 @@ - 50006 - 50006 + 50183 + 50183 0 0 0 @@ -5045,9 +5919,9 @@ - 50008 - 50008 - 0 + 50185 + 50185 + 1 0 0 0 @@ -5057,7 +5931,7 @@ 0 16 - 070400004A0300009705000063030000 + E100000075000000FD0700008E000000 16 @@ -5065,8 +5939,8 @@ - 50009 - 50009 + 50188 + 50188 1 0 0 @@ -5085,8 +5959,8 @@ - 50010 - 50010 + 50189 + 50189 0 0 0 @@ -5105,8 +5979,8 @@ - 50018 - 50018 + 50190 + 50190 0 0 0 @@ -5125,9 +5999,9 @@ - 50034 - 50034 - 1 + 50227 + 50227 + 0 0 0 0 @@ -5137,7 +6011,7 @@ 0 16 - E100000075000000FD0700008E000000 + 070400004A0300009705000063030000 16 @@ -5145,8 +6019,8 @@ - 50063 - 50063 + 50237 + 50237 0 0 0 @@ -5165,8 +6039,8 @@ - 50064 - 50064 + 50246 + 50246 1 0 0 @@ -5177,7 +6051,7 @@ 0 16 - E100000075000000FD0700008E000000 + 6B04000075000000F50500008E000000 16 @@ -5185,8 +6059,8 @@ - 50065 - 50065 + 50325 + 50325 1 0 0 @@ -5197,7 +6071,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 7306000075000000FD0700008E000000 16 @@ -5205,9 +6079,9 @@ - 50066 - 50066 - 0 + 50357 + 50357 + 1 0 0 0 @@ -5217,7 +6091,7 @@ 0 16 - 070400003F0200009705000058020000 + E100000075000000FD0700008E000000 16 @@ -5225,8 +6099,8 @@ - 50067 - 50067 + 50367 + 50367 0 0 0 @@ -5237,7 +6111,7 @@ 0 16 - 070400003F0200009705000058020000 + 070400004A0300009705000063030000 16 @@ -5245,8 +6119,8 @@ - 50068 - 50068 + 50374 + 50374 0 0 0 @@ -5257,7 +6131,7 @@ 0 16 - 070400003F0200009705000058020000 + 070400004A0300009705000063030000 16 @@ -5265,8 +6139,8 @@ - 50069 - 50069 + 50375 + 50375 1 0 0 @@ -5285,8 +6159,8 @@ - 50074 - 50074 + 50382 + 50382 0 0 0 @@ -5305,9 +6179,9 @@ - 50113 - 50113 - 1 + 50387 + 50387 + 0 0 0 0 @@ -5317,7 +6191,7 @@ 0 16 - E100000075000000FD0700008E000000 + 070400004A0300009705000063030000 16 @@ -5325,8 +6199,8 @@ - 50120 - 50120 + 50390 + 50390 0 0 0 @@ -5345,8 +6219,8 @@ - 50123 - 50123 + 50393 + 50393 1 0 0 @@ -5357,7 +6231,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 7306000075000000FD0700008E000000 16 @@ -5365,9 +6239,9 @@ - 50146 - 50146 - 0 + 50407 + 50407 + 1 0 0 0 @@ -5377,7 +6251,7 @@ 0 16 - 0704000023030000970500003C030000 + 6B04000075000000F50500008E000000 16 @@ -5385,9 +6259,9 @@ - 50152 - 50152 - 1 + 50410 + 50410 + 0 0 0 0 @@ -5397,7 +6271,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 070400004A0300009705000063030000 16 @@ -5405,8 +6279,8 @@ - 50165 - 50165 + 50411 + 50411 1 0 0 @@ -5417,7 +6291,7 @@ 0 16 - 6B04000075000000F50500008E000000 + E100000075000000FD0700008E000000 16 @@ -5425,8 +6299,8 @@ - 50183 - 50183 + 50415 + 50415 0 0 0 @@ -5437,7 +6311,7 @@ 0 16 - 070400004A0300009705000063030000 + 0704000023030000970500003C030000 16 @@ -5445,8 +6319,8 @@ - 50185 - 50185 + 50428 + 50428 1 0 0 @@ -5457,7 +6331,7 @@ 0 16 - E100000075000000FD0700008E000000 + 6B04000075000000F50500008E000000 16 @@ -5465,8 +6339,8 @@ - 50188 - 50188 + 50470 + 50470 1 0 0 @@ -5477,7 +6351,7 @@ 0 16 - 6B04000075000000F50500008E000000 + E100000075000000FD0700008E000000 16 @@ -5485,9 +6359,9 @@ - 50189 - 50189 - 0 + 50529 + 50529 + 1 0 0 0 @@ -5497,7 +6371,7 @@ 0 16 - 070400004A0300009705000063030000 + 6B04000075000000F50500008E000000 16 @@ -5505,9 +6379,9 @@ - 50190 - 50190 - 0 + 50530 + 50530 + 1 0 0 0 @@ -5517,7 +6391,7 @@ 0 16 - 070400004A0300009705000063030000 + 6B04000075000000F50500008E000000 16 @@ -5525,8 +6399,8 @@ - 50227 - 50227 + 50531 + 50531 0 0 0 @@ -5537,7 +6411,7 @@ 0 16 - 070400004A0300009705000063030000 + 070400009302000097050000AC020000 16 @@ -5545,8 +6419,8 @@ - 50237 - 50237 + 50532 + 50532 0 0 0 @@ -5557,7 +6431,7 @@ 0 16 - 070400004A0300009705000063030000 + 070400009302000097050000AC020000 16 @@ -5565,9 +6439,9 @@ - 50246 - 50246 - 1 + 50533 + 50533 + 0 0 0 0 @@ -5577,7 +6451,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 070400009302000097050000AC020000 16 @@ -5585,8 +6459,8 @@ - 50325 - 50325 + 50534 + 50534 1 0 0 @@ -5597,7 +6471,7 @@ 0 16 - 7306000075000000FD0700008E000000 + E100000075000000FD0700008E000000 16 @@ -5605,9 +6479,9 @@ - 50357 - 50357 - 1 + 50536 + 50536 + 0 0 0 0 @@ -5617,7 +6491,7 @@ 0 16 - E100000075000000FD0700008E000000 + 070400009302000097050000AC020000 16 @@ -5625,8 +6499,8 @@ - 50367 - 50367 + 50537 + 50537 0 0 0 @@ -5637,7 +6511,7 @@ 0 16 - 070400004A0300009705000063030000 + 070400009302000097050000AC020000 16 @@ -5645,8 +6519,8 @@ - 50374 - 50374 + 50538 + 50538 0 0 0 @@ -5657,7 +6531,7 @@ 0 16 - 070400004A0300009705000063030000 + 070400009302000097050000AC020000 16 @@ -5665,8 +6539,8 @@ - 50375 - 50375 + 50539 + 50539 1 0 0 @@ -5685,9 +6559,9 @@ - 50382 - 50382 - 0 + 50564 + 50564 + 1 0 0 0 @@ -5697,7 +6571,7 @@ 0 16 - 070400004A0300009705000063030000 + E100000075000000FD0700008E000000 16 @@ -5705,8 +6579,8 @@ - 50387 - 50387 + 50570 + 50570 0 0 0 @@ -5725,8 +6599,8 @@ - 50390 - 50390 + 50571 + 50571 0 0 0 @@ -5737,7 +6611,7 @@ 0 16 - 070400004A0300009705000063030000 + 0704000023030000970500003C030000 16 @@ -5745,8 +6619,8 @@ - 50407 - 50407 + 50580 + 50580 1 0 0 @@ -5765,29 +6639,9 @@ - 50410 - 50410 - 0 - 0 - 0 - 0 - 32767 - 0 - 4096 - 0 - - 16 - 070400004A0300009705000063030000 - - - 16 - 0A0000000A0000006E0000006E000000 - - - - 50411 - 50411 - 1 + 50604 + 50604 + 0 0 0 0 @@ -5797,7 +6651,7 @@ 0 16 - E100000075000000FD0700008E000000 + 0704000023030000970500003C030000 16 @@ -5805,8 +6659,8 @@ - 50415 - 50415 + 50645 + 50645 0 0 0 @@ -5817,7 +6671,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400004A0300009705000063030000 16 @@ -5825,8 +6679,8 @@ - 50428 - 50428 + 50646 + 50646 1 0 0 @@ -5837,7 +6691,7 @@ 0 16 - 6B04000075000000F50500008E000000 + E100000075000000FD0700008E000000 16 @@ -5845,9 +6699,9 @@ - 50470 - 50470 - 1 + 50649 + 50649 + 0 0 0 0 @@ -5857,7 +6711,7 @@ 0 16 - E100000075000000FD0700008E000000 + 070400004A0300009705000063030000 16 @@ -5865,9 +6719,9 @@ - 50529 - 50529 - 1 + 50666 + 50666 + 0 0 0 0 @@ -5877,7 +6731,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 070400004A0300009705000063030000 16 @@ -5885,9 +6739,9 @@ - 50530 - 50530 - 1 + 50671 + 50671 + 0 0 0 0 @@ -5897,7 +6751,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 070400004A0300009705000063030000 16 @@ -5905,8 +6759,8 @@ - 50531 - 50531 + 50686 + 50686 0 0 0 @@ -5917,7 +6771,7 @@ 0 16 - 070400009302000097050000AC020000 + 070400004A0300009705000063030000 16 @@ -5925,8 +6779,8 @@ - 50532 - 50532 + 50687 + 50687 0 0 0 @@ -5937,7 +6791,7 @@ 0 16 - 070400009302000097050000AC020000 + 070400004A0300009705000063030000 16 @@ -5945,8 +6799,8 @@ - 50533 - 50533 + 50698 + 50698 0 0 0 @@ -5957,7 +6811,7 @@ 0 16 - 070400009302000097050000AC020000 + 070400004A0300009705000063030000 16 @@ -5965,8 +6819,8 @@ - 50534 - 50534 + 50704 + 50704 1 0 0 @@ -5977,7 +6831,7 @@ 0 16 - E100000075000000FD0700008E000000 + 6B04000075000000F50500008E000000 16 @@ -5985,9 +6839,9 @@ - 50536 - 50536 - 0 + 50708 + 50708 + 1 0 0 0 @@ -5997,7 +6851,7 @@ 0 16 - 070400009302000097050000AC020000 + E100000075000000FD0700008E000000 16 @@ -6005,8 +6859,8 @@ - 50537 - 50537 + 50710 + 50710 0 0 0 @@ -6017,7 +6871,7 @@ 0 16 - 070400009302000097050000AC020000 + 070400004A0300009705000063030000 16 @@ -6025,9 +6879,9 @@ - 50538 - 50538 - 0 + 50724 + 50724 + 1 0 0 0 @@ -6037,7 +6891,7 @@ 0 16 - 070400009302000097050000AC020000 + E100000075000000690600008E000000 16 @@ -6045,8 +6899,8 @@ - 50539 - 50539 + 50731 + 50731 1 0 0 @@ -6057,7 +6911,7 @@ 0 16 - E100000075000000FD0700008E000000 + 7006000072000000000800008B000000 16 @@ -6065,8 +6919,8 @@ - 50564 - 50564 + 50741 + 50741 1 0 0 @@ -6085,9 +6939,9 @@ - 50570 - 50570 - 0 + 50743 + 50743 + 1 0 0 0 @@ -6097,7 +6951,7 @@ 0 16 - 070400004A0300009705000063030000 + 7306000075000000FD0700008E000000 16 @@ -6105,8 +6959,8 @@ - 50571 - 50571 + 50745 + 50745 0 0 0 @@ -6117,7 +6971,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400004A0300009705000063030000 16 @@ -6125,9 +6979,9 @@ - 50580 - 50580 - 1 + 50746 + 50746 + 0 0 0 0 @@ -6137,7 +6991,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 070400004A0300009705000063030000 16 @@ -6145,9 +6999,9 @@ - 50604 - 50604 - 0 + 50748 + 50748 + 1 0 0 0 @@ -6157,7 +7011,7 @@ 0 16 - 0704000023030000970500003C030000 + E100000075000000690600008E000000 16 @@ -6165,8 +7019,8 @@ - 50645 - 50645 + 50751 + 50751 0 0 0 @@ -6185,8 +7039,8 @@ - 50666 - 50666 + 50758 + 50758 0 0 0 @@ -6205,8 +7059,8 @@ - 50686 - 50686 + 50761 + 50761 0 0 0 @@ -6217,7 +7071,7 @@ 0 16 - 070400004A0300009705000063030000 + 070400009302000097050000AC020000 16 @@ -6225,9 +7079,9 @@ - 50687 - 50687 - 0 + 50764 + 50764 + 1 0 0 0 @@ -6237,7 +7091,7 @@ 0 16 - 070400004A0300009705000063030000 + 7306000075000000FD0700008E000000 16 @@ -6245,8 +7099,8 @@ - 50698 - 50698 + 50770 + 50770 0 0 0 @@ -6257,7 +7111,7 @@ 0 16 - 070400004A0300009705000063030000 + 0704000023030000970500003C030000 16 @@ -6265,9 +7119,9 @@ - 50704 - 50704 - 1 + 50771 + 50771 + 0 0 0 0 @@ -6277,7 +7131,7 @@ 0 16 - 6B04000075000000F50500008E000000 + 0704000023030000970500003C030000 16 @@ -6285,8 +7139,8 @@ - 50708 - 50708 + 50775 + 50775 1 0 0 @@ -6305,8 +7159,8 @@ - 50710 - 50710 + 50784 + 50784 0 0 0 @@ -6325,9 +7179,9 @@ - 50724 - 50724 - 1 + 50786 + 50786 + 0 0 0 0 @@ -6337,7 +7191,7 @@ 0 16 - E100000075000000690600008E000000 + 070400009302000097050000AC020000 16 @@ -6345,9 +7199,9 @@ - 50731 - 50731 - 1 + 50791 + 50791 + 0 0 0 0 @@ -6357,7 +7211,7 @@ 0 16 - 7006000072000000000800008B000000 + 070400004A0300009705000063030000 16 @@ -6365,8 +7219,8 @@ - 50743 - 50743 + 50793 + 50793 1 0 0 @@ -6385,8 +7239,8 @@ - 50745 - 50745 + 50801 + 50801 0 0 0 @@ -6405,8 +7259,8 @@ - 50746 - 50746 + 50803 + 50803 0 0 0 @@ -6425,9 +7279,9 @@ - 50748 - 50748 - 1 + 50804 + 50804 + 0 0 0 0 @@ -6437,7 +7291,7 @@ 0 16 - E100000075000000690600008E000000 + 0704000023030000970500003C030000 16 @@ -6445,8 +7299,8 @@ - 50751 - 50751 + 50818 + 50818 0 0 0 @@ -6465,8 +7319,8 @@ - 50770 - 50770 + 50826 + 50826 0 0 0 @@ -6477,7 +7331,7 @@ 0 16 - 0704000023030000970500003C030000 + 070400009302000097050000AC020000 16 @@ -6485,9 +7339,9 @@ - 50771 - 50771 - 0 + 50846 + 50846 + 1 0 0 0 @@ -6497,7 +7351,7 @@ 0 16 - 0704000023030000970500003C030000 + 7306000075000000FD0700008E000000 16 @@ -6505,9 +7359,9 @@ - 50775 - 50775 - 1 + 50848 + 50848 + 0 0 0 0 @@ -6517,7 +7371,7 @@ 0 16 - E100000075000000FD0700008E000000 + 070400004A0300009705000063030000 16 @@ -6525,8 +7379,8 @@ - 50803 - 50803 + 50852 + 50852 0 0 0 @@ -6545,9 +7399,9 @@ - 50804 - 50804 - 0 + 50864 + 50864 + 1 0 0 0 @@ -6557,7 +7411,7 @@ 0 16 - 0704000023030000970500003C030000 + E100000075000000690600008E000000 16 @@ -6706,14 +7560,14 @@ 2466 - 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFDE000000920100006C060000960100000100000001000010040000000100000033FFFFFFF9010000FFFFFFFF07000000CB00000057010000CC000000F08B00005A01000079070000CA090000FFFF02000B004354616262656450616E650020000001000000DE0000005E0000006C060000A5010000DE0000004B0000006C060000920100000000000040280056070000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000001000000FFFFFFFFFFFFFFFF6C0600004B000000700600001C030000010000000200001004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000001000000700600005E000000000800002F030000700600004B000000000800001C0300000000000040410056160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF044932433201000000418C000001000000FFFFFFFFFFFFFFFF15000000000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFDA0000004B000000DE0000001C030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000005E000000DA0000002F030000000000004B000000DA0000001C0300000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000001C0300000008000020030000010000000100001004000000010000005AFDFFFF6500000000000000000000000000000001000000C6000000FFFFFFFF0B0000008F070000930700009407000095070000960700009007000091070000B9050000BA050000BB050000BC05000001800080000001000000040400003303000000080000510400000404000020030000000800003E04000000000000404100560B0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203201000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF0004000020030000040400003E04000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000087030000000800008B0300000000000001000000040000000100000084FDFFFFDE000000FFFFFFFF03000000C5000000C70000007794000001800080000000000000000000009E0300000008000051040000000000008B030000000800003E0400000000000040820046030000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFFDE0000009201000000080000960100000100000001000010040000000100000033FFFFFFF9010000FFFFFFFF07000000CB00000057010000CC000000F08B00005A01000079070000CA090000FFFF02000B004354616262656450616E650020000001000000DE0000005E00000000080000A5010000DE0000004B00000000080000920100000000000040280056070000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF6C0600004B000000700600001C030000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000700600005E000000000800002F030000700600004B000000000800001C0300000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF044932433200000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFDA0000004B000000DE00000065020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000005E000000DA0000002F030000000000004B000000DA000000650200000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000650200000008000069020000010000000100001004000000010000005AFDFFFF6500000000000000000000000000000001000000C6000000FFFFFFFF0B0000008F070000930700009407000095070000960700009007000091070000B9050000BA050000BB050000BC05000001800080000001000000040400003303000000080000510400000404000069020000000800008703000000000000404100560B0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203201000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF0004000069020000040400008703000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000087030000000800008B0300000100000001000000040000000100000084FDFFFFDE000000FFFFFFFF03000000C5000000C70000007794000001800080000001000000000000009E0300000008000051040000000000008B030000000800003E0400000000000040820056030000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000004001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C6572030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C6572030000 1423 @@ -6745,7 +7599,7 @@ Debug 2290 - 00200000010000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180460100000000040049000000000000000000000000000000000100000001000000000000000544656275675A020000 + 00200000010000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180460100000000040049000000000000000000000000000000000100000001000000000000000544656275675A020000 968 @@ -6766,22 +7620,10 @@ - D:\fly_122\projects\baseflight\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h - 0 - 499 - 499 - - - D:\fly_122\projects\baseflight\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h - 0 - 53 - 74 - - - D:\fly_122\projects\baseflight\drv_i2c.h + D:\fly_122\projects\baseflight\drv_system.h 0 1 - 6 + 16 @@ -6790,132 +7632,48 @@ 0 100 - 8 - - .\startup_stm32f10x_md.s - 21 - 133 - 143 - + 3 - .\drv_adc.c - 6 - 18 - 18 + .\config.c + 4 + 107 + 120 - drv_i2c.h - 0 - 1 - 6 + .\drv_system.c + 22 + 139 + 169 mw.h - 0 - 154 - 167 - - - .\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - 0 - 576 - 591 + 27 + 115 + 124 .\main.c - 32 + 37 1 - 23 - - - board.h - 14 - 22 - 28 - - - .\serial.c - 12 - 162 - 181 - - - .\mw.c - 0 - 624 - 631 - - - .\drv_mpu3050.c - 13 - 13 - 28 - - - .\drv_adxl345.c - 0 - 32 - 56 - - - .\drv_hmc5883l.c - 42 - 20 - 45 - - - .\imu.c - 0 - 27 - 27 - - - .\sensors.c - 0 - 187 - 212 + 26 - .\drv_i2c.c + .\mixer.c 0 - 283 - 300 - - - .\drv_bmp085.c - 0 - 213 - 232 - - - .\drv_system.c - 115 - 55 - 60 - - - .\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - 34 - 1095 - 1102 - - - lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h - 62 - 499 - 499 + 1 + 11 - lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h - 15 - 53 - 74 + .\serial.c + 26 + 200 + 215 - .\drv_pwm.c + drv_system.h 0 1 - 1 + 16 diff --git a/baseflight.uvopt b/baseflight.uvopt index cdb0cb202..8b89d4ef1 100755 --- a/baseflight.uvopt +++ b/baseflight.uvopt @@ -112,7 +112,7 @@ 1 0 0 - 7 + 1 @@ -123,7 +123,7 @@ - Segger\JL2CM3.dll + BIN\UL2CM3.DLL @@ -144,7 +144,7 @@ 0 DLGUARM - (106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) + (105=-1,-1,-1,-1,0)(106=-1,-1,-1,-1,0)(107=-1,-1,-1,-1,0) 0 @@ -154,77 +154,9 @@ 0 UL2CM3 - -O14 -S0 -C0 -N00("ARM Cortex-M3") -D00(1BA00477) -L00(4) -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL010000) + -UV0168AVR -O238 -S8 -C0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128 -FS08000000 -FL010000 - - - 0 - 1 - gyroADC,0x0A - - - 1 - 1 - accADC,0x0A - - - 2 - 1 - currentTime,0x0A - - - 3 - 1 - previousTime,0x0A - - - 4 - 1 - cycleTime,0x0A - - - 5 - 1 - eep_entry - - - 6 - 1 - gyroData,0x0A - - - 7 - 1 - magADC,0x0A - - - 8 - 1 - maginv - - - 9 - 1 - magaxis - - - 10 - 1 - rawMagADC,0x0A - - - 11 - 1 - param_b5 - - - - 12 - 1 - rawADC,0x0A - - 1 @@ -267,19 +199,6 @@ - - - 0 - cycleTime - 00800000000000000000000000000000E0FFEF40000000000000000000000000000000006379636C6554696D650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000CC010008 - - - - - System Viewer\I2C2 - 35905 - - @@ -545,10 +464,10 @@ 1 0 0 - 32 + 37 0 1 - 23 + 26 0 .\main.c main.c @@ -559,10 +478,10 @@ 5 0 0 - 14 + 25 0 - 22 - 28 + 0 + 0 0 .\board.h board.h @@ -573,10 +492,10 @@ 1 0 0 - 0 + 26 0 - 27 - 27 + 0 + 0 0 .\imu.c imu.c @@ -589,8 +508,8 @@ 0 0 0 - 624 - 631 + 0 + 0 0 .\mw.c mw.c @@ -601,10 +520,10 @@ 5 0 0 - 0 + 27 0 - 154 - 167 + 115 + 124 0 .\mw.h mw.h @@ -617,8 +536,8 @@ 0 0 0 - 187 - 212 + 0 + 0 0 .\sensors.c sensors.c @@ -629,10 +548,10 @@ 1 0 0 - 26 + 0 0 - 0 - 0 + 1 + 11 0 .\mixer.c mixer.c @@ -643,10 +562,10 @@ 1 0 0 - 12 + 26 0 - 162 - 181 + 200 + 215 0 .\serial.c serial.c @@ -657,10 +576,10 @@ 1 0 0 - 0 + 4 0 - 0 - 0 + 107 + 120 0 .\config.c config.c @@ -680,8 +599,8 @@ 0 0 0 - 283 - 300 + 0 + 0 0 .\drv_i2c.c drv_i2c.c @@ -694,8 +613,8 @@ 0 0 0 - 1 - 1 + 0 + 0 0 .\drv_pwm.c drv_pwm.c @@ -708,8 +627,8 @@ 0 6 0 - 18 - 18 + 0 + 0 0 .\drv_adc.c drv_adc.c @@ -720,10 +639,10 @@ 1 0 0 - 0 + 8 0 - 213 - 232 + 0 + 0 0 .\drv_bmp085.c drv_bmp085.c @@ -736,8 +655,8 @@ 0 0 0 - 32 - 56 + 0 + 0 0 .\drv_adxl345.c drv_adxl345.c @@ -750,8 +669,8 @@ 0 13 0 - 13 - 28 + 0 + 0 0 .\drv_mpu3050.c drv_mpu3050.c @@ -774,12 +693,12 @@ 2 17 1 - 0 + 1 0 - 115 + 22 0 - 55 - 60 + 139 + 169 0 .\drv_system.c drv_system.c @@ -792,8 +711,8 @@ 0 42 0 - 20 - 45 + 0 + 0 0 .\drv_hmc5883l.c drv_hmc5883l.c @@ -835,7 +754,7 @@ 3 - 22 + 21 1 0 0 @@ -849,7 +768,7 @@ 3 - 23 + 22 1 0 0 @@ -863,11 +782,11 @@ 3 - 24 + 23 1 0 0 - 26 + 0 0 0 0 @@ -877,7 +796,7 @@ 3 - 25 + 24 1 0 0 @@ -891,11 +810,11 @@ 3 - 26 + 25 1 0 0 - 16 + 0 0 0 0 @@ -905,21 +824,21 @@ 3 - 27 + 26 1 0 0 34 0 - 1095 - 1102 + 0 + 0 0 .\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c stm32f10x_rcc.c 3 - 28 + 27 1 0 0 @@ -933,7 +852,7 @@ 3 - 29 + 28 1 0 0 @@ -947,21 +866,21 @@ 3 - 30 + 29 1 0 0 0 0 - 576 - 591 + 0 + 0 0 .\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c stm32f10x_gpio.c 3 - 31 + 30 1 0 0 @@ -975,14 +894,14 @@ 3 - 0 + 31 2 0 0 - 21 + 0 0 - 133 - 143 + 0 + 0 0 .\startup_stm32f10x_md.s startup_stm32f10x_md.s diff --git a/baseflight.uvproj b/baseflight.uvproj index 305ed6fe3..f0db64f8b 100755 --- a/baseflight.uvproj +++ b/baseflight.uvproj @@ -136,7 +136,7 @@ 1 0 - 7 + 1 @@ -150,7 +150,7 @@ - Segger\JL2CM3.dll + BIN\UL2CM3.DLL @@ -160,9 +160,9 @@ 0 1 1 - 4099 + 4096 - Segger\JL2CM3.dll + BIN\UL2CM3.DLL "" () @@ -331,7 +331,7 @@ 1 - 1 + 4 0 0 0 @@ -390,45 +390,6 @@ main.c 1 .\main.c - - - 2 - 0 - 0 - 0 - 0 - 2 - 2 - 2 - 2 - 2 - 11 - - - - - - 2 - 4 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 0 - 2 - - - - - - - - - board.h diff --git a/board.h b/board.h index d22edfeb1..fcbd6fa68 100755 --- a/board.h +++ b/board.h @@ -28,6 +28,8 @@ typedef enum { typedef enum { FEATURE_PPM = 1 << 0, FEATURE_VBAT = 1 << 1, + FEATURE_SERVO = 1 << 2, + FEATURE_DIGITAL_SERVO = 1 << 3, } AvailableFeatures; #define digitalHi(p, i) { p->BSRR = i; } diff --git a/config.c b/config.c index e550377f1..6336df165 100755 --- a/config.c +++ b/config.c @@ -5,7 +5,10 @@ #define FLASH_PAGE_SIZE ((uint16_t)0x400) #define FLASH_WRITE_ADDR (0x08000000 + (uint32_t)FLASH_PAGE_SIZE * 63) // use the last KB for storage -static uint8_t checkNewConf = 151; +static uint32_t enabledSensors = 0; +static uint32_t enabledFeatures = 0; + +static uint8_t checkNewConf = 152; typedef struct eep_entry_t { void *var; @@ -17,6 +20,8 @@ typedef struct eep_entry_t { // ************************************************************************************************************ volatile eep_entry_t eep_entry[] = { {&checkNewConf, sizeof(checkNewConf)} + , {&enabledFeatures, sizeof(enabledFeatures)} + , {&mixerConfiguration, sizeof(mixerConfiguration)} , {&P8, sizeof(P8)} , {&I8, sizeof(I8)} , {&D8, sizeof(D8)} @@ -31,14 +36,9 @@ volatile eep_entry_t eep_entry[] = { , {&activate1, sizeof(activate1)} , {&activate2, sizeof(activate2)} , {&powerTrigger1, sizeof(powerTrigger1)} -#ifdef FLYING_WING , {&wing_left_mid, sizeof(wing_left_mid)} , {&wing_right_mid, sizeof(wing_right_mid)} -#endif -#ifdef TRI , {&tri_yaw_middle, sizeof(tri_yaw_middle)} -#endif - }; #define EEBLOCK_SIZE sizeof(eep_entry) / sizeof(eep_entry_t) @@ -56,15 +56,20 @@ void readEEPROM(void) #if defined(POWERMETER) pAlarm = (uint32_t) powerTrigger1 *(uint32_t) PLEVELSCALE *(uint32_t) PLEVELDIV; // need to cast before multiplying #endif + for (i = 0; i < 7; i++) lookupRX[i] = (2500 + rcExpo8 * (i * i - 25)) * i * (int32_t) rcRate8 / 1250; -#ifdef FLYING_WING - wing_left_mid = constrain(wing_left_mid, WING_LEFT_MIN, WING_LEFT_MAX); //LEFT - wing_right_mid = constrain(wing_right_mid, WING_RIGHT_MIN, WING_RIGHT_MAX); //RIGHT -#endif -#ifdef TRI - tri_yaw_middle = constrain(tri_yaw_middle, TRI_YAW_CONSTRAINT_MIN, TRI_YAW_CONSTRAINT_MAX); //REAR -#endif + + switch (mixerConfiguration) { + case MULTITYPE_FLYING_WING: + wing_left_mid = constrain(wing_left_mid, WING_LEFT_MIN, WING_LEFT_MAX); //LEFT + wing_right_mid = constrain(wing_right_mid, WING_RIGHT_MIN, WING_RIGHT_MAX); //RIGHT + break; + + case MULTITYPE_TRI: + tri_yaw_middle = constrain(tri_yaw_middle, TRI_YAW_CONSTRAINT_MIN, TRI_YAW_CONSTRAINT_MAX); //REAR + break; + } } void writeParams(void) @@ -80,7 +85,7 @@ void writeParams(void) memcpy(p, eep_entry[i].var, eep_entry[i].size); p += eep_entry[i].size; } - + p = conf; FLASH_Unlock(); @@ -112,6 +117,9 @@ void checkFirstTime(void) return; // Default settings + mixerConfiguration = MULTITYPE_QUADX; + featureSet(FEATURE_VBAT | FEATURE_PPM); + P8[ROLL] = 40; I8[ROLL] = 30; D8[ROLL] = 23; @@ -146,12 +154,47 @@ void checkFirstTime(void) accTrim[0] = 0; accTrim[1] = 0; powerTrigger1 = 0; -#ifdef FLYING_WING - wing_left_mid = WING_LEFT_MID; - wing_right_mid = WING_RIGHT_MID; -#endif -#ifdef TRI - tri_yaw_middle = TRI_YAW_MIDDLE; -#endif + + switch (mixerConfiguration) { + case MULTITYPE_FLYING_WING: + wing_left_mid = WING_LEFT_MID; + wing_right_mid = WING_RIGHT_MID; + break; + + case MULTITYPE_TRI: + tri_yaw_middle = TRI_YAW_MIDDLE; + break; + } + writeParams(); } + +bool sensors(uint32_t mask) +{ + return enabledSensors & mask; +} + +void sensorsSet(uint32_t mask) +{ + enabledSensors |= mask; +} + +void sensorsClear(uint32_t mask) +{ + enabledSensors &= ~(mask); +} + +bool feature(uint32_t mask) +{ + return enabledFeatures & mask; +} + +void featureSet(uint32_t mask) +{ + enabledFeatures |= mask; +} + +void featureClear(uint32_t mask) +{ + enabledFeatures &= ~(mask); +} diff --git a/drv_bmp085.c b/drv_bmp085.c index b94033d40..116760f43 100755 --- a/drv_bmp085.c +++ b/drv_bmp085.c @@ -224,6 +224,10 @@ void bmp085_start_ut(void) i2cWrite(p_bmp085->dev_addr, BMP085_CTRL_MEAS_REG, BMP085_T_MEASURE); } +#ifdef __GNUC__ + #define __nop() asm("mov r0,r0"); +#endif + uint16_t bmp085_get_ut(void) { uint16_t ut; diff --git a/drv_i2c.c b/drv_i2c.c index e84a27d9d..92a1e46bd 100755 --- a/drv_i2c.c +++ b/drv_i2c.c @@ -4,10 +4,8 @@ // SCL PB10 // SDA PB11 -#ifdef __gnuc__ // TODO check this -#define DMB() asm volatile ("dmb":::"memory") -#else -#define DMB() __DMB() +#ifdef __GNUC__ // TODO check this +#define __DMB() asm volatile ("dmb":::"memory") #endif static I2C_TypeDef *I2Cx; @@ -168,17 +166,17 @@ void i2c_ev_handler(void) } else if (SReg_1 & 0x0002) { //we just sent the address - EV6 in ref manual //Read SR1,2 to clear ADDR volatile uint8_t a; - DMB(); // memory fence to control hardware + __DMB(); // memory fence to control hardware if (bytes == 1 && reading && subaddress_sent) { //we are receiving 1 byte - EV6_3 I2C_AcknowledgeConfig(I2Cx, DISABLE); //turn off ACK - DMB(); + __DMB(); a = I2Cx->SR2; //clear ADDR after ACK is turned off I2C_GenerateSTOP(I2Cx, ENABLE); //program the stop final_stop = 1; I2C_ITConfig(I2Cx, I2C_IT_BUF, ENABLE); //allow us to have an EV7 } else { //EV6 and EV6_1 a = I2Cx->SR2; //clear the ADDR here - DMB(); + __DMB(); if (bytes == 2 && reading && subaddress_sent) { //rx 2 bytes - EV6_1 I2C_AcknowledgeConfig(I2Cx, DISABLE); //turn off ACK I2C_ITConfig(I2Cx, I2C_IT_BUF, DISABLE); //disable TXE to allow the buffer to fill diff --git a/drv_pwm.c b/drv_pwm.c index 8ff94cbe2..8c0de0c50 100755 --- a/drv_pwm.c +++ b/drv_pwm.c @@ -144,7 +144,7 @@ static void pwmIRQHandler(TIM_TypeDef *tim) } } -void pwmInit(bool usePPM, bool useServos) +void pwmInit(bool usePPM, bool useServos, bool useDigitalServos) { uint8_t i; GPIO_InitTypeDef GPIO_InitStructure = { 0, }; @@ -268,8 +268,11 @@ void pwmInit(bool usePPM, bool useServos) // Output timers if (useServos) { - // 50Hz period on ch1, 2 for servo - TIM_TimeBaseStructure.TIM_Period = PULSE_PERIOD_SERVO_ANALOG - 1; + // 50Hz/200Hz period on ch1, 2 for servo + if (useDigitalServos) + TIM_TimeBaseStructure.TIM_Period = PULSE_PERIOD_SERVO_DIGITAL - 1; + else + TIM_TimeBaseStructure.TIM_Period = PULSE_PERIOD_SERVO_ANALOG - 1; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = PULSE_PERIOD - 1; TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); @@ -278,7 +281,7 @@ void pwmInit(bool usePPM, bool useServos) TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); } - + TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable; diff --git a/drv_pwm.h b/drv_pwm.h index 567e5051c..88811aec4 100755 --- a/drv_pwm.h +++ b/drv_pwm.h @@ -1,5 +1,5 @@ #pragma once -void pwmInit(bool usePPM, bool useServos); +void pwmInit(bool usePPM, bool useServos, bool useDigitalServos); void pwmWrite(uint8_t channel, uint16_t value); uint16_t pwmRead(uint8_t channel); diff --git a/drv_system.c b/drv_system.c index 7bb23fc7a..73586fb71 100755 --- a/drv_system.c +++ b/drv_system.c @@ -1,8 +1,5 @@ #include "board.h" -static uint32_t enabledSensors = 0; -static uint32_t enabledFeatures = 0; - // Cycle counter stuff - these should be defined by CMSIS, but they aren't #define DWT_CTRL (*(volatile uint32_t *)0xE0001000) #define DWT_CYCCNT ((volatile uint32_t *)0xE0001004) @@ -143,36 +140,6 @@ void delay(uint32_t ms) delayMicroseconds(1000); } -bool sensors(uint32_t mask) -{ - return enabledSensors & mask; -} - -void sensorsSet(uint32_t mask) -{ - enabledSensors |= mask; -} - -void sensorsClear(uint32_t mask) -{ - enabledSensors &= ~(mask); -} - -bool feature(uint32_t mask) -{ - return enabledFeatures & mask; -} - -void featureSet(uint32_t mask) -{ - enabledFeatures |= mask; -} - -void featureClear(uint32_t mask) -{ - enabledFeatures &= ~(mask); -} - void failureMode(uint8_t mode) { LED1_ON; @@ -189,11 +156,13 @@ void failureMode(uint8_t mode) #define AIRCR_VECTKEY_MASK ((uint32_t)0x05FA0000) -void systemResetToBootloader(void) +void systemReset(bool toBootloader) { - // 1FFFF000 -> 20000200 -> SP - // 1FFFF004 -> 1FFFF021 -> PC - *((uint32_t *)0x20004FF0) = 0xDEADBEEF; // 20KB STM32F103 + if (toBootloader) { + // 1FFFF000 -> 20000200 -> SP + // 1FFFF004 -> 1FFFF021 -> PC + *((uint32_t *)0x20004FF0) = 0xDEADBEEF; // 20KB STM32F103 + } // Generate system reset SCB->AIRCR = AIRCR_VECTKEY_MASK | (uint32_t)0x04; diff --git a/drv_system.h b/drv_system.h index b109d0002..baf361b2f 100755 --- a/drv_system.h +++ b/drv_system.h @@ -7,17 +7,8 @@ void delay(uint32_t ms); uint32_t micros(void); uint32_t millis(void); -// features -bool sensors(uint32_t mask); -void sensorsSet(uint32_t mask); -void sensorsClear(uint32_t mask); - -bool feature(uint32_t mask); -void featureSet(uint32_t mask); -void featureClear(uint32_t mask); - // failure void failureMode(uint8_t mode); // bootloader/IAP -void systemResetToBootloader(void); +void systemReset(bool toBootloader); diff --git a/imu.c b/imu.c index 911cd440d..17a964432 100755 --- a/imu.c +++ b/imu.c @@ -70,11 +70,11 @@ void computeIMU(void) if (!sensors(SENSOR_ACC)) accADC[axis] = 0; } - -#if defined(TRI) - gyroData[YAW] = (gyroYawSmooth * 2 + gyroData[YAW] + 1) / 3; - gyroYawSmooth = gyroData[YAW]; -#endif + + if (mixerConfiguration == MULTITYPE_TRI) { + gyroData[YAW] = (gyroYawSmooth * 2 + gyroData[YAW] + 1) / 3; + gyroYawSmooth = gyroData[YAW]; + } } // ************************************************** @@ -152,37 +152,11 @@ void rotateV(struct fp_vector *v, float *delta) v->Y += delta[PITCH] * v_tmp.Z + delta[YAW] * v_tmp.X; } -#if 1 static int16_t _atan2f(float y, float x) { -#define fp_is_neg(val) (val < 0 ? 1 : 0) - - float z = y / x; - int16_t zi = abs((int16_t)(z * 100)); - int8_t y_neg = fp_is_neg(y); - if (zi < 100) { - if (zi > 10) - z = z / (1.0f + 0.28f * z * z); - if (fp_is_neg(x)) { - if (y_neg) - z -= M_PI; - else - z += M_PI; - } - } else { - z = (M_PI / 2.0f) - z / (z * z + 0.28f); - if (y_neg) - z -= M_PI; - } - z *= (180.0f / M_PI * 10); - return z; + // no need for aidsy inaccurate shortcuts on a proper platform + return (int16_t)(atan2f(y, x) * (180.0f / M_PI * 10.0f)); } -#else -static int16_t _atan2f(float y, float x) -{ - return (int16_t)atan2f(y, x) * (180.0f / M_PI * 10.0f); -} -#endif static void getEstimatedAttitude(void) { diff --git a/main.c b/main.c index 2d6385e94..951e90e98 100755 --- a/main.c +++ b/main.c @@ -6,6 +6,7 @@ int main(void) uint8_t i; #if 0 + // using this to write asm for bootloader :) RCC->APB2ENR |= RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO; // GPIOB + AFIO AFIO->MAPR &= 0xF0FFFFFF; AFIO->MAPR = 0x02000000; @@ -22,8 +23,9 @@ int main(void) featureSet(FEATURE_VBAT | FEATURE_PPM); sensorsSet(SENSOR_ACC | SENSOR_BARO | SENSOR_MAG); - pwmInit(feature(FEATURE_PPM), false); - + mixerInit(); // this will configure FEATURE_SERVO depending on mixer type + pwmInit(feature(FEATURE_PPM), feature(FEATURE_SERVO), feature(FEATURE_DIGITAL_SERVO)); + LED1_ON; LED0_OFF; for (i = 0; i < 10; i++) { diff --git a/mixer.c b/mixer.c index f12ae49ab..a97d647d9 100755 --- a/mixer.c +++ b/mixer.c @@ -1,59 +1,96 @@ #include "board.h" #include "mw.h" -#if defined(BI) || defined(TRI) || defined(SERVO_TILT) || defined(GIMBAL) || defined(FLYING_WING) || defined(CAMTRIG) -#define SERVO -#endif +static uint8_t numberMotor = 4; +int16_t motor[8]; +int16_t servo[8] = { 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500 }; +uint8_t mixerConfiguration = MULTITYPE_TRI; +uint16_t wing_left_mid = WING_LEFT_MID; +uint16_t wing_right_mid = WING_RIGHT_MID; +uint16_t tri_yaw_middle = TRI_YAW_MIDDLE; -#if defined(GIMBAL) -#define NUMBER_MOTOR 0 -#define PRI_SERVO_FROM 1 // use servo from 1 to 2 -#define PRI_SERVO_TO 2 -#elif defined(FLYING_WING) -#define NUMBER_MOTOR 1 -#define PRI_SERVO_FROM 1 // use servo from 1 to 2 -#define PRI_SERVO_TO 2 -#elif defined(BI) -#define NUMBER_MOTOR 2 -#define PRI_SERVO_FROM 5 // use servo from 5 to 6 -#define PRI_SERVO_TO 6 -#elif defined(TRI) -#define NUMBER_MOTOR 3 -#define PRI_SERVO_FROM 6 // use only servo 5 -#define PRI_SERVO_TO 6 -#elif defined(QUADP) || defined(QUADX) || defined(Y4) -#define NUMBER_MOTOR 4 -#elif defined(Y6) || defined(HEX6) || defined(HEX6X) -#define NUMBER_MOTOR 6 -#elif defined(OCTOX8) || defined(OCTOFLATP) || defined(OCTOFLATX) -#define NUMBER_MOTOR 8 -#endif +void mixerInit(void) +{ + if (mixerConfiguration == MULTITYPE_BI || mixerConfiguration == MULTITYPE_TRI || mixerConfiguration == MULTITYPE_GIMBAL || mixerConfiguration == MULTITYPE_FLYING_WING) + featureSet(FEATURE_SERVO); + + switch (mixerConfiguration) { + case MULTITYPE_GIMBAL: + numberMotor = 0; + break; + case MULTITYPE_FLYING_WING: + numberMotor = 1; + break; + case MULTITYPE_BI: + numberMotor = 2; + break; + case MULTITYPE_TRI: + numberMotor = 3; + break; + + case MULTITYPE_QUADP: + case MULTITYPE_QUADX: + case MULTITYPE_Y4: + case MULTITYPE_VTAIL4: + numberMotor = 4; + break; + + case MULTITYPE_Y6: + case MULTITYPE_HEX6: + case MULTITYPE_HEX6X: + numberMotor = 6; + break; + + case MULTITYPE_OCTOX8: + case MULTITYPE_OCTOFLATP: + case MULTITYPE_OCTOFLATX: + numberMotor = 8; + break; + } +} void writeServos(void) { -#if defined(SERVO) + if (!feature(FEATURE_SERVO)) + return; -#endif + if (mixerConfiguration == MULTITYPE_TRI || mixerConfiguration == MULTITYPE_BI) { + /* One servo on Motor #4 */ + pwmWrite(0, servo[4]); + if (mixerConfiguration == MULTITYPE_BI) + pwmWrite(1, servo[5]); + } else { + /* Two servos for camstab or FLYING_WING */ + pwmWrite(0, servo[0]); + pwmWrite(1, servo[1]); + } } void writeMotors(void) { uint8_t i; + uint8_t offset = 0; - for (i = 0; i < NUMBER_MOTOR; i++) - pwmWrite(i, motor[i]); + // when servos are enabled, motor outputs 1..2 are for servos only + if (feature(FEATURE_SERVO)) + offset = 2; + + for (i = 0; i < numberMotor; i++) + pwmWrite(i + offset, motor[i]); } void writeAllMotors(int16_t mc) { uint8_t i; - + // Sends commands to all motors - for (i = 0; i < NUMBER_MOTOR; i++) + for (i = 0; i < numberMotor; i++) motor[i] = mc; writeMotors(); } +#define PIDMIX(X,Y,Z) rcCommand[THROTTLE] + axisPID[ROLL] * X + axisPID[PITCH] * Y + YAW_DIRECTION * axisPID[YAW] * Z + void mixTable(void) { int16_t maxMotor; @@ -61,105 +98,133 @@ void mixTable(void) static uint8_t camCycle = 0; static uint8_t camState = 0; static uint32_t camTime = 0; + + if (numberMotor > 3) { + //prevent "yaw jump" during yaw correction + axisPID[YAW] = constrain(axisPID[YAW], -100 - abs(rcCommand[YAW]), +100 + abs(rcCommand[YAW])); + } -#define PIDMIX(X,Y,Z) rcCommand[THROTTLE] + axisPID[ROLL] * X + axisPID[PITCH] * Y + YAW_DIRECTION * axisPID[YAW] * Z + switch (mixerConfiguration) { + case MULTITYPE_BI: + motor[0] = PIDMIX(+1, 0, 0); //LEFT + motor[1] = PIDMIX(-1, 0, 0); //RIGHT + servo[4] = constrain(1500 + YAW_DIRECTION * (axisPID[YAW] + axisPID[PITCH]), 1020, 2000); //LEFT + servo[5] = constrain(1500 + YAW_DIRECTION * (axisPID[YAW] - axisPID[PITCH]), 1020, 2000); //RIGHT + break; + + case MULTITYPE_TRI: + motor[0] = PIDMIX(0, +4 / 3, 0); //REAR + motor[1] = PIDMIX(-1, -2 / 3, 0); //RIGHT + motor[2] = PIDMIX(+1, -2 / 3, 0); //LEFT + servo[4] = constrain(tri_yaw_middle + YAW_DIRECTION * axisPID[YAW], TRI_YAW_CONSTRAINT_MIN, TRI_YAW_CONSTRAINT_MAX); //REAR + break; -#if NUMBER_MOTOR > 3 - //prevent "yaw jump" during yaw correction - axisPID[YAW] = constrain(axisPID[YAW], -100 - abs(rcCommand[YAW]), +100 + abs(rcCommand[YAW])); -#endif -#ifdef BI - motor[0] = PIDMIX(+1, 0, 0); //LEFT - motor[1] = PIDMIX(-1, 0, 0); //RIGHT - servo[4] = constrain(1500 + YAW_DIRECTION * (axisPID[YAW] + axisPID[PITCH]), 1020, 2000); //LEFT - servo[5] = constrain(1500 + YAW_DIRECTION * (axisPID[YAW] - axisPID[PITCH]), 1020, 2000); //RIGHT -#endif -#ifdef TRI - motor[0] = PIDMIX(0, +4 / 3, 0); //REAR - motor[1] = PIDMIX(-1, -2 / 3, 0); //RIGHT - motor[2] = PIDMIX(+1, -2 / 3, 0); //LEFT - servo[5] = constrain(tri_yaw_middle + YAW_DIRECTION * axisPID[YAW], TRI_YAW_CONSTRAINT_MIN, TRI_YAW_CONSTRAINT_MAX); //REAR + case MULTITYPE_QUADP: + motor[0] = PIDMIX(0, +1, -1); //REAR + motor[1] = PIDMIX(-1, 0, +1); //RIGHT + motor[2] = PIDMIX(+1, 0, +1); //LEFT + motor[3] = PIDMIX(0, -1, -1); //FRONT + break; -#endif -#ifdef QUADP - motor[0] = PIDMIX(0, +1, -1); //REAR - motor[1] = PIDMIX(-1, 0, +1); //RIGHT - motor[2] = PIDMIX(+1, 0, +1); //LEFT - motor[3] = PIDMIX(0, -1, -1); //FRONT -#endif -#ifdef QUADX - motor[0] = PIDMIX(-1, +1, -1); //REAR_R - motor[1] = PIDMIX(-1, -1, +1); //FRONT_R - motor[2] = PIDMIX(+1, +1, +1); //REAR_L - motor[3] = PIDMIX(+1, -1, -1); //FRONT_L -#endif -#ifdef Y4 - motor[0] = PIDMIX(+0, +1, -1); //REAR_1 CW - motor[1] = PIDMIX(-1, -1, 0); //FRONT_R CCW - motor[2] = PIDMIX(+0, +1, +1); //REAR_2 CCW - motor[3] = PIDMIX(+1, -1, 0); //FRONT_L CW -#endif -#ifdef Y6 - motor[0] = PIDMIX(+0, +4 / 3, +1); //REAR - motor[1] = PIDMIX(-1, -2 / 3, -1); //RIGHT - motor[2] = PIDMIX(+1, -2 / 3, -1); //LEFT - motor[3] = PIDMIX(+0, +4 / 3, -1); //UNDER_REAR - motor[4] = PIDMIX(-1, -2 / 3, +1); //UNDER_RIGHT - motor[5] = PIDMIX(+1, -2 / 3, +1); //UNDER_LEFT -#endif -#ifdef HEX6 - motor[0] = PIDMIX(-1 / 2, +1 / 2, +1); //REAR_R - motor[1] = PIDMIX(-1 / 2, -1 / 2, -1); //FRONT_R - motor[2] = PIDMIX(+1 / 2, +1 / 2, +1); //REAR_L - motor[3] = PIDMIX(+1 / 2, -1 / 2, -1); //FRONT_L - motor[4] = PIDMIX(+0, -1, +1); //FRONT - motor[5] = PIDMIX(+0, +1, -1); //REAR -#endif -#ifdef HEX6X - motor[0] = PIDMIX(-1 / 2, +1 / 2, +1); //REAR_R - motor[1] = PIDMIX(-1 / 2, -1 / 2, +1); //FRONT_R - motor[2] = PIDMIX(+1 / 2, +1 / 2, -1); //REAR_L - motor[3] = PIDMIX(+1 / 2, -1 / 2, -1); //FRONT_L - motor[4] = PIDMIX(-1, +0, -1); //RIGHT - motor[5] = PIDMIX(+1, +0, +1); //LEFT -#endif -#ifdef OCTOX8 - motor[0] = PIDMIX(-1, +1, -1); //REAR_R - motor[1] = PIDMIX(-1, -1, +1); //FRONT_R - motor[2] = PIDMIX(+1, +1, +1); //REAR_L - motor[3] = PIDMIX(+1, -1, -1); //FRONT_L - motor[4] = PIDMIX(-1, +1, +1); //UNDER_REAR_R - motor[5] = PIDMIX(-1, -1, -1); //UNDER_FRONT_R - motor[6] = PIDMIX(+1, +1, -1); //UNDER_REAR_L - motor[7] = PIDMIX(+1, -1, +1); //UNDER_FRONT_L -#endif -#ifdef OCTOFLATP - motor[0] = PIDMIX(+7 / 10, -7 / 10, +1); //FRONT_L - motor[1] = PIDMIX(-7 / 10, -7 / 10, +1); //FRONT_R - motor[2] = PIDMIX(-7 / 10, +7 / 10, +1); //REAR_R - motor[3] = PIDMIX(+7 / 10, +7 / 10, +1); //REAR_L - motor[4] = PIDMIX(+0, -1, -1); //FRONT - motor[5] = PIDMIX(-1, +0, -1); //RIGHT - motor[6] = PIDMIX(+0, +1, -1); //REAR - motor[7] = PIDMIX(+1, +0, -1); //LEFT -#endif -#ifdef OCTOFLATX - motor[0] = PIDMIX(+1, -1 / 2, +1); //MIDFRONT_L - motor[1] = PIDMIX(-1 / 2, -1, +1); //FRONT_R - motor[2] = PIDMIX(-1, +1 / 2, +1); //MIDREAR_R - motor[3] = PIDMIX(+1 / 2, +1, +1); //REAR_L - motor[4] = PIDMIX(+1 / 2, -1, -1); //FRONT_L - motor[5] = PIDMIX(-1, -1 / 2, -1); //MIDFRONT_R - motor[6] = PIDMIX(-1 / 2, +1, -1); //REAR_R - motor[7] = PIDMIX(+1, +1 / 2, -1); //MIDREAR_L -#endif -#ifdef VTAIL4 - motor[0] = PIDMIX(+0, +1, -1 / 2); //REAR_R - motor[1] = PIDMIX(-1, -1, +2 / 10); //FRONT_R - motor[2] = PIDMIX(+0, +1, +1 / 2); //REAR_L - motor[3] = PIDMIX(+1, -1, -2 / 10); //FRONT_L -#endif + case MULTITYPE_QUADX: + motor[0] = PIDMIX(-1, +1, -1); //REAR_R + motor[1] = PIDMIX(-1, -1, +1); //FRONT_R + motor[2] = PIDMIX(+1, +1, +1); //REAR_L + motor[3] = PIDMIX(+1, -1, -1); //FRONT_L + break; + case MULTITYPE_Y4: + motor[0] = PIDMIX(+0, +1, -1); //REAR_1 CW + motor[1] = PIDMIX(-1, -1, 0); //FRONT_R CCW + motor[2] = PIDMIX(+0, +1, +1); //REAR_2 CCW + motor[3] = PIDMIX(+1, -1, 0); //FRONT_L CW + break; + + case MULTITYPE_Y6: + motor[0] = PIDMIX(+0, +4 / 3, +1); //REAR + motor[1] = PIDMIX(-1, -2 / 3, -1); //RIGHT + motor[2] = PIDMIX(+1, -2 / 3, -1); //LEFT + motor[3] = PIDMIX(+0, +4 / 3, -1); //UNDER_REAR + motor[4] = PIDMIX(-1, -2 / 3, +1); //UNDER_RIGHT + motor[5] = PIDMIX(+1, -2 / 3, +1); //UNDER_LEFT + break; + + case MULTITYPE_HEX6: + motor[0] = PIDMIX(-1 / 2, +1 / 2, +1); //REAR_R + motor[1] = PIDMIX(-1 / 2, -1 / 2, -1); //FRONT_R + motor[2] = PIDMIX(+1 / 2, +1 / 2, +1); //REAR_L + motor[3] = PIDMIX(+1 / 2, -1 / 2, -1); //FRONT_L + motor[4] = PIDMIX(+0, -1, +1); //FRONT + motor[5] = PIDMIX(+0, +1, -1); //REAR + break; + + case MULTITYPE_HEX6X: + motor[0] = PIDMIX(-1 / 2, +1 / 2, +1); //REAR_R + motor[1] = PIDMIX(-1 / 2, -1 / 2, +1); //FRONT_R + motor[2] = PIDMIX(+1 / 2, +1 / 2, -1); //REAR_L + motor[3] = PIDMIX(+1 / 2, -1 / 2, -1); //FRONT_L + motor[4] = PIDMIX(-1, +0, -1); //RIGHT + motor[5] = PIDMIX(+1, +0, +1); //LEFT + break; + + case MULTITYPE_OCTOX8: + motor[0] = PIDMIX(-1, +1, -1); //REAR_R + motor[1] = PIDMIX(-1, -1, +1); //FRONT_R + motor[2] = PIDMIX(+1, +1, +1); //REAR_L + motor[3] = PIDMIX(+1, -1, -1); //FRONT_L + motor[4] = PIDMIX(-1, +1, +1); //UNDER_REAR_R + motor[5] = PIDMIX(-1, -1, -1); //UNDER_FRONT_R + motor[6] = PIDMIX(+1, +1, -1); //UNDER_REAR_L + motor[7] = PIDMIX(+1, -1, +1); //UNDER_FRONT_L + break; + + case MULTITYPE_OCTOFLATP: + motor[0] = PIDMIX(+7 / 10, -7 / 10, +1); //FRONT_L + motor[1] = PIDMIX(-7 / 10, -7 / 10, +1); //FRONT_R + motor[2] = PIDMIX(-7 / 10, +7 / 10, +1); //REAR_R + motor[3] = PIDMIX(+7 / 10, +7 / 10, +1); //REAR_L + motor[4] = PIDMIX(+0, -1, -1); //FRONT + motor[5] = PIDMIX(-1, +0, -1); //RIGHT + motor[6] = PIDMIX(+0, +1, -1); //REAR + motor[7] = PIDMIX(+1, +0, -1); //LEFT + break; + + case MULTITYPE_OCTOFLATX: + motor[0] = PIDMIX(+1, -1 / 2, +1); //MIDFRONT_L + motor[1] = PIDMIX(-1 / 2, -1, +1); //FRONT_R + motor[2] = PIDMIX(-1, +1 / 2, +1); //MIDREAR_R + motor[3] = PIDMIX(+1 / 2, +1, +1); //REAR_L + motor[4] = PIDMIX(+1 / 2, -1, -1); //FRONT_L + motor[5] = PIDMIX(-1, -1 / 2, -1); //MIDFRONT_R + motor[6] = PIDMIX(-1 / 2, +1, -1); //REAR_R + motor[7] = PIDMIX(+1, +1 / 2, -1); //MIDREAR_L + break; + + case MULTITYPE_VTAIL4: + motor[0] = PIDMIX(+0, +1, -1 / 2); //REAR_R + motor[1] = PIDMIX(-1, -1, +2 / 10); //FRONT_R + motor[2] = PIDMIX(+0, +1, +1 / 2); //REAR_L + motor[3] = PIDMIX(+1, -1, -2 / 10); //FRONT_L + break; + + case MULTITYPE_GIMBAL: + servo[0] = constrain(TILT_PITCH_MIDDLE + TILT_PITCH_PROP * angle[PITCH] / 16 + rcCommand[PITCH], TILT_PITCH_MIN, TILT_PITCH_MAX); + servo[1] = constrain(TILT_ROLL_MIDDLE + TILT_ROLL_PROP * angle[ROLL] / 16 + rcCommand[ROLL], TILT_ROLL_MIN, TILT_ROLL_MAX); + break; + + case MULTITYPE_FLYING_WING: + motor[0] = rcCommand[THROTTLE]; + if (passThruMode) { // do not use sensors for correction, simple 2 channel mixing + servo[0] = PITCH_DIRECTION_L * (rcData[PITCH] - MIDRC) + ROLL_DIRECTION_L * (rcData[ROLL] - MIDRC); + servo[1] = PITCH_DIRECTION_R * (rcData[PITCH] - MIDRC) + ROLL_DIRECTION_R * (rcData[ROLL] - MIDRC); + } else { // use sensors to correct (gyro only or gyro+acc according to aux1/aux2 configuration + servo[0] = PITCH_DIRECTION_L * axisPID[PITCH] + ROLL_DIRECTION_L * axisPID[ROLL]; + servo[1] = PITCH_DIRECTION_R * axisPID[PITCH] + ROLL_DIRECTION_R * axisPID[ROLL]; + } + servo[0] = constrain(servo[0] + wing_left_mid , WING_LEFT_MIN, WING_LEFT_MAX); + servo[1] = constrain(servo[1] + wing_right_mid, WING_RIGHT_MIN, WING_RIGHT_MAX); + break; + } #ifdef SERVO_TILT servo[0] = TILT_PITCH_MIDDLE + rcData[AUX3] - 1500; @@ -173,22 +238,6 @@ void mixTable(void) servo[0] = constrain(servo[0], TILT_PITCH_MIN, TILT_PITCH_MAX); servo[1] = constrain(servo[1], TILT_ROLL_MIN, TILT_ROLL_MAX); #endif -#ifdef GIMBAL - servo[0] = constrain(TILT_PITCH_MIDDLE + TILT_PITCH_PROP * angle[PITCH] / 16 + rcCommand[PITCH], TILT_PITCH_MIN, TILT_PITCH_MAX); - servo[1] = constrain(TILT_ROLL_MIDDLE + TILT_ROLL_PROP * angle[ROLL] / 16 + rcCommand[ROLL], TILT_ROLL_MIN, TILT_ROLL_MAX); -#endif -#ifdef FLYING_WING - motor[0] = rcCommand[THROTTLE]; - if (passThruMode) {// do not use sensors for correction, simple 2 channel mixing - servo[0] = PITCH_DIRECTION_L * (rcData[PITCH] - MIDRC) + ROLL_DIRECTION_L * (rcData[ROLL] - MIDRC); - servo[1] = PITCH_DIRECTION_R * (rcData[PITCH] - MIDRC) + ROLL_DIRECTION_R * (rcData[ROLL] - MIDRC); - } else { // use sensors to correct (gyro only or gyro+acc according to aux1/aux2 configuration - servo[0] = PITCH_DIRECTION_L * axisPID[PITCH] + ROLL_DIRECTION_L * axisPID[ROLL]; - servo[1] = PITCH_DIRECTION_R * axisPID[PITCH] + ROLL_DIRECTION_R * axisPID[ROLL]; - } - servo[0] = constrain(servo[0] + wing_left_mid , WING_LEFT_MIN, WING_LEFT_MAX); - servo[1] = constrain(servo[1] + wing_right_mid, WING_RIGHT_MIN, WING_RIGHT_MAX); -#endif #if defined(CAMTRIG) if (camCycle == 1) { if (camState == 0) { @@ -213,10 +262,10 @@ void mixTable(void) #endif maxMotor = motor[0]; - for (i = 1; i < NUMBER_MOTOR; i++) + for (i = 1; i < numberMotor; i++) if (motor[i] > maxMotor) maxMotor = motor[i]; - for (i = 0; i < NUMBER_MOTOR; i++) { + for (i = 0; i < numberMotor; i++) { if (maxMotor > MAXTHROTTLE) // this is a way to still have good gyro corrections if at least one motor reaches its max. motor[i] -= maxMotor - MAXTHROTTLE; motor[i] = constrain(motor[i], MINTHROTTLE, MAXTHROTTLE); diff --git a/mw.c b/mw.c index fcfbc47b2..ca4e06739 100755 --- a/mw.c +++ b/mw.c @@ -42,12 +42,6 @@ uint8_t magMode = 0; // if compass heading hold is a activated uint8_t baroMode = 0; // if altitude hold is activated int16_t axisPID[3]; -int16_t motor[8]; -int16_t servo[8] = { 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500 }; -uint16_t wing_left_mid = WING_LEFT_MID; -uint16_t wing_right_mid = WING_RIGHT_MID; -uint16_t tri_yaw_middle = TRI_YAW_MIDDLE; - volatile uint16_t rcValue[18] = { 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502, 1502 }; // interval [1000;2000] uint8_t rcChannel[8] = { ROLL, PITCH, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4 }; diff --git a/mw.h b/mw.h index 1303deb54..1ca09cf29 100755 --- a/mw.h +++ b/mw.h @@ -1,7 +1,5 @@ #pragma once -#define QUADX - #define MINCHECK 1100 #define MAXCHECK 1900 @@ -59,6 +57,19 @@ #define WING_RIGHT_MIN 1020 // limit servo travel range must be inside [1020;2000] #define WING_RIGHT_MAX 2000 // limit servo travel range must be inside [1020;2000] +/* The following lines apply only for a pitch/roll tilt stabilization system + On promini board, it is not compatible with config with 6 motors or more + Uncomment the first line to activate it */ +//#define SERVO_TILT +#define TILT_PITCH_MIN 1020 //servo travel min, don't set it below 1020 +#define TILT_PITCH_MAX 2000 //servo travel max, max value=2000 +#define TILT_PITCH_MIDDLE 1500 //servo neutral value +#define TILT_PITCH_PROP 10 //servo proportional (tied to angle) ; can be negative to invert movement +#define TILT_ROLL_MIN 1020 +#define TILT_ROLL_MAX 2000 +#define TILT_ROLL_MIDDLE 1500 +#define TILT_ROLL_PROP 10 + /* for V BAT monitoring after the resistor divisor we should get [0V;5V]->[0;1023] on analog V_BATPIN with R1=33k and R2=51k @@ -70,38 +81,28 @@ #define VBATLEVEL3_3S 99 // 9.9V #define NO_VBAT 16 // Avoid beeping without any battery - #define VERSION 19 -#if defined(TRI) - #define MULTITYPE 1 -#elif defined(QUADP) - #define MULTITYPE 2 -#elif defined(QUADX) - #define MULTITYPE 3 -#elif defined(BI) - #define MULTITYPE 4 -#elif defined(GIMBAL) - #define MULTITYPE 5 -#elif defined(Y6) - #define MULTITYPE 6 -#elif defined(HEX6) - #define MULTITYPE 7 -#elif defined(FLYING_WING) - #define MULTITYPE 8 -#elif defined(Y4) - #define MULTITYPE 9 -#elif defined(HEX6X) - #define MULTITYPE 10 -#elif defined(OCTOX8) - #define MULTITYPE 11 -#elif defined(OCTOFLATP) - #define MULTITYPE 11 //the GUI is the same for all 8 motor configs -#elif defined(OCTOFLATX) - #define MULTITYPE 11 //the GUI is the same for all 8 motor configs -#elif defined(VTAIL4) - #define MULTITYPE 15 -#endif +// Syncronized with GUI. Only exception is mixer > 11, which is always returned as 11 during serialization. +typedef enum MultiType +{ + MULTITYPE_TRI = 1, // XA + MULTITYPE_QUADP = 2, // XB + MULTITYPE_QUADX = 3, // XC + MULTITYPE_BI = 4, // XD + MULTITYPE_GIMBAL = 5, // XE + MULTITYPE_Y6 = 6, // XF + MULTITYPE_HEX6 = 7, // XG + MULTITYPE_FLYING_WING = 8, // XH + MULTITYPE_Y4 = 9, // XI + MULTITYPE_HEX6X = 10, // XJ + MULTITYPE_OCTOX8 = 11, // XK + MULTITYPE_OCTOFLATP = 12, // XL the GUI is the same for all 8 motor configs + MULTITYPE_OCTOFLATX = 13, // XM the GUI is the same for all 8 motor configs + // XN missing for some reason?? + MULTITYPE_VTAIL4 = 15, // XO + MULTITYPE_LAST = 16 +} MultiType; /*********** RC alias *****************/ #define ROLL 0 @@ -174,6 +175,7 @@ extern int32_t EstVelocity; extern int16_t BaroPID; extern uint8_t headFreeMode; extern int16_t headFreeModeHold; +extern uint8_t passThruMode; extern int8_t smallAngle25; extern int16_t zVelocity; extern int16_t heading, magHold; @@ -205,6 +207,10 @@ extern uint8_t GPSModeHold; extern uint8_t vbat; extern uint8_t powerTrigger1; extern int16_t lookupRX[7]; // lookup table for expo & RC rate +extern uint8_t mixerConfiguration; +extern uint16_t wing_left_mid; +extern uint16_t wing_right_mid; +extern uint16_t tri_yaw_middle; // main void loop(void); @@ -225,6 +231,7 @@ void Mag_init(void); void Mag_getADC(void); // Output +void mixerInit(void); void writeServos(void); void writeMotors(void); void mixTable(void); @@ -236,3 +243,9 @@ void serialCom(void); void readEEPROM(void); void writeParams(void); void checkFirstTime(void); +bool sensors(uint32_t mask); +void sensorsSet(uint32_t mask); +void sensorsClear(uint32_t mask); +bool feature(uint32_t mask); +void featureSet(uint32_t mask); +void featureClear(uint32_t mask); diff --git a/serial.c b/serial.c index 66e5afa79..46a9d5d5c 100755 --- a/serial.c +++ b/serial.c @@ -155,7 +155,7 @@ void serialCom(void) serialize16(i2cGetErrorCounter()); for (i = 0; i < 2; i++) serialize16(angle[i]); - serialize8(MULTITYPE); + serialize8(mixerConfiguration); for (i = 0; i < PIDITEMS; i++) { serialize8(P8[i]); serialize8(I8[i]); @@ -207,8 +207,22 @@ void serialCom(void) serialize8('O'); //49 // UartSendData(); break; - case 'R': // reboot to bootloader - systemResetToBootloader(); + case 'R': // reboot to bootloader (oops, apparently this w as used for other trash, fix later) + systemReset(true); + break; + + case 'X': // dynamic mixer + i = uartReadPoll(); + if (i > 64 && i < 64 + MULTITYPE_LAST) { + serialize8('O'); + serialize8('K'); + mixerConfiguration = i - '@'; // A..B..C.. index + writeParams(); + systemReset(false); + break; + } + serialize8('N'); + serialize8('G'); break; case 'W': //GUI write params to eeprom @ arduino