Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
Z3dev-AllToOneFanPanel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
limm
Z3dev-AllToOneFanPanel
Commits
3169de12
Commit
3169de12
authored
Mar 18, 2021
by
limm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1,根据V2.0版本需求,更新固件功能
parent
579396ac
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1362 additions
and
1637 deletions
+1362
-1637
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvgui.11730
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvgui.11730
+177
-105
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvopt
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvopt
+11
-43
Code/海顿-多合一新风面板/APP/Nu_Link_Driver.ini
Code/海顿-多合一新风面板/APP/Nu_Link_Driver.ini
+3
-3
Code/海顿-多合一新风面板/APP/User/inc/Key.h
Code/海顿-多合一新风面板/APP/User/inc/Key.h
+15
-5
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
+3
-3
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
+10
-8
Code/海顿-多合一新风面板/APP/User/src/Key.c
Code/海顿-多合一新风面板/APP/User/src/Key.c
+381
-674
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
+317
-462
Code/海顿-多合一新风面板/APP/User/src/display_common.c
Code/海顿-多合一新风面板/APP/User/src/display_common.c
+444
-333
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
+1
-1
No files found.
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvgui.11730
View file @
3169de12
...
...
@@ -85,17 +85,17 @@
<yPos>
-1
</yPos>
</MaxPosition>
<NormalPosition>
<Top>
50
</Top>
<Left>
-1345
</Left>
<Right>
-262
</Right>
<Bottom>
749
</Bottom>
<Top>
-5
</Top>
<Left>
202
</Left>
<Right>
1285
</Right>
<Bottom>
694
</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
<RegID>
0
</RegID>
<MDITabState>
<Len>
2174
</Len>
<Data>
010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000
0A0000000000000001000000A8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C646973706C61795F636F6D6D6F6E2E630000000010646973706C61795F636F6D6D6F6E2E6300000000FFDC7800FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C636F6E74726F6C5F636F6D6D2E63000000000E636F6E74726F6C5F636F6D6D2E6300000000BECEA100FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C4343323533305F7472616E73706172656E745F616E616C797A652E68000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6800000000F0A0A100FFFFFFFFA7443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C68617264776172655F696E69742E63000000000F68617264776172655F696E69742E6300000000BCA8E100FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C4343323533305F7472616E73706172656E745F616E616C797A652E63000000001C4343323533305F7472616E73706172656E745F616E616C797A652E63000000009CC1B600FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C6D66675F666163746F72742E63000000000D6D66675F666163746F72742E6300000000F7B88600FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C6D66675F666163746F72792E68000000000D6D66675F666163746F72792E6800000000D9ADC200FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C4B65792E6300000000054B65792E6300000000A5C2D700FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C4B65792E6800000000054B65792E6800000000B3A6BE00FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C636F6E74726F6C5F636F6D6D2E68000000000E636F6E74726F6C5F636F6D6D2E6800000000EAD6A300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000093F9FFFFDDFFFFFF00000000BB
020000
</Data>
<Len>
3761
</Len>
<Data>
010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000
120000000700000001000000A8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C646973706C61795F636F6D6D6F6E2E630000000010646973706C61795F636F6D6D6F6E2E6300000000FFDC7800FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C636F6E74726F6C5F636F6D6D2E63000000000E636F6E74726F6C5F636F6D6D2E6300000000BECEA100FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C4343323533305F7472616E73706172656E745F616E616C797A652E68000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6800000000F0A0A100FFFFFFFFA7443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C68617264776172655F696E69742E63000000000F68617264776172655F696E69742E6300000000BCA8E100FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C4343323533305F7472616E73706172656E745F616E616C797A652E63000000001C4343323533305F7472616E73706172656E745F616E616C797A652E63000000009CC1B600FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C6D66675F666163746F72742E63000000000D6D66675F666163746F72742E6300000000F7B88600FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C6D66675F666163746F72792E68000000000D6D66675F666163746F72792E6800000000D9ADC200FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C4B65792E6300000000054B65792E6300000000A5C2D700FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C4B65792E6800000000054B65792E6800000000B3A6BE00FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C636F6E74726F6C5F636F6D6D2E68000000000E636F6E74726F6C5F636F6D6D2E6800000000EAD6A300FFFFFFFFA8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C646973706C61795F636F6D6D6F6E2E680000000010646973706C61795F636F6D6D6F6E2E6800000000F6FA7D00FFFFFFFFD0443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C41524D5C737461727475705F4D696E6935385365726965732E730000000016737461727475705F4D696E6935385365726965732E7300000000B5E99D00FFFFFFFF95443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C6D61696E2E6300000000066D61696E2E63000000005FC3CF00FFFFFFFFAE443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4C6962726172795C434D5349535C496E636C7564655C636D7369735F61726D63632E68000000000D636D7369735F61726D63632E6800000000C1838300FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C424C3535303732412E63000000000A424C3535303732412E6300000000CACAD500FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4C6962726172795C5374644472697665725C7372635C636C6B2E630000000005636C6B2E6300000000C5D4F200FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C7372635C56434E4C333034302E63000000000A56434E4C333034302E6300000000FFDC7800FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBD0C2B7E7C3E6B0E55C4150505C557365725C696E635C56434E4C333034302E68000000000A56434E4C333034302E6800000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000003601000066000000000500001A
020000
</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
...
...
@@ -118,7 +118,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
24F9FFFFDDFFFFFF30FCFFFF41
000000
</Data>
<Data>
A400000066000000B0030000CA
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -134,7 +134,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
0C0100001403
0000
</Data>
<Data>
0300000066000000
2F010000EA01
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -154,7 +154,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
0C0100001403
0000
</Data>
<Data>
0300000066000000
2F010000EA01
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -434,7 +434,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
0C0100001403
0000
</Data>
<Data>
0300000066000000
2F010000EA01
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -454,7 +454,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
0C0100001403
0000
</Data>
<Data>
0300000066000000
2F010000EA01
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -474,7 +474,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
480300007D070000D703
0000
</Data>
<Data>
03000000
1E020000FD0400006E02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -514,7 +514,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
480300007D070000D703
0000
</Data>
<Data>
03000000
1E020000FD0400006E02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1114,7 +1114,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000000C010000
1403
0000
</Data>
<Data>
03000000660000000C010000
6E01
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1134,7 +1134,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
480300007D070000D703
0000
</Data>
<Data>
03000000
1E020000FD0400006E02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1154,7 +1154,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
480300007D070000D703
0000
</Data>
<Data>
03000000
1E020000FD040000EA02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1634,7 +1634,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000
F0030000800700000304
0000
</Data>
<Data>
00000000
87020000000500009A02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1683,14 +1683,14 @@
</Window>
<DockMan>
<Len>
3119
</Len>
<Data>
000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000B3000000B0030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000
24F9FFFFDDFFFFFF30FCFFFF41000000A40000004F000000B0030000B30000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000090FBFFFFDDFFFFFF30FCFFFFD4000000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF0F0100004F000000130100002D0300000100000002000010040000000100000062FFFFFF57040000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFF8FF9FFFFBB020000000000004F0000000F0100002D0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000003D010000B00300004101000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000080F8FFFFCF00000030FCFFFF3C0100000000000041010000B0030000AE01000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFD801000041010000DC010000AE01000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000002D03000080070000310300000100000001000010040000000100000073FEFFFFA0000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFFBF020000000000007E030000000000003103000080070000F003
00000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
<Data>
000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000B3000000B0030000B7000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000
A400000066000000B0030000CA000000A40000004F000000B0030000B30000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000001003000066000000B00300005D010000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF320100004F000000360100000302000001000000020000100400000001000000F3FEFFFFE8030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000000F0100009E010000000000004F00000032010000030200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000003D010000B00300004101000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB090000018000800000000000000000000058010000B0030000C50100000000000041010000B0030000AE01000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFD801000041010000DC010000AE01000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000030200000005000007020000010000000100001004000000010000006EFEFFFF9B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000000000000A2010000000500009E0200000000000007020000000500008702
00000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
</DockMan>
<ToolBar>
<RegID>
59392
</RegID>
<Name>
File
</Name>
<Buttons>
<Len>
24
98
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE1000000000
0000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000F6167696E675F746573745F666C6167960000000000000014000F6167696E675F746573745F666C61671DC9CFB5E7C4ACC8CFC9E8B1B8C0E0D0CD30A3A8C0E4C8C8B7D6B9DCA3A9214F6C65645F446973706C61795F496E666F2E6167696E675F746573745F666C616709736176655F646174610A6167696E675F7374657017436F6E74726F6C5F4368696C644C6F636B5F4F6E6F66660A6167696E675F746573741151756572795F4465766963655F496E666F1B4F50434F44455F47454E4552414C5F5354415455535F5155455259156E6574776F726B5F73746174655F6D616368696E651746697273745F457869745F466163746F72795F4D6F6465106167696E675F746573745F73746172740F6167696E675F746573745F73746F7005636F756E741C46616E5F73706565645F616E645F6469726563745F636F6E74726F6C1761646A7573745F66616E5F73706565645F73746174757312446973706C61795F55705F436F6E74656E6415446973706C61795F706F7765726F66665F74696D650E74656D705F6F70656E5F74696D65186175746F5F77696E645F7363616E5F7461736B5F73746F7000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
<Len>
24
66
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE1000000000
4000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000F7A65726F5F636865636B5F696E6974960000000000000013000F7A65726F5F636865636B5F696E69740E77696E645F6F70656E5F74696D651E6F7065726174655F64656C61795F6F66665F646973706C61795F666C61671973687463335F73656E736F725F6D6561737572655F6C6F6F7009536176655F44617461094C6F61645F4461746113427574746F6E305F35734C6F6E674576656E7417436F6E74726F6C5F4368696C644C6F636B5F4F6E6F66660E6B4C65644973426C696E6B696E670E49735F56616C696465645F4B657912674B65795F427574746F6E5F436F6E6669672B4F6C65645F446973706C61795F496E666F2E4169725F4465766963652E706F7765725F6F66665F74696D650D4465766963655F7374617475730E4765745F4368616E6E656C5F49641373746174655F6368616E67655F7265706F72742044656C61795F5265706F72745F54696D655F44656372656173655F436F756E7405656E646966144465746563745F48756D616E5F44697370616C79124F7065726174655F4C65645F427574746F6E
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
</Buttons>
<OriginalItems>
<Len>
1423
</Len>
...
...
@@ -1722,7 +1722,7 @@
<Name>
Debug
</Name>
<Buttons>
<Len>
2373
</Len>
<Data>
00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720
000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F7200
0000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
</Data>
<Data>
00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720
100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F7201
0000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
</Data>
</Buttons>
<OriginalItems>
<Len>
898
</Len>
...
...
@@ -1755,11 +1755,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
340100004F00000080070000
A5
000000
</Data>
<Data>
340100004F00000080070000
8B
000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
B4F9FFFFDDFFFFFF00000000
33
000000
</Data>
<Data>
B4F9FFFFDDFFFFFF00000000
19
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1775,7 +1775,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
DE
020000
</Data>
<Data>
03000000660000002D010000
CC
020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1795,7 +1795,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
3103
0000
</Data>
<Data>
03000000660000002D010000
CC02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1815,11 +1815,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D070000D7
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1835,11 +1835,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1855,11 +1855,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1875,11 +1875,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1915,7 +1915,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
37010000660000007D070000
8C
000000
</Data>
<Data>
37010000660000007D070000
72
000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1935,11 +1935,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D070000D7
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D000000F6000000F200
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1955,17 +1955,17 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D070000D7
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D000000F6000000F200
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
<RegID>
1937
</RegID>
<PaneID>
1937
</PaneID>
<IsVisible>
0
</IsVisible>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
...
...
@@ -1975,11 +1975,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D000000F6000000F200
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1995,11 +1995,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2015,11 +2015,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2035,11 +2035,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2055,11 +2055,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2075,7 +2075,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
3103
0000
</Data>
<Data>
03000000660000002D010000
CC02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2095,7 +2095,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
3103
0000
</Data>
<Data>
03000000660000002D010000
CC02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2115,7 +2115,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
120300007D07000084
030000
</Data>
<Data>
03000000
D10300007D070000D7
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2125,7 +2125,7 @@
<Window>
<RegID>
198
</RegID>
<PaneID>
198
</PaneID>
<IsVisible>
0
</IsVisible>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
...
...
@@ -2135,7 +2135,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000
F500000000050000DE01
0000
</Data>
<Data>
00000000
E9020000C0030000B603
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2155,7 +2155,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0
3000000120300007D070000D7
030000
</Data>
<Data>
0
0000000CE03000080070000F0
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2175,7 +2175,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
340100006300000080070000
A5
000000
</Data>
<Data>
340100006300000080070000
8B
000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2195,7 +2195,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
37010000660000007D070000
8C
000000
</Data>
<Data>
37010000660000007D070000
72
000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2255,11 +2255,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D0000002E020000C600
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2275,7 +2275,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
37010000660000007D070000
8C
000000
</Data>
<Data>
37010000660000007D070000
72
000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2295,7 +2295,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
37010000660000007D070000
8C
000000
</Data>
<Data>
37010000660000007D070000
72
000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2315,7 +2315,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
37010000660000007D070000
8C
000000
</Data>
<Data>
37010000660000007D070000
72
000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2755,7 +2755,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
DE
020000
</Data>
<Data>
03000000660000002D010000
CC
020000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2765,7 +2765,7 @@
<Window>
<RegID>
38007
</RegID>
<PaneID>
38007
</PaneID>
<IsVisible>
1
</IsVisible>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
...
...
@@ -2775,7 +2775,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
12
0300007D070000D7030000
</Data>
<Data>
03000000
D1
0300007D070000D7030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2795,7 +2795,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
120300007D07000084
030000
</Data>
<Data>
03000000
D10300007D070000D7
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2815,11 +2815,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D000000F6000000F200
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2835,11 +2835,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000120300007D07000084
030000
</Data>
<Data>
C7030000000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
440000000202000000040000EB02
0000
</Data>
<Data>
560000006D000000F6000000F200
0000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2959,7 +2959,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
<Data>
560000006D000000F6000000F2
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2979,7 +2979,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
<Data>
560000006D000000F6000000F2
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -2999,7 +2999,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
<Data>
560000006D000000F6000000F2
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -3019,7 +3019,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
<Data>
560000006D000000F6000000F2
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -3039,7 +3039,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
<Data>
560000006D000000F6000000F2
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -3059,7 +3059,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
<Data>
560000006D000000F6000000F2
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -3079,7 +3079,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
<Data>
560000006D000000F6000000F2
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -3155,11 +3155,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
1303000066000000AD0300002D01
0000
</Data>
<Data>
47FCFFFF8E020000E7FCFFFFA902
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
560000006D000000F6000000F2
000000
</Data>
<Data>
0A0000000A0000006E0000006E
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -3323,15 +3323,15 @@
</RectRecentFloat>
</Window>
<DockMan>
<Len>
3
032
</Len>
<Data>
000000000
A000000000000000020000001000000FFFFFFFFFFFFFFFF34010000A500000080070000A90000000100000001000010040000000100000069FFFFFFED000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000B4F9FFFFDDFFFFFF0000000033000000340100004F00000080070000A50000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000090FBFFFFDDFFFFFF30FCFFFFD4000000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F00000034010000F70200000100000002000010040000000100000062FFFFFFD7060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFFB0F9FFFFD8020000000000004F00000030010000F70200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000F100000000050000F50000000000000001000000040000000100000069FEFFFF3300000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF80020000F500000084020000DE01000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F702000080070000FB0200000100000001000010040000000100000059FEFFFF95010000FFFFFFFF12000000C5000000C7000000B4010000779400008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000080F8FFFFDC020000000000007E03000000000000FB02000080070000F00300000000000040820056120000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365010000007794000001000000FFFFFFFFFFFFFFFF1343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF04
000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
<Len>
3
118
</Len>
<Data>
000000000
B000000000000000020000001000000FFFFFFFFFFFFFFFF340100008B000000800700008F0000000100000001000010040000000100000008FFFFFFD7000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000B4F9FFFFDDFFFFFF0000000019000000340100004F000000800700008B0000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000090FBFFFFDDFFFFFF30FCFFFFD4000000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F00000034010000E50200000100000002000010040000000100000062FFFFFFD7060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFFB0F9FFFF73020000000000004F00000030010000E50200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000E502000080070000E90200000100000001000010040000000100000047FDFFFF0000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000044FCFFFF770200000000000044030000C4030000E902000080070000B603000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032010000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFFC0030000E9020000C4030000B603000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000B603000080070000BA03000001000000010000100400000001000000B6FEFFFFA3000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFF48030000000000007E03000000000000BA03000080070000F00300000000000040820056040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01
000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
</DockMan>
<ToolBar>
<RegID>
59392
</RegID>
<Name>
File
</Name>
<Buttons>
<Len>
2
525
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE1000000000
4000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001864656C61795F3330306D735F7265706F72745F73746172749600000000000000140010434C4B5F5379735469636B44656C61790B4379636C657350657255730B4932435F53575F4F70656E107533325F4932435F53575F44656C61791864656C61795F3330306D735F7265706F72745F73746172741764656C61795F3330306D735F7265706F72745F7461736B1373656E736F725F6D6561737572655F6C6F6F70185A69676265655F556172745F4572726F725F48616E646C650E506F7765725F4F66665F5363616E14427566665F73656E645F73657269616C5F6E756D2B7374617469635F7472616E737072656E745F627566662E427566665F73656E645F73657269616C5F6E756D2A7374617469635F7472616E737072656E745F627566662E446F776E6C6F61645F73657269616C5F6E756D1755736172745F7265636976655F77726974655F6275666613446F776E6C6F61645F73657269616C5F6E756D207374617469635F7472616E73706172656E745F6D73675F696E666F2E446174610D7461736B5F666565645F646F670A7461736B5F636F6D70730C674B65794576656E74434E540D496E7075744B65794576656E740E5365745F4572726F725F436F646500000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
<Len>
2
467
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE1000000000
0000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000195461705F5374617475735F5363616E5F5461736B5F53746F7096000000000000001300195461705F5374617475735F5363616E5F5461736B5F53746F701A5461705F5374617475735F5363616E5F5461736B5F53746172740F5461705F5374617475735F5363616E000F7A65726F5F636865636B5F696E69740E77696E645F6F70656E5F74696D651E6F7065726174655F64656C61795F6F66665F646973706C61795F666C61671973687463335F73656E736F725F6D6561737572655F6C6F6F7009536176655F44617461094C6F61645F4461746113427574746F6E305F35734C6F6E674576656E7417436F6E74726F6C5F4368696C644C6F636B5F4F6E6F66660E6B4C65644973426C696E6B696E670E49735F56616C696465645F4B657912674B65795F427574746F6E5F436F6E6669672B4F6C65645F446973706C61795F496E666F2E4169725F4465766963652E706F7765725F6F66665F74696D650D4465766963655F7374617475730E4765745F4368616E6E656C5F49641373746174655F6368616E67655F7265706F7274
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
</Buttons>
<OriginalItems>
<Len>
1423
</Len>
...
...
@@ -3363,7 +3363,7 @@
<Name>
Debug
</Name>
<Buttons>
<Len>
2362
</Len>
<Data>
00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000002000
0
002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
</Data>
<Data>
00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000002000
1
002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
</Data>
</Buttons>
<OriginalItems>
<Len>
898
</Len>
...
...
@@ -3387,21 +3387,21 @@
<ActiveMDIGroup>
0
</ActiveMDIGroup>
<MDIGroup>
<Size>
100
</Size>
<ActiveTab>
0
</ActiveTab>
<ActiveTab>
7
</ActiveTab>
<Doc>
<Name>
.\User\src\display_common.c
</Name>
<ColumnNumber>
26
</ColumnNumber>
<TopLine>
5
</TopLine>
<CurrentLine>
26
</CurrentLine>
<ColumnNumber>
13
</ColumnNumber>
<TopLine>
384
</TopLine>
<CurrentLine>
402
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\src\control_comm.c
</Name>
<ColumnNumber>
30
</ColumnNumber>
<TopLine>
1
</TopLine>
<CurrentLine>
1519
</CurrentLine>
<ColumnNumber>
9
</ColumnNumber>
<TopLine>
44
</TopLine>
<CurrentLine>
63
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
@@ -3409,7 +3409,7 @@
<Doc>
<Name>
.\User\inc\CC2530_transparent_analyze.h
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
14
5
</TopLine>
<TopLine>
14
9
</TopLine>
<CurrentLine>
167
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
...
...
@@ -3417,17 +3417,17 @@
</Doc>
<Doc>
<Name>
.\User\src\hardware_init.c
</Name>
<ColumnNumber>
21
</ColumnNumber>
<TopLine>
190
</TopLine>
<CurrentLine>
20
3
</CurrentLine>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
305
</TopLine>
<CurrentLine>
32
3
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\src\CC2530_transparent_analyze.c
</Name>
<ColumnNumber>
10
</ColumnNumber>
<TopLine>
4
43
</TopLine>
<ColumnNumber>
2
</ColumnNumber>
<TopLine>
4
75
</TopLine>
<CurrentLine>
493
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
...
...
@@ -3453,18 +3453,18 @@
</Doc>
<Doc>
<Name>
.\User\src\Key.c
</Name>
<ColumnNumber>
22
</ColumnNumber>
<TopLine>
648
</TopLine>
<CurrentLine>
684
</CurrentLine>
<ColumnNumber>
31
</ColumnNumber>
<TopLine>
1625
</TopLine>
<CurrentLine>
1638
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\inc\Key.h
</Name>
<ColumnNumber>
37
</ColumnNumber>
<TopLine>
202
</TopLine>
<CurrentLine>
238
</CurrentLine>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
61
</TopLine>
<CurrentLine>
76
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
@@ -3472,8 +3472,80 @@
<Doc>
<Name>
.\User\inc\control_comm.h
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
61
</TopLine>
<CurrentLine>
109
</CurrentLine>
<TopLine>
206
</TopLine>
<CurrentLine>
224
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\inc\display_common.h
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
10
</TopLine>
<CurrentLine>
14
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
..\Library\Device\Nuvoton\Mini58Series\Source\ARM\startup_Mini58Series.s
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
90
</TopLine>
<CurrentLine>
105
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
main.c
</Name>
<ColumnNumber>
13
</ColumnNumber>
<TopLine>
33
</TopLine>
<CurrentLine>
51
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
..\Library\CMSIS\Include\cmsis_armcc.h
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
298
</TopLine>
<CurrentLine>
313
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\src\BL55072A.c
</Name>
<ColumnNumber>
2
</ColumnNumber>
<TopLine>
14
</TopLine>
<CurrentLine>
32
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
..\Library\StdDriver\src\clk.c
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
573
</TopLine>
<CurrentLine>
586
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\src\VCNL3040.c
</Name>
<ColumnNumber>
4
</ColumnNumber>
<TopLine>
17
</TopLine>
<CurrentLine>
35
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\inc\VCNL3040.h
</Name>
<ColumnNumber>
36
</ColumnNumber>
<TopLine>
11
</TopLine>
<CurrentLine>
31
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
Code/海顿-多合一新风面板/APP/AllToOneThernmostatPannel.uvopt
View file @
3169de12
...
...
@@ -140,38 +140,6 @@
<Bp>
<Number>
0
</Number>
<Type>
0
</Type>
<LineNumber>
65
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
5624
</Address>
<ByteObject>
0
</ByteObject>
<HtxType>
0
</HtxType>
<ManyObjects>
0
</ManyObjects>
<SizeOfObject>
0
</SizeOfObject>
<BreakByAccess>
0
</BreakByAccess>
<BreakIfRCount>
1
</BreakIfRCount>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\Library\StdDriver\src\retarget.c
</Filename>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\../Library/StdDriver/src/retarget.c\65
</Expression>
</Bp>
<Bp>
<Number>
1
</Number>
<Type>
0
</Type>
<LineNumber>
1218
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
4294
</Address>
<ByteObject>
0
</ByteObject>
<HtxType>
0
</HtxType>
<ManyObjects>
0
</ManyObjects>
<SizeOfObject>
0
</SizeOfObject>
<BreakByAccess>
0
</BreakByAccess>
<BreakIfRCount>
1
</BreakIfRCount>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\display_common.c
</Filename>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\User/src/display_common.c\1218
</Expression>
</Bp>
<Bp>
<Number>
2
</Number>
<Type>
0
</Type>
<LineNumber>
303
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
232
</Address>
...
...
@@ -186,43 +154,43 @@
<Expression>
\\AllToOneThermostatPannel\../Library/StdDriver/src/retarget.c\303
</Expression>
</Bp>
<Bp>
<Number>
3
</Number>
<Number>
1
</Number>
<Type>
0
</Type>
<LineNumber>
110
</LineNumber>
<LineNumber>
537
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
26502
</Address>
<Address>
8968
</Address>
<ByteObject>
0
</ByteObject>
<HtxType>
0
</HtxType>
<ManyObjects>
0
</ManyObjects>
<SizeOfObject>
0
</SizeOfObject>
<BreakByAccess>
0
</BreakByAccess>
<BreakIfRCount>
1
</BreakIfRCount>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\
mfg_factort
.c
</Filename>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\User\src\
Key
.c
</Filename>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\User/src/
mfg_factort.c\110
</Expression>
<Expression>
\\AllToOneThermostatPannel\User/src/
Key.c\537
</Expression>
</Bp>
<Bp>
<Number>
4
</Number>
<Number>
2
</Number>
<Type>
0
</Type>
<LineNumber>
53
</LineNumber>
<LineNumber>
2136
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
2
4644
</Address>
<Address>
2
5068
</Address>
<ByteObject>
0
</ByteObject>
<HtxType>
0
</HtxType>
<ManyObjects>
0
</ManyObjects>
<SizeOfObject>
0
</SizeOfObject>
<BreakByAccess>
0
</BreakByAccess>
<BreakIfRCount>
1
</BreakIfRCount>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\
main
.c
</Filename>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鏂伴闈㈡澘\APP\
User\src\control_comm
.c
</Filename>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\
main.c\53
</Expression>
<Expression>
\\AllToOneThermostatPannel\
User/src/control_comm.c\2136
</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>
0
</count>
<WinNumber>
1
</WinNumber>
<ItemText>
temp1
</ItemText>
<ItemText>
count
</ItemText>
</Ww>
<Ww>
<count>
1
</count>
...
...
Code/海顿-多合一新风面板/APP/Nu_Link_Driver.ini
View file @
3169de12
[Version]
Nu_LinkVersion
=
V5.14
[Process]
ProcessID
=
0x0000
e77c
ProcessCreationTime_L
=
0x
cec60db7
ProcessCreationTime_H
=
0x01d
6d90f
ProcessID
=
0x0000
3c14
ProcessCreationTime_L
=
0x
58827bbd
ProcessCreationTime_H
=
0x01d
7122a
NuLinkID
=
0x18101887
NuLinkID0
=
0x18101887
NuLinkIDs_Count
=
0x00000001
...
...
Code/海顿-多合一新风面板/APP/User/inc/Key.h
View file @
3169de12
...
...
@@ -53,7 +53,6 @@ typedef struct
}
Filter_Wash_Calc
;
typedef
struct
KEY_OPERATE
{
u8
operate_delay_off_status
;
//延时关机操作期间标志位判断
u8
operate_delay_off_display_flag
;
volatile
u32
operate_delay_off_ms
;
volatile
u32
operate_delay_off_s
;
...
...
@@ -72,16 +71,19 @@ volatile u32 operate_delay_off_h;
}
KEY_OPERATE
;
typedef
void
(
*
KeyProcessCallback
)(
u8
key_id
,
u8
KeyPressEvent
);
#define IsKeyID12356(keyid) ( (keyid == 1) ||(keyid == 2) || (keyid == 3) ||(keyid == 5) || (keyid == 6) )
#define IsKeyID1356(keyid) ( (keyid == 1) ||(keyid == 3) || (keyid == 5) ||(keyid == 6) )
#define IsKeyID123(keyid) ( (keyid == 1) ||(keyid == 2) || (keyid == 3) )
#define Low 0
#define High 1
#define NULL 0
#define AntiShakeTime 6 //30ms = 6*5ms 按键防止抖动时间
#define PressLongTime 800 // 4s = 800*5ms 按键长按时间
#define Press10sLongTime 2000 // 10s = 2000*5ms 退出老化
#define AntiShakeTime 6 //30ms = 6*5ms 按键防止抖动时间
#define Press0_5sLongTime 100 // 0.5s = 100*5ms 按键长按时间
#define PressLongTime 800 // 4s = 800*5ms 按键长按时间
#define Press10sLongTime 2000 // 10s = 2000*5ms 退出老化
#define SyskeyScanTimer 5 //5ms
#define KeyEventBufferNum 30
...
...
@@ -178,6 +180,8 @@ A = 0 B = 1 C = 1
#define Key_Rotary 0x02
#define NoButtonEvent 0x00
#define Button0_5sLongEvent 0x60
#define Button0_5sLongUpEvent 0x70
#define ButtonShortEvent 0x80
#define ButtonLongEvent 0x90
#define ButtonLongUpEvent 0xa0
...
...
@@ -217,6 +221,12 @@ typedef struct key_init
/* 有效电平 */
u8
Valid_Level
;
/* 支持的按键事件总数 */
u8
Key_Support_Event_Num
[
3
];
/* 支持的按键事件列表 */
u8
Key_Support_Event_List
[
3
][
5
];
}
KeyConfigInit_t
;
typedef
struct
{
...
...
Code/海顿-多合一新风面板/APP/User/inc/control_comm.h
View file @
3169de12
...
...
@@ -262,7 +262,6 @@ void Send_Device_Data(u8 channel_id,u16 opcode ,u8 *arg,u8 len);
static
void
network_state_machine
(
TP_uc8
recv_network_state
);
void
state_change_report
(
TP_u16
opcode
,
TP_u8
channel
);
void
Setup_Task_Start
(
void
);
u8
Get_Channel_Id
(
u8
device_type
);
void
delay_operate_calibrate_temper_Task_Start
(
void
);
void
operate_calibrate_temper_delay_2s_off_Task_Start
(
void
);
void
operate_calibrate_temper_delay_2s_off_Task_Stop
(
void
);
...
...
@@ -275,10 +274,11 @@ u8 IsLcdEnterScreenSave(void);
void
ChildLockLedFlash
(
void
);
void
zero_check_init
(
void
);
void
delay_operate_calibrate_temper_Task_Stop
(
void
);
void
delay_operate_delay_off_Task_Start
(
void
);
void
delay_operate_delay_off_Task_Stop
(
void
);
void
Reset_DelayOFF_timer
(
u8
device_type
);
void
task_exit_aging_test_start
(
void
);
void
Delay_Report_Status
(
void
);
void
Delay_Report_Time_Decrease_Count
(
u8
time
);
void
Start_Delay_Report_Event
(
u8
channel
);
#define Network_Control(join_or_leave) Send_Device_Data(0,_OPCODE_SET_NET_STATE,&join_or_leave,1)
#define proximity_triagger_report_zigbee() do{ uint8_t res = 1; \
...
...
Code/海顿-多合一新风面板/APP/User/inc/display_common.h
View file @
3169de12
...
...
@@ -99,7 +99,6 @@ typedef struct Display_Data
u8
zigbee_Version
;
//zigbee版本
u8
binding_device
;
//0 未绑定 1,绑定空调,2,地暖,3,绑定新风
u8
recv_lcd_off
;
//接受到控制息屏的指令后
u8
is_dispaly_cur_temp
;
u8
zigbee_mac
[
8
];
OLED_AIR_DSD
Air_Device
;
OLED_FLOOR_HEATING_DSD
FLOOR_Device
;
...
...
@@ -127,7 +126,7 @@ typedef struct{
u8
enter_config_mode
;
u8
config_page
;
u8
config_page1_func_value
;
u
8
config_page2_value
;
u
16
config_page2_value
;
u8
support_function_len
;
u8
support_function_list
[
6
];
//1,风机盘管管制设置 2,温度校准 3,是否显示当前房间温度设置,4, 超时进入屏保时间设置 10 恢复出厂设置
volatile
u32
config_time_ms
;
...
...
@@ -136,8 +135,8 @@ typedef struct{
}
Local_Config_Operation
;
typedef
enum
{
LOCAL_FUNC_FAN_PANEL_SETTING
=
1
,
LOCAL_FUNC_
CALIBRATE_TEMPER
=
2
,
LOCAL_FUNC_
IS_DISPLAY_CURRENT_TEMPER
=
3
,
LOCAL_FUNC_
IS_DISPLAY_CURRENT_TEMPER
=
2
,
LOCAL_FUNC_
CALIBRATE_TEMPER
=
3
,
LOCAL_FUNC_SCREEN_SAVING_TIME
=
4
,
LOCAL_FUNC_NOT_DISTURB
=
5
,
LOCAL_FUNC_FILTER_TIME
=
10
,
...
...
@@ -153,7 +152,7 @@ extern Key_Operation_Status gKey_Press_Info;
void
Display_poweroff_time
(
u8
display_time
);
extern
void
display_error
(
u8
error_value
);
void
Operate_Led_Button
(
u8
device_type
,
u8
on_off
);
void
Operate_Led_Button
(
u8
device_type
,
u8
Type
);
void
Set_CMD_Handler
(
u8
device_type
,
u16
opcode
,
u8
*
arg
,
u8
arg_len
);
void
display_current_page
(
void
);
u16
GetNetScanTime
(
void
);
...
...
@@ -162,7 +161,7 @@ u8 kNetIndicatorIsBlinking(void);
void
kNetIndicatorOptTrigger
(
uint8_t
id
,
uint32_t
duration_on_ms
,
uint32_t
duration_off_ms
,
uint32_t
times
,
u8
start
,
u8
end
);
void
kLedModuleActionDetectCallback
(
void
);
void
display_set_temp
(
u8
display_mode
,
s16
temp_value
,
u8
ararm_f
);
void
Display_Set_Temper
(
s16
temp_value
);
void
display_system_mode
(
u8
heat
,
u8
dry
,
u8
cold
,
u8
air
,
u8
sleep
,
u8
manufture
,
u8
Auto
,
u8
Roll
);
void
display_wind_speed
(
u8
wind_speed
,
u8
support_type
);
void
display_wind_direct
(
u8
low
,
u8
mediu
,
u8
high
);
...
...
@@ -174,6 +173,7 @@ void Detect_Human_Dispaly(void);
u8
System_Mode_Trans
(
u8
device_type
,
u8
is_support_sleep
);
void
Fan_Button_Handler
(
void
);
void
delay_confirm_fan_speed
(
void
);
//提前打断延时,
u8
Get_LED_OnOff_Status
(
u8
id
);
void
Control_LED_ON_OFF
(
u8
onoff_bits
);
u8
Key_Operate_Config_Operation
(
u8
keyid
,
u8
keyEvent
);
u8
IsLocalConfigMode
(
void
);
...
...
@@ -182,14 +182,16 @@ void Display_Up_Contend(u8 device_type);
void
Setup_Mode_Handle
(
void
);
void
Display_Current_Temper
(
s16
temper
);
void
Reset_Flash_Time_10s
(
void
);
void
Display_Middle_Contend
(
u8
device_type
);
void
Fan_speed_and_direct_control
(
u8
windspeed_onoff
,
u8
winddirect_onoff
);
void
Auto_Led_Display
(
u8
screen_page
);
#define Operation_LED(X) Operate_Led_Button(Oled_Display_Info.screen_page,X)
#define Reload_Save_Time() do{ sBacklight.blacklight_flag = 1;\
sBacklight.time_blacklight_ms = 0;\
sBacklight.time_blacklight_s = 0;\
LCD_CONTROL(1); \
Operation_LED(1
);}while(0);
Auto_Led_Display(Oled_Display_Info.screen_page
);}while(0);
...
...
Code/海顿-多合一新风面板/APP/User/src/Key.c
View file @
3169de12
...
...
@@ -14,13 +14,31 @@ KeyScan_t gKey1_Button_t = { High, High, NULL, NULL };
KeyScan_t
gKey_Button_t
[
KeyTotalNum
]
=
{
{
High
,
High
,
NULL
,
NULL
},{
High
,
High
,
NULL
,
NULL
},{
High
,
High
,
NULL
,
NULL
},
\
{
High
,
High
,
NULL
,
NULL
},{
High
,
High
,
NULL
,
NULL
},{
High
,
High
,
NULL
,
NULL
},};
#define KEY1_SUPPORT_EVENT { {ButtonShortEvent,ButtonLongEvent,ButtonLongUpEvent,Button10sLongEvent,Button10sLongUpEvent},\
{ButtonShortEvent,ButtonLongEvent,ButtonLongUpEvent,Button10sLongEvent,Button10sLongUpEvent},\
{ButtonShortEvent,ButtonLongEvent,ButtonLongUpEvent,Button10sLongEvent,Button10sLongUpEvent}}
#define KEY2_SUPPORT_EVENT { {ButtonShortEvent,Button10sLongEvent,Button10sLongUpEvent},\
{ButtonShortEvent},\
{ButtonShortEvent,Button10sLongEvent,Button10sLongUpEvent}}
#define KEY3_SUPPORT_EVENT { {ButtonShortEvent,ButtonLongEvent,ButtonLongUpEvent,Button10sLongEvent,Button10sLongUpEvent},\
{ButtonShortEvent,ButtonLongEvent,ButtonLongUpEvent,Button10sLongEvent,Button10sLongUpEvent},\
{ButtonShortEvent,ButtonLongEvent,ButtonLongUpEvent,Button10sLongEvent,Button10sLongUpEvent}}
#define KEY4_SUPPORT_EVENT { {ButtonShortEvent},\
{ButtonShortEvent},\
{ButtonShortEvent}}
#define KEY5_SUPPORT_EVENT { {ButtonShortEvent,Button0_5sLongEvent,Button0_5sLongUpEvent},\
{ButtonShortEvent,Button0_5sLongEvent,Button0_5sLongUpEvent},\
{ButtonShortEvent}}
#define KEY6_SUPPORT_EVENT { {ButtonShortEvent,Button0_5sLongEvent,Button0_5sLongUpEvent},\
{ButtonShortEvent,Button0_5sLongEvent,Button0_5sLongUpEvent},\
{ButtonShortEvent}}
KeyConfigInit_t
gKey_Button_Config
[]
=
{
{
1
,
P3
,
BIT6
,
High
},
\
{
2
,
P3
,
BIT1
,
High
},
\
{
3
,
P3
,
BIT0
,
High
},
\
{
4
,
P0
,
BIT7
,
High
},
\
{
5
,
P0
,
BIT5
,
High
},
\
{
6
,
P0
,
BIT1
,
High
},
\
KeyConfigInit_t
gKey_Button_Config
[]
=
{
{
1
,
P3
,
BIT6
,
High
,{
5
,
5
,
5
},
KEY1_SUPPORT_EVENT
},
\
{
2
,
P3
,
BIT1
,
High
,{
3
,
1
,
3
},
KEY2_SUPPORT_EVENT
},
\
{
3
,
P3
,
BIT0
,
High
,{
5
,
5
,
5
},
KEY3_SUPPORT_EVENT
},
\
{
4
,
P0
,
BIT7
,
High
,{
1
,
1
,
1
},
KEY4_SUPPORT_EVENT
},
\
{
5
,
P0
,
BIT5
,
High
,{
3
,
3
,
1
},
KEY5_SUPPORT_EVENT
},
\
{
6
,
P0
,
BIT1
,
High
,{
3
,
3
,
1
},
KEY6_SUPPORT_EVENT
}
\
};
u8
boad_test_falg
[
6
]
=
{
0
,
0
,
0
,
0
,
0
,
0
};
//index 0 - 5分别代表按键1 - 按键6
...
...
@@ -41,7 +59,6 @@ static void KEY6_Botton_Process_Handler(u8 KeyPressEvent);
void
KeyProcess_Handler_Callbacks
(
u8
key_id
,
u8
KeyPressEvent
);
u8
Get_NextOne_By_Current_Speed_Level
(
u8
plus_or_sub
,
u8
fan_speed
,
u8
type_support
);
u8
Get_NextOne_By_Current_wind_direct
(
u8
plus_or_sub
,
u8
wind_direct
);
void
Delay_OFF_Rel_Display
(
u8
stop_flash
,
u8
delay_timer
,
u8
dispaly_data
,
u8
H_char
,
u8
bell_char
,
u8
setting_time_char
);
static
void
Tap_Status_Scan_Task_Start
(
void
);
extern
BACKLIGHT_CONTROL
sBacklight
;
...
...
@@ -62,7 +79,7 @@ static _Bool LongLongPress10s_Handler(u8 keyid,u8 KeyPressEvent)
//退老化处理
static
u32
last_time
=
0
;
static
u8
first_10s_press
=
0
;
if
((
keyid
==
6
)
&&
(
KeyPressEvent
==
Button10sLongEvent
))
if
((
keyid
==
1
)
&&
(
KeyPressEvent
==
Button10sLongEvent
))
{
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
{
...
...
@@ -103,13 +120,7 @@ static _Bool LongLongPress10s_Handler(u8 keyid,u8 KeyPressEvent)
if
(
Oled_Display_Info
.
Air_Device
.
error
==
3
)
{
Oled_Display_Info
.
Air_Device
.
error
=
0
;
if
(
Get_Display_Status
())
//清除错误
{
LCDShowTemp_state_t
.
LCD_place
=
DELAY_OFF_TIME_DISPLAY
;
LCDShowTemp_state_t
.
LCD_display_count
=
0
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
Display_Middle_Contend
(
AIR_CONDITION
);
Oled_Display_Info
.
Air_Device
.
filter_wash_time
=
3000
;
save_data
();
//重置滤网时间
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态更新上报
...
...
@@ -125,13 +136,7 @@ static _Bool LongLongPress10s_Handler(u8 keyid,u8 KeyPressEvent)
if
(
Oled_Display_Info
.
FAN_Device
.
error
==
3
)
{
Oled_Display_Info
.
FAN_Device
.
error
=
0
;
if
(
Get_Display_Status
())
//清除错误
{
LCDShowTemp_state_t
.
LCD_place
=
DELAY_OFF_TIME_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LCDShowTemp_state_t
.
LCD_display_count
=
0
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
Display_Middle_Contend
(
FAN
);
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
=
3000
;
save_data
();
//重置滤网时间
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态更新上报
...
...
@@ -283,10 +288,21 @@ u8 GetKeyEvent(u8 index )
return
uReturnEvent
;
}
u8
KeyScanState
(
KeyScan_t
*
Buttion_T
,
u8
ButtonState
)
u8
IS_Valided_KeyEvent
(
u8
KeyID
,
u8
KeyEvent
)
{
u8
i
=
0
;
for
(
i
=
0
;
i
<
gKey_Button_Config
[
KeyID
-
1
].
Key_Support_Event_Num
[
Oled_Display_Info
.
screen_page
-
1
];
i
++
)
{
if
(
gKey_Button_Config
[
KeyID
-
1
].
Key_Support_Event_List
[
Oled_Display_Info
.
screen_page
-
1
][
i
]
==
KeyEvent
)
return
TRUE
;;
}
return
FALSE
;
}
u8
KeyScanState
(
KeyScan_t
*
Buttion_T
,
u8
keyid
,
u8
ButtonState
)
{
u8
EventReturn
=
NoButtonEvent
;
static
uint8_t
count
=
0
;
static
uint8_t
count
[
6
]
=
{
0
};
static
uint8_t
count_0_5s
[
6
]
=
{
0
};
//printf("ButtonState = 0x%x\n",ButtonState);
Buttion_T
->
LastState
=
ButtonState
;
...
...
@@ -300,12 +316,27 @@ u8 KeyScanState( KeyScan_t* Buttion_T, u8 ButtonState )
&&
(
ButtonLongEvent
!=
(
Buttion_T
->
PreKeyEvent
))
&&
(
Button10sLongEvent
!=
(
Buttion_T
->
PreKeyEvent
))
)
{
Buttion_T
->
KeyTime
=
NULL
;
Buttion_T
->
PreKeyEvent
=
ButtonShortEvent
;
EventReturn
=
ButtonShortEvent
;
//InputKeyEvent( Key_Button, ModeButtonShortEvent );
//DBG_PRINT("EventReturn = 0x%x\n",EventReturn);
if
(
IS_Valided_KeyEvent
(
keyid
,
ButtonShortEvent
))
{
Buttion_T
->
KeyTime
=
NULL
;
Buttion_T
->
PreKeyEvent
=
ButtonShortEvent
;
EventReturn
=
ButtonShortEvent
;
}
}
///***** 0.5s按键长按事件 ****/
if
(
(
Low
==
Buttion_T
->
LastState
)
&&
(
Press0_5sLongTime
<=
(
Buttion_T
->
KeyTime
)
)
&&
(
Oled_Display_Info
.
screen_page
!=
3
)
&&
((
keyid
==
5
)
||
(
keyid
==
6
)))
{
Buttion_T
->
KeyTime
=
NULL
;
count_0_5s
[
keyid
-
1
]
++
;
if
(
count_0_5s
[
keyid
-
1
]
>=
2
)
{
if
(
IS_Valided_KeyEvent
(
keyid
,
Button0_5sLongEvent
))
{
Buttion_T
->
PreKeyEvent
=
Button0_5sLongEvent
;
EventReturn
=
Button0_5sLongEvent
;
}
}
}
///***** 2s按键长按事件 ****/
if
(
(
Low
==
Buttion_T
->
LastState
)
...
...
@@ -313,18 +344,28 @@ u8 KeyScanState( KeyScan_t* Buttion_T, u8 ButtonState )
)
{
Buttion_T
->
KeyTime
=
NULL
;
count
++
;
if
(
count
==
5
)
//10s
count
[
keyid
-
1
]
++
;
if
(
count
[
keyid
-
1
]
==
5
)
//10s
{
Buttion_T
->
PreKeyEvent
=
Button10sLongEvent
;
EventReturn
=
Button10sLongEvent
;
//InputKeyEvent( Key_Button, ModeButtonLongEvent );
if
(
IS_Valided_KeyEvent
(
keyid
,
Button10sLongEvent
))
{
Buttion_T
->
PreKeyEvent
=
Button10sLongEvent
;
EventReturn
=
Button10sLongEvent
;
//InputKeyEvent( Key_Button, ModeButtonLongEvent );
}
}
else
if
(
count
==
2
)
//4s
else
if
(
count
[
keyid
-
1
]
==
2
)
//4s
{
Buttion_T
->
PreKeyEvent
=
ButtonLongEvent
;
EventReturn
=
ButtonLongEvent
;
//InputKeyEvent( Key_Button, ModeButtonLongEvent );
if
(
IS_Valided_KeyEvent
(
keyid
,
ButtonLongEvent
))
{
//老化前长按无效,长按10s有效
if
((
keyid
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
2
))
__NOP
;
else
{
Buttion_T
->
PreKeyEvent
=
ButtonLongEvent
;
EventReturn
=
ButtonLongEvent
;
//InputKeyEvent( Key_Button, ModeButtonLongEvent );
}
}
}
}
...
...
@@ -338,20 +379,34 @@ u8 KeyScanState( KeyScan_t* Buttion_T, u8 ButtonState )
{
Buttion_T
->
KeyTime
=
NULL
;
if
((
count_0_5s
[
keyid
-
1
]
>=
2
)
&&
(
Button0_5sLongEvent
==
(
Buttion_T
->
PreKeyEvent
)))
{
if
(
IS_Valided_KeyEvent
(
keyid
,
Button0_5sLongUpEvent
))
{
Buttion_T
->
PreKeyEvent
=
Button0_5sLongUpEvent
;
EventReturn
=
Button0_5sLongUpEvent
;
}
}
count_0_5s
[
keyid
-
1
]
=
0
;
if
(
ButtonLongEvent
==
(
Buttion_T
->
PreKeyEvent
)
)
{
count
=
0
;
Buttion_T
->
PreKeyEvent
=
ButtonLongUpEvent
;
EventReturn
=
ButtonLongUpEvent
;
if
(
IS_Valided_KeyEvent
(
keyid
,
ButtonLongUpEvent
))
{
Buttion_T
->
PreKeyEvent
=
ButtonLongUpEvent
;
EventReturn
=
ButtonLongUpEvent
;
}
}
else
if
(
Button10sLongEvent
==
(
Buttion_T
->
PreKeyEvent
))
{
count
=
0
;
Buttion_T
->
PreKeyEvent
=
Button10sLongUpEvent
;
EventReturn
=
Button10sLongUpEvent
;
if
(
IS_Valided_KeyEvent
(
keyid
,
ButtonLongUpEvent
))
{
Buttion_T
->
PreKeyEvent
=
Button10sLongUpEvent
;
EventReturn
=
Button10sLongUpEvent
;
}
}
count
[
keyid
-
1
]
=
0
;
}
///**** 状态更新 *****/
if
(
Buttion_T
->
LastState
!=
Buttion_T
->
PreState
)
Buttion_T
->
PreState
=
Buttion_T
->
LastState
;
...
...
@@ -369,7 +424,7 @@ void key_scan(void)
SetkeyScanTime
(
SyskeyScanTimer
);
for
(
i
=
0
;
i
<
KeyTotalNum
;
i
++
)
{
if
(
NoButtonEvent
!=
(
EventTemp
[
i
]
=
KeyScanState
(
&
gKey_Button_t
[
i
],
Get_Key_Pin_By_Index
(
i
)
))
)
if
(
NoButtonEvent
!=
(
EventTemp
[
i
]
=
KeyScanState
(
&
gKey_Button_t
[
i
],
i
+
1
,
Get_Key_Pin_By_Index
(
i
)
))
)
{
InputKeyEvent
(
i
,
EventTemp
[
i
]);
}
...
...
@@ -385,6 +440,60 @@ void key_scan(void)
}
}
static
u8
Is_Valided_Key
(
u8
device_type
,
u8
keyid
,
u8
KeyPressEvent
)
{
u8
ret
=
FALSE
;
switch
(
device_type
)
{
case
1
:
{
if
((
Oled_Display_Info
.
Air_Device
.
lock_flage
)
&&
(
keyid
==
3
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
Air_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
on_off
==
0
)
&&
(
keyid
==
1
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
Air_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
on_off
==
0
)
&&
(
keyid
==
3
)
&&
(
KeyPressEvent
==
Button10sLongEvent
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
Air_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
IsKeyID12356
(
keyid
)))
ret
=
TRUE
;
break
;
}
case
2
:
{
if
((
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
)
&&
(
keyid
==
3
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
0
)
&&
(
keyid
==
1
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
0
)
&&
(
keyid
==
3
)
&&
(
KeyPressEvent
==
Button10sLongEvent
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
&&
(
IsKeyID1356
(
keyid
)))
ret
=
TRUE
;
break
;
}
case
3
:
{
if
((
Oled_Display_Info
.
FAN_Device
.
lock_flage
)
&&
(
keyid
==
3
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
FAN_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
FAN_Device
.
on_off
==
0
)
&&
(
keyid
==
1
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
FAN_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
FAN_Device
.
on_off
==
0
)
&&
(
keyid
==
3
)
&&
(
KeyPressEvent
==
Button10sLongEvent
))
ret
=
TRUE
;
else
if
((
Oled_Display_Info
.
FAN_Device
.
lock_flage
==
0
)
&&
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
&&
(
IsKeyID123
(
keyid
)))
ret
=
TRUE
;
break
;
}
default:
break
;
}
if
((
Oled_Display_Info
.
binding_device
!=
0
)
&&
(
keyid
==
4
))
ret
=
TRUE
;
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
ret
=
TRUE
;
if
((
IsLocalConfigMode
())
&&
(
IsKeyID1356
(
keyid
)
))
ret
=
TRUE
;
return
ret
;
}
static
void
LED_BEEP_Feedback
(
u8
key_id
)
{
if
(
((
Oled_Display_Info
.
screen_page
==
1
)
&&
(
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
==
0
)
)
...
...
@@ -400,19 +509,11 @@ static void LED_BEEP_Feedback(u8 key_id)
}
void
KeyProcess_Handler_Callbacks
(
u8
key_id
,
u8
KeyPressEvent
)
{
//printf("####KeyProcess_Handler_Callbacks,keyid = %d,Key_Event = %x\r\n",key_id,KeyPressEvent);
if
(
Key_Operate_Config_Operation
(
key_id
,
KeyPressEvent
)
||
(
KeyPressEvent
==
Button10sLongUpEvent
))
{
LED_BEEP_Feedback
(
key_id
);
return
;
}
if
(
LongLongPress10s_Handler
(
key_id
,
KeyPressEvent
))
return
;
//15min-4h老化期间不能操作按键
if
((
Oled_Display_Info
.
aging_test_flag
==
1
)
||
(
First_Exit_Factory_Mode
==
1
)
||
(
KeyPressEvent
==
Button10sLongEvent
)
)
if
((
Oled_Display_Info
.
aging_test_flag
==
1
)
||
(
First_Exit_Factory_Mode
==
1
))
return
;
//printf("####KeyProcess_Handler_After ,keyid = %d,Key_Event = %x\r\n",key_id,KeyPressEvent);
if
(
KeyPressEvent
!=
ButtonLongEvent
)
if
(
(
KeyPressEvent
==
ButtonShortEvent
)
||
(
KeyPressEvent
==
ButtonLongEvent
)
)
{
Detect_Human_Dispaly
();
if
(
IsLcdEnterScreenSave
())
//息屏状态,触摸按键,该次触发只唤醒,不做有效触发
...
...
@@ -422,12 +523,22 @@ void KeyProcess_Handler_Callbacks(u8 key_id,u8 KeyPressEvent)
return
;
}
Reload_Save_Time
();
//地暖的按键2无效
if
(
(
Oled_Display_Info
.
screen_page
==
2
)
&&
(
key_id
==
2
)
&&
(
Oled_Display_Info
.
aging_test_flag
==
2
))
return
;
LED_BEEP_Feedback
(
key_id
);
}
//有效按键触发,正常反馈
if
(
Is_Valided_Key
(
Oled_Display_Info
.
screen_page
,
key_id
,
KeyPressEvent
))
{
if
((
KeyPressEvent
!=
Button10sLongEvent
)
&&
(
KeyPressEvent
!=
ButtonLongEvent
)
&&
(
KeyPressEvent
!=
Button0_5sLongEvent
))
LED_BEEP_Feedback
(
key_id
);
}
if
(
LongLongPress10s_Handler
(
key_id
,
KeyPressEvent
))
return
;
//本地配置模式
if
(
Key_Operate_Config_Operation
(
key_id
,
KeyPressEvent
)
||
(
KeyPressEvent
==
Button10sLongUpEvent
))
{
return
;
}
/******************************************
童锁打开后,操作按键处理
*******************************************/
...
...
@@ -456,7 +567,7 @@ void KeyProcess_Handler_Callbacks(u8 key_id,u8 KeyPressEvent)
}
else
{
if
(
((
key_id
==
3
)
&&
(
KeyPressEvent
==
ButtonShortEvent
))
||
(
key_id
!=
3
)
)
(
IsKeyID12356
(
key_id
))
||
(
(
key_id
==
4
)
&&
(
!
Oled_Display_Info
.
binding_device
)
)
)
{
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
...
...
@@ -479,38 +590,6 @@ void KeyProcess_Handler_Callbacks(u8 key_id,u8 KeyPressEvent)
{
delay_confirm_fan_speed
();
}
/******************************************
延时关机时间调节期间,如果按下非调节按键,则打断
*******************************************/
if
((
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_delay_off_status
)
&&
((
key_id
==
2
)
||
(
key_id
==
3
)
||
(
key_id
==
4
)))
{
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_delay_off_status
=
0
;
Delay_OFF_Rel_Display
(
1
,
0
,
NULL
,
0
,
0
,
0
);
Oled_Display_whole
();
delay_operate_delay_off_Task_Stop
();
}
/******************************************
温度校准调节期间,如果按下非调节按键,则打断
*******************************************/
if
((
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_calibrate_temper
)
&&
(
KeyPressEvent
!=
ButtonLongUpEvent
)
&&
((
key_id
==
2
)
||
(
key_id
==
4
)
||
(
key_id
==
3
)))
{
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_calibrate_temper
=
0
;
delay_operate_calibrate_temper_Task_Stop
();
LCDShowTemp_state_t
.
LCD_place
=
CALIBRATE_TEMPER_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
PowerOff
();
}
/******************************************
温度校准调节完成后,2s内打开开关,取消2s关机延时
*******************************************/
if
(
(
is_operate_calibrate_temper_delay_2s_off_Task_start
())
&&
(
key_id
==
1
)
)
{
operate_calibrate_temper_delay_2s_off_Task_Stop
();
}
switch
(
key_id
)
{
case
1
:
...
...
@@ -715,232 +794,93 @@ static void KEY1_Botton_Process_Handler(u8 KeyPressEvent)
if
(
Oled_Display_Info
.
screen_page
==
1
)
//空调页面
{
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
{
if
(
sKey_Operation
[
0
].
operate_delay_off_status
)
{
sKey_Operation
[
0
].
operate_delay_off_status
=
0
;
Oled_Display_Info
.
Air_Device
.
power_off_time
=
sKey_Operation
[
0
].
record_adjust_delay_off
;
if
(
Oled_Display_Info
.
Air_Device
.
power_off_time
>
0
)
{
Oled_Display_Info
.
Air_Device
.
power_off_flage
=
1
;
Reset_DelayOFF_timer
(
AIR_CONDITION
);
Delay_OFF_Rel_Display
(
1
,
1
,
Oled_Display_Info
.
Air_Device
.
power_off_time
,
1
,
1
,
0
);
}
else
{
Delay_OFF_Rel_Display
(
1
,
0
,
NULL
,
0
,
0
,
0
);
Display_Up_Contend
(
AIR_CONDITION
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态更新上报
}
else
{
Control_OnOff_handler
(
AIR_CONDITION
,
0
);
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_onoff_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
#endif
}
{
Control_OnOff_handler
(
AIR_CONDITION
,
0
);
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_onoff_start
();
#else
Start_Delay_Report_Event
(
1
);
//状态改变通知
#endif
}
else
{
if
(
sKey_Operation
[
0
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
sKey_Operation
[
0
].
operate_calibrate_temper
=
0
;
operate_calibrate_temper_delay_2s_off_Task_Start
();
delay_operate_calibrate_temper_Task_Stop
();
//15s 计时取消
display_data
=
Oled_Display_Info
.
Air_Device
.
real_temperature
-
Oled_Display_Info
.
Air_Device
.
correct_temperature
+
sKey_Operation
[
0
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Oled_Display_Info
.
Air_Device
.
real_temperature
=
Oled_Display_Info
.
Air_Device
.
real_temperature
-
Oled_Display_Info
.
Air_Device
.
correct_temperature
+
sKey_Operation
[
0
].
operate_calibrate_temp
;
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
sKey_Operation
[
0
].
operate_calibrate_temp
;
save_data
();
//保存token
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态更新上报
}
else
{
Control_OnOff_handler
(
AIR_CONDITION
,
1
);
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_onoff_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
#endif
}
Control_OnOff_handler
(
AIR_CONDITION
,
1
);
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_onoff_start
();
#else
Start_Delay_Report_Event
(
1
);
//状态改变通知
#endif
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
2
)
{
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
{
if
(
sKey_Operation
[
1
].
operate_delay_off_status
)
{
sKey_Operation
[
1
].
operate_delay_off_status
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
=
sKey_Operation
[
1
].
record_adjust_delay_off
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
>
0
)
{
Oled_Display_Info
.
FLOOR_Device
.
power_off_flage
=
1
;
Reset_DelayOFF_timer
(
FLOOR_HEATING
);
Delay_OFF_Rel_Display
(
1
,
1
,
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
,
1
,
1
,
0
);
}
else
{
Delay_OFF_Rel_Display
(
1
,
0
,
NULL
,
0
,
0
,
0
);
Display_Up_Contend
(
FLOOR_HEATING
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态更新上报
}
else
{
Control_OnOff_handler
(
FLOOR_HEATING
,
0
);
//控制阀门关闭
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态更新上报
}
Control_OnOff_handler
(
FLOOR_HEATING
,
0
);
//控制阀门关闭
}
else
{
if
(
sKey_Operation
[
1
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
sKey_Operation
[
1
].
operate_calibrate_temper
=
0
;
operate_calibrate_temper_delay_2s_off_Task_Start
();
//2s计时开启
delay_operate_calibrate_temper_Task_Stop
();
//15s 计时取消
display_data
=
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
-
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
+
sKey_Operation
[
1
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
=
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
-
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
+
sKey_Operation
[
1
].
operate_calibrate_temp
;
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
sKey_Operation
[
1
].
operate_calibrate_temp
;
save_data
();
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态更新上报
}
else
{
Control_OnOff_handler
(
FLOOR_HEATING
,
1
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态更新上报
}
Control_OnOff_handler
(
FLOOR_HEATING
,
1
);
}
Start_Delay_Report_Event
(
2
);
}
else
if
(
Oled_Display_Info
.
screen_page
==
3
)
{
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
{
if
(
sKey_Operation
[
2
].
operate_delay_off_status
)
{
sKey_Operation
[
2
].
operate_delay_off_status
=
0
;
Oled_Display_Info
.
FAN_Device
.
power_off_time
=
sKey_Operation
[
2
].
record_adjust_delay_off
;
if
(
Oled_Display_Info
.
FAN_Device
.
power_off_time
>
0
)
{
Oled_Display_Info
.
FAN_Device
.
power_off_flage
=
1
;
Reset_DelayOFF_timer
(
FAN
);
Delay_OFF_Rel_Display
(
1
,
1
,
Oled_Display_Info
.
FAN_Device
.
power_off_time
,
1
,
1
,
0
);
}
else
{
Delay_OFF_Rel_Display
(
1
,
0
,
NULL
,
0
,
0
,
0
);
Display_Up_Contend
(
FAN
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态更新上报
}
else
{
Control_OnOff_handler
(
FAN
,
0
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态更新上报
}
Control_OnOff_handler
(
FAN
,
0
);
//状态更新上报
}
else
{
if
(
sKey_Operation
[
2
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
sKey_Operation
[
2
].
operate_calibrate_temper
=
0
;
operate_calibrate_temper_delay_2s_off_Task_Start
();
delay_operate_calibrate_temper_Task_Stop
();
//15s 计时取消
display_data
=
Oled_Display_Info
.
FAN_Device
.
real_temperature
-
Oled_Display_Info
.
FAN_Device
.
correct_temperature
+
sKey_Operation
[
2
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Oled_Display_Info
.
FAN_Device
.
real_temperature
=
Oled_Display_Info
.
FAN_Device
.
real_temperature
-
Oled_Display_Info
.
FAN_Device
.
correct_temperature
+
sKey_Operation
[
2
].
operate_calibrate_temp
;
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
sKey_Operation
[
2
].
operate_calibrate_temp
;
save_data
();
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态更新上报
}
else
{
Control_OnOff_handler
(
FAN
,
1
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态更新上报
}
Control_OnOff_handler
(
FAN
,
1
);
}
Start_Delay_Report_Event
(
3
);
}
}
break
;
case
ButtonLongEvent
:
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
{
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
{
//延时关机设置,开启闪烁
sKey_Operation
[
0
].
operate_delay_off_status
=
1
;
//显示H,设定时长,当前时间
Delay_OFF_Rel_Display
(
0
,
1
,
Oled_Display_Info
.
Air_Device
.
power_off_time
,
1
,
0
,
1
);
sKey_Operation
[
0
].
record_adjust_delay_off
=
Oled_Display_Info
.
Air_Device
.
power_off_time
;
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
Oled_Display_Info
.
Air_Device
.
power_off_time
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
{
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
{
//延时关机设置,开启闪烁
sKey_Operation
[
1
].
operate_delay_off_status
=
1
;
//显示H,设定时长,当前时间
Delay_OFF_Rel_Display
(
0
,
1
,
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
,
1
,
0
,
1
);
sKey_Operation
[
1
].
record_adjust_delay_off
=
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
;
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
}
u8
arg
[
2
]
=
{
0
};
static
u8
firstLongPressFlg
=
0
;
//15min前老化不能操作组网
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
break
;
if
(
Oled_Display_Info
.
net_work_flage
==
OUT_LINE
){
arg
[
0
]
=
1
;
//操作入网
Send_Device_Data
(
0
,
_OPCODE_SET_NET_STATE
,
arg
,
1
);
//printf("join network\r\n");
}
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
{
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
else
{
if
(
((
Oled_Display_Info
.
local_timer
-
sKey_Operation
[
0
].
operate_last_timer
)
<=
10
*
1000
)
&&
firstLongPressFlg
)
{
//延时关机设置,开启闪烁
sKey_Operation
[
2
].
operate_delay_off_status
=
1
;
//显示H,设定时长,当前时间
Delay_OFF_Rel_Display
(
0
,
1
,
Oled_Display_Info
.
FAN_Device
.
power_off_time
,
1
,
0
,
1
);
sKey_Operation
[
2
].
record_adjust_delay_off
=
Oled_Display_Info
.
FAN_Device
.
power_off_time
;
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
Oled_Display_Info
.
FAN_Device
.
power_off_time
);
arg
[
0
]
=
0
;
//操作离网
Send_Device_Data
(
0
,
_OPCODE_SET_NET_STATE
,
arg
,
1
);
//printf("leave network\r\n");
}
else
{
firstLongPressFlg
=
1
;
//闪烁一次,表示短按通过
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
}
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
FLASHING
;
LCDShowTemp_state_t
.
LCD_display_count
=
2
;
LCDShowTemp_state_t
.
LCD_display_timer
=
20
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
}
break
;
case
ButtonLongUpEvent
:
{
sKey_Operation
[
0
].
operate_last_timer
=
Oled_Display_Info
.
local_timer
;
}
break
;
default:
break
;
...
...
@@ -974,11 +914,11 @@ static void KEY2_Botton_Process_Handler(u8 KeyPressEvent)
/********************************************
显示当前风速
*********************************************/
display_
set_temp
(
1
,
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
1
);
display_
wind_speed
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
0
);
#if DEVICE_TYPE_FAN
Fan_Speed_Control
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
);
#endif
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态改变通知
Start_Delay_Report_Event
(
3
);
}
}
break
;
...
...
@@ -1013,7 +953,7 @@ static void KEY3_Botton_Process_Handler(u8 KeyPressEvent)
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_system_mode_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
Start_Delay_Report_Event
(
1
);
#endif
}
...
...
@@ -1027,10 +967,11 @@ static void KEY3_Botton_Process_Handler(u8 KeyPressEvent)
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_AUTO
)
{
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
260
;
display_set_temp
(
0
,
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
,
0
);
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态改变通知
Start_Delay_Report_Event
(
2
);
}
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
{
...
...
@@ -1042,7 +983,7 @@ static void KEY3_Botton_Process_Handler(u8 KeyPressEvent)
#if DEVICE_TYPE_FAN
Fan_PassbyONOFF_By_Mode_Trans
(
system_mode_temp
,
1
);
#endif
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态改变通知
Start_Delay_Report_Event
(
3
);
}
}
break
;
...
...
@@ -1050,72 +991,40 @@ static void KEY3_Botton_Process_Handler(u8 KeyPressEvent)
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
{
if
(
Oled_Display_Info
.
Air_Device
.
on_off
==
0
)
//关机模式才能操作温度校准
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
sKey_Operation
[
0
].
operate_calibrate_temper
=
1
;
sKey_Operation
[
0
].
operate_calibrate_temp
=
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
display_data
=
Oled_Display_Info
.
Air_Device
.
real_temperature
;
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
return
;
}
if
(
Oled_Display_Info
.
Air_Device
.
lock_flage
)
//处于锁定状态,长按可解锁
if
(
Oled_Display_Info
.
Air_Device
.
lock_flage
)
{
Oled_Display_Info
.
Air_Device
.
lock_flage
=
0
;
Control_ChildLock_Onoff
(
AIR_CONDITION
,
Oled_Display_Info
.
Air_Device
.
lock_flage
);
Control_ChildLock_Onoff
(
AIR_CONDITION
,
Oled_Display_Info
.
Air_Device
.
lock_flage
);
}
else
{
//处于非锁定状态,长按可上锁
else
if
((
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
Oled_Display_Info
.
Air_Device
.
lock_flage
==
0
))
//处于非锁定状态,长按可上锁
{
Oled_Display_Info
.
Air_Device
.
lock_flage
=
1
;
Control_ChildLock_Onoff
(
AIR_CONDITION
,
Oled_Display_Info
.
Air_Device
.
lock_flage
);
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
{
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
0
)
//关机模式才能操作温度校准
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
sKey_Operation
[
1
].
operate_calibrate_temper
=
1
;
sKey_Operation
[
1
].
operate_calibrate_temp
=
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
;
display_data
=
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
;
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
return
;
}
if
(
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
)
//处于锁定状态,长按可解锁
if
(
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
)
{
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
0
;
Control_ChildLock_Onoff
(
FLOOR_HEATING
,
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
);
Control_ChildLock_Onoff
(
FLOOR_HEATING
,
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
);
}
else
{
//处于非锁定状态,长按可上锁
else
if
((
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
==
0
))
//处于非锁定状态,长按可上锁
{
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
1
;
Control_ChildLock_Onoff
(
FLOOR_HEATING
,
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
);
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
{
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
==
0
)
//关机模式才能操作温度校准
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
sKey_Operation
[
2
].
operate_calibrate_temper
=
1
;
sKey_Operation
[
2
].
operate_calibrate_temp
=
Oled_Display_Info
.
FAN_Device
.
correct_temperature
;
display_data
=
Oled_Display_Info
.
FAN_Device
.
real_temperature
;
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
return
;
}
if
(
Oled_Display_Info
.
FAN_Device
.
lock_flage
)
//处于锁定状态,长按可解锁
if
(
Oled_Display_Info
.
FAN_Device
.
lock_flage
)
{
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
0
;
Control_ChildLock_Onoff
(
FAN
,
Oled_Display_Info
.
FAN_Device
.
lock_flage
);
Control_ChildLock_Onoff
(
FAN
,
Oled_Display_Info
.
FAN_Device
.
lock_flage
);
}
else
{
//处于非锁定状态,长按可上锁
else
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
)
&&
(
Oled_Display_Info
.
FAN_Device
.
lock_flage
==
0
))
//处于非锁定状态,长按可上锁
{
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
1
;
Control_ChildLock_Onoff
(
FAN
,
Oled_Display_Info
.
FAN_Device
.
lock_flage
);
}
...
...
@@ -1166,6 +1075,7 @@ static void KEY4_Botton_Process_Handler(u8 KeyPressEvent)
Oled_Display_Info
.
screen_page
=
Oled_Display_Info
.
device_type
;
}
//显示所有的界面
BL55072A_Clear
();
display_current_page
();
}
break
;
...
...
@@ -1177,36 +1087,61 @@ static void KEY5_Botton_Process_Handler(u8 KeyPressEvent)
{
switch
(
KeyPressEvent
)
{
case
Button
Short
Event
:
case
Button
0_5sLong
Event
:
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
{
if
(
!
Oled_Display_Info
.
Air_Device
.
on_off
)
//关机情况下不允许调节
{
if
(
!
Oled_Display_Info
.
Air_Device
.
on_off
)
return
;
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
)
{
if
(
sKey_Operation
[
0
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
if
(
sKey_Operation
[
0
].
operate_calibrate_temp
<
90
)
sKey_Operation
[
0
].
operate_calibrate_temp
+=
5
;
display_data
=
Oled_Display_Info
.
Air_Device
.
real_temperature
-
Oled_Display_Info
.
Air_Device
.
correct_temperature
+
sKey_Operation
[
0
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
}
break
;
}
/**************************************************
调节设置温度
**************************************************/
Oled_Display_Info
.
Air_Device
.
set_temperature
+=
10
;
if
(
Oled_Display_Info
.
Air_Device
.
set_temperature
>=
300
)
Oled_Display_Info
.
Air_Device
.
set_temperature
=
300
;
Display_Set_Temper
(
Oled_Display_Info
.
Air_Device
.
set_temperature
);
//显示设置温度
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_set_temp_start
();
#else
Start_Delay_Report_Event
(
1
);
#endif
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
{
if
(
!
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
return
;
/**************************************************
调节设置温度
**************************************************/
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
!=
SYSTEM_MODE_AUTO
)
{
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
+=
5
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
>=
300
)
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
300
;
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
//显示设置温度
Start_Delay_Report_Event
(
2
);
}
}
break
;
}
case
ButtonShortEvent
:
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
{
if
(
!
Oled_Display_Info
.
Air_Device
.
on_off
)
return
;
if
(
gKey_Press_Info
.
adjust_fan_speed_status
==
1
)
{
u8
next_speed
=
0
;
if
(
Oled_Display_Info
.
Air_Device
.
air_cond_type
==
2
)
//线控器支持七档+自动调节
{
// next_speed = Get_NextOne_By_Current_Speed_Level(1,Oled_Display_Info.Air_Device.wind_speed,1);
// display_wind_speed(next_speed,1);
// Oled_Display_Info.Air_Device.wind_speed = next_speed;
// state_change_report(OPCODE_GENERAL_REPORT_STATUS,1); //状态改变通知
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_DRY
)
//美的空调,除湿模式下改变风速无效
{
next_speed
=
Get_NextOne_By_Current_Speed_Level
(
1
,
Oled_Display_Info
.
Air_Device
.
wind_speed
,
0
);
...
...
@@ -1217,108 +1152,35 @@ static void KEY5_Botton_Process_Handler(u8 KeyPressEvent)
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_fan_speed_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
Start_Delay_Report_Event
(
1
);
#endif
//Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_SPEED,next_speed); //控制空调风速
}
}
// else if(Oled_Display_Info.Air_Device.air_cond_type == 1) //风机盘管,新风只支持3档+自动调节
// {
// if(Oled_Display_Info.Air_Device.system_type != SYSTEM_MODE_DRY) //美的空调,除湿模式下改变风速无效
// {
// next_speed = Get_NextOne_By_Current_Speed_Level(1,Oled_Display_Info.Air_Device.wind_speed,0);
// display_wind_speed(next_speed,0);
// //Oled_Display_Info.Air_Device.wind_speed = next_speed;
//
// //Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_SPEED,Oled_Display_Info.Air_Device.wind_speed); //控制空调风速
//
// state_change_report(OPCODE_GENERAL_REPORT_STATUS,1); //状态改变通知
// }
// }
break
;
}
// else if(gKey_Press_Info.adjust_fan_speed_status == 2)
// {
// u8 speed_direct = 0;
// speed_direct = Get_NextOne_By_Current_wind_direct(1,Oled_Display_Info.Air_Device.air_wind_direct);
// switch(speed_direct) //显示当前风向
// {
// case 0:
// display_wind_direct(1,0,0);
// break;
// case 1:
// display_wind_direct(0,1,0);
// break;
// case 2:
// display_wind_direct(0,0,1);
// break;
// default:
// break;
// }
// Control_AIR_CONDITION_By_RS485(AIR_CMD_FAN_DIRECT,speed_direct); //控制空调风向
// break;
// }
if
(
sKey_Operation
[
0
].
operate_delay_off_status
)
{
sKey_Operation
[
0
].
record_adjust_delay_off
+=
5
;
if
(
sKey_Operation
[
0
].
record_adjust_delay_off
>=
240
)
sKey_Operation
[
0
].
record_adjust_delay_off
=
240
;
Delay_Power_Off_Control
(
ON
,
NULL
,
NULL
,
sKey_Operation
[
0
].
record_adjust_delay_off
);
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
sKey_Operation
[
0
].
record_adjust_delay_off
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
break
;
}
}
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
)
{
/**************************************************
调节设置温度
**************************************************/
Oled_Display_Info
.
Air_Device
.
set_temperature
+=
5
;
Oled_Display_Info
.
Air_Device
.
set_temperature
+=
10
;
if
(
Oled_Display_Info
.
Air_Device
.
set_temperature
>=
300
)
Oled_Display_Info
.
Air_Device
.
set_temperature
=
300
;
display_set_temp
(
0
,
Oled_Display_Info
.
Air_Device
.
set_temperature
,
0
);
//显示设置温度
Display_Set_Temper
(
Oled_Display_Info
.
Air_Device
.
set_temperature
);
//显示设置温度
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_set_temp_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
Start_Delay_Report_Event
(
1
);
#endif
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
{
if
(
!
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
//关机情况下不允许调节
{
if
(
sKey_Operation
[
1
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
if
(
sKey_Operation
[
1
].
operate_calibrate_temp
<
90
)
sKey_Operation
[
1
].
operate_calibrate_temp
+=
5
;
display_data
=
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
-
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
+
sKey_Operation
[
1
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
}
break
;
}
if
(
sKey_Operation
[
1
].
operate_delay_off_status
)
{
sKey_Operation
[
1
].
record_adjust_delay_off
+=
5
;
if
(
sKey_Operation
[
1
].
record_adjust_delay_off
>=
240
)
sKey_Operation
[
1
].
record_adjust_delay_off
=
240
;
Delay_Power_Off_Control
(
ON
,
NULL
,
NULL
,
sKey_Operation
[
1
].
record_adjust_delay_off
);
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
sKey_Operation
[
1
].
record_adjust_delay_off
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
break
;
}
{
if
(
!
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
return
;
/**************************************************
调节设置温度
**************************************************/
...
...
@@ -1337,55 +1199,11 @@ static void KEY5_Botton_Process_Handler(u8 KeyPressEvent)
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
+=
5
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
>=
300
)
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
300
;
display_set_temp
(
0
,
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
,
0
);
//显示设置温度
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
//显示设置温度
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态改变通知
Start_Delay_Report_Event
(
2
);
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
{
if
(
!
Oled_Display_Info
.
FAN_Device
.
on_off
)
//关机情况下不允许调节
{
if
(
sKey_Operation
[
2
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
if
(
sKey_Operation
[
2
].
operate_calibrate_temp
<
90
)
sKey_Operation
[
2
].
operate_calibrate_temp
+=
5
;
display_data
=
Oled_Display_Info
.
FAN_Device
.
real_temperature
-
Oled_Display_Info
.
FAN_Device
.
correct_temperature
+
sKey_Operation
[
2
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
}
break
;
}
if
(
gKey_Press_Info
.
adjust_fan_speed_status
==
1
)
{
u8
next_speed
=
0
;
next_speed
=
Get_NextOne_By_Current_Speed_Level
(
1
,
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
0
);
display_wind_speed
(
next_speed
,
0
);
Oled_Display_Info
.
FAN_Device
.
wind_speed
=
next_speed
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态改变通知
break
;
}
if
(
sKey_Operation
[
2
].
operate_delay_off_status
)
{
sKey_Operation
[
2
].
record_adjust_delay_off
+=
5
;
if
(
sKey_Operation
[
2
].
record_adjust_delay_off
>=
240
)
sKey_Operation
[
2
].
record_adjust_delay_off
=
240
;
Delay_Power_Off_Control
(
ON
,
NULL
,
NULL
,
sKey_Operation
[
2
].
record_adjust_delay_off
);
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
sKey_Operation
[
2
].
record_adjust_delay_off
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
break
;
}
}
}
break
;
// case ButtonLongEvent:
...
...
@@ -1403,35 +1221,61 @@ static void KEY6_Botton_Process_Handler(u8 KeyPressEvent)
{
switch
(
KeyPressEvent
)
{
case
Button
Short
Event
:
case
Button
0_5sLong
Event
:
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
{
if
(
!
Oled_Display_Info
.
Air_Device
.
on_off
)
//关机情况下不允许调节
{
if
(
!
Oled_Display_Info
.
Air_Device
.
on_off
)
return
;
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
)
{
if
(
sKey_Operation
[
0
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
if
(
sKey_Operation
[
0
].
operate_calibrate_temp
>
-
90
)
sKey_Operation
[
0
].
operate_calibrate_temp
-=
5
;
display_data
=
Oled_Display_Info
.
Air_Device
.
real_temperature
-
Oled_Display_Info
.
Air_Device
.
correct_temperature
+
sKey_Operation
[
0
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
}
break
;
}
/**************************************************
调节设置温度
**************************************************/
Oled_Display_Info
.
Air_Device
.
set_temperature
-=
10
;
if
(
Oled_Display_Info
.
Air_Device
.
set_temperature
<=
200
)
Oled_Display_Info
.
Air_Device
.
set_temperature
=
200
;
Display_Set_Temper
(
Oled_Display_Info
.
Air_Device
.
set_temperature
);
//显示设置温度
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_set_temp_start
();
#else
Start_Delay_Report_Event
(
1
);
#endif
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
{
if
(
!
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
return
;
/**************************************************
调节设置温度
**************************************************/
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
!=
SYSTEM_MODE_AUTO
)
{
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
-=
5
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
<=
160
)
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
160
;
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
//显示设置温度
Start_Delay_Report_Event
(
2
);
}
}
break
;
}
case
ButtonShortEvent
:
{
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
{
if
(
!
Oled_Display_Info
.
Air_Device
.
on_off
)
return
;
if
(
gKey_Press_Info
.
adjust_fan_speed_status
==
1
)
{
u8
next_speed
=
0
;
if
(
Oled_Display_Info
.
Air_Device
.
air_cond_type
==
2
)
//线控器支持七档+自动调节
{
// next_speed = Get_NextOne_By_Current_Speed_Level(0,Oled_Display_Info.Air_Device.wind_speed,1);
// display_wind_speed(next_speed,1);
{
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_DRY
)
//美的空调,除湿模式下改变风速无效
{
next_speed
=
Get_NextOne_By_Current_Speed_Level
(
0
,
Oled_Display_Info
.
Air_Device
.
wind_speed
,
0
);
...
...
@@ -1442,99 +1286,31 @@ static void KEY6_Botton_Process_Handler(u8 KeyPressEvent)
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_fan_speed_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
Start_Delay_Report_Event
(
1
);
#endif
}
}
// else if(Oled_Display_Info.Air_Device.air_cond_type == 1) //风机盘管,新风只支持3档+自动调节
// {
// next_speed = Get_NextOne_By_Current_Speed_Level(0,Oled_Display_Info.Air_Device.wind_speed,0);
// display_wind_speed(next_speed,0);
// Oled_Display_Info.Air_Device.wind_speed = next_speed;
//
// state_change_report(OPCODE_GENERAL_REPORT_STATUS,1); //状态改变通知
// }
break
;
}
// else if(gKey_Press_Info.adjust_fan_speed_status == 2)
// {
// u8 speed_direct = 0;
// speed_direct = Get_NextOne_By_Current_wind_direct(0,Oled_Display_Info.Air_Device.air_wind_direct);
// switch(speed_direct) //显示当前风向
// {
// case 0:
// display_wind_direct(1,0,0);
// break;
// case 1:
// display_wind_direct(0,1,0);
// break;
// case 2:
// display_wind_direct(0,0,1);
// break;
// default:
// break;
// }
// Oled_Display_Info.Air_Device.air_wind_direct = speed_direct;
//
// state_change_report(OPCODE_GENERAL_REPORT_STATUS,1); //状态改变通知
// break;
// }
if
(
sKey_Operation
[
0
].
operate_delay_off_status
)
{
if
(
sKey_Operation
[
0
].
record_adjust_delay_off
>=
5
)
sKey_Operation
[
0
].
record_adjust_delay_off
-=
5
;
Delay_Power_Off_Control
(
ON
,
15000
,
500
,
sKey_Operation
[
0
].
record_adjust_delay_off
);
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
sKey_Operation
[
0
].
record_adjust_delay_off
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
break
;
}
}
if
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
)
{
Oled_Display_Info
.
Air_Device
.
set_temperature
-=
5
;
if
(
Oled_Display_Info
.
Air_Device
.
set_temperature
<=
16
0
)
//美的空调温度调节范围 17度 - 30度
Oled_Display_Info
.
Air_Device
.
set_temperature
=
16
0
;
display_set_temp
(
0
,
Oled_Display_Info
.
Air_Device
.
set_temperature
,
0
);
//显示设置温度
Oled_Display_Info
.
Air_Device
.
set_temperature
-=
10
;
if
(
Oled_Display_Info
.
Air_Device
.
set_temperature
<=
20
0
)
//美的空调温度调节范围 17度 - 30度
Oled_Display_Info
.
Air_Device
.
set_temperature
=
20
0
;
Display_Set_Temper
(
Oled_Display_Info
.
Air_Device
.
set_temperature
);
//显示设置温度
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_set_temp_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
Start_Delay_Report_Event
(
1
);
#endif
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
{
if
(
!
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
//关机情况下不允许调节
{
if
(
sKey_Operation
[
1
].
operate_calibrate_temper
)
{
u16
display_data
=
1
;
delay_operate_calibrate_temper_Task_Start
();
if
(
sKey_Operation
[
1
].
operate_calibrate_temp
>
-
90
)
sKey_Operation
[
1
].
operate_calibrate_temp
-=
5
;
display_data
=
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
-
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
+
sKey_Operation
[
1
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
}
break
;
}
if
(
sKey_Operation
[
1
].
operate_delay_off_status
)
{
if
(
sKey_Operation
[
1
].
record_adjust_delay_off
>=
5
)
sKey_Operation
[
1
].
record_adjust_delay_off
-=
5
;
Delay_Power_Off_Control
(
ON
,
15000
,
500
,
sKey_Operation
[
1
].
record_adjust_delay_off
);
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
sKey_Operation
[
1
].
record_adjust_delay_off
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
break
;
}
{
if
(
!
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
return
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_AUTO
)
{
LCDShowTemp_state_t
.
LCD_place
=
SYSTEM_AUTO_CHAR_DISPLAY
;
...
...
@@ -1549,98 +1325,16 @@ static void KEY6_Botton_Process_Handler(u8 KeyPressEvent)
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
-=
5
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
<=
160
)
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
160
;
display_set_temp
(
0
,
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
,
0
);
//显示设置温度
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
//显示设置温度
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态改变通知
Start_Delay_Report_Event
(
2
);
}
}
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
{
if
(
!
Oled_Display_Info
.
FAN_Device
.
on_off
)
//关机情况下不允许调节
{
if
(
sKey_Operation
[
2
].
operate_calibrate_temper
)
{
u16
display_data
=
0
;
delay_operate_calibrate_temper_Task_Start
();
if
(
sKey_Operation
[
2
].
operate_calibrate_temp
>
-
90
)
sKey_Operation
[
2
].
operate_calibrate_temp
-=
5
;
display_data
=
Oled_Display_Info
.
FAN_Device
.
real_temperature
-
Oled_Display_Info
.
FAN_Device
.
correct_temperature
+
sKey_Operation
[
2
].
operate_calibrate_temp
;
Calib_Temp_Control
(
ON
,
0
,
0
,
display_data
);
Calib_Temp_Control
(
FLASHING
,
15
*
1000
,
800
,
display_data
);
}
break
;
}
if
(
gKey_Press_Info
.
adjust_fan_speed_status
==
1
)
{
u8
next_speed
=
0
;
next_speed
=
Get_NextOne_By_Current_Speed_Level
(
0
,
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
0
);
display_wind_speed
(
next_speed
,
0
);
Oled_Display_Info
.
FAN_Device
.
wind_speed
=
next_speed
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态改变通知
break
;
}
if
(
sKey_Operation
[
2
].
operate_delay_off_status
)
{
if
(
sKey_Operation
[
2
].
record_adjust_delay_off
>=
5
)
sKey_Operation
[
2
].
record_adjust_delay_off
-=
5
;
Delay_Power_Off_Control
(
ON
,
15000
,
500
,
sKey_Operation
[
2
].
record_adjust_delay_off
);
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
sKey_Operation
[
2
].
record_adjust_delay_off
);
delay_operate_delay_off_Task_Start
();
//开启15s倒计时
}
}
}
break
;
case
ButtonLongEvent
:
{
u8
arg
[
2
]
=
{
0
};
static
u8
firstLongPressFlg
=
0
;
//15min前老化不能操作组网
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
break
;
if
(
Oled_Display_Info
.
net_work_flage
==
OUT_LINE
){
arg
[
0
]
=
1
;
//操作入网
Send_Device_Data
(
0
,
_OPCODE_SET_NET_STATE
,
arg
,
1
);
//printf("join network\r\n");
}
else
{
if
(
((
Oled_Display_Info
.
local_timer
-
sKey_Operation
[
0
].
operate_last_timer
)
<=
10
*
1000
)
&&
firstLongPressFlg
)
{
arg
[
0
]
=
0
;
//操作离网
Send_Device_Data
(
0
,
_OPCODE_SET_NET_STATE
,
arg
,
1
);
//printf("leave network\r\n");
}
else
{
firstLongPressFlg
=
1
;
//闪烁一次,表示短按通过
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
FLASHING
;
LCDShowTemp_state_t
.
LCD_display_count
=
2
;
LCDShowTemp_state_t
.
LCD_display_timer
=
20
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
}
break
;
case
ButtonLongUpEvent
:
{
sKey_Operation
[
0
].
operate_last_timer
=
Oled_Display_Info
.
local_timer
;
}
break
;
default:
break
;
...
...
@@ -2043,18 +1737,21 @@ void Control_ChildLock_Onoff(u8 device_type,u8 onoff)
if
(
onoff
)
//处于锁定状态,长按可解锁
{
Oled_Display_Info
.
Air_Device
.
lock_flage
=
1
;
Operate_Led_Button
(
AIR_CONDITION
,
1
);
// 只显示'M'按键
LCDShowTemp_state_t
.
LCD_state
=
ON
;
}
else
{
Oled_Display_Info
.
Air_Device
.
lock_flage
=
0
;
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
Operate_Led_Button
(
AIR_CONDITION
,
2
);
else
Operate_Led_Button
(
AIR_CONDITION
,
3
);
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
}
LcdShowCTR
(
LCDShowTemp_state_t
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
Start_Delay_Report_Event
(
1
);
}
else
if
(
device_type
==
FLOOR_HEATING
)
{
...
...
@@ -2062,15 +1759,20 @@ void Control_ChildLock_Onoff(u8 device_type,u8 onoff)
if
(
onoff
)
//处于锁定状态,长按可解锁
{
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
1
;
Operate_Led_Button
(
FLOOR_HEATING
,
1
);
// 只显示'M'按键
LCDShowTemp_state_t
.
LCD_state
=
ON
;
}
else
{
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
0
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
Operate_Led_Button
(
FLOOR_HEATING
,
2
);
else
Operate_Led_Button
(
FLOOR_HEATING
,
3
);
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
}
LcdShowCTR
(
LCDShowTemp_state_t
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
Start_Delay_Report_Event
(
2
);
}
else
if
(
device_type
==
FAN
)
{
...
...
@@ -2078,16 +1780,21 @@ void Control_ChildLock_Onoff(u8 device_type,u8 onoff)
if
(
onoff
)
//处于锁定状态,长按可解锁
{
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
1
;
Operate_Led_Button
(
FAN
,
1
);
// 只显示'M'按键
LCDShowTemp_state_t
.
LCD_state
=
ON
;
}
else
{
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
0
;
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
Operate_Led_Button
(
FAN
,
2
);
else
Operate_Led_Button
(
FAN
,
3
);
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
}
LcdShowCTR
(
LCDShowTemp_state_t
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
Start_Delay_Report_Event
(
3
);
}
save_data
();
}
Code/海顿-多合一新风面板/APP/User/src/control_comm.c
View file @
3169de12
...
...
@@ -25,7 +25,7 @@ u16 temp_close_time = 250 ; //5ms
////////////////////////非透传协议四个网络状态/////////////////////////////
#define PERSON_TRAGGER_MIN_RANGE 20
#define PERSON_TRAGGER_MIN_RANGE
15//
20
...
...
@@ -89,89 +89,8 @@ extern Lcd_Status_Info_t LCDShowTemp_state_t;
static
void
delay_300ms_report_start
(
void
);
static
void
delay_300ms_report_stop
(
void
);
///**********************************************
// 上电默认设备类型0(冷热分管)
//**********************************************/
//void Tap_Init(void)
//{
// save_tap_status[0] = 0;
// save_tap_status[1] = 0;
// save_tap_status[2] = 0;
// save_tap_status[3] = 1;
// save_tap_status[4] = 0;
// save_tap_status[5] = 0;
//
// switch(Oled_Display_Info.system_type)
// {
// case HOT_AND_COLD_APART: //冷热分管
// {
// if (Oled_Display_Info.real_temperature >= 280)
// {
// Oled_Display_Info.operation_mode = 1; //冷
// save_tap_status[0] = 1;
// }
// else if (Oled_Display_Info.real_temperature <= 200)
// {
// Oled_Display_Info.operation_mode = 2; //热
// save_tap_status[1] = 1;
// }
// else
// {
// Oled_Display_Info.operation_mode = 3; //通风
// }
// break;
// }
// case ONLY_COLD: //单冷 //无热阀,无制热模式 冷阀根据温度调节开关
// {
//
// if (Oled_Display_Info.real_temperature >= 280)
// {
// Oled_Display_Info.operation_mode = 1; //冷
// save_tap_status[0] = 1;
// }
// else
// {
// Oled_Display_Info.operation_mode = 3; //通风
// }
// break;
// }
// case ONLY_HOT: //单热
// {
// if (Oled_Display_Info.real_temperature <= 200)
// {
// Oled_Display_Info.operation_mode = 2; //热
// save_tap_status[1] = 1;
// }
// else
// {
// Oled_Display_Info.operation_mode = 3; //通风
// }
// break;
// }
// case HOT_AND_COLD_SHARED: //冷热共管
// {
// if (Oled_Display_Info.real_temperature >= 280)
// {
// Oled_Display_Info.operation_mode = 1; //冷
// save_tap_status[0] = 1;
// }
// else if (Oled_Display_Info.real_temperature <= 200)
// {
// Oled_Display_Info.operation_mode = 2; //热
// save_tap_status[0] = 1;
// }
// else
// {
// Oled_Display_Info.operation_mode = 3; //通风
// }
//
// break;
// }
// }
//
//
//}
void
Display_Status
(
void
);
static
u8
Temp_Compensation
(
void
);
/***********************************************************************
* 重要任务,不停的轮询
***********************************************************************/
...
...
@@ -183,6 +102,7 @@ void main_task(void)
uart_msg_deal
();
//产测数据解析
kLedModuleActionDetectCallback
();
//zigbee指示灯操作
Display_Status
();
Delay_Report_Status
();
#ifndef DEVICE_TYPE_AIR_CONDITION
Tap_Switch
();
...
...
@@ -193,24 +113,18 @@ static void Set_Error_Code(u8 error_code)
{
if
(
Oled_Display_Info
.
screen_page
==
1
){
Oled_Display_Info
.
Air_Device
.
error
=
error_code
;
//传感器故障
if
(
Get_Display_Status
())
{
Display_Up_Contend
(
AIR_CONDITION
);
}
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
Display_Middle_Contend
(
AIR_CONDITION
);
}
else
if
(
Oled_Display_Info
.
screen_page
==
2
){
Oled_Display_Info
.
FLOOR_Device
.
error
=
error_code
;
if
(
Get_Display_Status
())
{
Display_Up_Contend
(
FLOOR_HEATING
);
}
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
Display_Middle_Contend
(
FLOOR_HEATING
);
}
else
if
(
Oled_Display_Info
.
screen_page
==
3
){
Oled_Display_Info
.
FAN_Device
.
error
=
error_code
;
if
(
Get_Display_Status
())
{
Display_Up_Contend
(
FAN
);
}
Oled_Display_Info
.
FAN_Device
.
error
=
error_code
;
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
Display_Middle_Contend
(
FAN
);
}
}
/***********************************************************************
...
...
@@ -237,16 +151,8 @@ u8 i = 0;
temp_new_data
=
(
temp_new_data
/
5
)
*
5
;
if
(
Oled_Display_Info
.
screen_page
==
1
){
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
}
else
if
(
Oled_Display_Info
.
screen_page
==
2
){
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
;
}
else
if
(
Oled_Display_Info
.
screen_page
==
3
){
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
FAN_Device
.
correct_temperature
;
}
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
-
Temp_Compensation
();
if
(
temp_new_data
<=
-
100
)
{
temp_new_data
=
-
95
;
...
...
@@ -255,15 +161,9 @@ u8 i = 0;
{
temp_new_data
=
995
;
}
if
(
Oled_Display_Info
.
screen_page
==
1
){
Oled_Display_Info
.
Air_Device
.
real_temperature
=
temp_new_data
;
}
else
if
(
Oled_Display_Info
.
screen_page
==
2
){
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
=
temp_new_data
;
}
else
if
(
Oled_Display_Info
.
screen_page
==
3
){
Oled_Display_Info
.
FAN_Device
.
real_temperature
=
temp_new_data
;
}
Oled_Display_Info
.
Air_Device
.
real_temperature
=
temp_new_data
;
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
=
temp_new_data
;
Oled_Display_Info
.
FAN_Device
.
real_temperature
=
temp_new_data
;
}
}
///***********************************************************************
...
...
@@ -291,15 +191,21 @@ void shtc3_sensor_measure_loop(void)
if
((
Oled_Display_Info
.
screen_page
==
1
)
&&
(
Oled_Display_Info
.
Air_Device
.
error
==
1
))
//传感器故障
{
Oled_Display_Info
.
Air_Device
.
error
=
0
;
if
(
Get_Display_Status
())
{
LCDShowTemp_state_t
.
LCD_place
=
DELAY_OFF_TIME_DISPLAY
;
LCDShowTemp_state_t
.
LCD_display_count
=
0
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
Set_Error_Code
(
0
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
else
if
((
Oled_Display_Info
.
screen_page
==
2
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
error
==
1
))
//传感器故障
{
Oled_Display_Info
.
FLOOR_Device
.
error
=
0
;
Set_Error_Code
(
0
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
}
else
if
((
Oled_Display_Info
.
screen_page
==
3
)
&&
(
Oled_Display_Info
.
FAN_Device
.
error
==
1
))
//传感器故障
{
Oled_Display_Info
.
FAN_Device
.
error
=
0
;
Set_Error_Code
(
0
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
}
abnormal_times
=
0
;
temp_new_data
=
tmep_data
;
...
...
@@ -318,16 +224,8 @@ void shtc3_sensor_measure_loop(void)
temp_new_data
=
((
temp_new_data
/
data_number
)
/
5
)
*
5
;
if
(
Oled_Display_Info
.
screen_page
==
1
){
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
}
else
if
(
Oled_Display_Info
.
screen_page
==
2
){
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
;
}
else
if
(
Oled_Display_Info
.
screen_page
==
3
){
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
FAN_Device
.
correct_temperature
;
}
temp_new_data
=
temp_new_data
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
-
Temp_Compensation
();
if
(
temp_new_data
<=
-
100
)
{
temp_new_data
=
-
95
;
...
...
@@ -335,288 +233,256 @@ void shtc3_sensor_measure_loop(void)
else
if
(
temp_new_data
>=
1000
)
{
temp_new_data
=
995
;
}
// printf("measure temp data = %d\r\n",temp_new_data);
if
(
(
ABS
(
Oled_Display_Info
.
Air_Device
.
real_temperature
,
temp_new_data
)
>
10
)
&&
(
Oled_Display_Info
.
screen_page
==
1
)
)
{
}
if
(
ABS
(
Oled_Display_Info
.
Air_Device
.
real_temperature
,
temp_new_data
)
>=
10
)
{
Oled_Display_Info
.
Air_Device
.
real_temperature
=
temp_new_data
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
// 上报状态
}
else
if
(
(
ABS
(
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
,
temp_new_data
)
>
10
)
&&
(
Oled_Display_Info
.
screen_page
==
2
)
)
{
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
=
temp_new_data
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
// 上报状态
}
else
if
(
(
ABS
(
Oled_Display_Info
.
FAN_Device
.
real_temperature
,
temp_new_data
)
>
10
)
&&
(
Oled_Display_Info
.
screen_page
==
3
)
)
{
Oled_Display_Info
.
FAN_Device
.
real_temperature
=
temp_new_data
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
// 上报状态
}
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
=
temp_new_data
;
Oled_Display_Info
.
FAN_Device
.
real_temperature
=
temp_new_data
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
Oled_Display_Info
.
screen_page
);
// 上报状态
}
}
}
static
u8
Save_Data
(
u8
device_type
,
u8
index
,
u32
*
write_data
)
{
if
(
device_type
==
AIR_CONDITION
)
/**
解决因为底板发热导致的温度偏高校准
*/
static
u8
Temp_Compensation
(
void
)
{
u32
time_s
=
Oled_Display_Info
.
local_timer
/
1000
;
u8
Compensation_Value
=
0
;
if
((
time_s
>=
150
)
&&
(
time_s
<
300
))
Compensation_Value
=
5
;
else
if
((
time_s
>=
300
)
&&
(
time_s
<
450
))
Compensation_Value
=
10
;
else
if
((
time_s
>=
450
)
&&
(
time_s
<
600
))
Compensation_Value
=
15
;
else
if
((
time_s
>=
600
)
&&
(
time_s
<
750
))
Compensation_Value
=
20
;
else
if
((
time_s
>=
750
)
&&
(
time_s
<
900
))
Compensation_Value
=
25
;
else
if
((
time_s
>=
900
)
&&
(
time_s
<
1050
))
Compensation_Value
=
30
;
else
if
((
time_s
>=
1050
)
&&
(
time_s
<
1200
))
Compensation_Value
=
35
;
else
if
((
time_s
>=
1200
)
&&
(
time_s
<
1350
))
Compensation_Value
=
40
;
else
if
((
time_s
>=
1350
)
&&
(
time_s
<
1500
))
Compensation_Value
=
45
;
else
if
((
time_s
>=
1500
)
&&
(
time_s
<
1800
))
Compensation_Value
=
50
;
else
if
(
time_s
>=
1800
)
Compensation_Value
=
55
;
return
Compensation_Value
;
}
static
u8
Save_Data
(
u8
index
,
u32
*
write_data
)
{
u8
temp
=
0
;
if
(
index
==
0
)
{
u8
temp
=
0
;
if
(
index
==
0
)
{
*
write_data
=
0
;
if
(
Oled_Display_Info
.
aging_test_flag
!=
1
)
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
aging_test_flag
)
<<
8
;
//保存老化标志位
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
binding_device
)
<<
8
;
//保存绑定信息
if
(
Oled_Display_Info
.
Air_Device
.
correct_temperature
<
0
)
//保存温度校准值
{
temp
=
256
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
*
write_data
=
(
*
write_data
|
temp
)
;
}
else
{
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
correct_temperature
);
}
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
1
)
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
screen_save_time
)
<<
8
;
//保存屏保时间
temp
=
(
u8
)(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
>>
8
);
*
write_data
=
(
*
write_data
|
temp
)
<<
8
;
//保存滤网时间高字节
temp
=
(
u8
)(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
&
0xff
);
*
write_data
=
(
*
write_data
|
temp
)
;
//保存滤网时间低字节
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
*
write_data
=
0
;
if
(
Oled_Display_Info
.
aging_test_flag
!=
1
)
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
aging_test_flag
)
<<
8
;
//保存老化标志位
}
else
if
(
index
==
2
)
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
binding_device
)
<<
8
;
//保存绑定信息
if
(
Oled_Display_Info
.
Air_Device
.
correct_temperature
<
0
)
//保存温度校准值
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
lock_flage
)
<<
8
;
//保存童锁
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
)
<<
8
;
//保存勿扰模式
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
operation_mode
);
//风机盘管模式
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
temp
=
256
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
*
write_data
=
(
*
write_data
|
temp
)
;
}
else
if
(
index
==
3
)
else
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
is_dispaly_cur_temp
);
//保存是否显示温度
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
return
1
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
correct_temperature
);
}
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
device_type
==
FLOOR_HEATING
)
else
if
(
index
==
1
)
{
u8
temp
=
0
;
if
(
index
==
0
)
{
*
write_data
=
0
;
if
(
Oled_Display_Info
.
aging_test_flag
!=
1
)
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
aging_test_flag
)
<<
8
;
//保存老化标志位
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
binding_device
)
<<
8
;
//保存绑定信息
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
screen_save_time
)
<<
8
;
//保存屏保时间
temp
=
(
u8
)(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
>>
8
);
*
write_data
=
(
*
write_data
|
temp
)
<<
8
;
//保存滤网时间高字节
temp
=
(
u8
)(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
&
0xff
);
*
write_data
=
(
*
write_data
|
temp
)
;
//保存滤网时间低字节
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
2
)
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
lock_flage
)
<<
8
;
//保存童锁
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
)
<<
8
;
//保存勿扰模式
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
operation_mode
);
//风机盘管模式
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
3
)
{
*
write_data
=
0
;
// if(Oled_Display_Info.aging_test_flag != 1)
// *write_data = (*write_data | Oled_Display_Info.aging_test_flag) << 8; //保存老化标志位
//
// *write_data = (*write_data | Oled_Display_Info.binding_device) << 8; //保存绑定信息
if
(
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
<
0
)
//保存温度校准值
{
temp
=
256
+
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
;
*
write_data
=
(
*
write_data
|
temp
);
}
else
{
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
)
;
}
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
1
)
if
(
Oled_Display_Info
.
Air_Device
.
correct_temperature
<
0
)
//保存温度校准值
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
)
<<
8
;
//保存童锁
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FLOOR_Device
.
screen_save_time
)
<<
8
;
//保存屏保时间
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
);
//保存勿扰模式
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
temp
=
256
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
*
write_data
=
(
*
write_data
|
temp
)
;
}
else
if
(
index
==
2
)
else
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
is_dispaly_cur_temp
);
//保存是否显示温度
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
return
1
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
correct_temperature
);
}
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
device_type
==
FAN
)
else
if
(
index
==
4
)
{
u8
temp
=
0
;
if
(
index
==
0
)
{
*
write_data
=
0
;
if
(
Oled_Display_Info
.
aging_test_flag
!=
1
)
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
aging_test_flag
)
<<
8
;
//保存老化标志位
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
binding_device
)
<<
8
;
//保存绑定信息
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
)
<<
8
;
//保存童锁
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FLOOR_Device
.
screen_save_time
)
<<
8
;
//保存屏保时间
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
);
//保存勿扰模式
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
5
)
{
*
write_data
=
0
;
// if(Oled_Display_Info.aging_test_flag != 1)
// *write_data = (*write_data | Oled_Display_Info.aging_test_flag) << 8; //保存老化标志位
//
// *write_data = (*write_data | Oled_Display_Info.binding_device) << 8; //保存绑定信息
if
(
Oled_Display_Info
.
FAN_Device
.
correct_temperature
<
0
)
//保存温度校准值
{
temp
=
256
+
Oled_Display_Info
.
FAN_Device
.
correct_temperature
;
*
write_data
=
(
*
write_data
|
temp
);
}
else
{
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FAN_Device
.
correct_temperature
);
}
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
1
)
if
(
Oled_Display_Info
.
Air_Device
.
correct_temperature
<
0
)
//保存温度校准值
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FAN_Device
.
screen_save_time
)
<<
8
;
//保存屏保时间
temp
=
(
u8
)(
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
>>
8
);
*
write_data
=
(
*
write_data
|
temp
)
<<
8
;
//保存滤网时间高字节
temp
=
(
u8
)(
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
&
0xff
);
*
write_data
=
(
*
write_data
|
temp
);
//保存滤网时间低字节
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
temp
=
256
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
*
write_data
=
(
*
write_data
|
temp
)
;
}
else
if
(
index
==
2
)
else
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FAN_Device
.
lock_flage
<<
8
);
//保存童锁
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
)
<<
8
;
//保存勿扰模式
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
is_dispaly_cur_temp
);
//保存是否显示温度
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
return
1
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
Air_Device
.
correct_temperature
);
}
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
6
)
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FAN_Device
.
screen_save_time
)
<<
8
;
//保存屏保时间
temp
=
(
u8
)(
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
>>
8
);
*
write_data
=
(
*
write_data
|
temp
)
<<
8
;
//保存滤网时间高字节
temp
=
(
u8
)(
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
&
0xff
);
*
write_data
=
(
*
write_data
|
temp
);
//保存滤网时间低字节
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
}
else
if
(
index
==
7
)
{
*
write_data
=
0
;
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FAN_Device
.
lock_flage
<<
8
);
//保存童锁
*
write_data
=
(
*
write_data
|
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
)
<<
8
;
//保存勿扰模式
*
write_data
=
*
write_data
|
SAVE_FLAGE
;
return
1
;
}
return
0
;
}
static
void
Load_Data
(
u8
device_type
,
u8
index
,
u32
load_data
)
static
void
Load_Data
(
u8
index
,
u32
load_data
)
{
if
(
device_type
==
AIR_CONDITION
)
u8
temp
=
0
;
if
(
index
==
0
)
{
u8
temp
=
0
;
if
(
index
==
0
)
temp
=
load_data
&
0xff
;
if
((
temp
&
0X80
)
==
0X80
)
//负数
{
temp
=
load_data
&
0xff
;
if
((
temp
&
0X80
)
==
0X80
)
//负数
{
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
temp
;
}
Oled_Display_Info
.
binding_device
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
aging_test_flag
=
(
load_data
>>
16
)
&
0xff
;
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
(
index
==
1
)
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
Oled_Display_Info
.
Air_Device
.
filter_wash_time
=
(
u16
)
load_data
;
Oled_Display_Info
.
Air_Device
.
screen_save_time
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
index
==
2
)
{
Oled_Display_Info
.
Air_Device
.
operation_mode
=
load_data
&
0xff
;
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
Air_Device
.
lock_flage
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
index
==
3
)
{
Oled_Display_Info
.
is_dispaly_cur_temp
=
load_data
&
0xff
;
}
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
temp
;
}
Oled_Display_Info
.
binding_device
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
aging_test_flag
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
index
==
1
)
{
Oled_Display_Info
.
Air_Device
.
filter_wash_time
=
(
u16
)
load_data
;
Oled_Display_Info
.
Air_Device
.
screen_save_time
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
index
==
2
)
{
Oled_Display_Info
.
Air_Device
.
operation_mode
=
load_data
&
0xff
;
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
Air_Device
.
lock_flage
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
device_type
==
FLOOR_HEATING
)
else
if
(
index
==
3
)
{
u8
temp
=
0
;
if
(
index
==
0
)
temp
=
load_data
&
0xff
;
if
((
temp
&
0X80
)
==
0X80
)
//负数
{
temp
=
load_data
&
0xff
;
if
((
temp
&
0X80
)
==
0X80
)
//负数
{
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
temp
;
}
Oled_Display_Info
.
binding_device
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
aging_test_flag
=
(
load_data
>>
16
)
&
0xff
;
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
(
index
==
1
)
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
=
load_data
&
0xff
;
Oled_Display_Info
.
FLOOR_Device
.
screen_save_time
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
temp
;
}
// Oled_Display_Info.binding_device = (load_data>>8)&0xff;
//
// Oled_Display_Info.aging_test_flag = (load_data>>16)&0xff;
}
else
if
(
index
==
4
)
{
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
=
load_data
&
0xff
;
Oled_Display_Info
.
FLOOR_Device
.
screen_save_time
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
index
==
2
)
{
Oled_Display_Info
.
is_dispaly_cur_temp
=
load_data
&
0xff
;
}
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
device_type
==
FAN
)
else
if
(
index
==
5
)
{
u8
temp
=
0
;
if
(
index
==
0
)
{
temp
=
load_data
&
0xff
;
if
((
temp
&
0X80
)
==
0X80
)
//负数
{
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
temp
;
}
Oled_Display_Info
.
binding_device
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
aging_test_flag
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
index
==
1
)
temp
=
load_data
&
0xff
;
if
((
temp
&
0X80
)
==
0X80
)
//负数
{
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
=
(
u16
)
load_data
;
Oled_Display_Info
.
FAN_Device
.
screen_save_time
=
(
load_data
>>
16
)
&
0xff
;
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
(
index
==
2
)
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
Oled_Display_Info
.
is_dispaly_cur_temp
=
load_data
&
0xff
;
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
(
load_data
>>
16
)
&
0xff
;
}
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
temp
;
}
// Oled_Display_Info.binding_device = (load_data>>8)&0xff;
//
// Oled_Display_Info.aging_test_flag = (load_data>>16)&0xff;
}
else
if
(
index
==
6
)
{
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
=
(
u16
)
load_data
;
Oled_Display_Info
.
FAN_Device
.
screen_save_time
=
(
load_data
>>
16
)
&
0xff
;
}
else
if
(
index
==
7
)
{
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
=
(
load_data
>>
8
)
&
0xff
;
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
(
load_data
>>
16
)
&
0xff
;
}
}
...
...
@@ -643,7 +509,7 @@ static void Load_Data(u8 device_type,u8 index,u32 load_data)
if
(
save_flage
==
NO_FMC_WRITE
)
//未写数据
{
save_flage
=
0
;
if
(
!
Save_Data
(
Oled_Display_Info
.
device_type
,
i
,
&
save_flage
))
if
(
!
Save_Data
(
i
,
&
save_flage
))
FMC_Write
(
flash_addr
,
save_flage
);
else
{
...
...
@@ -688,8 +554,7 @@ void recover_current_state(void)
{
if
((
save_flage
&
0xFF000000
)
==
SAVE_FLAGE
)
{
Load_Data
(
Oled_Display_Info
.
device_type
,
i
,
save_flage
);
//printf("##recover_current_state,index = %d,read data = 0x%4x\r\n",i,save_flage);
Load_Data
(
i
,
save_flage
);
}
else
break
;
...
...
@@ -775,12 +640,12 @@ static void Spake_Control(void)
{
if
(
Spake_Count
==
1
)
{
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
000
,
7
0
);
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
300
,
8
0
);
//printf("##111spake_control_loop i = %d,ON\n",i);
}
if
(
Spake_Count
==
Spake_Continue_Time_ms
)
{
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
0
00
,
0
);
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
3
00
,
0
);
Spake_Count
=
0
;
Spake_Flag
=
0
;
}
...
...
@@ -788,11 +653,11 @@ static void Spake_Control(void)
else
{
if
((
Spake_Count
==
1
)
||
(
Spake_Count
==
(
Spake_Continue_Time_ms
+
Spake_Interval_Time_ms
)
))
{
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
000
,
7
0
);
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
300
,
8
0
);
}
if
((
Spake_Count
==
(
2
*
Spake_Continue_Time_ms
+
Spake_Interval_Time_ms
)
)
||
(
Spake_Count
==
Spake_Continue_Time_ms
)
)
{
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
0
00
,
0
);
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
3
00
,
0
);
if
(
Spake_Count
==
2
*
Spake_Continue_Time_ms
+
Spake_Interval_Time_ms
)
{
Spake_Count
=
0
;
...
...
@@ -857,6 +722,13 @@ u8 Is_Fan_Speed_Display(void)
{
return
(
task_comps
[
5
].
task_switch
==
SWITCH_ON
);
}
static
void
Recovery_Filter_Time_Error
(
void
)
{
if
(
Oled_Display_Info
.
Air_Device
.
filter_wash_time
==
0
)
Oled_Display_Info
.
Air_Device
.
error
=
3
;
else
if
(
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
==
0
)
Oled_Display_Info
.
FAN_Device
.
error
=
3
;
}
/**************************************************************************************************/
/*上电延时回调处理
**************************************************************************************************/
...
...
@@ -879,8 +751,12 @@ void setup_handler(void)
//未老化完成,则进入老化阶段
if
(
Oled_Display_Info
.
aging_test_flag
==
0
)
aging_test_start
();
//判断是否处于滤网清洗时间为0,如果是则打开故障显示
Recovery_Filter_Time_Error
();
//上电显示
Reload_Save_Time
();
Detect_Human_Dispaly
();
}
else
if
(
count
==
1
){
...
...
@@ -913,70 +789,31 @@ void setup_handler(void)
**************************************************************************************************/
void
delay_operate_calibrate_temper_Task_Start
(
void
)
{
task_comps
[
7
].
timer
=
task_comps
[
7
].
interval_time
;
task_comps
[
7
].
task_switch
=
SWITCH_ON
;
}
void
delay_operate_calibrate_temper_Task_Stop
(
void
)
{
task_comps
[
7
].
task_switch
=
SWITCH_OFF
;
}
void
delay_operate_calibrate_temper
(
void
)
{
delay_operate_calibrate_temper_Task_Stop
();
if
(
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_calibrate_temper
)
{
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_calibrate_temper
=
0
;
PowerOff
();
}
}
/**************************************************************************************************/
/*操作温度校准延时回调处理
**************************************************************************************************/
void
delay_operate_delay_off_Task_Start
(
void
)
{
task_comps
[
17
].
timer
=
task_comps
[
17
].
interval_time
;
task_comps
[
17
].
task_switch
=
SWITCH_ON
;
}
void
delay_operate_delay_off_Task_Stop
(
void
)
{
task_comps
[
17
].
task_switch
=
SWITCH_OFF
;
}
void
delay_operate_delay_off
(
void
)
{
delay_operate_delay_off_Task_Stop
();
if
(
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_delay_off_status
)
{
sKey_Operation
[
Oled_Display_Info
.
screen_page
-
1
].
operate_delay_off_status
=
0
;
//超时,关闭
Delay_OFF_Rel_Display
(
0
,
0
,
0
,
0
,
0
,
0
);
Oled_Display_whole
();
}
}
/**************************************************************************************************/
/*操作温度校准确定后,延时2s关机处理
**************************************************************************************************/
void
operate_calibrate_temper_delay_2s_off_Task_Start
(
void
)
{
task_comps
[
8
].
task_switch
=
SWITCH_ON
;
}
void
operate_calibrate_temper_delay_2s_off_Task_Stop
(
void
)
{
task_comps
[
8
].
task_switch
=
SWITCH_OFF
;
}
u8
is_operate_calibrate_temper_delay_2s_off_Task_start
(
void
)
{
return
(
task_comps
[
8
].
task_switch
==
SWITCH_ON
)
;
return
0
;
}
void
operate_calibrate_temper_delay_2s_off
(
void
)
{
u8
i
=
0
;
operate_calibrate_temper_delay_2s_off_Task_Stop
();
for
(
i
=
0
;
i
<
3
;
i
++
)
{
if
(
sKey_Operation
[
i
].
operate_calibrate_temper
)
sKey_Operation
[
i
].
operate_calibrate_temper
=
0
;
}
PowerOff
();
}
/**************************************************************************************************/
/*中宏协议数据重传
...
...
@@ -1185,7 +1022,6 @@ struct task_components_t task_comps[] =
#else
{
16
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_3
,
Sec_3
,
Tap_Status_Scan
},
//阀门实时动态开关
#endif
{
17
,
SWITCH_OFF
,
RUN_FLAG_0
,
SET_FLAG_0
,
Sec_15
,
Sec_15
,
delay_operate_delay_off
},
//15s操作延时关机
};
u8
task_num
=
sizeof
(
task_comps
)
/
sizeof
(
task_comps
[
0
]);
...
...
@@ -1421,13 +1257,7 @@ void Display_Status(void)
if
((
Oled_Display_Info
.
screen_page
==
(
i
+
1
))
&&
(
Get_Display_Status
()))
{
if
(
IsPowerOffFlashing
())
{
Delay_Power_Off_Control
(
FLASHING
,
15000
,
500
,
dispaly_data
);
sKey_Operation
[
i
].
record_adjust_delay_off
=
dispaly_data
;
}
else
Display_poweroff_time
(
dispaly_data
);
Display_poweroff_time
(
dispaly_data
);
}
if
(
(
Oled_Display_Info
.
Air_Device
.
power_off_time
<=
0
)
&&
(
i
==
0
)
)
{
...
...
@@ -1468,18 +1298,12 @@ void Display_Status(void)
sKey_Operation
[
i
].
filter_calc
.
operate_delay_off_display_flag
=
0
;
if
(
i
==
0
)
{
if
(
Get_Display_Status
())
{
Display_Up_Contend
(
AIR_CONDITION
);
}
Display_Middle_Contend
(
AIR_CONDITION
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
else
if
(
i
==
2
)
{
if
(
Get_Display_Status
())
{
Display_Up_Contend
(
FAN
);
}
Display_Middle_Contend
(
FAN
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
}
...
...
@@ -1580,6 +1404,8 @@ void TMR0_IRQHandler(void)
if
(
GetNetScanTime
())
SetNetScanTime
(
GetNetScanTime
()
-
1
);
//zigbee 图标闪烁控制
transparent_time_manage
(
1
);
Delay_Report_Time_Decrease_Count
(
1
);
if
(
guDelay_ms
)
guDelay_ms
--
;
...
...
@@ -1611,8 +1437,8 @@ void zero_check_init(void)
wind_open_time
=
166
;
//6ms
wind_close_time
=
166
;
//6ms
temp_open_time
=
33
0
;
temp_close_time
=
5
00
;
temp_open_time
=
25
0
;
temp_close_time
=
2
00
;
#endif
}
/*********************************************************************
...
...
@@ -1768,7 +1594,7 @@ void Update_Dev_Info(u8 channel_id)
u8
i
=
0
;
if
(
channel_id
==
1
)
{
Device_status
[
i
++
]
=
19
;
//长度
Device_status
[
i
++
]
=
20
;
//长度
Device_status
[
i
++
]
=
Oled_Display_Info
.
Air_Device
.
error
;
//错误码
Device_status
[
i
++
]
=
Oled_Display_Info
.
Air_Device
.
on_off
;
//开关状态
...
...
@@ -1800,6 +1626,7 @@ void Update_Dev_Info(u8 channel_id)
Device_status
[
i
++
]
=
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
;
//勿扰模式
Device_status
[
i
++
]
=
Oled_Display_Info
.
Air_Device
.
air_product_id
;
//空调品牌
Device_status
[
i
++
]
=
Oled_Display_Info
.
Air_Device
.
air_type
;
//空调类型
Device_status
[
i
++
]
=
Oled_Display_Info
.
Air_Device
.
operation_mode
;
//空调模式(风机盘管运行模式,冷热分管,共管一类的)
}
else
if
(
channel_id
==
2
)
{
...
...
@@ -1965,6 +1792,7 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
Oled_Display_Info
.
binding_device
|=
(
bind_ep
<<
2
);
}
}
display_current_page
();
arg_data
[
0
]
=
0
;
}
else
{
//解绑
...
...
@@ -1992,8 +1820,9 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
{
Oled_Display_Info
.
screen_page
=
Oled_Display_Info
.
device_type
;
//显示所有的界面
display_current_page
();
BL55072A_Clear
();
}
display_current_page
();
arg_data
[
0
]
=
0
;
}
save_data
();
...
...
@@ -2037,7 +1866,7 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
//清除本地绑定信息
if
(
recv_data
.
ARG
[
0
]
==
0
)
{
if
(
Oled_Display_Info
.
binding_device
!=
0
)
if
(
Oled_Display_Info
.
screen_page
!=
Oled_Display_Info
.
device_type
)
{
Oled_Display_Info
.
binding_device
=
0
;
//清除绑定信息
...
...
@@ -2067,7 +1896,7 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
{
BL55072A_Clear
();
LCD_CONTROL
(
0
);
Operate_Led_Button
(
Oled_Display_Info
.
device_type
,
0
);
Operate_Led_Button
(
Oled_Display_Info
.
device_type
,
4
);
Oled_Display_Info
.
recv_lcd_off
=
5
;
}
memset
(
arg_data
,
0
,
sizeof
(
arg_data
));
...
...
@@ -2260,7 +2089,50 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
}
}
}
/**********************************************************************************/
/* 延时上报相关功能函数 */
/**********************************************************************************/
#define DELAY_REPORT_TIME_MS 1000
typedef
struct
{
u16
delay_ms_time
[
3
];
u8
start_delay_report_flag
[
3
];
u8
start_report_flag
[
3
];
}
DELAY_REPORT_ST
;
DELAY_REPORT_ST
sDelay_Report
=
{
0
};
void
Start_Delay_Report_Event
(
u8
channel
)
{
sDelay_Report
.
delay_ms_time
[
channel
-
1
]
=
DELAY_REPORT_TIME_MS
;
sDelay_Report
.
start_delay_report_flag
[
channel
-
1
]
=
1
;
}
void
Delay_Report_Time_Decrease_Count
(
u8
time
)
{
u8
i
=
0
;
for
(
i
=
0
;
i
<
3
;
i
++
)
{
if
(
sDelay_Report
.
start_delay_report_flag
[
i
])
{
sDelay_Report
.
delay_ms_time
[
i
]
--
;
if
(
sDelay_Report
.
delay_ms_time
[
i
]
==
0
)
{
sDelay_Report
.
start_report_flag
[
i
]
=
1
;
sDelay_Report
.
start_delay_report_flag
[
i
]
=
0
;
}
}
}
}
void
Delay_Report_Status
(
void
)
{
u8
i
=
0
;
for
(
i
=
0
;
i
<
3
;
i
++
)
{
if
(
sDelay_Report
.
start_report_flag
[
i
])
{
sDelay_Report
.
start_report_flag
[
i
]
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
i
+
1
);
}
}
}
/////***********************************************************************
////* 函 数 名: not_transparent_data_analyze
////* 功能说明: 非透传数据解析
...
...
@@ -2395,23 +2267,6 @@ static void network_state_machine(TP_uc8 recv_network_state)
break
;
}
}
u8
Get_Channel_Id
(
u8
device_type
)
{
u8
channel_id
=
0
;
switch
(
device_type
)
{
case
AIR_CONDITION
:
channel_id
=
1
;
break
;
case
FLOOR_HEATING
:
channel_id
=
2
;
break
;
case
FAN
:
channel_id
=
3
;
break
;
}
return
channel_id
;
}
void
Print_Buff
(
u8
*
data
,
u8
len
)
{
u8
i
=
0
;
...
...
Code/海顿-多合一新风面板/APP/User/src/display_common.c
View file @
3169de12
...
...
@@ -7,11 +7,11 @@
extern
Lcd_Status_Info_t
LCDShowTemp_state_t
;
#if DEVICE_TYPE_AIR_CONDITION
OLED_ALL_DSD
Oled_Display_Info
=
{
1
,
0
,
1
,
0
,
0
,
0x
11
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
OLED_ALL_DSD
Oled_Display_Info
=
{
1
,
0
,
1
,
0
,
0
,
0x
20
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
0
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
0
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
0
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
#elif DEVICE_TYPE_FLOOR_HEATING
OLED_ALL_DSD
Oled_Display_Info
=
{
2
,
0
,
2
,
0
,
0
,
0x11
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
OLED_ALL_DSD
Oled_Display_Info
=
{
2
,
0
,
2
,
0
,
0
,
0x11
,
0
,
0
,
0
,
{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
0
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
0
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
DEV_TYPE
,
0
,
0
,
0
},{
0
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
#elif DEVICE_TYPE_FAN
OLED_ALL_DSD
Oled_Display_Info
=
{
3
,
0
,
3
,
0
,
0
,
0x
15
,
0
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
1
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
1
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
0
,
0
,
0
,
0
},{
1
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
OLED_ALL_DSD
Oled_Display_Info
=
{
3
,
0
,
3
,
0
,
0
,
0x
20
,
0
,
0
,
0
,{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
},{
0
,
0
,
0
,
0
,
260
,
0
,
3
,
0
,
5
,
0
,
2
,
1
,
0
,
0
,
3000
,
0
,
0xff
,
0xff
,
0
},{
0
,
0
,
0
,
0
,
260
,
0
,
2
,
0
,
0
,
0
,
0
,
0
},{
0
,
0
,
0
,
0
,
0
,
2
,
1
,
0
,
0
,
0
,
3000
,
0
}};
#endif
Key_Operation_Status
gKey_Press_Info
=
{
0
};
// .device_type = 1, //AIR_CONDITION
...
...
@@ -22,7 +22,6 @@ Key_Operation_Status gKey_Press_Info = {0};
// .mcu_Version = 0x10;
// .zigbee_Version = 0;
// .binding_device = 0; //0 未绑定 1,绑定空调,2,地暖,3,绑定新风
// .is_dispaly_cur_temp = 0; //是否显示当前温度
// .Air_Device ={
// .onoff = 1,
// .power_off_time = 0,
...
...
@@ -68,36 +67,22 @@ Key_Operation_Status gKey_Press_Info = {0};
// .no_disturb_mode = 0;
// }
//};
NET_INDICATOR
g_NetOptIndicator
[
7
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
}
;
NET_INDICATOR
g_NetOptIndicator
[
8
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
}
;
static
u8
kLedIsBlinking
(
u8
led_id
);
/*************************************************
显示延时关机时间
***************************************************/
void
Display_poweroff_time
(
u8
display_time
)
{
LCDShowTemp_state_t
.
LCD_place
=
DELAY_OFF_TIME_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LCDShowTemp_state_t
.
LCD_code_data
=
display_time
;
LcdShowCTR
(
LCDShowTemp_state_t
);
//显示闹钟
LCDShowTemp_state_t
.
LCD_place
=
SETTING_TIMER_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
//显示设定时长字符图标
LCDShowTemp_state_t
.
LCD_place
=
SETTING_TIMER_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
UPPER_TEMPER_UNIT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
/*************************************************
显示
当前
温度
显示
设置温度
温度
***************************************************/
void
Display_
Curren
t_Temper
(
s16
temper
)
void
Display_
Se
t_Temper
(
s16
temper
)
{
LCDShowTemp_state_t
.
LCD_place
=
DELAY_OFF_TIME_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
...
...
@@ -173,27 +158,27 @@ static void Display_Middle_Digtal(u8 control_bits,s16 data )
***************************************************/
void
display_error
(
u8
error_value
)
{
LCDShowTemp_state_t
.
LCD_place
=
SET_
UPPER
_DIGITRON_DISPLAY_01
;
LCDShowTemp_state_t
.
LCD_place
=
SET_
MIDDLE
_DIGITRON_DISPLAY_01
;
LCDShowTemp_state_t
.
LCD_code_data
=
14
;
//E
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
SET_
UPPER
_DIGITRON_DISPLAY_02
;
LCDShowTemp_state_t
.
LCD_place
=
SET_
MIDDLE
_DIGITRON_DISPLAY_02
;
LCDShowTemp_state_t
.
LCD_code_data
=
17
;
//r
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
SET_
UPPER
_DIGITRON_DISPLAY_03
;
LCDShowTemp_state_t
.
LCD_place
=
SET_
MIDDLE
_DIGITRON_DISPLAY_03
;
LCDShowTemp_state_t
.
LCD_code_data
=
error_value
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
UPPER
_POINT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE
_POINT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_code_data
=
0
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
UPPER
_TEMPER_UNIT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE
_TEMPER_UNIT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_code_data
=
0
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
...
...
@@ -203,37 +188,18 @@ void display_error(u8 error_value)
display_mode 0 代表正常模式;
1 代表风速模式
***************************************************/
void
display_
set_temp
(
u8
display_mode
,
s16
temp_value
,
u8
ararm_f
)
void
display_
real_temper
(
s16
temp_value
)
{
if
(
display_mode
==
0
)
{
Display_Middle_Digtal
(
0x07
,
temp_value
);
}
else
{
Display_Middle_Digtal
(
0x02
,
temp_value
);
}
if
(
ararm_f
)
{
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_POINT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_TEMPER_UNIT_DISPLAY
;
//温度单位
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
Display_Middle_Digtal
(
0x07
,
temp_value
);
}
else
{
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_POINT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_POINT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_TEMPER_UNIT_DISPLAY
;
//温度单位
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_TEMPER_UNIT_DISPLAY
;
//温度单位
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
/*************************************************
...
...
@@ -446,40 +412,204 @@ static void LED_ONOFF(u8 id,u8 onoff)
}
}
u8
Get_LED_OnOff_Status
(
u8
id
)
{
if
(
id
==
1
)
return
LED1
;
else
if
(
id
==
2
)
return
LED2
;
else
if
(
id
==
3
)
return
LED3
;
else
if
(
id
==
4
)
return
LED4
;
else
if
(
id
==
5
)
return
LED5
;
else
if
(
id
==
6
)
return
LED6
;
return
0xff
;
}
void
Control_LED_ON_OFF
(
u8
onoff_bits
)
{
((
onoff_bits
&
0x01
)
?
(
LED1
=
1
)
:
(
LED1
=
0
));
(((
onoff_bits
>>
1
)
&
0x01
)
?
(
LED2
=
1
)
:
(
LED2
=
0
));
(((
onoff_bits
>>
2
)
&
0x01
)
?
(
LED3
=
1
)
:
(
LED3
=
0
));
(((
onoff_bits
>>
3
)
&
0x01
)
?
(
LED4
=
1
)
:
(
LED4
=
0
));
(((
onoff_bits
>>
4
)
&
0x01
)
?
(
LED5
=
1
)
:
(
LED5
=
0
));
(((
onoff_bits
>>
5
)
&
0x01
)
?
(
LED6
=
1
)
:
(
LED6
=
0
));
if
(
kLedIsBlinking
(
1
)
==
0
)
((
onoff_bits
&
0x01
)
?
(
LED1
=
1
)
:
(
LED1
=
0
));
if
(
kLedIsBlinking
(
2
)
==
0
)
(((
onoff_bits
>>
1
)
&
0x01
)
?
(
LED2
=
1
)
:
(
LED2
=
0
));
if
(
kLedIsBlinking
(
3
)
==
0
)
(((
onoff_bits
>>
2
)
&
0x01
)
?
(
LED3
=
1
)
:
(
LED3
=
0
));
if
(
kLedIsBlinking
(
4
)
==
0
)
(((
onoff_bits
>>
3
)
&
0x01
)
?
(
LED4
=
1
)
:
(
LED4
=
0
));
if
(
kLedIsBlinking
(
5
)
==
0
)
(((
onoff_bits
>>
4
)
&
0x01
)
?
(
LED5
=
1
)
:
(
LED5
=
0
));
if
(
kLedIsBlinking
(
6
)
==
0
)
(((
onoff_bits
>>
5
)
&
0x01
)
?
(
LED6
=
1
)
:
(
LED6
=
0
));
}
void
Operate_Led_Button
(
u8
device_type
,
u8
on_off
)
/*
*para Type
1 童锁打开
2 正常显示
3 关
4 全关
*/
void
Operate_Led_Button
(
u8
device_type
,
u8
Type
)
{
if
(
device_type
==
FLOOR_HEATING
)
{
if
(
on_off
)
if
((
Type
==
1
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
))
Control_LED_ON_OFF
(
0x04
);
else
if
(
Type
==
2
)
{
if
(
Oled_Display_Info
.
aging_test_flag
==
2
)
Control_LED_ON_OFF
(
0x3D
);
if
(
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
)
Control_LED_ON_OFF
(
0x04
);
else
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
Control_LED_ON_OFF
(
0x3F
);
else
Control_LED_ON_OFF
(
0x35
);
}
else
if
(
Type
==
3
)
{
if
(
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
)
Control_LED_ON_OFF
(
0x04
);
else
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
Control_LED_ON_OFF
(
0x3F
);
else
Control_LED_ON_OFF
(
0x01
);
}
else
else
if
(
Type
==
4
)
Control_LED_ON_OFF
(
0x00
);
}
else
{
if
(
on_off
)
else
if
(
device_type
==
AIR_CONDITION
){
if
((
Type
==
1
)
&&
(
Oled_Display_Info
.
Air_Device
.
lock_flage
))
Control_LED_ON_OFF
(
0x04
);
else
if
(
Type
==
2
)
{
Control_LED_ON_OFF
(
0x3F
);
if
(
Oled_Display_Info
.
Air_Device
.
lock_flage
)
Control_LED_ON_OFF
(
0x04
);
else
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
Control_LED_ON_OFF
(
0x3F
);
else
Control_LED_ON_OFF
(
0x37
);
}
else
else
if
(
Type
==
3
)
{
if
(
Oled_Display_Info
.
Air_Device
.
lock_flage
)
Control_LED_ON_OFF
(
0x04
);
else
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
Control_LED_ON_OFF
(
0x3F
);
else
Control_LED_ON_OFF
(
0x01
);
}
else
if
(
Type
==
4
)
Control_LED_ON_OFF
(
0x00
);
}
else
if
(
device_type
==
FAN
){
if
((
Type
==
1
)
&&
(
Oled_Display_Info
.
FAN_Device
.
lock_flage
))
Control_LED_ON_OFF
(
0x04
);
else
if
(
Type
==
2
)
{
if
(
Oled_Display_Info
.
FAN_Device
.
lock_flage
)
Control_LED_ON_OFF
(
0x04
);
else
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
Control_LED_ON_OFF
(
0x3F
);
else
Control_LED_ON_OFF
(
0x07
);
}
else
if
(
Type
==
3
)
{
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
Control_LED_ON_OFF
(
0x3F
);
else
if
(
Oled_Display_Info
.
FAN_Device
.
lock_flage
)
Control_LED_ON_OFF
(
0x04
);
else
Control_LED_ON_OFF
(
0x01
);
}
else
if
(
Type
==
4
)
Control_LED_ON_OFF
(
0x00
);
}
//打开功能解锁键
if
((
Oled_Display_Info
.
binding_device
!=
0
)
&&
(
Type
!=
4
)
&&
(
!
kLedIsBlinking
(
4
)))
LED4
=
1
;
}
void
Auto_Led_Display
(
u8
screen_page
)
{
if
(
IsLocalConfigMode
())
return
;
switch
(
screen_page
)
{
case
1
:
{
if
((
Oled_Display_Info
.
Air_Device
.
lock_flage
))
{
if
(
Oled_Display_Info
.
binding_device
==
0
)
Control_LED_ON_OFF
(
0x04
);
else
Control_LED_ON_OFF
(
0x0C
);
return
;
}
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
{
Control_LED_ON_OFF
(
0x3F
);
return
;
}
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
{
Control_LED_ON_OFF
(
0x37
);
}
else
Control_LED_ON_OFF
(
0x01
);
break
;
}
case
2
:
{
if
((
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
))
{
if
(
Oled_Display_Info
.
binding_device
==
0
)
Control_LED_ON_OFF
(
0x04
);
else
Control_LED_ON_OFF
(
0x0C
);
return
;
}
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
{
Control_LED_ON_OFF
(
0x3F
);
return
;
}
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
{
Control_LED_ON_OFF
(
0x35
);
}
else
Control_LED_ON_OFF
(
0x01
);
break
;
}
case
3
:
{
if
((
Oled_Display_Info
.
FAN_Device
.
lock_flage
))
{
if
(
Oled_Display_Info
.
binding_device
==
0
)
Control_LED_ON_OFF
(
0x04
);
else
Control_LED_ON_OFF
(
0x0C
);
return
;
}
if
(
Oled_Display_Info
.
aging_test_flag
!=
2
)
{
Control_LED_ON_OFF
(
0x3F
);
return
;
}
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
{
Control_LED_ON_OFF
(
0x07
);
}
else
Control_LED_ON_OFF
(
0x01
);
}
break
;
}
//打开功能解锁键
if
(
Oled_Display_Info
.
binding_device
!=
0
)
LED4
=
1
;
}
static
void
Device_Type_Display
(
u8
air
,
u8
floor
,
u8
fan
)
{
LCDShowTemp_state_t
.
LCD_place
=
DEVICE_TYPE_AIRCONDITION_CHAR_DISPLAY
;
//“空调”字样显示
...
...
@@ -499,23 +629,13 @@ static void Device_Type_Display(u8 air,u8 floor,u8 fan)
*********************************************/
void
Display_Up_Contend
(
u8
device_type
)
{
if
(
IsPowerOffFlashing
())
return
;
if
(
device_type
==
AIR_CONDITION
)
{
//显示错误码,优先级低于延时关机,高于当前温度
if
(
Oled_Display_Info
.
Air_Device
.
power_off_time
>
0
)
{
Display_poweroff_time
(
Oled_Display_Info
.
Air_Device
.
power_off_time
);
}
else
if
((
Oled_Display_Info
.
Air_Device
.
error
)
&&
(
Oled_Display_Info
.
Air_Device
.
power_off_time
==
0
))
{
display_error
(
Oled_Display_Info
.
Air_Device
.
error
);
}
else
if
(
Oled_Display_Info
.
is_dispaly_cur_temp
)
{
Display_Current_Temper
(
Oled_Display_Info
.
Air_Device
.
real_temperature
);
}
Display_Set_Temper
(
Oled_Display_Info
.
Air_Device
.
set_temperature
);
}
else
if
(
device_type
==
FLOOR_HEATING
)
{
...
...
@@ -523,28 +643,43 @@ void Display_Up_Contend(u8 device_type)
{
Display_poweroff_time
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
);
}
else
if
((
Oled_Display_Info
.
FLOOR_Device
.
error
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
==
0
))
{
display_error
(
Oled_Display_Info
.
FLOOR_Device
.
error
);
}
else
if
(
Oled_Display_Info
.
is_dispaly_cur_temp
)
{
Display_Current_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
);
}
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
}
else
if
(
device_type
==
FAN
)
{
if
(
Oled_Display_Info
.
FAN_Device
.
power_off_time
>
0
)
{
Display_poweroff_time
(
Oled_Display_Info
.
FAN_Device
.
power_off_time
);
Display_poweroff_time
(
Oled_Display_Info
.
FAN_Device
.
power_off_time
);
}
else
if
((
Oled_Display_Info
.
FAN_Device
.
error
)
&&
(
Oled_Display_Info
.
FAN_Device
.
power_off_time
==
0
))
{
display_error
(
Oled_Display_Info
.
FAN_Device
.
error
);
}
}
void
Display_Middle_Contend
(
u8
device_type
)
{
if
(
device_type
==
AIR_CONDITION
)
{
if
(
Oled_Display_Info
.
Air_Device
.
error
){
display_error
(
Oled_Display_Info
.
Air_Device
.
error
);
}
else
if
(
Oled_Display_Info
.
is_dispaly_cur_temp
)
{
Display_Current_Temper
(
Oled_Display_Info
.
FAN_Device
.
real_temperature
);
else
{
display_real_temper
(
Oled_Display_Info
.
Air_Device
.
real_temperature
);
}
}
else
if
(
device_type
==
FLOOR_HEATING
)
{
if
(
Oled_Display_Info
.
FLOOR_Device
.
error
){
display_error
(
Oled_Display_Info
.
FLOOR_Device
.
error
);
}
else
{
display_real_temper
(
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
);
}
}
else
if
(
device_type
==
FAN
)
{
if
(
Oled_Display_Info
.
FAN_Device
.
error
){
display_error
(
Oled_Display_Info
.
FAN_Device
.
error
);
}
else
{
display_real_temper
(
Oled_Display_Info
.
FAN_Device
.
real_temperature
);
}
}
}
...
...
@@ -553,7 +688,7 @@ void Fan_Oled_Display()
if
((
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
==
1
)
&&
(
IsLcdEnterScreenSave
()))
return
;
LCD_CONTROL
(
1
);
LCD_CONTROL
(
1
);
/********************************************
显示“新风”字样
*********************************************/
...
...
@@ -564,24 +699,32 @@ void Fan_Oled_Display()
*********************************************/
Displayt_System_Mode
(
Oled_Display_Info
.
FAN_Device
.
system_type
);
//儿童锁图标
/*********************************************/
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
Oled_Display_Info
.
FAN_Device
.
lock_flage
;
LcdShowCTR
(
LCDShowTemp_state_t
);
/********************************************
显示当前风速
*********************************************/
if
(
!
IsLcdEnterScreenSave
())
display_set_temp
(
1
,
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
1
);
else
display_set_temp
(
0
,
Oled_Display_Info
.
FAN_Device
.
real_temperature
,
0
);
//显示当前温度
/********************************************
显示延时关机、错误码、当前温度字符
显示当前温度
*********************************************/
Display_Middle_Contend
(
FAN
);
//儿童锁图标
/*********************************************/
if
(
!
IsLcdEnterScreenSave
())
{
Operate_Led_Button
(
FAN
,
2
);
// 显示可操作的按键
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
Oled_Display_Info
.
FAN_Device
.
lock_flage
;
LcdShowCTR
(
LCDShowTemp_state_t
);
/********************************************
显示延时关机
*********************************************/
Display_Up_Contend
(
FAN
);
/********************************************
显示当前风速
*********************************************/
Fan_speed_and_direct_control
(
1
,
0
);
display_wind_speed
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
0
);
}
/********************************************
ZigBee信号图标
*********************************************/
...
...
@@ -597,34 +740,37 @@ void Floor_Heating_Oled_Display()
if
((
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
==
1
)
&&
(
IsLcdEnterScreenSave
()))
return
;
LCD_CONTROL
(
1
);
LCD_CONTROL
(
1
);
/********************************************
显示“地暖”字样
*********************************************/
Device_Type_Display
(
0
,
1
,
0
);
/********************************************
显示设置温度
*********************************************/
display_set_temp
(
0
,
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
,
0
);
//显示设置温度
显示当前温度
*********************************************/
Display_Middle_Contend
(
FLOOR_HEATING
);
/********************************************
显示工作模式
*********************************************/
Displayt_System_Mode
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
);
//儿童锁图标
/*********************************************/
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
;
LcdShowCTR
(
LCDShowTemp_state_t
);
/********************************************
显示延时关机、错误码、当前温度字符
*********************************************/
if
(
!
IsLcdEnterScreenSave
())
{
Operate_Led_Button
(
FLOOR_HEATING
,
2
);
// 显示可操作的按键
//儿童锁图标
/*********************************************/
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
;
LcdShowCTR
(
LCDShowTemp_state_t
);
/********************************************
显示设置温度 ,延时关机
*********************************************/
Display_Up_Contend
(
FLOOR_HEATING
);
}
/********************************************
ZigBee信号图标
*********************************************/
...
...
@@ -640,34 +786,51 @@ void Air_Oled_Display(void)
if
((
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
==
1
)
&&
(
IsLcdEnterScreenSave
()))
return
;
LCD_CONTROL
(
1
);
//开机
LCD_CONTROL
(
1
);
//开机
/********************************************
显示“空调”字样
*********************************************/
Device_Type_Display
(
1
,
0
,
0
);
//显示设置温度
/********************************************
显示设置温度
*********************************************/
display_set_temp
(
0
,
Oled_Display_Info
.
Air_Device
.
set_temperature
,
0
);
//显示设置温度
显示错误码、当前温度
*********************************************/
Display_Middle_Contend
(
AIR_CONDITION
);
/********************************************
显示工作模式
*********************************************/
Displayt_System_Mode
(
Oled_Display_Info
.
Air_Device
.
system_type
);
/********************************************
儿童锁图标
*********************************************/
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
Oled_Display_Info
.
Air_Device
.
lock_flage
;
LcdShowCTR
(
LCDShowTemp_state_t
);
/********************************************
显示延时关机、错误码、当前温度字符
*********************************************/
if
(
!
IsLcdEnterScreenSave
())
{
Operate_Led_Button
(
AIR_CONDITION
,
2
);
/********************************************
儿童锁图标
*********************************************/
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
Oled_Display_Info
.
Air_Device
.
lock_flage
;
LcdShowCTR
(
LCDShowTemp_state_t
);
/********************************************
显示设置温度 ,延时关机
*********************************************/
Display_Up_Contend
(
AIR_CONDITION
);
/********************************************
显示主从模式
*********************************************/
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
if
(
Oled_Display_Info
.
Air_Device
.
air_master_slavery_mode
)
{
//显示H图标
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
#endif
}
/********************************************
ZigBee信号图标
*********************************************/
...
...
@@ -677,21 +840,7 @@ void Air_Oled_Display(void)
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
/********************************************
显示主从模式
*********************************************/
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
if
(
Oled_Display_Info
.
Air_Device
.
air_master_slavery_mode
)
{
//显示H图标
if
(
!
IsLcdEnterScreenSave
())
{
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
#endif
}
/*************************************************
开机显示选项
...
...
@@ -718,6 +867,8 @@ void PowerOff(void)
BL55072A_Clear
();
if
(
!
IsLcdEnterScreenSave
())
{
Operate_Led_Button
(
Oled_Display_Info
.
screen_page
,
3
);
Device_Type_Display
(
1
,
0
,
0
);
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
...
...
@@ -731,6 +882,8 @@ void PowerOff(void)
BL55072A_Clear
();
if
(
!
IsLcdEnterScreenSave
())
{
Operate_Led_Button
(
Oled_Display_Info
.
screen_page
,
3
);
Device_Type_Display
(
0
,
1
,
0
);
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
...
...
@@ -744,6 +897,8 @@ void PowerOff(void)
BL55072A_Clear
();
if
(
!
IsLcdEnterScreenSave
())
{
Operate_Led_Button
(
Oled_Display_Info
.
screen_page
,
3
);
Device_Type_Display
(
0
,
0
,
1
);
LCDShowTemp_state_t
.
LCD_place
=
CHILD_LOCK_DISPLAY
;
...
...
@@ -850,19 +1005,19 @@ void EnterScreenSaveMode(void)
{
case
AIR_CONDITION
:
{
Operate_Led_Button
(
AIR_CONDITION
,
4
);
// 显示可操作的按键
if
((
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
==
0
))
{
Operate_Led_Button
(
AIR_CONDITION
,
0
);
// 显示可操作的按键
/********************************************
显示“空调”字样
*********************************************/
Device_Type_Display
(
1
,
0
,
0
);
/********************************************
显示
设置
温度
显示
当前
温度
*********************************************/
display_set_temp
(
0
,
Oled_Display_Info
.
Air_Device
.
set_temperature
,
0
);
//显示设置温度
Display_Middle_Contend
(
AIR_CONDITION
);
/********************************************
显示工作模式
...
...
@@ -878,7 +1033,6 @@ void EnterScreenSaveMode(void)
}
else
{
Operation_LED
(
0
);
//全关led
LCD_CONTROL
(
0
);
}
...
...
@@ -886,19 +1040,19 @@ void EnterScreenSaveMode(void)
break
;
case
FLOOR_HEATING
:
{
Operate_Led_Button
(
FLOOR_HEATING
,
4
);
// 显示可操作的按键
if
((
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
==
0
))
{
Operate_Led_Button
(
FLOOR_HEATING
,
0
);
// 显示可操作的按键
/********************************************
显示“地暖”字样
*********************************************/
Device_Type_Display
(
0
,
1
,
0
);
/********************************************
显示
设置
温度
显示
当前
温度
*********************************************/
display_set_temp
(
0
,
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
,
0
);
//显示设置温度
Display_Middle_Contend
(
FLOOR_HEATING
);
/********************************************
显示工作模式
...
...
@@ -914,17 +1068,16 @@ void EnterScreenSaveMode(void)
}
else
{
Operation_LED
(
0
);
//全关led
LCD_CONTROL
(
0
);
}
}
break
;
case
FAN
:
{
Operate_Led_Button
(
FAN
,
4
);
// 显示可操作的按键
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
)
&&
(
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
==
0
))
{
Operate_Led_Button
(
FAN
,
0
);
// 显示可操作的按键
/********************************************
显示“新风”字样
*********************************************/
...
...
@@ -933,7 +1086,7 @@ void EnterScreenSaveMode(void)
/********************************************
显示设置温度
*********************************************/
display_set_temp
(
0
,
Oled_Display_Info
.
FAN_Device
.
real_temperature
,
0
);
//显示当前温度
Display_Middle_Contend
(
FAN
);
/********************************************
显示工作模式
...
...
@@ -949,7 +1102,7 @@ void EnterScreenSaveMode(void)
}
else
{
Operation_LED
(
0
);
//全关led
LCD_CONTROL
(
0
);
}
}
...
...
@@ -966,10 +1119,7 @@ void Detect_Human_Dispaly(void)
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
{
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
{
Operate_Led_Button
(
AIR_CONDITION
,
1
);
// 显示可操作的按键
Oled_Display_whole
();
}
else
{
if
(
sKey_Operation
[
0
].
operate_calibrate_temper
==
0
)
//正在操作温度校准,不显示关机
PowerOff
();
...
...
@@ -977,11 +1127,8 @@ void Detect_Human_Dispaly(void)
}
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
{
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
{
Operate_Led_Button
(
FLOOR_HEATING
,
1
);
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
Oled_Display_whole
();
}
else
{
if
(
sKey_Operation
[
1
].
operate_calibrate_temper
==
0
)
//正在操作温度校准,不显示关机
PowerOff
();
...
...
@@ -990,10 +1137,7 @@ void Detect_Human_Dispaly(void)
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
{
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
{
Operate_Led_Button
(
FAN
,
1
);
Oled_Display_whole
();
}
else
{
if
(
sKey_Operation
[
2
].
operate_calibrate_temper
==
0
)
//正在操作温度校准,不显示关机
PowerOff
();
...
...
@@ -1398,8 +1542,9 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
//通风模式下不可以调节设定温度
if
((
Oled_Display_Info
.
Air_Device
.
on_off
)
&&
(
Oled_Display_Info
.
Air_Device
.
system_type
!=
SYSTEM_MODE_AIR
))
{
display_set_temp
(
0
,
set_temper
,
0
);
Oled_Display_Info
.
Air_Device
.
set_temperature
=
set_temper
;
if
(
!
IsLcdEnterScreenSave
())
Display_Set_Temper
(
set_temper
);
arg
[
0
]
=
0
;
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
...
...
@@ -1419,11 +1564,9 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
(
Oled_Display_Info
.
Air_Device
.
on_off
==
0
)
return
;
Oled_Display_Info
.
Air_Device
.
wind_speed
=
wind_speed
;
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
if
(
Is_Fan_Speed_Display
()
&&
(
!
IsLcdEnterScreenSave
()))
{
if
(
Is_Fan_Speed_Display
())
display_wind_speed
(
Oled_Display_Info
.
Air_Device
.
wind_speed
,
0
);
//显示当前风速
}
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
delay_control_fan_speed_start
();
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
...
...
@@ -1431,14 +1574,6 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
arg
[
0
]
=
0
;
}
break
;
case
OPCODE_GENERAL_ERROR_CODE
:
{
u8
error_code
=
arg
[
0
];
arg
[
1
]
=
error_code
;
Oled_Display_Info
.
Air_Device
.
error
=
error_code
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态更新上报
}
break
;
case
OPCODE_GENERAL_SET_CHILD_LOCK
:
{
u8
child_lock
=
arg
[
0
];
...
...
@@ -1446,7 +1581,16 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
Oled_Display_Info
.
Air_Device
.
lock_flage
=
child_lock
;
if
(
!
IsLcdEnterScreenSave
())
{
if
(
child_lock
)
Operate_Led_Button
(
AIR_CONDITION
,
1
);
// 只显示'M'按键
else
if
(
Oled_Display_Info
.
Air_Device
.
on_off
)
Operate_Led_Button
(
AIR_CONDITION
,
2
);
else
if
(
Oled_Display_Info
.
Air_Device
.
on_off
==
0
)
Operate_Led_Button
(
AIR_CONDITION
,
3
);
display_child_lock
(
child_lock
);
}
save_data
();
//保存token
arg
[
0
]
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态更新上报
...
...
@@ -1479,7 +1623,10 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
}
if
(
delay_off_time
>
0
)
{
Oled_Display_Info
.
Air_Device
.
power_off_flage
=
1
;
Reset_DelayOFF_timer
(
AIR_CONDITION
);
}
else
if
(
Oled_Display_Info
.
Air_Device
.
power_off_flage
==
1
)
Oled_Display_Info
.
Air_Device
.
power_off_flage
=
0
;
...
...
@@ -1520,31 +1667,6 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
Oled_Display_Info
.
Air_Device
.
filter_wash_time
=
filter_wash_time
;
save_data
();
//保存token
arg
[
0
]
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态更新上报
}
break
;
case
OPCODE_GENERAL_CURRENT_REAL_TEMPER
:
//不处理当前的温度
{
// u16 filter_wash_time = arg[0] <<8 | arg[1] ;
// arg[1] = filter_wash_time>>8;
// arg[2] = filter_wash_time&0xff;
//
// Oled_Display_Info.Air_Device.filter_wash_time = filter_wash_time;
// arg[0] = 0;
// printf("filter_wash_time = %d\r\n",Oled_Display_Info.Air_Device.filter_wash_time);
}
break
;
case
OPCODE_GENERAL_SET_TEMPER_CALIBRATION
:
//温度校准
{
s8
calibration_temp
=
arg
[
0
]
;
arg
[
1
]
=
calibration_temp
;
Oled_Display_Info
.
Air_Device
.
real_temperature
=
Oled_Display_Info
.
Air_Device
.
real_temperature
-
Oled_Display_Info
.
Air_Device
.
correct_temperature
+
calibration_temp
;
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
calibration_temp
;
save_data
();
//保存token
arg
[
0
]
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态更新上报
}
...
...
@@ -1592,7 +1714,6 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
0
)
{
Control_OnOff_handler
(
FLOOR_HEATING
,
1
);
//控制阀门关闭
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
}
}
...
...
@@ -1601,9 +1722,7 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
1
)
{
Control_OnOff_handler
(
FLOOR_HEATING
,
0
);
//控制阀门关闭
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
}
}
arg
[
0
]
=
0
;
...
...
@@ -1631,7 +1750,7 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_AUTO
)
{
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
260
;
display_set_temp
(
0
,
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
,
0
);
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
arg
[
0
]
=
0
;
...
...
@@ -1658,7 +1777,8 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
}
if
(
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_MANUAL
)
)
{
display_set_temp
(
0
,
set_temper
,
0
);
if
(
!
IsLcdEnterScreenSave
())
Display_Set_Temper
(
set_temper
);
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
set_temper
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
...
...
@@ -1668,16 +1788,6 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
arg
[
0
]
=
0xff
;
}
break
;
case
OPCODE_GENERAL_ERROR_CODE
:
{
u8
error_code
=
arg
[
0
];
arg
[
1
]
=
error_code
;
arg
[
0
]
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
error
=
error_code
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
}
break
;
case
OPCODE_GENERAL_SET_CHILD_LOCK
:
{
u8
child_lock
=
arg
[
0
];
...
...
@@ -1685,7 +1795,15 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
child_lock
;
if
(
!
IsLcdEnterScreenSave
())
{
if
(
child_lock
)
Operate_Led_Button
(
FLOOR_HEATING
,
1
);
// 只显示'M'按键
else
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
)
Operate_Led_Button
(
FLOOR_HEATING
,
2
);
else
if
(
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
0
)
Operate_Led_Button
(
FLOOR_HEATING
,
3
);
display_child_lock
(
child_lock
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
save_data
();
//保存token
...
...
@@ -1719,7 +1837,10 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
}
if
(
delay_off_time
>
0
)
{
Oled_Display_Info
.
FLOOR_Device
.
power_off_flage
=
1
;
Reset_DelayOFF_timer
(
FLOOR_HEATING
);
}
else
if
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_flage
==
1
)
Oled_Display_Info
.
FLOOR_Device
.
power_off_flage
=
0
;
...
...
@@ -1738,31 +1859,6 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
save_data
();
//保存token
arg
[
0
]
=
0
;
}
break
;
case
OPCODE_GENERAL_CURRENT_REAL_TEMPER
:
//不处理当前的温度
{
// u16 filter_wash_time = arg[0] <<8 | arg[1] ;
// arg[1] = filter_wash_time>>8;
// arg[2] = filter_wash_time&0xff;
//
// Oled_Display_Info.Air_Device.filter_wash_time = filter_wash_time;
// arg[0] = 0;
// printf("filter_wash_time = %d\r\n",Oled_Display_Info.Air_Device.filter_wash_time);
}
break
;
case
OPCODE_GENERAL_SET_TEMPER_CALIBRATION
:
//温度校准
{
s8
calibration_temp
=
arg
[
0
]
;
arg
[
1
]
=
calibration_temp
;
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
=
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
-
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
+
calibration_temp
;
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
calibration_temp
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
save_data
();
//保存token
arg
[
0
]
=
0
;
}
break
;
...
...
@@ -1876,22 +1972,13 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
Fan_Speed_Control
(
wind_speed
);
#endif
if
(
Get_Display_Status
())
display_
set_temp
(
1
,
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
1
);
display_
wind_speed
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
,
0
);
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
arg
[
0
]
=
0
;
}
else
arg
[
0
]
=
0xff
;
arg
[
0
]
=
0
;
}
break
;
case
OPCODE_GENERAL_ERROR_CODE
:
{
u8
error_code
=
arg
[
0
];
arg
[
1
]
=
error_code
;
Oled_Display_Info
.
FAN_Device
.
error
=
error_code
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
}
break
;
case
OPCODE_GENERAL_SET_CHILD_LOCK
:
...
...
@@ -1909,7 +1996,15 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
}
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
child_lock
;
if
(
!
IsLcdEnterScreenSave
())
{
if
(
child_lock
)
Operate_Led_Button
(
FAN
,
1
);
// 只显示'M'按键
else
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
)
Operate_Led_Button
(
FAN
,
2
);
else
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
==
0
)
Operate_Led_Button
(
FAN
,
3
);
display_child_lock
(
child_lock
);
}
save_data
();
//保存token
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
arg
[
0
]
=
0
;
...
...
@@ -1941,7 +2036,10 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
}
if
(
delay_off_time
>
0
)
{
Oled_Display_Info
.
FAN_Device
.
power_off_flage
=
1
;
Reset_DelayOFF_timer
(
FAN
);
}
else
if
(
Oled_Display_Info
.
FAN_Device
.
power_off_flage
==
1
)
Oled_Display_Info
.
FAN_Device
.
power_off_flage
=
0
;
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
...
...
@@ -1971,30 +2069,6 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
save_data
();
//保存token
arg
[
0
]
=
0
;
}
break
;
case
OPCODE_GENERAL_CURRENT_REAL_TEMPER
:
//不处理当前的温度
{
// u16 filter_wash_time = arg[0] <<8 | arg[1] ;
// arg[1] = filter_wash_time>>8;
// arg[2] = filter_wash_time&0xff;
//
// Oled_Display_Info.Air_Device.filter_wash_time = filter_wash_time;
// arg[0] = 0;
}
break
;
case
OPCODE_GENERAL_SET_TEMPER_CALIBRATION
:
//温度校准
{
s8
calibration_temp
=
arg
[
0
]
;
arg
[
1
]
=
calibration_temp
;
Oled_Display_Info
.
FAN_Device
.
real_temperature
=
Oled_Display_Info
.
FAN_Device
.
real_temperature
-
Oled_Display_Info
.
FAN_Device
.
correct_temperature
+
calibration_temp
;
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
calibration_temp
;
save_data
();
//保存token
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
arg
[
0
]
=
0
;
}
break
;
...
...
@@ -2072,12 +2146,13 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
{
return
0
;
}
if
((
local_config_operate
.
enter_config_mode
==
0
)
&&
(
keyid
==
4
)
&&
(
keyEvent
==
0xb0
))
if
((
local_config_operate
.
enter_config_mode
==
0
)
&&
(
keyid
==
3
)
&&
(
keyEvent
==
0xb0
))
{
//进入配置模式
local_config_operate
.
enter_config_mode
=
1
;
local_config_operate
.
config_page
=
1
;
local_config_operate
.
config_page1_func_value
=
local_config_operate
.
support_function_list
[
index
];
Control_LED_ON_OFF
(
0x35
);
}
if
(
local_config_operate
.
enter_config_mode
==
0
)
{
...
...
@@ -2102,11 +2177,12 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
}
break
;
#endif
case
LOCAL_FUNC_CALIBRATE_TEMPER
:
break
;
case
LOCAL_FUNC_IS_DISPLAY_CURRENT_TEMPER
:
break
;
case
LOCAL_FUNC_CALIBRATE_TEMPER
:
{
local_config_operate
.
config_page2_value
=
Oled_Display_Info
.
is_dispaly_cur_temp
;
sKey_Operation
[
0
].
operate_calibrate_temp
=
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
local_config_operate
.
config_page2_value
=
Oled_Display_Info
.
Air_Device
.
real_temperature
;
}
break
;
case
LOCAL_FUNC_SCREEN_SAVING_TIME
:
...
...
@@ -2127,27 +2203,22 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT_LINE
)
Send_Device_Data
(
0
,
_OPCODE_SET_NET_STATE
,
&
data
,
1
);
//token 值恢复默认
Oled_Display_Info
.
is_dispaly_cur_temp
=
0
;
Oled_Display_Info
.
binding_device
=
0
;
#if DEVICE_TYPE_AIR_CONDITION
Oled_Display_Info
.
Air_Device
.
filter_wash_time
=
3000
;
Oled_Display_Info
.
Air_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
=
0
;
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
0
;
Oled_Display_Info
.
Air_Device
.
screen_save_time
=
0
;
Oled_Display_Info
.
Air_Device
.
operation_mode
=
0
;
#elif DEVICE_TYPE_FLOOR_HEATING
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
screen_save_time
=
0
;
#elif DEVICE_TYPE_FAN
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
=
3000
;
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
=
0
;
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
0
;
Oled_Display_Info
.
FAN_Device
.
screen_save_time
=
0
;
#endif
Oled_Display_Info
.
Air_Device
.
filter_wash_time
=
3000
;
Oled_Display_Info
.
Air_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
=
0
;
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
0
;
Oled_Display_Info
.
Air_Device
.
screen_save_time
=
0
;
Oled_Display_Info
.
Air_Device
.
operation_mode
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
0
;
Oled_Display_Info
.
FLOOR_Device
.
screen_save_time
=
0
;
Oled_Display_Info
.
FAN_Device
.
filter_wash_time
=
3000
;
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
0
;
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
=
0
;
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
0
;
Oled_Display_Info
.
FAN_Device
.
screen_save_time
=
0
;
save_data
();
local_config_operate
.
enter_config_mode
=
0
;
Control_OnOff_handler
(
Oled_Display_Info
.
device_type
,
0
);
//显示关
...
...
@@ -2166,12 +2237,21 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
}
break
;
#endif
case
LOCAL_FUNC_CALIBRATE_TEMPER
:
break
;
case
LOCAL_FUNC_IS_DISPLAY_CURRENT_TEMPER
:
break
;
case
LOCAL_FUNC_CALIBRATE_TEMPER
:
{
Oled_Display_Info
.
is_dispaly_cur_temp
=
local_config_operate
.
config_page2_value
;
save_data
();
Oled_Display_Info
.
Air_Device
.
real_temperature
=
Oled_Display_Info
.
Air_Device
.
real_temperature
-
Oled_Display_Info
.
Air_Device
.
correct_temperature
+
sKey_Operation
[
0
].
operate_calibrate_temp
;
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
sKey_Operation
[
0
].
operate_calibrate_temp
;
Oled_Display_Info
.
FLOOR_Device
.
real_temperature
=
Oled_Display_Info
.
Air_Device
.
real_temperature
;
Oled_Display_Info
.
FLOOR_Device
.
correct_temperature
=
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
Oled_Display_Info
.
FAN_Device
.
real_temperature
=
Oled_Display_Info
.
Air_Device
.
real_temperature
;
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
save_data
();
//保存token
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
//状态更新上报
local_config_operate
.
enter_config_mode
=
0
;
Control_OnOff_handler
(
Oled_Display_Info
.
device_type
,
0
);
//显示关
}
break
;
case
LOCAL_FUNC_SCREEN_SAVING_TIME
:
...
...
@@ -2187,13 +2267,13 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
}
break
;
}
case
2
:
case
3
:
//打断
case
2
:
case
4
:
//打断
{
local_config_operate
.
enter_config_mode
=
0
;
Control_OnOff_handler
(
Oled_Display_Info
.
device_type
,
0
);
//显示关
//
local_config_operate.enter_config_mode = 0;
//
Control_OnOff_handler(Oled_Display_Info.device_type,0); //显示关
return
1
;
}
case
4
:
//返回上一步
case
3
:
//返回上一步
{
if
((
local_config_operate
.
config_page
==
2
)
&&
(
keyEvent
==
0x80
))
{
...
...
@@ -2271,14 +2351,21 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
}
break
;
#endif
case
LOCAL_FUNC_CALIBRATE_TEMPER
:
break
;
case
LOCAL_FUNC_IS_DISPLAY_CURRENT_TEMPER
:
break
;
case
LOCAL_FUNC_CALIBRATE_TEMPER
:
{
if
(
local_config_operate
.
config_page2_value
==
1
)
local_config_operate
.
config_page2_value
=
0
;
if
(
keyid
==
5
)
{
if
(
sKey_Operation
[
0
].
operate_calibrate_temp
<
90
)
sKey_Operation
[
0
].
operate_calibrate_temp
+=
5
;
}
else
local_config_operate
.
config_page2_value
=
1
;
{
if
(
sKey_Operation
[
0
].
operate_calibrate_temp
>
-
90
)
sKey_Operation
[
0
].
operate_calibrate_temp
-=
5
;
}
local_config_operate
.
config_page2_value
=
Oled_Display_Info
.
Air_Device
.
real_temperature
-
Oled_Display_Info
.
Air_Device
.
correct_temperature
+
sKey_Operation
[
0
].
operate_calibrate_temp
;
}
break
;
case
LOCAL_FUNC_SCREEN_SAVING_TIME
:
...
...
@@ -2297,9 +2384,33 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
}
//显示当前界面
if
(
local_config_operate
.
config_page
==
1
)
{
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_POINT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_TEMPER_UNIT_DISPLAY
;
//温度单位
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
Display_Middle_Digtal
(
0X07
,
local_config_operate
.
config_page1_func_value
);
}
else
if
(
local_config_operate
.
config_page
==
2
)
Display_Middle_Digtal
(
0X03
,
local_config_operate
.
config_page2_value
);
{
if
(
local_config_operate
.
config_page2_value
<
4
)
{
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_POINT_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
LCDShowTemp_state_t
.
LCD_place
=
MIDDLE_TEMPER_UNIT_DISPLAY
;
//温度单位
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
Display_Middle_Digtal
(
0X03
,
local_config_operate
.
config_page2_value
);
}
else
display_real_temper
(
local_config_operate
.
config_page2_value
);
}
return
1
;
}
u16
gSetNetScanTime
=
20
;
...
...
@@ -2327,7 +2438,7 @@ u8 kNetIndicatorIsBlinking(void)
{
return
(
g_NetOptIndicator
[
0
].
blink_cnt
>
0
);
}
u8
kLedIsBlinking
(
u8
led_id
)
static
u8
kLedIsBlinking
(
u8
led_id
)
{
return
(
g_NetOptIndicator
[
led_id
].
blink_cnt
>
0
);
}
...
...
Code/海顿-多合一新风面板/APP/User/src/mfg_factort.c
View file @
3169de12
...
...
@@ -195,7 +195,7 @@ u8 Usart_recive_deal(TP_uc8 *data, TP_uc8 len )
{
BL55072A_Clear
();
//息屏
LCD_CONTROL
(
0
);
Operate_Led_Button
(
Oled_Display_Info
.
device_type
,
0
);
Operate_Led_Button
(
Oled_Display_Info
.
device_type
,
4
);
arg_data
[
0
]
=
0
;
arg_data
[
1
]
=
0
;
Oled_Display_Info
.
recv_lcd_off
=
0x85
;
...
...
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