Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
RT_RMR42E
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
时昊
RT_RMR42E
Commits
d7307d2b
Commit
d7307d2b
authored
Jun 17, 2024
by
时昊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
✨
feat:删除燃油和水温功能
parent
c9ece335
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
2367 additions
and
1138 deletions
+2367
-1138
RMR42E.BAT
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/RMR42E.BAT
+0
-2
RMR42E.uvprojx
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/RMR42E.uvprojx
+0
-20
RTE_Components.h
.../Cmsemicon/BAT32A239/MDK_ARM/RTE/_RMR42E/RTE_Components.h
+1
-1
TianYing.uvguix.Administrator
...Cmsemicon/BAT32A239/MDK_ARM/TianYing.uvguix.Administrator
+1860
-0
Application.h
Firmware/Source/Application/Application.h
+0
-2
Can_App.c
Firmware/Source/Application/CAN_User/Can_App.c
+3
-26
Data_Coolant.c
Firmware/Source/Application/Data_Coolant/Data_Coolant.c
+0
-354
Data_Coolant.h
Firmware/Source/Application/Data_Coolant/Data_Coolant.h
+0
-57
Data_Fuel.c
Firmware/Source/Application/Fuel/Data_Fuel.c
+0
-398
Data_Fuel.h
Firmware/Source/Application/Fuel/Data_Fuel.h
+0
-22
GUI_Display.c
Firmware/Source/Application/GUI_Display/GUI_Display.c
+2
-12
SEG_DISPLAY.c
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.c
+1
-103
Analog_Signals.c
Firmware/Source/Component/Analog/Analog_Signals.c
+15
-18
Analog_Signals.h
Firmware/Source/Component/Analog/Analog_Signals.h
+3
-5
PowerManag_user.c
Firmware/Source/Component/PowerManagement/PowerManag_user.c
+5
-5
Telltales_user.c
Firmware/Source/Component/Telltales/Telltales_user.c
+3
-107
RTE_ADC_INTERIM_VERSION.c
...vice/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.c
+5
-3
RTE_ADC_INTERIM_VERSION.h
...vice/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.h
+2
-0
Sys_Task_List.c
Firmware/Source/System/Sys_Task_List.c
+3
-3
Analog_Signals_HaoJin750TFT.xlsm
...ware/utility/MCU_Cfg/cfg/Analog_Signals_HaoJin750TFT.xlsm
+0
-0
Analog_Signals_RMR42E.xlsm
Firmware/utility/MCU_Cfg/cfg/Analog_Signals_RMR42E.xlsm
+0
-0
Analog_Signals.h
Firmware/utility/MCU_Cfg/inc/Analog_Signals.h
+59
-0
Analog_Signals.c
Firmware/utility/MCU_Cfg/src/Analog_Signals.c
+405
-0
No files found.
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/RMR42E.BAT
View file @
d7307d2b
...
...
@@ -3,7 +3,6 @@ SET CPU_TYPE=BAT32G139GK64FB
SET CPU_VENDOR=Cmsemicon
SET UV2_TARGET=RMR42E
SET CPU_CLOCK=0x00B71B00
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\data_fuel.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\backlight.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\data_espeed.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\data_vspeed.__i"
...
...
@@ -14,7 +13,6 @@ SET CPU_CLOCK=0x00B71B00
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\gui_display.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\can_user.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\can_app.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\data_coolant.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\data_tpms.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\faultcode.__i"
"C:\Keil_v5\ARM\ARMCC\Bin\ArmCC" --Via ".\objects\data_voltage.__i"
...
...
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/
TianYing
.uvprojx
→
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/
RMR42E
.uvprojx
View file @
d7307d2b
...
...
@@ -383,16 +383,6 @@
<Group>
<GroupName>
Application
</GroupName>
<Files>
<File>
<FileName>
Data_Fuel.c
</FileName>
<FileType>
1
</FileType>
<FilePath>
..\..\..\..\Source\Application\Fuel\Data_Fuel.c
</FilePath>
</File>
<File>
<FileName>
Data_Fuel.h
</FileName>
<FileType>
5
</FileType>
<FilePath>
..\..\..\..\Source\Application\Fuel\Data_Fuel.h
</FilePath>
</File>
<File>
<FileName>
BackLight.c
</FileName>
<FileType>
1
</FileType>
...
...
@@ -503,16 +493,6 @@
<FileType>
5
</FileType>
<FilePath>
..\..\..\..\Source\Application\CAN_User\Can_App.h
</FilePath>
</File>
<File>
<FileName>
Data_Coolant.c
</FileName>
<FileType>
1
</FileType>
<FilePath>
..\..\..\..\Source\Application\Data_Coolant\Data_Coolant.c
</FilePath>
</File>
<File>
<FileName>
Data_Coolant.h
</FileName>
<FileType>
5
</FileType>
<FilePath>
..\..\..\..\Source\Application\Data_Coolant\Data_Coolant.h
</FilePath>
</File>
<File>
<FileName>
Data_TPMS.c
</FileName>
<FileType>
1
</FileType>
...
...
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/RTE/_RMR42E/RTE_Components.h
View file @
d7307d2b
...
...
@@ -3,7 +3,7 @@
* Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! ***
*
* Project: '
TianYing
'
* Project: '
RMR42E
'
* Target: 'RMR42E'
*/
...
...
Firmware/Project/Cmsemicon/BAT32A239/MDK_ARM/TianYing.uvguix.Administrator
0 → 100644
View file @
d7307d2b
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ProjectGui
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"project_guix.xsd"
>
<SchemaVersion>
-6.1
</SchemaVersion>
<Header>
### uVision Project, (C) Keil Software
</Header>
<PrjGuiSettings>
<LastAddFilePath></LastAddFilePath>
</PrjGuiSettings>
<ViewPool/>
<SECTreeCtrl>
<View>
<WinId>
38003
</WinId>
<ViewName>
Registers
</ViewName>
<TableColWidths>
119 76
</TableColWidths>
</View>
<View>
<WinId>
346
</WinId>
<ViewName>
Code Coverage
</ViewName>
<TableColWidths>
838 160
</TableColWidths>
</View>
<View>
<WinId>
204
</WinId>
<ViewName>
Performance Analyzer
</ViewName>
<TableColWidths>
998
</TableColWidths>
</View>
</SECTreeCtrl>
<TreeListPane>
<View>
<WinId>
35141
</WinId>
<ViewName>
Event Statistics
</ViewName>
<UserString></UserString>
<TableColWidths>
200 50 700
</TableColWidths>
</View>
<View>
<WinId>
1506
</WinId>
<ViewName>
Symbols
</ViewName>
<UserString></UserString>
<TableColWidths>
68 68 68
</TableColWidths>
</View>
<View>
<WinId>
1936
</WinId>
<ViewName>
Watch 1
</ViewName>
<UserString></UserString>
<TableColWidths>
200 133 133
</TableColWidths>
</View>
<View>
<WinId>
1937
</WinId>
<ViewName>
Watch 2
</ViewName>
<UserString></UserString>
<TableColWidths>
200 133 133
</TableColWidths>
</View>
<View>
<WinId>
1935
</WinId>
<ViewName>
Call Stack + Locals
</ViewName>
<UserString></UserString>
<TableColWidths>
200 133 133
</TableColWidths>
</View>
<View>
<WinId>
2506
</WinId>
<ViewName>
Trace Data
</ViewName>
<UserString></UserString>
<TableColWidths>
75 135 130 95 70 230 200 150
</TableColWidths>
</View>
<View>
<WinId>
466
</WinId>
<ViewName>
Source Browser
</ViewName>
<UserString>
500
</UserString>
<TableColWidths>
300
</TableColWidths>
</View>
</TreeListPane>
<CompViewPool/>
<WindowSettings>
<LogicAnalizer>
<ShowLACursor>
1
</ShowLACursor>
<ShowSignalInfo>
1
</ShowSignalInfo>
<ShowCycles>
0
</ShowCycles>
<LeftSideBarSize>
0
</LeftSideBarSize>
<TimeBaseIndex>
-1
</TimeBaseIndex>
</LogicAnalizer>
</WindowSettings>
<WinLayoutEx>
<sActiveDebugView></sActiveDebugView>
<WindowPosition>
<length>
44
</length>
<flags>
2
</flags>
<showCmd>
3
</showCmd>
<MinPosition>
<xPos>
-32000
</xPos>
<yPos>
-32000
</yPos>
</MinPosition>
<MaxPosition>
<xPos>
-1
</xPos>
<yPos>
-1
</yPos>
</MaxPosition>
<NormalPosition>
<Top>
180
</Top>
<Left>
304
</Left>
<Right>
1502
</Right>
<Bottom>
824
</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
<RegID>
0
</RegID>
<MDITabState>
<Len>
60
</Len>
<Data>
010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000
</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
<ViewType>
0
</ViewType>
<ViewName>
Build
</ViewName>
<Window>
<RegID>
-1
</RegID>
<PaneID>
-1
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D10000004F000000C1040000C8000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1005
</RegID>
<PaneID>
1005
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000CA0000006C020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
109
</RegID>
<PaneID>
109
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000CA0000006C020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000002D01000035020000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1465
</RegID>
<PaneID>
1465
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000D2010000C10400004B020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1466
</RegID>
<PaneID>
1466
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1467
</RegID>
<PaneID>
1467
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1468
</RegID>
<PaneID>
1468
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1506
</RegID>
<PaneID>
1506
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
16384
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE040000E2000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1913
</RegID>
<PaneID>
1913
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D400000066000000BE040000AF000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1935
</RegID>
<PaneID>
1935
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
32768
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE04000032020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1936
</RegID>
<PaneID>
1936
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1937
</RegID>
<PaneID>
1937
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1939
</RegID>
<PaneID>
1939
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1940
</RegID>
<PaneID>
1940
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1941
</RegID>
<PaneID>
1941
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1942
</RegID>
<PaneID>
1942
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
195
</RegID>
<PaneID>
195
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000CA0000006C020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000002D01000035020000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
196
</RegID>
<PaneID>
196
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000CA0000006C020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000002D01000035020000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
197
</RegID>
<PaneID>
197
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
32768
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000009D020000B60600004D030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
198
</RegID>
<PaneID>
198
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
32768
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000BE010000C10400004B020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
199
</RegID>
<PaneID>
199
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000A0020000BE040000E9020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
203
</RegID>
<PaneID>
203
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D100000063000000C1040000C8000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
204
</RegID>
<PaneID>
204
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D400000066000000BE040000AF000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
221
</RegID>
<PaneID>
221
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000000000000000000000000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
2506
</RegID>
<PaneID>
2506
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F403000063000000C1040000CE010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
2507
</RegID>
<PaneID>
2507
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000D2010000C104000037020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
343
</RegID>
<PaneID>
343
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D400000066000000BE040000AF000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
346
</RegID>
<PaneID>
346
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D400000066000000BE040000AF000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35141
</RegID>
<PaneID>
35141
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D100000063000000C1040000C8000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35824
</RegID>
<PaneID>
35824
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D400000066000000BE040000AF000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35885
</RegID>
<PaneID>
35885
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35886
</RegID>
<PaneID>
35886
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35887
</RegID>
<PaneID>
35887
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35888
</RegID>
<PaneID>
35888
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35889
</RegID>
<PaneID>
35889
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35890
</RegID>
<PaneID>
35890
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35891
</RegID>
<PaneID>
35891
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35892
</RegID>
<PaneID>
35892
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35893
</RegID>
<PaneID>
35893
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35894
</RegID>
<PaneID>
35894
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35895
</RegID>
<PaneID>
35895
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35896
</RegID>
<PaneID>
35896
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35897
</RegID>
<PaneID>
35897
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35898
</RegID>
<PaneID>
35898
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35899
</RegID>
<PaneID>
35899
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35900
</RegID>
<PaneID>
35900
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35901
</RegID>
<PaneID>
35901
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35902
</RegID>
<PaneID>
35902
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35903
</RegID>
<PaneID>
35903
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35904
</RegID>
<PaneID>
35904
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
35905
</RegID>
<PaneID>
35905
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
38003
</RegID>
<PaneID>
38003
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000CA00000032020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000002D01000035020000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
38007
</RegID>
<PaneID>
38007
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000009D020000C104000002030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
436
</RegID>
<PaneID>
436
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000A0020000BE040000E9020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000002D01000035020000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
437
</RegID>
<PaneID>
437
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
440
</RegID>
<PaneID>
440
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
463
</RegID>
<PaneID>
463
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000A0020000BE040000E9020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000002D01000035020000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
466
</RegID>
<PaneID>
466
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000A0020000BE040000E9020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000002D01000035020000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
470
</RegID>
<PaneID>
470
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
D400000066000000BE040000AF000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A000000500000009A020000C9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50000
</RegID>
<PaneID>
50000
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50001
</RegID>
<PaneID>
50001
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50002
</RegID>
<PaneID>
50002
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50003
</RegID>
<PaneID>
50003
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50004
</RegID>
<PaneID>
50004
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50005
</RegID>
<PaneID>
50005
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50006
</RegID>
<PaneID>
50006
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50007
</RegID>
<PaneID>
50007
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50008
</RegID>
<PaneID>
50008
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50009
</RegID>
<PaneID>
50009
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50010
</RegID>
<PaneID>
50010
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50011
</RegID>
<PaneID>
50011
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50012
</RegID>
<PaneID>
50012
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50013
</RegID>
<PaneID>
50013
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50014
</RegID>
<PaneID>
50014
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50015
</RegID>
<PaneID>
50015
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50016
</RegID>
<PaneID>
50016
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50017
</RegID>
<PaneID>
50017
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50018
</RegID>
<PaneID>
50018
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
50019
</RegID>
<PaneID>
50019
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
F703000066000000BE04000038010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59392
</RegID>
<PaneID>
59392
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0000000000000000D10300001C000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59393
</RegID>
<PaneID>
0
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000004D030000B606000060030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59399
</RegID>
<PaneID>
59399
</PaneID>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
1
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
000000001C000000E701000038000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
59400
</RegID>
<PaneID>
59400
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
8192
</RecentFrameAlignment>
<RecentRowIndex>
2
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000380000006F02000054000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E000000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
824
</RegID>
<PaneID>
824
</PaneID>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
<MRUWidth>
32767
</MRUWidth>
<PinState>
0
</PinState>
<RecentFrameAlignment>
4096
</RecentFrameAlignment>
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000D5010000BE0400001E020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
3A0000005000000007010000FC000000
</Data>
</RectRecentFloat>
</Window>
<DockMan>
<Len>
3312
</Len>
<Data>
000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD1000000C8000000C1040000CC000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000003A000000500000009A020000C9000000D10000004F000000C1040000C80000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFF00300004F000000F4030000CE010000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000003A0000005000000007010000FC000000F40300004F000000C1040000CE01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFCD0000004F000000D100000085020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000003A0000005000000007010000FC000000000000004F000000CD000000850200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000BA010000C1040000BE01000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000003A0000005000000007010000FC00000000000000BE010000C10400004B02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF61020000BE010000650200004B02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000085020000B6060000890200000100000001000010040000000100000084FDFFFF77000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000003A000000500000009A020000C90000000000000089020000B60600004D0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
</DockMan>
<ToolBar>
<RegID>
59392
</RegID>
<Name>
File
</Name>
<Buttons>
<Len>
2537
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000
</Data>
</Buttons>
<OriginalItems>
<Len>
1423
</Len>
<Data>
2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000
</Data>
</OriginalItems>
<OrigResetItems>
<Len>
1423
</Len>
<Data>
2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000
</Data>
</OrigResetItems>
</ToolBar>
<ToolBar>
<RegID>
59399
</RegID>
<Name>
Build
</Name>
<Buttons>
<Len>
972
</Len>
<Data>
00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000006524D523432459600000000000000010006524D52343245000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000
</Data>
</Buttons>
<OriginalItems>
<Len>
583
</Len>
<Data>
1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000
</Data>
</OriginalItems>
<OrigResetItems>
<Len>
583
</Len>
<Data>
1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000
</Data>
</OrigResetItems>
</ToolBar>
<ToolBar>
<RegID>
59400
</RegID>
<Name>
Debug
</Name>
<Buttons>
<Len>
2373
</Len>
<Data>
00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000
</Data>
</Buttons>
<OriginalItems>
<Len>
898
</Len>
<Data>
1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000
</Data>
</OriginalItems>
<OrigResetItems>
<Len>
898
</Len>
<Data>
1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000
</Data>
</OrigResetItems>
</ToolBar>
<ControlBarsSummary>
<Bars>
0
</Bars>
<ScreenCX>
1718
</ScreenCX>
<ScreenCY>
926
</ScreenCY>
</ControlBarsSummary>
</ViewEx>
</WinLayoutEx>
</ProjectGui>
Firmware/Source/Application/Application.h
View file @
d7307d2b
...
...
@@ -2,7 +2,6 @@
#define APPLICATION_H__
#include "Fuel\Data_Fuel.h"
#include "GPIO_USER\GpioUser.h"
#include "BackLight\BackLight.h"
#include "Data_VSpeed\Data_VSpeed.h"
...
...
@@ -14,7 +13,6 @@
#include "CAN_APP\CAN_CH0_CAN_Communication_Matrix.h"
#include "Can_User/Can_User.h"
#include "Can_User/Can_App.h"
#include "Data_Coolant/Data_Coolant.h"
#include "Data_TPMS/Data_TPMS.h"
#include "Data_Voltage/Data_Voltage.h"
#include "FaultCode/FaultCode.h"
...
...
Firmware/Source/Application/CAN_User/Can_App.c
View file @
d7307d2b
...
...
@@ -34,31 +34,8 @@ void Can_Set_Buff_6EE(canlib_uint8_t CopyData[])
p6EE
->
Msg
[
i
]
=
0xFFu
;
}
}
p6EE
->
Sig
.
Vsppe_H3_TX
=
(
Vspeed_tx
>>
8
)
&
0x7u
;
p6EE
->
Sig
.
Vsppe_L8_TX
=
Vspeed_tx
&
0xFF
;
p6EE
->
Sig
.
ODO_TX_H
=
(
ODO_tx
>>
16
)
&
0xFF
;
p6EE
->
Sig
.
ODO_TX_M
=
(
ODO_tx
>>
8
)
&
0xFF
;
p6EE
->
Sig
.
ODO_TX_L
=
ODO_tx
&
0xFF
;
p6EE
->
Sig
.
Uint_TX
=
Get_Dis_KM_Unit
()
;
p6EE
->
Sig
.
Coolant_Seg_TX
=
GET_DataCoolantTempSegDisp
()
;
if
(
GET_DataCollantTempWarnflg
()
==
2
)
{
p6EE
->
Sig
.
Coolant_Warn_TX
=
1
;
}
else
{
p6EE
->
Sig
.
Coolant_Warn_TX
=
0
;
}
p6EE
->
Sig
.
Fuel_Seg_TX
=
Get_CurFuelSetp
()
;
if
(
Get_Fuel_RES
()
>
255
)
{
p6EE
->
Sig
.
Fuel_Res_TX
=
0xFF
;
}
else
{
p6EE
->
Sig
.
Fuel_Res_TX
=
Get_Fuel_RES
()
;
}
}
void
Can_Set_Buff_6EF
(
canlib_uint8_t
CopyData
[])
...
...
@@ -80,7 +57,7 @@ void Can_Set_Buff_6EF(canlib_uint8_t CopyData[])
p6EF
->
Sig
.
Espeed_TX
=
Espeed_tx
;
p6EF
->
Sig
.
TripA_H
=
(
TripA_tx
>>
8
)
&
0xFF
;
p6EF
->
Sig
.
TripA_L
=
TripA_tx
&
0xFF
;
p6EF
->
Sig
.
Coolant_TX
=
GET_DataCoolantTempValueDisp
()
+
40
;
}
void
Can_Set_Buff_450
(
canlib_uint8_t
CopyData
[])
{
...
...
Firmware/Source/Application/Data_Coolant/Data_Coolant.c
deleted
100644 → 0
View file @
c9ece335
#include "Data_Coolant\Data_Coolant.h"
#include "Application.h"
DataCoolantTempStruct
DataCoolantTemp
;
DataCoolantTempDisStruct
DataCoolantTemp_Dis
;
void
Data_Coolant_Temp_KL30_Init
(
void
)
{
DataCoolantTemp
.
Value
=
0
;
DataCoolantTemp
.
Valid
=
0
;
DataCoolantTemp_Dis
.
u8_CurSeg
=
0
;
DataCoolantTemp_Dis
.
u8_DestSeg
=
0
;
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
CoolantFlashtimer
;
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
CoolantFlashtimer
;
DataCoolantTemp_Dis
.
u8_Warnflg
=
0
;
DataCoolantTemp_Dis
.
u8_Flg
=
0
;
}
void
Data_Coolant_Temp_KL15_Init
(
void
)
{
DataCoolantTemp_Dis
.
u8_CurSeg
=
0
;
DataCoolantTemp_Dis
.
u8_DestSeg
=
0
;
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
0
;
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
0
;
DataCoolantTemp_Dis
.
u8_Warnflg
=
0
;
DataCoolantTemp_Dis
.
u8_Flg
=
0
;
}
void
Data_Coolant_Temp_Processing_Service
(
void
)
{
uint16_t
Coolant_Temperature
;
uint8_t
Coolant_Temperature_State
;
uint32_t
Temp
;
uint8_t
i
;
Coolant_Temperature
=
Get_CAN_CH0_ID_101_Sig_ECU_Engine_Temperature
();
Coolant_Temperature_State
=
Get_CAN_CH0_ID_101_Sig_ECU_Engine_Temperature_State
();
if
(
SYS_OPR_STAT_IGN_ON
)
{
if
(
CAN_MSG_Status
(
&
CAN_CH0_CanMsgOp
,
CAN_CH0_ID_CAN_0x101_Msg_Count
)
==
CAN_SIG_LOST
)
{
DataCoolantTemp
.
Valid
=
0
;
DataCoolantTemp
.
Value
=
0
;
}
else
{
if
(
Coolant_Temperature_State
==
1
)
{
DataCoolantTemp
.
Valid
=
0
;
DataCoolantTemp
.
Value
=
0
;
}
else
{
DataCoolantTemp
.
Valid
=
1
;
if
(
Coolant_Temperature
>=
2730
)
{
Coolant_Temperature
-=
2730
;
}
else
{
Coolant_Temperature
=
0
;
}
if
((
Coolant_Temperature
%
10
)
>=
5
)
{
Coolant_Temperature
+=
5
;
}
if
(
Coolant_Temperature
>
1990
)
{
Coolant_Temperature
=
1990
;
}
DataCoolantTemp
.
Value
=
Coolant_Temperature
/
10
;
}
}
}
else
{
DataCoolantTemp
.
Valid
=
0
;
DataCoolantTemp
.
Value
=
0
;
}
//显示
Data_Coolant_Temp_Display
();
}
void
Data_Coolant_Temp_Display
(
void
)
{
if
(
SYS_OPR_STAT_IGN_ON
)
{
if
(
Common_GetIgnOnTime
()
<
3000
)
{
DataCoolantTemp_Dis
.
u8_Uptimer
=
CoolantSelfCheckFlashtimer
;
DataCoolantTemp_Dis
.
u8_Downtimer
=
CoolantSelfCheckFlashtimer
;
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
==
0
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
5
;
}
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
==
5
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
0
;
}
DataCoolantTemp_Dis
.
u8_Warnflg
=
0
;
DataCoolantTemp_Dis
.
u8_Flg
=
0
;
DataCoolantTemp_Dis
.
Dis_Valid
=
0
;
}
else
{
DataCoolantTemp_Dis
.
u8_Uptimer
=
CoolantFlashtimer
;
DataCoolantTemp_Dis
.
u8_Downtimer
=
CoolantFlashtimer
;
Get_Coolant_Temp_Seg
(
DataCoolantTemp
.
Value
);
if
(
DataCoolantTemp
.
Valid
==
0
)
{
DataCoolantTemp_Dis
.
Dis_Valid
=
0
;
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
DataCoolantTemp_Dis
.
u8_Uptimer
;
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
DataCoolantTemp_Dis
.
u8_Downtimer
;
DataCoolantTemp_Dis
.
u8_CurSeg
=
0
;
DataCoolantTemp_Dis
.
u8_DestSeg
=
0
;
DataCoolantTemp_Dis
.
u8_Flg
=
0
;
}
else
{
DataCoolantTemp_Dis
.
Dis_Valid
=
1
;
if
(
DataCoolantTemp_Dis
.
u8_Flg
==
2
)
{
DataCoolantTemp_Dis
.
u8_Flg
=
1
;
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
0
;
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
0
;
}
else
if
(
DataCoolantTemp_Dis
.
u8_Flg
==
0
)
{
DataCoolantTemp_Dis
.
u8_Flg
=
2
;
DataCoolantTemp_Dis
.
u8_CurSeg
=
DataCoolantTemp_Dis
.
u8_DestSeg
;
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
DataCoolantTemp_Dis
.
u8_Uptimer
;
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
DataCoolantTemp_Dis
.
u8_Downtimer
;
}
}
}
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
DataCoolantTemp_Dis
.
u8_DestSeg
)
{
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
0
;
DataCoolantTemp_Dis
.
u8_DownFlashtimer
++
;
if
(
DataCoolantTemp_Dis
.
u8_DownFlashtimer
>=
DataCoolantTemp_Dis
.
u8_Downtimer
)
{
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
0
;
DataCoolantTemp_Dis
.
u8_CurSeg
--
;
}
}
else
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
<
DataCoolantTemp_Dis
.
u8_DestSeg
)
{
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
0
;
DataCoolantTemp_Dis
.
u8_UpFlashtimer
++
;
if
(
DataCoolantTemp_Dis
.
u8_UpFlashtimer
>=
DataCoolantTemp_Dis
.
u8_Uptimer
)
{
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
0
;
DataCoolantTemp_Dis
.
u8_CurSeg
++
;
}
}
//warning
if
(
DataCoolantTemp
.
Valid
==
0
)
{
DataCoolantTemp_Dis
.
u8_Warnflg
=
1
;
}
else
{
if
(
DataCoolantTemp
.
Value
>=
115
)
{
DataCoolantTemp_Dis
.
u8_Warnflg
=
2
;
}
else
if
(
DataCoolantTemp
.
Value
<=
112
)
{
DataCoolantTemp_Dis
.
u8_Warnflg
=
0
;
}
else
{
;
}
}
}
else
{
DataCoolantTemp_Dis
.
Dis_Valid
=
0
;
DataCoolantTemp_Dis
.
u8_UpFlashtimer
=
DataCoolantTemp_Dis
.
u8_Uptimer
;
DataCoolantTemp_Dis
.
u8_DownFlashtimer
=
DataCoolantTemp_Dis
.
u8_Downtimer
;
DataCoolantTemp_Dis
.
u8_Warnflg
=
0
;
DataCoolantTemp_Dis
.
u8_Flg
=
0
;
}
}
void
Get_Coolant_Temp_Seg
(
uint16_t
Temp_Value
)
{
uint8_t
TempSeg
;
uint8_t
CurTempSeg
;
if
(
Temp_Value
<
50
)
{
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
1
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
1
;
}
else
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
0
)
{
if
(
Temp_Value
<=
47
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
0
;
}
}
else
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
0
;
}
}
else
if
((
Temp_Value
<
62
)
&&
(
Temp_Value
>=
50
))
{
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
2
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
2
;
}
else
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
1
)
{
if
(
Temp_Value
<=
59
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
1
;
}
}
else
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
1
;
}
}
else
if
((
Temp_Value
<
80
)
&&
(
Temp_Value
>=
62
))
{
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
3
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
3
;
}
else
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
2
)
{
if
(
Temp_Value
<=
77
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
2
;
}
}
else
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
2
;
}
}
else
if
((
Temp_Value
<
98
)
&&
(
Temp_Value
>=
80
))
{
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
4
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
4
;
}
else
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
3
)
{
if
(
Temp_Value
<=
95
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
3
;
}
}
else
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
3
;
}
}
else
if
((
Temp_Value
<
115
)
&&
(
Temp_Value
>=
98
))
{
if
(
DataCoolantTemp_Dis
.
u8_CurSeg
>
4
)
{
if
(
Temp_Value
<=
112
)
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
4
;
}
}
else
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
4
;
}
}
else
{
DataCoolantTemp_Dis
.
u8_DestSeg
=
5
;
}
}
//水温显示格数
uint8_t
GET_DataCoolantTempSegDisp
(
void
)
{
return
DataCoolantTemp_Dis
.
u8_CurSeg
;
}
//水温显示有效标志
uint8_t
GET_DataCollantTempSegValid
(
void
)
{
return
DataCoolantTemp_Dis
.
Dis_Valid
;
}
//水温数显。作为外发使用的时候+40
uint16_t
GET_DataCoolantTempValueDisp
(
void
)
{
return
DataCoolantTemp
.
Value
;
}
uint8_t
GET_DataCollantTempValueValid
(
void
)
{
return
DataCoolantTemp
.
Valid
;
}
//水温灯及显示的报警信号 0:无报警,正常显示 1:掉线或者state无效,白色闪烁 2:高温,红色闪烁
uint8_t
GET_DataCollantTempWarnflg
(
void
)
{
return
DataCoolantTemp_Dis
.
u8_Warnflg
;
}
Firmware/Source/Application/Data_Coolant/Data_Coolant.h
deleted
100644 → 0
View file @
c9ece335
#ifndef _DATA_Coolant_H_
#define _DATA_Coolant_H_
#include "common.h"
#define CoolantFlashtimer 250
#define CoolantSelfCheckFlashtimer 15
/*** 控制结构 ***/
typedef
struct
__attribute__
((
aligned
(
4
)))
{
uint8_t
Dis_Valid
;
uint8_t
u8_DestSeg
;
uint8_t
u8_CurSeg
;
uint8_t
u8_UpFlashtimer
;
uint8_t
u8_DownFlashtimer
;
uint8_t
u8_Uptimer
;
uint8_t
u8_Downtimer
;
uint8_t
u8_Flashflg
;
uint8_t
u8_Warnflg
;
uint8_t
u8_Flg
;
}
DataCoolantTempDisStruct
;
extern
DataCoolantTempDisStruct
DataCoolantTemp_Dis
;
typedef
struct
__attribute__
((
aligned
(
4
)))
{
uint16_t
Value
;
uint8_t
Valid
;
}
DataCoolantTempStruct
;
//水温数据结构
void
Data_Coolant_Temp_KL30_Init
(
void
);
void
Data_Coolant_Temp_KL15_Init
(
void
);
void
Data_Coolant_Temp_Processing_Service
(
void
);
void
Get_Coolant_Temp_Seg
(
uint16_t
Temp_Value
);
void
Data_Coolant_Temp_Display
(
void
);
uint8_t
GET_DataCollantTempSegValid
(
void
);
uint8_t
GET_DataCoolantTempSegDisp
(
void
);
uint16_t
GET_DataCoolantTempValueDisp
(
void
);
uint8_t
GET_DataCollantTempWarnflg
(
void
);
extern
DataCoolantTempStruct
DataCoolantTemp
;
#endif
Firmware/Source/Application/Fuel/Data_Fuel.c
deleted
100644 → 0
View file @
c9ece335
#include "Data_Fuel.h"
#include "Application.h"
#define FUEL_DATA_TIME 25u
/*这里填写多长时间采集一个数据,单位ms*/
#define FUEL_DATA_NUM 20u
/*燃油电阻采集数据总数 最大255*/
#define FUEL_CAL_START 5u
/*数据排序后取中间部分计算平均:起始*/
#define FUEL_CAL_END 15u
/*数据排序后取中间部分计算平均:结束*/
#define RETURN_DIFFERENCE 25u
/*判断上升或下降的回差,精度0.1*/
#define FUEL_SEG_UP 0u
#define FUEL_SEG_DOWN 1u
uint16_t
FuelData
[
FUEL_DATA_NUM
];
uint8_t
FuelDataCount
=
0u
;
uint16_t
FuelR
=
0u
;
/*滤波后的燃油电阻,精度0.1*/
static
uint16_t
FuelRBak
=
0
;
uint8_t
DesFuelSetp
=
0u
;
uint8_t
CurFuelSetp
=
0u
;
uint8_t
FuelInitFlag
=
0u
;
uint8_t
FuelStateInitFlag
=
0u
;
uint8_t
FuelDir
=
FUEL_SEG_UP
;
FuelSensorSts_t
FuelSensorState
=
FuelSensorNormal
;
uint16_t
FuelSensorNormalTime
=
0u
;
uint16_t
FuelSensorShortTime
=
0u
;
uint16_t
FuelSensorOpenTime
=
0u
;
uint8_t
FuelADCompleteFlg
=
0u
;
void
Fuel_KL30_Init
(
void
)
{
DesFuelSetp
=
0u
;
CurFuelSetp
=
0u
;
FuelInitFlag
=
1u
;
FuelStateInitFlag
=
1u
;
FuelDir
=
FUEL_SEG_UP
;
FuelSensorState
=
FuelSensorNormal
;
FuelSensorNormalTime
=
0u
;
FuelSensorShortTime
=
0u
;
FuelSensorOpenTime
=
0u
;
FuelADCompleteFlg
=
0u
;
// PORT_ClrBit(Fuel_Vcc_en);
}
void
Fuel_KL15_Init
(
void
)
{
// PORT_SetBit(Fuel_Vcc_en);
DesFuelSetp
=
0u
;
CurFuelSetp
=
0u
;
FuelInitFlag
=
1u
;
FuelStateInitFlag
=
1u
;
FuelDir
=
FUEL_SEG_UP
;
FuelSensorState
=
FuelSensorNormal
;
FuelSensorNormalTime
=
0u
;
FuelSensorShortTime
=
0u
;
FuelSensorOpenTime
=
0u
;
FuelADCompleteFlg
=
0u
;
}
uint16_t
TestFuelR
=
1100u
;
void
Fuel_R_Cal
(
uint8_t
deltaTime
)
{
uint16_t
FuelRes
=
0
;
uint8_t
i
,
j
;
uint32_t
temp32
;
static
uint16_t
timeCount
=
0
;
if
(
FuelStateInitFlag
)
{
FuelR
=
ADC_Read_Signal
(
ADC_CH_FUEL1
);
}
if
(
timeCount
>=
FUEL_DATA_TIME
)
{
timeCount
=
0
;
if
(
FuelDataCount
<
FUEL_DATA_NUM
)
{
/*获取燃油电阻*/
FuelRes
=
ADC_Read_Signal
(
ADC_CH_FUEL1
);
/*四舍五入*/
//if (FuelRes < 32000)
//{
//if (FuelRes % 10 >= 5)
//{
// FuelRes += 5;
//}
//}
//else
//{
// FuelRes = 32000;
//}
/*由小到大插入数据*/
for
(
i
=
0
;
i
<
FuelDataCount
;
i
++
)
{
if
(
FuelRes
<
FuelData
[
i
])
{
break
;
}
}
for
(
j
=
FuelDataCount
;
j
>
i
;
j
--
)
{
FuelData
[
j
]
=
FuelData
[
j
-
1
];
}
FuelData
[
i
]
=
FuelRes
;
FuelDataCount
++
;
}
else
{
/*一组数据采集完毕,取中间部分计算平均值*/
temp32
=
0
;
for
(
i
=
FUEL_CAL_START
;
i
<
FUEL_CAL_END
;
i
++
)
{
temp32
+=
FuelData
[
i
];
}
FuelR
=
temp32
/
(
FUEL_CAL_END
-
FUEL_CAL_START
);
FuelDataCount
=
0
;
FuelADCompleteFlg
=
1
;
}
}
timeCount
+=
deltaTime
;
}
void
Fuel_State_Check
(
uint8_t
deltaTime
)
{
if
(
FuelR
<
30
)
{
/*短路 1*/
FuelSensorOpenTime
=
0
;
FuelSensorNormalTime
=
0
;
if
((
FuelSensorShortTime
>
3000
)
||
((
FuelStateInitFlag
)
&&
(
FuelSensorShortTime
>
3000
)))
{
FuelSensorState
=
FuelSensorShortCircuit
;
DesFuelSetp
=
0
;
CurFuelSetp
=
0
;
FuelStateInitFlag
=
0
;
FuelInitFlag
=
1
;
FuelDir
=
FUEL_SEG_UP
;
}
else
{
FuelSensorShortTime
+=
deltaTime
;
}
}
else
if
(
FuelR
>=
3100
)
{
/*断路 320*/
FuelSensorShortTime
=
0
;
FuelSensorNormalTime
=
0
;
if
((
FuelSensorOpenTime
>
2800
)
||
((
FuelStateInitFlag
)
&&
(
FuelSensorOpenTime
>
2800
)))
{
FuelSensorState
=
FuelSensorOpenCircuit
;
DesFuelSetp
=
0
;
CurFuelSetp
=
5
;
FuelStateInitFlag
=
0
;
FuelInitFlag
=
1
;
FuelDir
=
FUEL_SEG_UP
;
}
else
{
FuelSensorOpenTime
+=
deltaTime
;
}
}
else
{
FuelSensorShortTime
=
0
;
FuelSensorOpenTime
=
0
;
if
(
FuelSensorNormalTime
>
3000
)
{
FuelSensorState
=
FuelSensorNormal
;
FuelStateInitFlag
=
0
;
}
else
{
FuelSensorNormalTime
+=
deltaTime
;
}
}
}
void
Fuel_Gauges_Cal
(
uint8_t
deltaTime
)
{
static
uint32_t
time
=
0
;
if
((
FuelSensorState
==
FuelSensorNormal
)
&&
(
FuelR
<
3100
))
{
// 32000 //FuelR >10 change FuelR >20
/*采集完第一组数据后,开始计算燃油格数*/
if
(
FuelADCompleteFlg
)
{
if
(
FuelInitFlag
)
{
FuelRBak
=
FuelR
;
}
/*根据回差计算走动方向*/
if
(
FuelDir
==
FUEL_SEG_UP
)
{
if
(
FuelR
>=
FuelRBak
+
RETURN_DIFFERENCE
)
{
FuelDir
=
FUEL_SEG_DOWN
;
FuelRBak
=
FuelR
;
}
if
(
FuelR
<
FuelRBak
)
{
FuelRBak
=
FuelR
;
}
}
else
{
if
(
FuelRBak
>=
FuelR
+
RETURN_DIFFERENCE
)
{
FuelDir
=
FUEL_SEG_UP
;
FuelRBak
=
FuelR
;
}
if
(
FuelR
>
FuelRBak
)
{
FuelRBak
=
FuelR
;
}
}
/*计算目标格数*/
if
(
FuelDir
==
FUEL_SEG_UP
)
{
if
(((
DesFuelSetp
==
4
)
||
FuelInitFlag
)
&&
(
FuelR
<
130
))
{
DesFuelSetp
=
5
;
}
else
if
(((
DesFuelSetp
==
3
)
||
FuelInitFlag
)
&&
(
FuelR
<
280
))
{
DesFuelSetp
=
4
;
}
else
if
(((
DesFuelSetp
==
2
)
||
FuelInitFlag
)
&&
(
FuelR
<
430
))
{
DesFuelSetp
=
3
;
}
else
if
(((
DesFuelSetp
==
1
)
||
FuelInitFlag
)
&&
(
FuelR
<
630
))
{
DesFuelSetp
=
2
;
}
else
if
(((
DesFuelSetp
==
0
)
||
FuelInitFlag
)
&&
(
FuelR
<
880
))
{
DesFuelSetp
=
1
;
}
}
else
if
(
FuelDir
==
FUEL_SEG_DOWN
)
{
if
(((
DesFuelSetp
==
1
)
||
FuelInitFlag
)
&&
(
FuelR
>=
880
))
{
DesFuelSetp
=
0
;
}
else
if
(((
DesFuelSetp
==
2
)
||
FuelInitFlag
)
&&
(
FuelR
>=
630
))
{
DesFuelSetp
=
1
;
}
else
if
(((
DesFuelSetp
==
3
)
||
FuelInitFlag
)
&&
(
FuelR
>=
430
))
{
DesFuelSetp
=
2
;
}
else
if
(((
DesFuelSetp
==
4
)
||
FuelInitFlag
)
&&
(
FuelR
>=
280
))
{
DesFuelSetp
=
3
;
}
else
if
(((
DesFuelSetp
==
5
)
||
FuelInitFlag
)
&&
(
FuelR
>=
130
))
{
DesFuelSetp
=
4
;
}
}
}
/*IGN ON 1秒/故障恢复后,开始走格 立即指向当前格 20220704*/
if
(
Common_GetIgnOnTime
()
>=
3000
)
{
time
+=
deltaTime
;
if
(
FuelInitFlag
)
{
FuelInitFlag
=
0
;
time
=
0
;
CurFuelSetp
=
DesFuelSetp
;
}
if
(
Get_ActualVechileSpeed
()
==
0
)
{
if
(
time
>=
24000
)
{
/* 24S变化一格 */
time
=
0
;
if
(
CurFuelSetp
<
DesFuelSetp
)
{
CurFuelSetp
++
;
}
else
if
(
CurFuelSetp
>
DesFuelSetp
)
{
CurFuelSetp
--
;
}
}
}
else
{
if
(
time
>=
360000
)
{
/* 360S变化一格 */
time
=
0
;
if
(
CurFuelSetp
<
DesFuelSetp
)
{
CurFuelSetp
++
;
}
else
if
(
CurFuelSetp
>
DesFuelSetp
)
{
CurFuelSetp
--
;
}
}
}
if
(
CurFuelSetp
==
DesFuelSetp
)
{
time
=
0
;
}
}
}
}
uint8_t
Get_Fuel_Disp_Byte
(
void
)
{
uint8_t
FuelDispByte
=
0u
;
FuelDispByte
=
CurFuelSetp
;
// if (FuelSensorState == FuelSensorShortCircuit)
//{
// //Short
// FuelDispByte = FLASH_SYNC_1Hz ? 7 : 0;
// }
// else if (FuelSensorState == FuelSensorOpenCircuit)
//{
// //Open
// FuelDispByte = FLASH_SYNC_1Hz ? 6 : 0;
// }
// else if (CurFuelSetp == 1)
//{
// FuelDispByte = FLASH_SYNC_1Hz ? 1 : 0;
// }
//
// else if(CurFuelSetp == 0)
//{
// FuelDispByte = 0;
// }
return
FuelDispByte
;
}
void
Fuel_Cal_Sevice
(
uint8_t
deltaTime
)
{
/*检测燃油电阻状态*/
Fuel_State_Check
(
deltaTime
);
/*显示燃油格*/
Fuel_Gauges_Cal
(
deltaTime
);
}
uint8_t
Get_CurFuelSetp
(
void
)
{
return
CurFuelSetp
;
}
FuelSensorSts_t
Get_Fuel_Sensor_State
(
void
)
{
return
FuelSensorState
;
}
//燃油阻值,用于外发
uint16_t
Get_Fuel_RES
(
void
)
{
uint16_t
Fuel_Res
=
0
;
if
(
Get_Fuel_Sensor_State
()
==
FuelSensorShortCircuit
)
{
Fuel_Res
=
3
;
}
else
if
(
Get_Fuel_Sensor_State
()
==
FuelSensorOpenCircuit
)
{
Fuel_Res
=
310
;
}
else
{
Fuel_Res
=
FuelR
/
10
;
}
return
Fuel_Res
;
}
Firmware/Source/Application/Fuel/Data_Fuel.h
deleted
100644 → 0
View file @
c9ece335
#ifndef DATA_FUEL_H
#define DATA_FUEL_H
#include "Components.h"
typedef
enum
__attribute__
((
aligned
(
4
)))
{
FuelSensorNormal
=
0
,
FuelSensorShortCircuit
,
FuelSensorOpenCircuit
,
}
FuelSensorSts_t
;
extern
void
Fuel_KL15_Init
(
void
);
extern
void
Fuel_KL30_Init
(
void
);
extern
void
Fuel_Cal_Sevice
(
uint8_t
deltaTime
);
extern
uint8_t
Get_Fuel_Disp_Byte
(
void
);
extern
uint8_t
Get_CurFuelSetp
(
void
);
extern
FuelSensorSts_t
Get_Fuel_Sensor_State
(
void
);
uint16_t
Get_Fuel_RES
(
void
);
#endif
Firmware/Source/Application/GUI_Display/GUI_Display.c
View file @
d7307d2b
...
...
@@ -93,11 +93,7 @@ void Gauge_Service(void)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
k
,
LED_OFF
);
}
//LED_Driver_Channel_Set(LampChannel_0, LampCh0_35_ODO, LED_OFF);
//LED_Driver_Channel_Set(LampChannel_0, LampCh0_34_TRIP, LED_OFF);
//LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Screen_Time, LED_OFF);
//LED_Driver_Channel_Set(LampChannel_0, LampCh0_08_KMH, LED_OFF);
//LED_Driver_Channel_Set(LampChannel_0, LampCh0_09_MPH, LED_OFF);
}
}
else
...
...
@@ -106,11 +102,7 @@ void Gauge_Service(void)
{
if
(
Common_GetIgnOnTime
()
>=
3000
)
{
//for(i = 0; i < BU98R10_DDRAM_SIZE; i ++)
//{
// BU98R10Chip0DDRAM.Byte[i] = 0x77;
// BU98R10Chip1DDRAM.Byte[i] = 0x77;
//}
if
(
VSpeed_Count
<
3
)
{
...
...
@@ -124,9 +116,7 @@ void Gauge_Service(void)
SEG_SET_ODO_TRIP_FAULTCODE_TCS_DIS
(
Get_Dis_KM_Unit
(),
Get_ODO_Value
()
/
10u
,
Get_Trip_Value
());
Gauge_Clock_Display
();
SEG_SET_FuelDial
(
1
,
Get_CurFuelSetp
());
SEG_SET_EspeedDial
(
1
,
Get_DispEngineSpeed
()
/
500
);
SEG_SET_CoolantDial
(
1
,
GET_DataCoolantTempSegDisp
(),
GET_DataCoolantTempValueDisp
(),
GET_DataCollantTempSegValid
());
SEG_SET_Voltage_NUM
(
1
,
Get_Battery_Voltage
());
#if(IC_Current == TY200_080000b_ty)
SEG_SET_TPMS_NUM
(
1
,
Get_Front_TPMS_Sig_Value
(),
Get_Rear_TPMS_Sig_Value
(),
Get_Dis_Tpms_Unit
(),
Get_Front_TPMS_Sig_Vaild
(),
Get_Rear_TPMS_Sig_Vaild
());
...
...
Firmware/Source/Application/SEG_DISPLAY/SEG_DISPLAY.c
View file @
d7307d2b
...
...
@@ -969,109 +969,7 @@ void SEG_SET_Navigation_STS(uint8_t m_Flag, uint8_t m_Code, uint32_t m_Mileage)
*/
void
SEG_SET_FuelDial
(
uint8_t
m_Flag
,
uint8_t
m_SEG
)
{
if
(
m_Flag
==
1u
)
{
IC2_SEG107
=
IC_SEG_ON
;
IC2_SEG106
=
IC_SEG_GREY
;
IC2_SEG105
=
IC_SEG_GREY
;
IC2_SEG104
=
IC_SEG_GREY
;
IC2_SEG102
=
IC_SEG_GREY
;
IC2_SEG101
=
IC_SEG_GREY
;
if
(((
Get_Fuel_Sensor_State
()
==
2
)
||
(
Get_Fuel_Sensor_State
()
==
1
))
&&
(
ClearODO_Flag
!=
1
)
&&
(
Common_GetIgnOnTime
()
>=
3000
))
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG106
=
IC_SEG_ON
;
IC2_SEG105
=
IC_SEG_ON
;
IC2_SEG104
=
IC_SEG_ON
;
IC2_SEG102
=
IC_SEG_ON
;
IC2_SEG101
=
IC_SEG_ON
;
IC2_SEG108
=
IC_SEG_ON
;
IC2_SEG100
=
IC_SEG_ON
;
}
else
{
IC2_SEG106
=
IC_SEG_GREY
;
IC2_SEG105
=
IC_SEG_GREY
;
IC2_SEG104
=
IC_SEG_GREY
;
IC2_SEG102
=
IC_SEG_GREY
;
IC2_SEG101
=
IC_SEG_GREY
;
IC2_SEG108
=
IC_SEG_GREY
;
IC2_SEG100
=
IC_SEG_GREY
;
}
}
else
{
if
((
Get_CurFuelSetp
()
==
0
)
&&
(
Common_GetIgnOnTime
()
>=
3000
))
{
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG108
=
IC_SEG_ON
;
IC2_SEG100
=
IC_SEG_ON
;
}
else
{
IC2_SEG108
=
IC_SEG_GREY
;
IC2_SEG100
=
IC_SEG_GREY
;
}
}
else
{
IC2_SEG108
=
IC_SEG_ON
;
IC2_SEG100
=
IC_SEG_ON
;
}
if
((
Get_CurFuelSetp
()
==
1
)
&&
(
ClearODO_Flag
!=
1
)
&&
(
Common_GetIgnOnTime
()
>=
3000
))
{
IC2_SEG108
=
IC_SEG_ON
;
IC2_SEG100
=
IC_SEG_ON
;
if
(
FLASH_SYNC_1Hz
)
{
IC2_SEG106
=
IC_SEG_ON
;
}
else
{
IC2_SEG106
=
IC_SEG_GREY
;
}
}
else
{
switch
(
m_SEG
)
{
case
5u
:
IC2_SEG101
=
IC_SEG_ON
;
case
4u
:
IC2_SEG102
=
IC_SEG_ON
;
case
3u
:
IC2_SEG104
=
IC_SEG_ON
;
case
2u
:
IC2_SEG105
=
IC_SEG_ON
;
case
1u
:
IC2_SEG106
=
IC_SEG_ON
;
case
0u
:
break
;
default:
break
;
}
}
}
}
else
{
IC2_SEG108
=
IC_SEG_OFF
;
IC2_SEG106
=
IC_SEG_OFF
;
IC2_SEG105
=
IC_SEG_OFF
;
IC2_SEG104
=
IC_SEG_OFF
;
IC2_SEG102
=
IC_SEG_OFF
;
IC2_SEG101
=
IC_SEG_OFF
;
IC2_SEG107
=
IC_SEG_OFF
;
IC2_SEG100
=
IC_SEG_OFF
;
}
}
...
...
Firmware/Source/Component/Analog/Analog_Signals.c
View file @
d7307d2b
...
...
@@ -4,7 +4,7 @@
* \attention
*
* This file is automatically generated by analog signals configuration tool.
* Date : 2024/
3/31 13:14:40
* Date : 2024/
6/16 16:49:27
* Cfg Tool Ver : 1.1.0
* Engineer : ShiHao
* (c) Heilongjiang TYW electronics co., LTD
...
...
@@ -15,7 +15,7 @@
#include "Analog_Signals.h"
/* Private typedef ----------------------------------------------------------*/
typedef
struct
typedef
struct
__attribute__
((
aligned
(
4
)))
{
uint8_t
u8Ch
;
uint8_t
u8RefType
;
...
...
@@ -26,7 +26,7 @@ typedef struct
ADC_Circuit_Calc_Func
pfProcFunc
;
}
ADC_Ch_Cfg_st_t
;
typedef
enum
ASigConvStat
typedef
__attribute__
((
aligned
(
4
)))
enum
ASigConvStat
{
ADC_STAT_IDLE
=
0
,
ADC_STAT_INIT
,
...
...
@@ -36,7 +36,7 @@ typedef enum ASigConvStat
ADC_STAT_ERR
,
}
ADC_Stat_en_t
;
typedef
struct
typedef
struct
__attribute__
((
aligned
(
4
)))
{
ADC_Stat_en_t
enStatus
;
uint8_t
u8CurrentCh
;
...
...
@@ -44,7 +44,7 @@ typedef struct
uint8_t
u8Timer
;
}
ADC_Ctrl_st_t
;
typedef
struct
typedef
struct
__attribute__
((
aligned
(
4
)))
{
uint8_t
u8Valid
;
uint8_t
u8Rsvd
;
...
...
@@ -72,25 +72,21 @@ ADC_Ctrl_st_t stADCCtrl;
uint16_t
u16ADCSample
[
ADC_CONV_CH_NUMBER
];
ADC_Data_st_t
stADCData
[
ADC_SIGNAL_CH_NUMBER
];
const
uint8_t
u8ADCChList
[
ADC_CONV_CH_NUMBER
]
=
const
uint8_t
__attribute__
((
aligned
(
4
)))
u8ADCChList
[
ADC_CONV_CH_NUMBER
]
=
{
2U
,
3U
,
7U
,
5U
,
2U
,
3U
,
};
const
ADC_Ch_Cfg_st_t
stADCChCfg
[
ADC_SIGNAL_CH_NUMBER
]
=
const
__attribute__
((
aligned
(
4
)))
ADC_Ch_Cfg_st_t
stADCChCfg
[
ADC_SIGNAL_CH_NUMBER
]
=
{
{
0U
,
0U
,
0U
,
0U
,
70
0U
,
1U
,
ADC_Voltage_Calc_Circuit102
,},
{
0U
,
0U
,
0U
,
0U
,
0U
,
1U
,
ADC_Voltage_Calc_Circuit102
,},
{
1U
,
0U
,
0U
,
0U
,
0U
,
1U
,
ADC_Voltage_Calc_Circuit102
,},
{
2U
,
0U
,
0U
,
0U
,
0U
,
1U
,
ADC_Voltage_Calc_Circuit101
,},
{
3U
,
2U
,
0U
,
2U
,
18U
,
1U
,
ADC_Res_Calc_Circuit101
,},
};
const
ADC_Res_List_st_t
stADCResList
[
ADC_SIGNAL_CH_NUMBER
]
=
const
__attribute__
((
aligned
(
4
)))
ADC_Res_List_st_t
stADCResList
[
ADC_SIGNAL_CH_NUMBER
]
=
{
{
3300000U
,
1000000U
,
0U
,
0U
,},
{
3300000U
,
1000000U
,
0U
,
0U
,},
{
0U
,
0U
,
0U
,
0U
,},
{
0U
,
0U
,
2000U
,
300U
,},
};
/* Private function prototypes ----------------------------------------------*/
...
...
@@ -115,10 +111,11 @@ void Analog_Signal_Conv_Init(void)
}
}
RTE_ADC_Init
(
0
,
2
);
RTE_ADC_Init
(
0
,
3
);
RTE_ADC_Init
(
0
,
5
);
RTE_ADC_Init
(
0
,
7
);
for
(
i
=
0U
;
i
<
ADC_CONV_CH_NUMBER
;
i
++
)
{
RTE_ADC_Init
(
0
,
u8ADCChList
[
i
]);
}
for
(
i
=
0U
;
i
<
ADC_SIGNAL_CH_NUMBER
;
i
++
)
{
...
...
Firmware/Source/Component/Analog/Analog_Signals.h
View file @
d7307d2b
...
...
@@ -4,7 +4,7 @@
* \attention
*
* This file is automatically generated by analog signals configuration tool.
* Date : 2024/
3/31 13:14:40
* Date : 2024/
6/16 16:49:27
* Cfg Tool Ver : 1.1.0
* Engineer : ShiHao
* (c) Heilongjiang TYW electronics co., LTD
...
...
@@ -30,13 +30,11 @@ enum ADCChName
{
ADC_CH_KL30_VOLTAGE
=
0
,
ADC_CH_KL15_VOLTAGE
,
ADC_CH_FUEL_VREF
,
ADC_CH_FUEL1
,
};
/* Exported macro ------------------------------------------------------------*/
#define ADC_TOTAL_CH_NUMBER (
4
U)
#define ADC_SIGNAL_CH_NUMBER (
4
U)
#define ADC_TOTAL_CH_NUMBER (
2
U)
#define ADC_SIGNAL_CH_NUMBER (
2
U)
#define ADC_REF_VOLTAGE u16ADCRefVoltage
/* Exported variables --------------------------------------------------------*/
...
...
Firmware/Source/Component/PowerManagement/PowerManag_user.c
View file @
d7307d2b
...
...
@@ -60,14 +60,14 @@ static void Power_KL30_Init(void)
Checkself_Init
();
Data_Vehicle_Speed_KL30_Init
();
Data_Engine_Speed_KL30_Wakeup_Init
();
Data_Coolant_Temp_KL30_Init
();
LINE_IN_Init
();
Key_KL30_Init_EXample
();
//Light_Sensor_Init_Example();//注意顺序1
LED_Driver_Init_Example
();
//注意顺序2
LED_Driver_Service_Immediate
();
Data_User_Mileage_KL30Init
();
Fuel_KL30_Init
();
Data_Voltage_Init
();
// TimerM_PWM_counter_Output_Init(TIMERM_COUNTER0, 400, 64000000);
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
400
,
64000000
);
...
...
@@ -121,7 +121,7 @@ static void Power_Wakeup_Init(void)
Protocol_KL30_Wakeup_Init
();
Uart0_Init
(
115200
);
BlueTooth_KL30_KL15_Wakeup_Init
();
Fuel_KL30_Init
();
Data_Voltage_Init
();
// TimerM_PWM_counter_Output_Init(TIMERM_COUNTER0, 400, 64000000);
TimerM_PWM_counter_Output_Init
(
TIMERM_COUNTER1
,
400
,
64000000
);
...
...
@@ -159,10 +159,10 @@ static void Power_IG_ON_Init(void)
Line_In_KL15_ON_Init
();
Telltales_KL15_Init
();
Telltales_UserInit
();
Fuel_KL15_Init
();
Data_Voltage_Init
();
MenuData_TCS_Init
();
Data_Coolant_Temp_KL15_Init
();
BlueTooth_KL30_KL15_Wakeup_Init
();
Data_TPMS_KL15_WAKE_UP_Init
();
CAN_TX_SetEnable
(
&
CAN_CH0_CanMsgTxOp
,
CAN_N_TX_Enable
);
...
...
Firmware/Source/Component/Telltales/Telltales_user.c
View file @
d7307d2b
...
...
@@ -223,125 +223,21 @@ static void LED_Oil_Pressure_Execution(Tellib_uint16_t led_status)
static
Tellib_uint16_t
LED_Fuel_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
Common_GetIgnOnTime
()
>=
3000
)
{
if
(
Get_Fuel_Sensor_State
()
==
FuelSensorNormal
)
{
if
(
Get_CurFuelSetp
()
>
1
)
{
LED_STATE
=
3
;
//白灯
}
else
{
LED_STATE
=
2
;
//格小于等于1,黄灯闪
}
}
else
{
LED_STATE
=
2
;
//开路,黄灯闪
}
}
else
{
LED_STATE
=
1
;
//黄灯常亮
}
return
LED_STATE
;
}
static
void
LED_Fuel_Execution
(
Tellib_uint16_t
led_status
)
{
if
(
led_status
==
3u
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_21_Fuel_W
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_20_Fuel_Y
,
LED_OFF
);
SEG_SET_LED_STS
(
em_SEG_Fuel
,
1
);
}
else
if
(
led_status
==
2u
)
{
if
(
FLASH_SYNC_1Hz
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_20_Fuel_Y
,
LED_ON
);
SEG_SET_LED_STS
(
em_SEG_Fuel
,
1
);
}
else
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_20_Fuel_Y
,
LED_OFF
);
SEG_SET_LED_STS
(
em_SEG_Fuel
,
0
);
}
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_21_Fuel_W
,
LED_OFF
);
}
else
if
(
led_status
==
1u
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_20_Fuel_Y
,
LED_ON
);
SEG_SET_LED_STS
(
em_SEG_Fuel
,
1
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_21_Fuel_W
,
LED_OFF
);
}
else
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_21_Fuel_W
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_20_Fuel_Y
,
LED_OFF
);
//SEG_SET_LED_STS(em_SEG_Fuel,0);
}
}
static
Tellib_uint16_t
LED_Coolant_Judgement
(
void
)
{
Tellib_uint16_t
LED_STATE
=
0u
;
if
(
GET_DataCollantTempWarnflg
()
==
2
)
{
LED_STATE
=
2
;
}
else
if
(
GET_DataCollantTempWarnflg
()
==
1
)
{
LED_STATE
=
3
;
}
else
{
LED_STATE
=
1
;
}
return
LED_STATE
;
}
static
void
LED_Coolant_Execution
(
Tellib_uint16_t
led_status
)
{
if
(
led_status
==
2u
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_13_Temp_AlarmW
,
LED_OFF
);
if
(
FLASH_SYNC_1Hz
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_11_Temp_AlarmR
,
LED_ON
);
SEG_SET_LED_STS
(
em_SEG_Coolant
,
1
);
}
else
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_11_Temp_AlarmR
,
LED_OFF
);
SEG_SET_LED_STS
(
em_SEG_Coolant
,
0
);
}
}
else
if
(
led_status
==
3u
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_11_Temp_AlarmR
,
LED_OFF
);
if
(
FLASH_SYNC_1Hz
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_13_Temp_AlarmW
,
LED_ON
);
SEG_SET_LED_STS
(
em_SEG_Coolant
,
1
);
}
else
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_13_Temp_AlarmW
,
LED_OFF
);
SEG_SET_LED_STS
(
em_SEG_Coolant
,
0
);
}
}
else
if
(
led_status
==
1u
)
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_13_Temp_AlarmW
,
LED_ON
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_11_Temp_AlarmR
,
LED_OFF
);
SEG_SET_LED_STS
(
em_SEG_Coolant
,
1
);
}
else
{
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_13_Temp_AlarmW
,
LED_OFF
);
LED_Driver_Channel_Set
(
LampChannel_0
,
LampCh0_11_Temp_AlarmR
,
LED_OFF
);
SEG_SET_LED_STS
(
em_SEG_Coolant
,
0
);
}
}
static
Tellib_uint16_t
LED_Bluetooth_Judgement
(
void
)
{
...
...
Firmware/Source/Device/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.c
View file @
d7307d2b
...
...
@@ -4,8 +4,9 @@
#include "cgc.h"
#include "gpio.h"
#include "isr.h"
#include "Analog\Analog_Signals.h"
uint8_t
u8NewChNum
[
4
]
=
{
2
,
3
,
7
,
5
};
// uint8_t
u8NewChNum[4] = {2, 3, 7, 5};
void
RTC_ADC_Interrupt
(
void
*
msg
)
{
...
...
@@ -17,6 +18,7 @@ void RTE_ADC_Init(const uint8_t u8ChList[], uint8_t u8ChNum)
{
GPIO_InitTypeDef
GPIO_InitStructure
=
{
0
};
ADC_InitTypeDef
ADC_InitStructure
=
{
0
};
if
(
u8ChNum
<=
7
)
{
...
...
@@ -133,13 +135,13 @@ void RTE_ADC_Get_Conversion_Result(uint16_t *pu16Data, uint8_t u8ChNum)
uint8_t
i
;
if
((
pu16Data
!=
0U
)
&&
(
u8ChNum
>
0U
)
&&
(
u8ChNum
<=
4U
))
if
((
pu16Data
!=
0U
)
&&
(
u8ChNum
>
0U
)
&&
(
u8ChNum
<=
ADC_TOTAL_CH_NUMBER
))
{
if
(
RTE_ADC_Get_Conversion_Status
()
==
0U
)
{
for
(
i
=
0U
;
i
<
u8ChNum
;
i
++
)
{
ADC_Converse
(
u8NewChNum
[
i
],
1
,
pu16Data
);
ADC_Converse
(
(
ADC_Channel_t
)
u8ADCChList
[
i
],
1
,
pu16Data
);
pu16Data
++
;
}
}
...
...
Firmware/Source/Device/Cmsemicon/BAT32A239/RTE/AD/RTE_ADC_INTERIM_VERSION.h
View file @
d7307d2b
...
...
@@ -4,6 +4,8 @@
#include <stdint.h>
extern
const
uint8_t
u8ADCChList
[];
#define ADC_RESOLUTION (4096U)
/* 12bit ADC */
extern
void
RTE_ADC_Init
(
const
uint8_t
u8ChList
[],
uint8_t
u8ChNum
);
...
...
Firmware/Source/System/Sys_Task_List.c
View file @
d7307d2b
...
...
@@ -47,7 +47,7 @@ void Sys_10ms_Tasks(void)
Data_Mileage_Write_EEPROM
();
Can_BusOff_Recover
(
10u
);
Turn_Left_Right_Lamp
();
Fuel_R_Cal
(
10u
);
TYW_Check_Count
();
Data_TPMS_Processing_Service
();
Protocol_Service
();
...
...
@@ -61,7 +61,7 @@ void Sys_20ms_Tasks(void)
Key_Auto_Save
();
Data_Vehicle_Speed_Processing_Service
();
Data_Engine_Speed_Processing_Service
();
Data_Coolant_Temp_Processing_Service
();
}
...
...
@@ -85,7 +85,7 @@ void Sys_100ms_Tasks(void)
counter_val
.
time
.
RTC_Hours
=
RTC_Bcd2ToByte
(
counter_val
.
time
.
RTC_Hours
);
counter_val
.
time
.
RTC_Minutes
=
RTC_Bcd2ToByte
(
counter_val
.
time
.
RTC_Minutes
);
}
Fuel_Cal_Sevice
(
100u
);
BackLight_Process
();
Services_Mileage_Callback
();
Data_Voltage_Processing_Service
();
...
...
Firmware/utility/MCU_Cfg/cfg/Analog_Signals_HaoJin750TFT.xlsm
deleted
100644 → 0
View file @
c9ece335
File deleted
Firmware/utility/MCU_Cfg/cfg/Analog_Signals_RMR42E.xlsm
0 → 100644
View file @
d7307d2b
File added
Firmware/utility/MCU_Cfg/inc/Analog_Signals.h
0 → 100644
View file @
d7307d2b
/**************************************************************************//**
* \file Analog_Signals.h
* \brief Analog signal processing
* \attention
*
* This file is automatically generated by analog signals configuration tool.
* Date : 2024/6/16 16:49:27
* Cfg Tool Ver : 1.1.0
* Engineer : ShiHao
* (c) Heilongjiang TYW electronics co., LTD
*
******************************************************************************/
#ifndef ANALOG_SIGNALS_H__
#define ANALOG_SIGNALS_H__
/* Includes -----------------------------------------------------------------*/
#include "ADC.h"
#include "Analog_Circuits.h"
#include "RTE.h"
/* C binding of definitions if building with C++ compiler */
#ifdef __cplusplus
extern
{
#endif
/*! @{ */
/* Exported types ------------------------------------------------------------*/
enum
ADCChName
{
ADC_CH_KL30_VOLTAGE
=
0
,
ADC_CH_KL15_VOLTAGE
,
};
/* Exported macro ------------------------------------------------------------*/
#define ADC_TOTAL_CH_NUMBER (2U)
#define ADC_SIGNAL_CH_NUMBER (2U)
#define ADC_REF_VOLTAGE u16ADCRefVoltage
/* Exported variables --------------------------------------------------------*/
extern
volatile
uint16_t
u16ADCRefVoltage
;
extern
const
uint8_t
u8ADCChList
[];
/* Exported functions --------------------------------------------------------*/
extern
void
Analog_Signal_Conv_Init
(
void
);
extern
void
Analog_Signal_Conv_Stop
(
void
);
extern
void
Analog_Signal_Conv_Service
(
void
);
extern
uint16_t
ADC_Read_Signal
(
uint8_t
u8ADCCh
);
extern
uint8_t
ADC_Read_Signal_Valid
(
uint8_t
u8ADCCh
);
extern
uint16_t
ADC_Conv_Single_Channel
(
uint8_t
u8ADCCh
);
/*! @} */
#ifdef __cplusplus
}
#endif
#endif
/* ANALOG_SIGNALS_H__ */
Firmware/utility/MCU_Cfg/src/Analog_Signals.c
0 → 100644
View file @
d7307d2b
/**************************************************************************//**
* \file Analog_Signals.c
* \brief Analog signal processing
* \attention
*
* This file is automatically generated by analog signals configuration tool.
* Date : 2024/6/16 16:49:27
* Cfg Tool Ver : 1.1.0
* Engineer : ShiHao
* (c) Heilongjiang TYW electronics co., LTD
*
******************************************************************************/
/* Includes -----------------------------------------------------------------*/
#include "Analog_Signals.h"
/* Private typedef ----------------------------------------------------------*/
typedef
struct
__attribute__
((
aligned
(
4
)))
{
uint8_t
u8Ch
;
uint8_t
u8RefType
;
uint8_t
u8CalMode
;
uint16_t
u16Reference
;
uint16_t
u16CalData
;
uint16_t
u16Resolution
;
ADC_Circuit_Calc_Func
pfProcFunc
;
}
ADC_Ch_Cfg_st_t
;
typedef
__attribute__
((
aligned
(
4
)))
enum
ASigConvStat
{
ADC_STAT_IDLE
=
0
,
ADC_STAT_INIT
,
ADC_STAT_WAIT
,
ADC_STAT_CONV
,
ADC_STAT_PROC
,
ADC_STAT_ERR
,
}
ADC_Stat_en_t
;
typedef
struct
__attribute__
((
aligned
(
4
)))
{
ADC_Stat_en_t
enStatus
;
uint8_t
u8CurrentCh
;
uint8_t
u8DebounceCnt
;
uint8_t
u8Timer
;
}
ADC_Ctrl_st_t
;
typedef
struct
__attribute__
((
aligned
(
4
)))
{
uint8_t
u8Valid
;
uint8_t
u8Rsvd
;
uint16_t
u16Value
;
}
ADC_Data_st_t
;
/* Private macro -------------------------------------------------------------*/
#define ADC_DEFAULT_REF_VOLTAGE (5000U)
#define ADC_CONV_CH_NUMBER (ADC_TOTAL_CH_NUMBER)
#define ADC_SAMPLE_INTERVAL (2U)
#define ADC_MAX_SAMPLE_WAIT (10U)
#define ADC_PWR_UP_DEBOUNCE (10U)
#define ADC_CONV_WAIT (50000U)
#define ADC_REF_TYPE_V_NONE (0x00U)
#define ADC_REF_TYPE_V_VREF (0x01U)
#define ADC_REF_TYPE_V_CH (0x02U)
#define ADC_REF_TYPE_V_FIXED (0x03U)
#define ADC_REF_TYPE_I_FIXED (0x13U)
/* Private variables --------------------------------------------------------*/
volatile
uint16_t
u16ADCRefVoltage
;
ADC_Ctrl_st_t
stADCCtrl
;
uint16_t
u16ADCSample
[
ADC_CONV_CH_NUMBER
];
ADC_Data_st_t
stADCData
[
ADC_SIGNAL_CH_NUMBER
];
const
uint8_t
__attribute__
((
aligned
(
4
)))
u8ADCChList
[
ADC_CONV_CH_NUMBER
]
=
{
2U
,
3U
,
};
const
__attribute__
((
aligned
(
4
)))
ADC_Ch_Cfg_st_t
stADCChCfg
[
ADC_SIGNAL_CH_NUMBER
]
=
{
{
0U
,
0U
,
0U
,
0U
,
0U
,
1U
,
ADC_Voltage_Calc_Circuit102
,},
{
1U
,
0U
,
0U
,
0U
,
0U
,
1U
,
ADC_Voltage_Calc_Circuit102
,},
};
const
__attribute__
((
aligned
(
4
)))
ADC_Res_List_st_t
stADCResList
[
ADC_SIGNAL_CH_NUMBER
]
=
{
{
3300000U
,
1000000U
,
0U
,
0U
,},
{
3300000U
,
1000000U
,
0U
,
0U
,},
};
/* Private function prototypes ----------------------------------------------*/
/* Private functions --------------------------------------------------------*/
void
Analog_Signal_Conv_Init
(
void
)
{
uint8_t
i
;
uint32_t
u32Timer_Init
=
0
;
while
(
RTE_ADC_Get_Conversion_Status
())
{
u32Timer_Init
++
;
if
(
u32Timer_Init
<
ADC_CONV_WAIT
)
{
RTE_ADC_Stop_Conversion
();
}
else
{
u32Timer_Init
=
0
;
break
;
}
}
for
(
i
=
0U
;
i
<
ADC_CONV_CH_NUMBER
;
i
++
)
{
RTE_ADC_Init
(
0
,
u8ADCChList
[
i
]);
}
for
(
i
=
0U
;
i
<
ADC_SIGNAL_CH_NUMBER
;
i
++
)
{
stADCData
[
i
].
u8Valid
=
0U
;
stADCData
[
i
].
u16Value
=
0U
;
}
stADCCtrl
.
enStatus
=
ADC_STAT_INIT
;
stADCCtrl
.
u8CurrentCh
=
0U
;
stADCCtrl
.
u8DebounceCnt
=
ADC_PWR_UP_DEBOUNCE
/
ADC_SAMPLE_INTERVAL
;
stADCCtrl
.
u8Timer
=
0U
;
u16ADCRefVoltage
=
ADC_DEFAULT_REF_VOLTAGE
;
}
void
Analog_Signal_Conv_Stop
(
void
)
{
uint8_t
i
;
RTE_ADC_DeInit
();
for
(
i
=
0U
;
i
<
ADC_SIGNAL_CH_NUMBER
;
i
++
)
{
stADCData
[
i
].
u8Valid
=
0U
;
}
stADCCtrl
.
enStatus
=
ADC_STAT_IDLE
;
stADCCtrl
.
u8DebounceCnt
=
ADC_PWR_UP_DEBOUNCE
/
ADC_SAMPLE_INTERVAL
;
u16ADCRefVoltage
=
ADC_DEFAULT_REF_VOLTAGE
;
}
void
Analog_Signal_Conv_Service
(
void
)
{
uint8_t
u8Valid
;
uint16_t
u16Voltage
;
uint16_t
u16Reference
;
uint16_t
u16Result
;
switch
(
stADCCtrl
.
enStatus
)
{
case
ADC_STAT_IDLE
:
break
;
case
ADC_STAT_INIT
:
RTE_ADC_Start_Conversion
();
stADCCtrl
.
u8Timer
=
0U
;
stADCCtrl
.
u8CurrentCh
=
0U
;
if
(
stADCCtrl
.
u8DebounceCnt
==
0U
)
{
stADCCtrl
.
enStatus
=
ADC_STAT_CONV
;
}
else
{
stADCCtrl
.
enStatus
=
ADC_STAT_WAIT
;
}
break
;
case
ADC_STAT_WAIT
:
if
(
stADCCtrl
.
u8DebounceCnt
)
{
stADCCtrl
.
u8DebounceCnt
--
;
}
if
(
RTE_ADC_Get_Conversion_Status
()
==
0U
)
{
RTE_ADC_Start_Conversion
();
stADCCtrl
.
u8Timer
=
0U
;
if
(
stADCCtrl
.
u8DebounceCnt
==
0U
)
{
stADCCtrl
.
enStatus
=
ADC_STAT_CONV
;
}
}
else
{
stADCCtrl
.
u8Timer
++
;
if
(
stADCCtrl
.
u8Timer
>=
ADC_MAX_SAMPLE_WAIT
/
ADC_SAMPLE_INTERVAL
)
{
stADCCtrl
.
enStatus
=
ADC_STAT_ERR
;
RTE_ADC_Stop_Conversion
();
}
}
break
;
case
ADC_STAT_CONV
:
if
(
RTE_ADC_Get_Conversion_Status
()
==
0U
)
{
RTE_ADC_Get_Conversion_Result
(
u16ADCSample
,
ADC_CONV_CH_NUMBER
);
stADCCtrl
.
u8Timer
=
0U
;
stADCCtrl
.
u8CurrentCh
=
0U
;
u16ADCRefVoltage
=
ADC_DEFAULT_REF_VOLTAGE
;
stADCCtrl
.
enStatus
=
ADC_STAT_PROC
;
}
else
{
stADCCtrl
.
u8Timer
++
;
if
(
stADCCtrl
.
u8Timer
>=
ADC_MAX_SAMPLE_WAIT
/
ADC_SAMPLE_INTERVAL
)
{
stADCCtrl
.
enStatus
=
ADC_STAT_ERR
;
RTE_ADC_Stop_Conversion
();
}
}
break
;
case
ADC_STAT_PROC
:
u16Voltage
=
ADC_Input_Voltage_Calc
(
u16ADCSample
[
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u8Ch
],
ADC_RESOLUTION
,
u16ADCRefVoltage
);
u8Valid
=
1U
;
if
(
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u8RefType
==
ADC_REF_TYPE_V_NONE
)
{
u16Reference
=
0U
;
}
else
if
(
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u8RefType
==
ADC_REF_TYPE_V_VREF
)
{
u16Reference
=
u16ADCRefVoltage
;
}
else
if
(
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u8RefType
==
ADC_REF_TYPE_V_CH
)
{
u16Reference
=
ADC_Read_Signal
((
uint8_t
)
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u16Reference
);
u8Valid
=
ADC_Read_Signal_Valid
((
uint8_t
)
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u16Reference
);
}
else
if
((
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u8RefType
==
ADC_REF_TYPE_V_FIXED
)
||
\
(
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u8RefType
==
ADC_REF_TYPE_I_FIXED
))
{
u16Reference
=
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u16Reference
;
}
else
{
u8Valid
=
0U
;
}
if
(
u8Valid
)
{
u16Result
=
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
pfProcFunc
(
u16Voltage
,
u16Reference
,
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u16Resolution
,
&
stADCResList
[
stADCCtrl
.
u8CurrentCh
]);
u16Result
=
ADC_Data_Calibrate
(
u16Result
,
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u8CalMode
,
stADCChCfg
[
stADCCtrl
.
u8CurrentCh
].
u16CalData
);
stADCData
[
stADCCtrl
.
u8CurrentCh
].
u16Value
=
u16Result
;
stADCData
[
stADCCtrl
.
u8CurrentCh
].
u8Valid
=
1U
;
}
else
{
stADCData
[
stADCCtrl
.
u8CurrentCh
].
u16Value
=
0U
;
stADCData
[
stADCCtrl
.
u8CurrentCh
].
u8Valid
=
0U
;
}
stADCCtrl
.
u8CurrentCh
++
;
if
(
stADCCtrl
.
u8CurrentCh
>=
ADC_SIGNAL_CH_NUMBER
)
{
RTE_ADC_Start_Conversion
();
stADCCtrl
.
u8CurrentCh
=
0U
;
stADCCtrl
.
enStatus
=
ADC_STAT_CONV
;
}
break
;
case
ADC_STAT_ERR
:
if
(
RTE_ADC_Get_Conversion_Status
()
==
0U
)
{
stADCCtrl
.
enStatus
=
ADC_STAT_INIT
;
}
else
{
RTE_ADC_Stop_Conversion
();
}
break
;
default
:
Analog_Signal_Conv_Init
();
break
;
}
}
uint16_t
ADC_Read_Signal
(
uint8_t
u8ADCCh
)
{
uint16_t
u16Value
;
if
(
u8ADCCh
<
ADC_SIGNAL_CH_NUMBER
)
{
u16Value
=
stADCData
[
u8ADCCh
].
u16Value
;
}
else
{
u16Value
=
0U
;
}
return
u16Value
;
}
uint8_t
ADC_Read_Signal_Valid
(
uint8_t
u8ADCCh
)
{
uint8_t
u8Valid
;
if
(
u8ADCCh
<
ADC_SIGNAL_CH_NUMBER
)
{
u8Valid
=
stADCData
[
u8ADCCh
].
u8Valid
;
}
else
{
u8Valid
=
0U
;
}
return
u8Valid
;
}
uint16_t
ADC_Conv_Single_Channel
(
uint8_t
u8ADCCh
)
{
uint8_t
u8RefCh
;
uint8_t
u8Valid
;
uint8_t
u8ConvResult
;
uint16_t
u16Voltage
;
uint16_t
u16Reference
;
uint16_t
u16Result
;
uint32_t
u32Timer
;
u16Result
=
0U
;
if
(
u8ADCCh
<
ADC_SIGNAL_CH_NUMBER
)
{
if
(
RTE_ADC_Get_Conversion_Status
()
==
0U
)
{
RTE_ADC_Start_Conversion
();
}
u32Timer
=
0U
;
do
{
u32Timer
++
;
u8ConvResult
=
RTE_ADC_Get_Conversion_Status
();
}
while
((
u8ConvResult
!=
0U
)
&&
(
u32Timer
<
ADC_CONV_WAIT
));
if
(
u8ConvResult
==
0U
)
{
RTE_ADC_Get_Conversion_Result
(
u16ADCSample
,
ADC_CONV_CH_NUMBER
);
u16ADCRefVoltage
=
ADC_DEFAULT_REF_VOLTAGE
;
u16Voltage
=
ADC_Input_Voltage_Calc
(
u16ADCSample
[
stADCChCfg
[
u8ADCCh
].
u8Ch
],
ADC_RESOLUTION
,
u16ADCRefVoltage
);
u8Valid
=
1U
;
if
(
stADCChCfg
[
u8ADCCh
].
u8RefType
==
ADC_REF_TYPE_V_NONE
)
{
u16Reference
=
0U
;
}
else
if
(
stADCChCfg
[
u8ADCCh
].
u8RefType
==
ADC_REF_TYPE_V_VREF
)
{
u16Reference
=
u16ADCRefVoltage
;
}
else
if
(
stADCChCfg
[
u8ADCCh
].
u8RefType
==
ADC_REF_TYPE_V_CH
)
{
u8RefCh
=
(
uint8_t
)
stADCChCfg
[
u8ADCCh
].
u16Reference
;
u16Reference
=
ADC_Input_Voltage_Calc
(
u16ADCSample
[
stADCChCfg
[
u8RefCh
].
u8Ch
],
ADC_RESOLUTION
,
u16ADCRefVoltage
);
u16Reference
=
stADCChCfg
[
u8RefCh
].
pfProcFunc
(
u16Reference
,
0U
,
stADCChCfg
[
u8RefCh
].
u16Resolution
,
&
stADCResList
[
u8RefCh
]);
u16Reference
=
ADC_Data_Calibrate
(
u16Reference
,
stADCChCfg
[
u8RefCh
].
u8CalMode
,
stADCChCfg
[
u8RefCh
].
u16CalData
);
}
else
if
((
stADCChCfg
[
u8ADCCh
].
u8RefType
==
ADC_REF_TYPE_V_FIXED
)
||
\
(
stADCChCfg
[
u8ADCCh
].
u8RefType
==
ADC_REF_TYPE_I_FIXED
))
{
u16Reference
=
stADCChCfg
[
u8ADCCh
].
u16Reference
;
}
else
{
u8Valid
=
0U
;
}
if
(
u8Valid
)
{
u16Result
=
stADCChCfg
[
u8ADCCh
].
pfProcFunc
(
u16Voltage
,
u16Reference
,
stADCChCfg
[
u8ADCCh
].
u16Resolution
,
&
stADCResList
[
u8ADCCh
]);
u16Result
=
ADC_Data_Calibrate
(
u16Result
,
stADCChCfg
[
u8ADCCh
].
u8CalMode
,
stADCChCfg
[
u8ADCCh
].
u16CalData
);
}
}
}
return
u16Result
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment