Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
Z3dev-AllToOneFloorHeatingPanel
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-AllToOneFloorHeatingPanel
Commits
848e7bdc
Commit
848e7bdc
authored
Mar 18, 2021
by
limm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1,根据V2.0需求,增加需求功能;
parent
d7b3a49f
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1440 additions
and
1667 deletions
+1440
-1667
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvgui.11730
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvgui.11730
+95
-95
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvopt
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvopt
+8
-8
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvproj
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvproj
+2
-2
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
+16
-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
+11
-9
Code/海顿-多合一地暖面板/APP/User/src/BL55072A.c
Code/海顿-多合一地暖面板/APP/User/src/BL55072A.c
+1
-1
Code/海顿-多合一地暖面板/APP/User/src/CC2530_transparent_analyze.c
Code/海顿-多合一地暖面板/APP/User/src/CC2530_transparent_analyze.c
+0
-1
Code/海顿-多合一地暖面板/APP/User/src/Key.c
Code/海顿-多合一地暖面板/APP/User/src/Key.c
+412
-703
Code/海顿-多合一地暖面板/APP/User/src/control_comm.c
Code/海顿-多合一地暖面板/APP/User/src/control_comm.c
+370
-489
Code/海顿-多合一地暖面板/APP/User/src/display_common.c
Code/海顿-多合一地暖面板/APP/User/src/display_common.c
+509
-347
Code/海顿-多合一地暖面板/APP/User/src/hardware_init.c
Code/海顿-多合一地暖面板/APP/User/src/hardware_init.c
+9
-0
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 @
848e7bdc
...
...
@@ -11,7 +11,7 @@
<View>
<WinId>
38003
</WinId>
<ViewName>
Registers
</ViewName>
<TableColWidths>
115
35
</TableColWidths>
<TableColWidths>
115
124
</TableColWidths>
</View>
<View>
<WinId>
346
</WinId>
...
...
@@ -85,17 +85,17 @@
<yPos>
-1
</yPos>
</MaxPosition>
<NormalPosition>
<Top>
0
</Top>
<Left>
0
</Left>
<Right>
1289
</Right>
<Bottom>
68
9
</Bottom>
<Top>
5
0
</Top>
<Left>
-1345
</Left>
<Right>
-262
</Right>
<Bottom>
74
9
</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
<RegID>
0
</RegID>
<MDITabState>
<Len>
4003
</Len>
<Data>
010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000130000000B00000001000000A8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C646973706C61795F636F6D6D6F6E2E630000000010646973706C61795F636F6D6D6F6E2E6300000000FFDC7800FFFFFFFFA8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C646973706C61795F636F6D6D6F6E2E680000000010646973706C61795F636F6D6D6F6E2E6800000000BECEA100FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C636F6E74726F6C5F636F6D6D2E63000000000E636F6E74726F6C5F636F6D6D2E6300000000F0A0A100FFFFFFFFD0443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C41524D5C737461727475705F4D696E6935385365726965732E730000000016737461727475705F4D696E6935385365726965732E7300000000BCA8E100FFFFFFFF95443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4343323533305F7472616E73706172656E745F616E616C797A652E68000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6800000000F7B88600FFFFFFFFA7443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C68617264776172655F696E69742E63000000000F68617264776172655F696E69742E6300000000D9ADC200FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C72657461726765742E63000000000A72657461726765742E6300000000A5C2D700FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6D66675F666163746F72742E63000000000D6D66675F666163746F72742E6300000000B3A6BE00FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C636C6B2E630000000005636C6B2E6300000000EAD6A300FFFFFFFFCB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C73797374656D5F4D696E6935385365726965732E63000000001573797374656D5F4D696E6935385365726965732E6300000000F6FA7D00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4B65792E6300000000054B65792E6300000000B5E99D00FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C424C3535303732412E63000000000A424C3535303732412E63000000005FC3CF00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4B65792E6800000000054B65792E6800000000C1838300FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6932635F736F6674776172655F6770696F2E6300000000136932635F736F6674776172655F6770696F2E6300000000CACAD500FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C424C3535303732412E68000000000A424C3535303732412E6800000000C5D4F200FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C636F6E74726F6C5F636F6D6D2E68000000000E636F6E74726F6C5F636F6D6D2E6800000000FFDC7800FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4343323533305F7472616E73706172656E745F616E616C797A652E63000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6300000000BECEA100FFFFFFFF9F443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C53485443332E63000000000753485443332E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000
9401000066000000000500000B
020000
</Data>
<Data>
010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000130000000B00000001000000A8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C646973706C61795F636F6D6D6F6E2E630000000010646973706C61795F636F6D6D6F6E2E6300000000FFDC7800FFFFFFFFA8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C646973706C61795F636F6D6D6F6E2E680000000010646973706C61795F636F6D6D6F6E2E6800000000BECEA100FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C636F6E74726F6C5F636F6D6D2E63000000000E636F6E74726F6C5F636F6D6D2E6300000000F0A0A100FFFFFFFFD0443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C41524D5C737461727475705F4D696E6935385365726965732E730000000016737461727475705F4D696E6935385365726965732E7300000000BCA8E100FFFFFFFF95443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4343323533305F7472616E73706172656E745F616E616C797A652E68000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6800000000F7B88600FFFFFFFFA7443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C68617264776172655F696E69742E63000000000F68617264776172655F696E69742E6300000000D9ADC200FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C72657461726765742E63000000000A72657461726765742E6300000000A5C2D700FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6D66675F666163746F72742E63000000000D6D66675F666163746F72742E6300000000B3A6BE00FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C636C6B2E630000000005636C6B2E6300000000EAD6A300FFFFFFFFCB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C73797374656D5F4D696E6935385365726965732E63000000001573797374656D5F4D696E6935385365726965732E6300000000F6FA7D00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4B65792E6300000000054B65792E6300000000B5E99D00FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C424C3535303732412E63000000000A424C3535303732412E63000000005FC3CF00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4B65792E6800000000054B65792E6800000000C1838300FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6932635F736F6674776172655F6770696F2E6300000000136932635F736F6674776172655F6770696F2E6300000000CACAD500FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C424C3535303732412E68000000000A424C3535303732412E6800000000C5D4F200FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C636F6E74726F6C5F636F6D6D2E68000000000E636F6E74726F6C5F636F6D6D2E6800000000FFDC7800FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4343323533305F7472616E73706172656E745F616E616C797A652E63000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6300000000BECEA100FFFFFFFF9F443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C53485443332E63000000000753485443332E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000
7DF9FFFFDDFFFFFF000000007F
020000
</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
...
...
@@ -118,7 +118,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
A40000006600000090050000F5
000000
</Data>
<Data>
24F9FFFFDDFFFFFF10FEFFFF6C
000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -134,7 +134,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
8D010000DB01
0000
</Data>
<Data>
0300000066000000
F6000000D802
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -154,7 +154,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
8D010000DB01
0000
</Data>
<Data>
0300000066000000
F6000000D802
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -434,7 +434,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
8D010000DB01
0000
</Data>
<Data>
0300000066000000
F6000000D802
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -454,7 +454,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
8D010000DB01
0000
</Data>
<Data>
0300000066000000
F6000000D802
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -474,7 +474,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0
00000000C020000000500008702
0000
</Data>
<Data>
0
30000000C0300007D070000D703
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -504,7 +504,7 @@
<Window>
<RegID>
199
</RegID>
<PaneID>
199
</PaneID>
<IsVisible>
0
</IsVisible>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
...
...
@@ -514,7 +514,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
030000000
F0200007D0700006E02
0000
</Data>
<Data>
030000000
C0300007D070000D703
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1114,7 +1114,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
0300000066000000
9D0000004403
0000
</Data>
<Data>
0300000066000000
F6000000D802
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1124,7 +1124,7 @@
<Window>
<RegID>
38007
</RegID>
<PaneID>
38007
</PaneID>
<IsVisible>
0
</IsVisible>
<IsVisible>
1
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
...
...
@@ -1134,7 +1134,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
030000000
F0200007D0700006E02
0000
</Data>
<Data>
030000000
C0300007D070000D703
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1154,7 +1154,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
030000000
F0200007D0700006E02
0000
</Data>
<Data>
030000000
C0300007D070000D703
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1634,7 +1634,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000
87020000000500009A02
0000
</Data>
<Data>
00000000
F0030000800700000304
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1683,14 +1683,14 @@
</Window>
<DockMan>
<Len>
3119
</Len>
<Data>
000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000DE00000090050000E2000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000
A40000006600000090050000F5000000A40000004F00000090050000DE0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFEC0400004F000000F004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000F0040000660000009005000040020000F00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000F40100000100000002000010040000000100000062FFFFFF57040000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000A000000074030000000000004F00000090010000F40100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D3020000000000001902000090050000BC02000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BC02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F401000000050000F8010000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000000000000078030000800700000704000000000000F801000000050000870200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00
000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
<Data>
000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000DE00000090050000E2000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000
24F9FFFFDDFFFFFF10FEFFFF6C000000A40000004F00000090050000DE0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFEC0400004F000000F004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000070FDFFFFDDFFFFFF10FEFFFFB7010000F00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF90000004F000000FD000000F10200000100000002000010040000000100000064FEFFFF59030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFF79F9FFFF7F020000000000004F000000F9000000F10200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000080F8FFFFA701000010FEFFFF4A020000000000001902000090050000BC02000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BC02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F102000080070000F502000001000000010000100400000001000000E5FCFFFF7B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFF83020000000000007E03000000000000F502000080070000F00300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF01
000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
</DockMan>
<ToolBar>
<RegID>
59392
</RegID>
<Name>
File
</Name>
<Buttons>
<Len>
2
213
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E1000000000
00004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D756172745F6D73675F6465616C960000000000000008000D756172745F6D73675F6465616C1A7374617469635F7472616E737072656E745F627566665F6D666714427566665F73656E645F73657269616C5F6E756D167374617469635F7472616E737072656E745F627566661B7374617469635F7472616E73706172656E745F6D73675F696E666F17424C3535303732415F446973706C617947656E6572616C0D4C6364436F6E74726F6C5333320E424C3535303732415F5345473134
0000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
<Len>
2
494
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E1000000000
40004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000F6167696E675F746573745F666C6167960000000000000014001452657365745F44656C61794F46465F74696D65720F6167696E675F746573745F666C61671DC9CFB5E7C4ACC8CFC9E8B1B8C0E0D0CD30A3A8C0E4C8C8B7D6B9DCA3A9214F6C65645F446973706C61795F496E666F2E6167696E675F746573745F666C616709736176655F646174610A6167696E675F7374657017436F6E74726F6C5F4368696C644C6F636B5F4F6E6F66660A6167696E675F746573741151756572795F4465766963655F496E666F1B4F50434F44455F47454E4552414C5F5354415455535F5155455259156E6574776F726B5F73746174655F6D616368696E651746697273745F457869745F466163746F72795F4D6F6465106167696E675F746573745F73746172740F6167696E675F746573745F73746F7005636F756E741C46616E5F73706565645F616E645F6469726563745F636F6E74726F6C1761646A7573745F66616E5F73706565645F73746174757312446973706C61795F55705F436F6E74656E6415446973706C61795F706F7765726F66665F74696D650E74656D705F6F70656E5F74696D65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
</Buttons>
<OriginalItems>
<Len>
1423
</Len>
...
...
@@ -1755,11 +1755,11 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
340100004F00000080070000
0B01
0000
</Data>
<Data>
340100004F00000080070000
8B00
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
<Data>
B4F9FFFFDDFFFFFF
000000009
9000000
</Data>
<Data>
B4F9FFFFDDFFFFFF
80FDFFFF1
9000000
</Data>
</RectRecentFloat>
</Window>
<Window>
...
...
@@ -1775,7 +1775,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
DF01
0000
</Data>
<Data>
03000000660000002D010000
CC02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1795,7 +1795,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
DF
010000
</Data>
<Data>
03000000660000002D010000
CB
010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1815,7 +1815,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1835,7 +1835,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1855,7 +1855,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1875,7 +1875,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1915,7 +1915,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
3701000066000000
7D070000F
2000000
</Data>
<Data>
3701000066000000
FD0400007
2000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1935,7 +1935,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1955,7 +1955,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1975,7 +1975,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300007D0700009D
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -1995,7 +1995,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2015,7 +2015,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2035,7 +2035,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2055,7 +2055,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2075,7 +2075,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
DF
010000
</Data>
<Data>
03000000660000002D010000
CB
010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2095,7 +2095,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
DF
010000
</Data>
<Data>
03000000660000002D010000
CB
010000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2115,7 +2115,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
620300007D07
0000D7030000
</Data>
<Data>
03000000
D1030000FD04
0000D7030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2135,7 +2135,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000
FC010000C003000047
030000
</Data>
<Data>
00000000
E9020000C0030000B6
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2155,7 +2155,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
00000000
5F
03000080070000F0030000
</Data>
<Data>
00000000
CE
03000080070000F0030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2175,7 +2175,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
340100006300000080070000
0B01
0000
</Data>
<Data>
340100006300000080070000
8B00
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2195,7 +2195,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
3701000066000000
7D070000F
2000000
</Data>
<Data>
3701000066000000
FD0400007
2000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2255,7 +2255,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2275,7 +2275,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
3701000066000000
7D070000F
2000000
</Data>
<Data>
3701000066000000
FD0400007
2000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2295,7 +2295,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
3701000066000000
7D070000F
2000000
</Data>
<Data>
3701000066000000
FD0400007
2000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2315,7 +2315,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
3701000066000000
7D070000F
2000000
</Data>
<Data>
3701000066000000
FD0400007
2000000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2755,7 +2755,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000660000002D010000
DF01
0000
</Data>
<Data>
03000000660000002D010000
CC02
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2775,7 +2775,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
620300007D07
0000D7030000
</Data>
<Data>
03000000
D1030000FD04
0000D7030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2795,7 +2795,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
03000000
620300007D07
0000D7030000
</Data>
<Data>
03000000
D1030000FD04
0000D7030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2815,7 +2815,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -2835,7 +2835,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
C7030000
130200007D0700002E
030000
</Data>
<Data>
C7030000
000300003D06000035
030000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -3105,7 +3105,7 @@
<Window>
<RegID>
50013
</RegID>
<PaneID>
50013
</PaneID>
<IsVisible>
1
</IsVisible>
<IsVisible>
0
</IsVisible>
<IsFloating>
0
</IsFloating>
<IsTabbed>
0
</IsTabbed>
<IsActivated>
0
</IsActivated>
...
...
@@ -3115,7 +3115,7 @@
<RecentRowIndex>
0
</RecentRowIndex>
<RectRecentDocked>
<Len>
16
</Len>
<Data>
91FBFFFFF4FFFFFF2DFCFFFF0F00
0000
</Data>
<Data>
1303000066000000AD0300002D01
0000
</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>
16
</Len>
...
...
@@ -3324,14 +3324,14 @@
</Window>
<DockMan>
<Len>
3118
</Len>
<Data>
000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF34010000
0B010000800700000F0100000100000001000010040000000100000008FFFFFFD7000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000B4F9FFFFDDFFFFFF0000000099000000340100004F000000800700000B0100000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000090FBFFFFDDFFFFFF30FCFFFFD4000000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F00000034010000F80100000100000002000010040000000100000062FFFFFFD7060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFFB0F9FFFF86010000000000004F00000030010000F80100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000F801000080070000FC01000001000000010000100400000001000000DDFEFFFFA700000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000044FCFFFF8A01000000000000D5020000C4030000FC010000800700004703000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032010000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF090000000000000001000000000000000100000001000000FFFFFFFFC0030000FC010000C40300004703000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000047030000800700004B03000001000000010000100400000001000000E9FDFFFFBF000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFFD9020000000000007E030000000000004B
03000080070000F00300000000000040820056040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
<Data>
000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF34010000
8B000000800700008F0000000100000001000010040000000100000008FFFFFFD7000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000B4F9FFFFDDFFFFFF80FDFFFF19000000340100004F000000800700008B0000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000090FBFFFFDDFFFFFF30FCFFFFD4000000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F00000034010000E50200000100000002000010040000000100000062FFFFFFD7060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFFB0F9FFFF72010000000000004F00000030010000E50200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000E502000080070000E90200000100000001000010040000000100000047FDFFFF0000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000004FBFFFF7601000080FDFFFFDB010000C4030000E902000080070000B603000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032010000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFFC0030000E9020000C4030000B603000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000B603000080070000BA03000001000000010000100400000001000000B6FEFFFFA3000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFFDF01000080FDFFFF1502000000000000BA
03000080070000F00300000000000040820056040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
</Data>
</DockMan>
<ToolBar>
<RegID>
59392
</RegID>
<Name>
File
</Name>
<Buttons>
<Len>
2
560
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000
0E77696E645F6F70656E5F74696D65960000000000000014000E77696E645F6F70656E5F74696D651D506F7765725F4F66665F5363616E2C706F7765725F6F66665F74696D65000974656D702064617461186F7065726174655F63616C6962726174655F74656D7065722964656C61795F6F7065726174655F63616C6962726174655F74656D7065725F5461736B5F53746172742264656C61795F6F7065726174655F64656C61795F6F66665F5461736B5F53746172742864656C61795F6F7065726174655F63616C6962726174655F74656D7065725F5461736B5F53746F70186F7065726174655F64656C61795F6F66665F7374617475731E64656C61795F6F7065726174655F63616C6962726174655F74656D7065721166697273744C6F6E675072657373466C671174705F7265706F72745F7365715F6E756D136F70636F64655F636865636B5F737461747573155F4F50434F44455F5345545F4E45545F5354415445124765745F446973706C61795F5374617475731973687463335F73656E736F725F6D6561737572655F6C6F6F70156E6574776F726B5F73746174655F6D616368696E652A734B65795F4F7065726174696F6E5B315D2E6F7065726174655F63616C6962726174655F74656D7065720E6C65645F666C6173685F6C6F6F70056F6E6F66660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C4880000000000
00160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
<Len>
2
438
</Len>
<Data>
00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000
12446973706C61795F55705F436F6E74656E649600000000000000140012446973706C61795F55705F436F6E74656E64197461736B5F636F6D70735B365D2E7461736B5F7377697463680F5461705F5374617475735F5363616E094175746F5F57696E640F4445564943455F545950455F46414E0D73657475705F68616E646C6572144765745F4C6173745F53797374656D5F4D6F64651153797374656D5F4D6F64655F5472616E731973687463335F73656E736F725F6D6561737572655F6C6F6F70187A69676265655F756172745F646973706C61795F666C61670E61626E6F726D616C5F74696D65731544656C61795F4F46465F52656C5F446973706C617915446973706C61795F706F7765726F66665F74696D650E485F434841525F444953504C41590A5370616B655F466C61670F7461736B5F72657472616E736D69740974656D705F696E69740E6F7065726174696F6E5F6D6F64650B73797374656D5F74797065084F55545F4C494E450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C4880000000004
00160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
</Data>
</Buttons>
<OriginalItems>
<Len>
1423
</Len>
...
...
@@ -3390,18 +3390,18 @@
<ActiveTab>
11
</ActiveTab>
<Doc>
<Name>
.\User\src\display_common.c
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
64
</TopLine>
<CurrentLine>
7
7
</CurrentLine>
<ColumnNumber>
44
</ColumnNumber>
<TopLine>
1698
</TopLine>
<CurrentLine>
172
7
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\inc\display_common.h
</Name>
<ColumnNumber>
50
</ColumnNumber>
<TopLine>
35
</TopLine>
<CurrentLine>
61
</CurrentLine>
<ColumnNumber>
25
</ColumnNumber>
<TopLine>
142
</TopLine>
<CurrentLine>
184
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
@@ -3409,26 +3409,26 @@
<Doc>
<Name>
.\User\src\control_comm.c
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
609
</TopLine>
<CurrentLine>
625
</CurrentLine>
<TopLine>
1224
</TopLine>
<CurrentLine>
1230
</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>
10
1
</TopLine>
<CurrentLine>
10
5
</CurrentLine>
<ColumnNumber>
26
</ColumnNumber>
<TopLine>
10
5
</TopLine>
<CurrentLine>
10
6
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
main.c
</Name>
<ColumnNumber>
56
</ColumnNumber>
<TopLine>
5
1
</TopLine>
<CurrentLine>
77
</CurrentLine>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
1
</TopLine>
<CurrentLine>
45
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
@@ -3444,9 +3444,9 @@
</Doc>
<Doc>
<Name>
.\User\src\hardware_init.c
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
2
08
</TopLine>
<CurrentLine>
227
</CurrentLine>
<ColumnNumber>
7
</ColumnNumber>
<TopLine>
2
93
</TopLine>
<CurrentLine>
313
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
@@ -3454,7 +3454,7 @@
<Doc>
<Name>
..\Library\StdDriver\src\retarget.c
</Name>
<ColumnNumber>
24
</ColumnNumber>
<TopLine>
26
</TopLine>
<TopLine>
14
</TopLine>
<CurrentLine>
27
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
...
...
@@ -3462,9 +3462,9 @@
</Doc>
<Doc>
<Name>
.\User\src\mfg_factort.c
</Name>
<ColumnNumber>
59
</ColumnNumber>
<TopLine>
89
</TopLine>
<CurrentLine>
115
</CurrentLine>
<ColumnNumber>
32
</ColumnNumber>
<TopLine>
275
</TopLine>
<CurrentLine>
321
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
@@ -3481,7 +3481,7 @@
<Doc>
<Name>
..\Library\Device\Nuvoton\Mini58Series\Source\system_Mini58Series.c
</Name>
<ColumnNumber>
35
</ColumnNumber>
<TopLine>
3
5
</TopLine>
<TopLine>
3
4
</TopLine>
<CurrentLine>
44
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
...
...
@@ -3489,17 +3489,17 @@
</Doc>
<Doc>
<Name>
.\User\src\Key.c
</Name>
<ColumnNumber>
117
</ColumnNumber>
<TopLine>
1812
</TopLine>
<CurrentLine>
1824
</CurrentLine>
<ColumnNumber>
21
</ColumnNumber>
<TopLine>
795
</TopLine>
<CurrentLine>
823
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\src\BL55072A.c
</Name>
<ColumnNumber>
5
2
</ColumnNumber>
<TopLine>
1
10
8
</TopLine>
<ColumnNumber>
5
4
</ColumnNumber>
<TopLine>
1
08
8
</TopLine>
<CurrentLine>
1134
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
...
...
@@ -3507,9 +3507,9 @@
</Doc>
<Doc>
<Name>
.\User\inc\Key.h
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
105
</TopLine>
<CurrentLine>
11
4
</CurrentLine>
<ColumnNumber>
2
0
</ColumnNumber>
<TopLine>
79
</TopLine>
<CurrentLine>
11
1
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
@@ -3525,18 +3525,18 @@
</Doc>
<Doc>
<Name>
.\User\inc\BL55072A.h
</Name>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
157
</TopLine>
<CurrentLine>
183
</CurrentLine>
<ColumnNumber>
29
</ColumnNumber>
<TopLine>
73
</TopLine>
<CurrentLine>
94
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
</Doc>
<Doc>
<Name>
.\User\inc\control_comm.h
</Name>
<ColumnNumber>
55
</ColumnNumber>
<TopLine>
243
</TopLine>
<CurrentLine>
262
</CurrentLine>
<ColumnNumber>
0
</ColumnNumber>
<TopLine>
100
</TopLine>
<CurrentLine>
118
</CurrentLine>
<Folding>
1
</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>
0
</PaneID>
...
...
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvopt
View file @
848e7bdc
...
...
@@ -142,7 +142,7 @@
<Type>
0
</Type>
<LineNumber>
293
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
380
</Address>
<Address>
212
</Address>
<ByteObject>
0
</ByteObject>
<HtxType>
0
</HtxType>
<ManyObjects>
0
</ManyObjects>
...
...
@@ -156,9 +156,9 @@
<Bp>
<Number>
1
</Number>
<Type>
0
</Type>
<LineNumber>
10
9
</LineNumber>
<LineNumber>
10
7
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
2
4326
</Address>
<Address>
2
5830
</Address>
<ByteObject>
0
</ByteObject>
<HtxType>
0
</HtxType>
<ManyObjects>
0
</ManyObjects>
...
...
@@ -167,23 +167,23 @@
<BreakIfRCount>
1
</BreakIfRCount>
<Filename>
D:\Users\11730\SimplicityStudio\v4_workspace\KKAll-In-OneThermostatPanelMG21V1\z3s_thermostatallinonemg21sdk665v2\Code\娴烽】-澶氬悎涓€鍦版殩闈㈡澘\APP\User\src\mfg_factort.c
</Filename>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\User/src/mfg_factort.c\10
9
</Expression>
<Expression>
\\AllToOneThermostatPannel\User/src/mfg_factort.c\10
7
</Expression>
</Bp>
<Bp>
<Number>
2
</Number>
<Type>
0
</Type>
<LineNumber>
105
</LineNumber>
<LineNumber>
700
</LineNumber>
<EnabledFlag>
1
</EnabledFlag>
<Address>
2
4322
</Address>
<Address>
2
320
</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\
BL55072A
.c
</Filename>
<ExecCommand></ExecCommand>
<Expression>
\\AllToOneThermostatPannel\User/src/
mfg_factort.c\105
</Expression>
<Expression>
\\AllToOneThermostatPannel\User/src/
BL55072A.c\700
</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
...
...
Code/海顿-多合一地暖面板/APP/AllToOneThernmostatPannel.uvproj
View file @
848e7bdc
...
...
@@ -225,7 +225,7 @@
<hadIRAM2>
0
</hadIRAM2>
<hadIROM2>
0
</hadIROM2>
<StupSel>
8
</StupSel>
<useUlib>
0
</useUlib>
<useUlib>
1
</useUlib>
<EndSel>
0
</EndSel>
<uLtcg>
0
</uLtcg>
<nSecure>
0
</nSecure>
...
...
@@ -352,7 +352,7 @@
<Optim>
3
</Optim>
<oTime>
0
</oTime>
<SplitLS>
0
</SplitLS>
<OneElfS>
0
</OneElfS>
<OneElfS>
1
</OneElfS>
<Strict>
0
</Strict>
<EnumInt>
0
</EnumInt>
<PlainCh>
0
</PlainCh>
...
...
Code/海顿-多合一地暖面板/APP/Nu_Link_Driver.ini
View file @
848e7bdc
[Version]
Nu_LinkVersion
=
V5.14
[Process]
ProcessID
=
0x0000
105
4
ProcessCreationTime_L
=
0x
c8cc9aa
a
ProcessCreationTime_H
=
0x01d
6dcdf
ProcessID
=
0x0000
5b1
4
ProcessCreationTime_L
=
0x
b5a87b5
a
ProcessCreationTime_H
=
0x01d
71acb
NuLinkID
=
0x18101887
NuLinkID0
=
0x18101887
NuLinkIDs_Count
=
0x00000001
...
...
Code/海顿-多合一地暖面板/APP/User/inc/Key.h
View file @
848e7bdc
...
...
@@ -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,10 +180,13 @@ 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
#define Button10sLongEvent 0xb0
#define Button10sLongUpEvent 0xc0
#define AIR_CMD_ONOFF 1
#define AIR_CMD_SYSTEM_MODE 2
...
...
@@ -216,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 @
848e7bdc
...
...
@@ -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 @
848e7bdc
...
...
@@ -45,7 +45,7 @@ typedef struct
u16
set_temperature
;
//设置温度
s8
correct_temperature
;
//温度校准值
u8
system_type
;
//系统类型
u8
operation_mode
;
//
运行模式
u8
operation_mode
;
//
风机盘管模式,默认0,冷热单管
u8
wind_speed
;
//风速 0 关 1 低 2 中 3 高,4 开,5,自动 ,6 智能 7,中低,8 中高 ,9 超高 默认自动
u8
lock_flage
;
//儿童锁显示图标
u8
air_cond_type
;
//空调类型 1.风机盘管 2,线控器
...
...
@@ -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/BL55072A.c
View file @
848e7bdc
...
...
@@ -683,7 +683,7 @@ void DelayPowerOffControlSetting(s16 time)
BL55072A_DisplayGeneral
(
BL55072A_SEG5
,
0x07
,
0
);
BL55072A_DisplayGeneral
(
BL55072A_SEG6
,
0x0F
,
0
);
}
else
if
(
time
>
0
){
else
if
(
time
>
=
0
){
temp
=
time
/
100
;
LcdControlSetting
(
BL55072A_SEG1
,
temp
);
...
...
Code/海顿-多合一地暖面板/APP/User/src/CC2530_transparent_analyze.c
View file @
848e7bdc
...
...
@@ -457,7 +457,6 @@ static TP_u8 Usart_recive_write_buff(TP_uc8 *data,TP_uc16 len)
static
TP_ErrorStatus
transparent_protocol_analysis
(
TP_uc8
*
data
,
TP_uc8
len
)
{
PROTOCOL_DEAL
Usart_protocol_deal
=
{
0
};
if
((
data
==
NULL
)
||
(
len
<
5
)
||
(
len
>
USART_RECIVE_LEN_DEF
))
{
//printf("non valied msg,discard it all\r\n");
...
...
Code/海顿-多合一地暖面板/APP/User/src/Key.c
View file @
848e7bdc
...
...
@@ -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,8 +59,8 @@ 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
);
static
void
Tap_Status_Scan_Task_Stop
(
void
);
extern
BACKLIGHT_CONTROL
sBacklight
;
...
...
@@ -62,7 +80,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 +121,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 +137,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 +289,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
;
...
...
@@ -297,15 +314,30 @@ u8 KeyScanState( KeyScan_t* Buttion_T, u8 ButtonState )
&&
(
Low
==
Buttion_T
->
PreState
)
&&
(
AntiShakeTime
<
Buttion_T
->
KeyTime
)
&&
(
PressLongTime
>
Buttion_T
->
KeyTime
)
&&
(
ButtonLongEvent
!=
(
Buttion_T
->
PreKeyEvent
)
)
)
&&
(
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,19 +345,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
{
count
=
0
;
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 );
}
}
}
}
...
...
@@ -337,15 +378,36 @@ u8 KeyScanState( KeyScan_t* Buttion_T, u8 ButtonState )
}
else
{
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
))
{
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
;
...
...
@@ -363,7 +425,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
]);
}
...
...
@@ -379,6 +441,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
)
)
...
...
@@ -386,29 +502,19 @@ static void LED_BEEP_Feedback(u8 key_id)
||
((
Oled_Display_Info
.
screen_page
==
3
)
&&
(
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
==
0
)
)
)
Spake_Start
();
if
(
Oled_Display_Info
.
net_work_flage
==
IN_LINE
)
{
kNetIndicatorOptTrigger
(
key_id
,
200
,
200
,
1
,
0
,
1
);
}
else
{
if
(
Oled_Display_Info
.
net_work_flage
==
OUT_LINE
){
kNetIndicatorOptTrigger
(
key_id
,
200
,
200
,
3
,
0
,
1
);
}
else
{
kNetIndicatorOptTrigger
(
key_id
,
200
,
200
,
1
,
0
,
1
);
}
}
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
))
{
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
())
//息屏状态,触摸按键,该次触发只唤醒,不做有效触发
...
...
@@ -418,12 +524,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
;
}
/******************************************
童锁打开后,操作按键处理
*******************************************/
...
...
@@ -452,7 +568,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
;
...
...
@@ -475,38 +591,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
:
...
...
@@ -571,17 +655,7 @@ void Delay_OFF_Rel_Display(u8 stop_flash,u8 delay_timer,u8 dispaly_data,u8 H_cha
}
if
(
H_char
)
{
//显示H图标
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
}
else
{
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
}
LcdShowCTR
(
LCDShowTemp_state_t
);
if
(
bell_char
){
//显示闹钟
LCDShowTemp_state_t
.
LCD_place
=
SETTING_TIMER_DISPLAY
;
...
...
@@ -663,7 +737,8 @@ void Control_OnOff_handler(u8 device_type,u8 onoff)
Oled_Display_whole
();
Oled_Display_Info
.
FLOOR_Device
.
on_off
=
1
;
#if DEVICE_TYPE_FLOOR_HEATING
Tap_Status_Scan_Task_Start
();
Tap_Status_Scan
();
Tap_Status_Scan_Task_Start
();
#endif
}
else
...
...
@@ -671,6 +746,7 @@ void Control_OnOff_handler(u8 device_type,u8 onoff)
PowerOff
();
#if DEVICE_TYPE_FLOOR_HEATING
Relay_Action
(
0x01
,
0x00
);
//控制阀门打开
Tap_Status_Scan_Task_Stop
();
#endif
Oled_Display_Info
.
FLOOR_Device
.
on_off
=
0
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_time
>
0
)
...
...
@@ -721,232 +797,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
,
1
);
}
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
,
1
);
}
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
,
1
);
}
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
;
...
...
@@ -980,11 +917,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
;
...
...
@@ -1019,7 +956,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
}
...
...
@@ -1033,10 +970,14 @@ 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
);
#if DEVICE_TYPE_FLOOR_HEATING
Tap_Status_Scan
();
#endif
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
//状态改变通知
Start_Delay_Report_Event
(
2
);
}
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
{
...
...
@@ -1048,7 +989,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
;
...
...
@@ -1056,72 +997,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
);
}
...
...
@@ -1172,6 +1081,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
;
...
...
@@ -1183,36 +1093,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
);
...
...
@@ -1223,108 +1158,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
;
/**************************************************
调节设置温度
**************************************************/
...
...
@@ -1343,55 +1205,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
);
//显示设置温度
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
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
;
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
//显示设置温度
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
;
Start_Delay_Report_Event
(
2
);
}
}
}
break
;
// case ButtonLongEvent:
...
...
@@ -1409,35 +1227,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
);
...
...
@@ -1448,99 +1292,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
;
...
...
@@ -1555,98 +1331,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
);
//显示设置温度
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
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
;
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
//显示设置温度
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倒计时
Start_Delay_Report_Event
(
2
);
}
}
}
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
;
...
...
@@ -1896,20 +1590,23 @@ void Tap_Init(void)
Relay_Action
(
0x01
,
0x00
);
//继电器断开
}
}
}
Tap_Status_Scan_Task_Start
();
}
#elif DEVICE_TYPE_FAN
Fan_Speed_Control
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
);
//默认打开
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
))
//开机状态且没处于15min-4h老化期间
{
Fan_PassbyONOFF_By_Mode_Trans
(
Oled_Display_Info
.
FAN_Device
.
system_type
,
1
);
Fan_Speed_Control
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
);
if
(
Oled_Display_Info
.
FAN_Device
.
on_off
==
1
)
{
Fan_Speed_Control
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
);
//默认打开
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
)
&&
(
First_Exit_Factory_Mode
==
0
))
//开机状态且没处于15min-4h老化期间
{
Fan_PassbyONOFF_By_Mode_Trans
(
Oled_Display_Info
.
FAN_Device
.
system_type
,
1
);
Fan_Speed_Control
(
Oled_Display_Info
.
FAN_Device
.
wind_speed
);
}
}
#endif
}
/******************************************
//新风模式切换,打开关闭旁通模式
*******************************************/
...
...
@@ -1968,7 +1665,7 @@ void Fan_Speed_Control(u8 wind_speed)
void
Tap_Status_Scan
(
void
)
{
#if DEVICE_TYPE_FLOOR_HEATING
if
((
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
))
//开机状态且没处于15min-4h老化期间
if
((
Oled_Display_Info
.
FLOOR_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
)
&&
(
First_Exit_Factory_Mode
==
0
)
)
//开机状态且没处于15min-4h老化期间
{
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_MANUAL
)
{
...
...
@@ -1996,7 +1693,7 @@ void Tap_Status_Scan(void)
}
}
#elif DEVICE_TYPE_FAN
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
))
//开机状态且没处于15min-4h老化期间
if
((
Oled_Display_Info
.
FAN_Device
.
on_off
==
1
)
&&
(
Oled_Display_Info
.
aging_test_flag
!=
1
)
&&
(
First_Exit_Factory_Mode
==
0
)
)
//开机状态且没处于15min-4h老化期间
{
if
(
Oled_Display_Info
.
FAN_Device
.
system_type
!=
SYSTEM_MODE_ROLL
)
return
;
...
...
@@ -2046,18 +1743,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
)
{
...
...
@@ -2065,15 +1765,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
)
{
...
...
@@ -2081,16 +1786,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
();
}
\ No newline at end of file
}
Code/海顿-多合一地暖面板/APP/User/src/control_comm.c
View file @
848e7bdc
...
...
@@ -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,22 @@ 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
;
...
...
@@ -317,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
;
...
...
@@ -334,285 +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
;
*
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
=
(
*
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
)
if
(
Oled_Display_Info
.
Air_Device
.
correct_temperature
<
0
)
//保存温度校准值
{
*
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
;
temp
=
256
+
Oled_Display_Info
.
Air_Device
.
correct_temperature
;
*
write_data
=
(
*
write_data
|
temp
)
;
}
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
)
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
;
*
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
;
*
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
)
//负数
{
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
;
}
else
if
(
index
==
1
)
temp
=
load_data
&
0xff
;
if
((
temp
&
0X80
)
==
0X80
)
//负数
{
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
;
Oled_Display_Info
.
Air_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
(
index
==
3
)
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
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
)
//负数
{
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
;
Oled_Display_Info
.
FAN_Device
.
correct_temperature
=
temp
-
256
;
}
else
if
(
index
==
1
)
else
if
((
temp
&
0X80
)
==
0X00
)
//正数
{
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
==
2
)
{
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
;
}
}
...
...
@@ -639,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
{
...
...
@@ -684,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
;
...
...
@@ -699,11 +568,9 @@ void recover_current_state(void)
}
void
ReDefine_AIR_Condition_Syetem_Mode
(
void
)
{
s16
temp
;
SHTC3_GetTemp
(
&
temp
);
if
(
temp
>
280
)
if
(
Oled_Display_Info
.
Air_Device
.
real_temperature
>
280
)
Oled_Display_Info
.
Air_Device
.
system_type
=
SYSTEM_MODE_COOLING
;
else
if
(
temp
<
200
)
else
if
(
Oled_Display_Info
.
Air_Device
.
real_temperature
<
200
)
Oled_Display_Info
.
Air_Device
.
system_type
=
SYSTEM_MODE_HEATING
;
else
Oled_Display_Info
.
Air_Device
.
system_type
=
SYSTEM_MODE_AIR
;
...
...
@@ -758,42 +625,42 @@ static void record_dev_used_time(void)
***********************************************************************/
#define Spake_Continue_Time_ms 100
#define Spake_Interval_Time_ms 300
static
u8
Spake_Flag
=
0
;
static
u8
Spake_Flag
=
0
;
static
u16
Spake_Count
=
0
;
static
u8
LED_FLASH_Flag
=
0
;
static
void
spake_control_loop
(
void
)
{
}
static
void
Spake_Control
(
void
)
{
static
u16
i
=
0
;
if
(
Spake_Flag
)
{
i
++
;
if
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
Spake_Count
++
;
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT
_LINE
)
{
if
(
i
==
1
)
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
(
i
==
Spake_Continue_Time_ms
)
if
(
Spake_Count
==
Spake_Continue_Time_ms
)
{
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
0
00
,
0
);
i
=
0
;
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
3
00
,
0
);
Spake_Count
=
0
;
Spake_Flag
=
0
;
}
}
else
{
if
((
i
==
1
)
||
(
i
==
(
Spake_Continue_Time_ms
+
Spake_Interval_Time_ms
)
))
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
((
i
==
(
2
*
Spake_Continue_Time_ms
+
Spake_Interval_Time_ms
)
)
||
(
i
==
Spake_Continue_Time_ms
)
)
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
);
if
(
i
==
2
*
Spake_Continue_Time_ms
+
Spake_Interval_Time_ms
)
PWM_ConfigOutputChannel
(
PWM
,
0
,
1
3
00
,
0
);
if
(
Spake_Count
==
2
*
Spake_Continue_Time_ms
+
Spake_Interval_Time_ms
)
{
i
=
0
;
Spake_Count
=
0
;
Spake_Flag
=
0
;
}
...
...
@@ -801,22 +668,22 @@ static void Spake_Control(void)
}
}
}
static
u16
led_count
=
0
;
static
void
LED_Flash_Control
(
void
)
{
static
u16
i
=
0
;
if
(
LED_FLASH_Flag
)
{
i
++
;
if
((
i
==
1
)
||
(
i
==
400
)
||
(
i
==
800
))
led_count
++
;
if
((
led_count
==
1
)
||
(
led_count
==
400
)
||
(
led_count
==
800
))
{
LED3
=
0
;
}
if
((
i
==
200
)
||
(
i
==
600
)
||
(
i
==
1000
))
if
((
led_count
==
200
)
||
(
led_count
==
600
)
||
(
led_count
==
1000
))
{
LED3
=
1
;
if
(
i
==
1000
)
if
(
led_count
==
1000
)
{
i
=
0
;
led_count
=
0
;
LED_FLASH_Flag
=
0
;
}
}
...
...
@@ -825,6 +692,7 @@ static void LED_Flash_Control(void)
void
ChildLockLedFlash
(
void
)
{
LED_FLASH_Flag
=
1
;
led_count
=
0
;
}
extern
void
delay_confirm_system_mode
(
void
);
void
delay_confirm_system_control
(
u8
start
)
...
...
@@ -850,6 +718,17 @@ void delay_confirm_fan_speed_control(u8 start)
task_comps
[
5
].
task_switch
=
SWITCH_OFF
;
}
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
;
}
/**************************************************************************************************/
/*上电延时回调处理
**************************************************************************************************/
...
...
@@ -869,19 +748,15 @@ void setup_handler(void)
{
count
=
1
;
//空调设备判断当前温度,初始化当前模式
if
(
Oled_Display_Info
.
device_type
==
AIR_CONDITION
)
{
ReDefine_AIR_Condition_Syetem_Mode
();
}
//未老化完成,则进入老化阶段
if
(
Oled_Display_Info
.
aging_test_flag
==
0
)
aging_test_start
();
temp_init
();
//判断是否处于滤网清洗时间为0,如果是则打开故障显示
Recovery_Filter_Time_Error
();
//上电显示
Reload_Save_Time
();
Detect_Human_Dispaly
();
}
else
if
(
count
==
1
){
...
...
@@ -914,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
();
}
/**************************************************************************************************/
/*中宏协议数据重传
...
...
@@ -1076,6 +912,8 @@ static void aging_test(void)
if
(
Board_test_time
>=
FAST_AGING_STEP2_TIME
)
//8小时
{
aging_step
=
2
;
aging_test_stop
();
Board_test_time
=
0
;
First_Exit_Factory_Mode
=
1
;
Oled_Display_Info
.
aging_test_flag
=
2
;
//
save_data
();
//老化完成,写入标志位
...
...
@@ -1118,7 +956,7 @@ static void delay_300ms_report_task(void)
{
delay_300ms_report_stop
();
proximity_triagger_report
();
//单板产测上报
if
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT
_LINE
)
proximity_triagger_report_zigbee
();
//整机产测上报
//printf("start report proximity_triagger event\r\n");
...
...
@@ -1144,8 +982,8 @@ static void task_exit_aging_test(void)
void
Spake_Start
(
void
)
{
//task_comps[3].task_switch = SWITCH_ON;
Spake_Flag
=
1
;
Spake_Count
=
0
;
}
void
Ararm_Init
(
void
)
...
...
@@ -1184,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
]);
...
...
@@ -1420,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
)
)
{
...
...
@@ -1467,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
);
}
...
...
@@ -1579,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
--
;
...
...
@@ -1610,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
}
/*********************************************************************
...
...
@@ -1767,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
;
//开关状态
...
...
@@ -1799,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
)
{
...
...
@@ -1891,8 +1719,8 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
case
_OPCODE_QUERY_NET_STATE
:
//网络状态查询
{
if
(
(
kNetIndicatorIsBlinking
()
)
&&
(((
recv_data
.
ARG
[
1
]
==
IN
_LINE
)
&&
(
Oled_Display_Info
.
net_work_flage
==
OUT_LINE
)
)
||
((
recv_data
.
ARG
[
1
]
==
OUT_LINE
)
&&
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
)))
//是否在闪烁
if
(
(
kNetIndicatorIsBlinking
()
)
&&
(((
recv_data
.
ARG
[
1
]
!=
OUT
_LINE
)
&&
(
Oled_Display_Info
.
net_work_flage
==
OUT_LINE
)
)
||
((
recv_data
.
ARG
[
1
]
==
OUT_LINE
)
&&
(
Oled_Display_Info
.
net_work_flage
!=
OUT
_LINE
)
)))
//是否在闪烁
{
memset
(
arg_data
,
0
,
sizeof
(
arg_data
));
network_state_machine
(
recv_data
.
ARG
[
1
]);
...
...
@@ -1910,6 +1738,31 @@ void transparent_data_analyze(PROTOCOL_DEAL recv_data)
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
}
else
if
((
Oled_Display_Info
.
screen_page
==
2
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
error
==
2
))
//通讯故障
{
Oled_Display_Info
.
FLOOR_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
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
}
else
if
((
Oled_Display_Info
.
screen_page
==
3
)
&&
(
Oled_Display_Info
.
FAN_Device
.
error
==
2
))
//通讯故障
{
Oled_Display_Info
.
FAN_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
);
}
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
3
);
}
break
;
}
case
OPCODE_GENERAL_BING_DEVICE
:
//绑定设备
...
...
@@ -1939,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
{
//解绑
...
...
@@ -1966,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
();
...
...
@@ -2011,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
;
//清除绑定信息
...
...
@@ -2041,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
));
...
...
@@ -2234,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
////* 功能说明: 非透传数据解析
...
...
@@ -2369,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 @
848e7bdc
...
...
@@ -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
,
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
=
{
2
,
0
,
2
,
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_FAN
OLED_ALL_DSD
Oled_Display_Info
=
{
3
,
0
,
3
,
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
,
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,40 +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
);
//显示H图标
LCDShowTemp_state_t
.
LCD_place
=
H_CHAR_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
=
ON
;
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
;
...
...
@@ -124,7 +105,7 @@ static void Display_Middle_Digtal(u8 control_bits,s16 data )
memset
(
is_dispaly
,
0
,
3
);
if
(
control_bits
==
0x07
)
//显示三个字段
{
if
(
data
>
0
)
if
(
data
>
=
0
)
{
temp
[
0
]
=
data
/
100
;
temp
[
1
]
=
(
data
/
10
)
%
10
;
...
...
@@ -177,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
);
...
...
@@ -207,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
);
}
/*************************************************
...
...
@@ -450,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
;
//“空调”字样显示
...
...
@@ -503,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
)
{
...
...
@@ -527,33 +643,52 @@ 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
);
}
}
}
void
Fan_Oled_Display
()
{
if
((
Oled_Display_Info
.
FAN_Device
.
no_disturb_mode
==
1
)
&&
(
IsLcdEnterScreenSave
()))
return
;
LCD_CONTROL
(
1
);
/********************************************
显示“新风”字样
*********************************************/
...
...
@@ -564,98 +699,148 @@ 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信号图标
*********************************************/
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
void
Floor_Heating_Oled_Display
()
{
if
((
Oled_Display_Info
.
FLOOR_Device
.
no_disturb_mode
==
1
)
&&
(
IsLcdEnterScreenSave
()))
return
;
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信号图标
*********************************************/
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
void
Air_Oled_Display
(
void
)
{
if
((
Oled_Display_Info
.
Air_Device
.
no_disturb_mode
==
1
)
&&
(
IsLcdEnterScreenSave
()))
return
;
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
())
Display_Up_Contend
(
AIR_CONDITION
);
/********************************************
显示主从模式
*********************************************/
#if (DEV_TYPE == 0) &&(DEVICE_TYPE_AIR_CONDITION ==1)
if
(
(
Oled_Display_Info
.
Air_Device
.
power_off_time
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
air_master_slavery_mode
))
{
//显示H图标
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
);
}
LcdShowCTR
(
LCDShowTemp_state_t
);
}
#endif
}
#endif
/********************************************
ZigBee信号图标
*********************************************/
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
}
/*************************************************
开机显示选项
...
...
@@ -664,24 +849,13 @@ void Oled_Display_whole(void)
{
if
(
IsLocalConfigMode
())
return
;
LCD_CONTROL
(
1
);
//开机
if
(
Oled_Display_Info
.
screen_page
==
AIR_CONDITION
)
Air_Oled_Display
();
else
if
(
Oled_Display_Info
.
screen_page
==
FLOOR_HEATING
)
Floor_Heating_Oled_Display
();
else
if
(
Oled_Display_Info
.
screen_page
==
FAN
)
Fan_Oled_Display
();
/********************************************
ZigBee信号图标
*********************************************/
if
(
Oled_Display_Info
.
net_work_flage
==
IN_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
Fan_Oled_Display
();
}
...
...
@@ -693,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
;
...
...
@@ -706,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
;
...
...
@@ -719,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
;
...
...
@@ -758,7 +938,7 @@ void PowerOff(void)
/********************************************
ZigBee信号图标
*********************************************/
if
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT
_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
...
...
@@ -825,26 +1005,26 @@ 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
);
/********************************************
显示工作模式
*********************************************/
Displayt_System_Mode
(
Oled_Display_Info
.
Air_Device
.
system_type
);
if
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT
_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
...
...
@@ -853,7 +1033,6 @@ void EnterScreenSaveMode(void)
}
else
{
Operation_LED
(
0
);
//全关led
LCD_CONTROL
(
0
);
}
...
...
@@ -861,26 +1040,26 @@ 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
);
/********************************************
显示工作模式
*********************************************/
Displayt_System_Mode
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
);
if
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT
_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
...
...
@@ -889,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
);
// 显示可操作的按键
/********************************************
显示“新风”字样
*********************************************/
...
...
@@ -908,14 +1086,14 @@ void EnterScreenSaveMode(void)
/********************************************
显示设置温度
*********************************************/
display_set_temp
(
0
,
Oled_Display_Info
.
FAN_Device
.
real_temperature
,
0
);
//显示当前温度
Display_Middle_Contend
(
FAN
);
/********************************************
显示工作模式
*********************************************/
Displayt_System_Mode
(
Oled_Display_Info
.
FAN_Device
.
system_type
);
if
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
if
(
Oled_Display_Info
.
net_work_flage
!=
OUT
_LINE
)
{
LCDShowTemp_state_t
.
LCD_place
=
ZIGBEE_NET_CAHR_DISPLAY
;
LCDShowTemp_state_t
.
LCD_state
=
ON
;
...
...
@@ -924,7 +1102,7 @@ void EnterScreenSaveMode(void)
}
else
{
Operation_LED
(
0
);
//全关led
LCD_CONTROL
(
0
);
}
}
...
...
@@ -941,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
();
...
...
@@ -952,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
();
...
...
@@ -965,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
();
...
...
@@ -1269,6 +1438,7 @@ void delay_confirm_fan_speed(void)
LCDShowTemp_state_t
.
LCD_state
=
OFF
;
LcdShowCTR
(
LCDShowTemp_state_t
);
}
extern
u8
Is_Fan_Speed_Display
(
void
);
void
Set_CMD_Handler
(
u8
device_type
,
u16
opcode
,
u8
*
arg
,
u8
arg_len
)
{
if
(
arg
==
NULL
)
...
...
@@ -1311,6 +1481,11 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
#else
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
1
);
//状态改变通知
#endif
//如果此时正在调节风速,提前结束
if
(
Is_Fan_Speed_Display
())
{
delay_confirm_fan_speed
();
}
}
}
...
...
@@ -1367,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)
...
...
@@ -1388,6 +1564,8 @@ 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
(
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
...
...
@@ -1396,22 +1574,23 @@ 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
];
arg
[
1
]
=
child_lock
;
Oled_Display_Info
.
Air_Device
.
lock_flage
=
child_lock
;
if
(
Get_Display_Status
())
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
);
//状态更新上报
...
...
@@ -1438,10 +1617,16 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
(
(
Get_Display_Status
())
&&
(
delay_off_time
>
0
)
)
Display_poweroff_time
(
delay_off_time
);
else
if
((
Get_Display_Status
())
&&
(
delay_off_time
==
0
)
&&
(
Oled_Display_Info
.
Air_Device
.
power_off_flage
))
{
Delay_OFF_Rel_Display
(
1
,
0
,
NULL
,
0
,
0
,
0
);
Display_Up_Contend
(
AIR_CONDITION
);
}
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
;
...
...
@@ -1482,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
);
//状态更新上报
}
...
...
@@ -1554,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
);
}
}
...
...
@@ -1563,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
;
...
...
@@ -1590,7 +1747,14 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
{
Displayt_System_Mode
(
system_mode
);
Oled_Display_Info
.
FLOOR_Device
.
system_type
=
system_mode
;
if
(
Oled_Display_Info
.
FLOOR_Device
.
system_type
==
SYSTEM_MODE_AUTO
)
{
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
=
260
;
Display_Set_Temper
(
Oled_Display_Info
.
FLOOR_Device
.
set_temperature
);
}
#if DEVICE_TYPE_FLOOR_HEATING
Tap_Status_Scan
();
#endif
state_change_report
(
OPCODE_GENERAL_REPORT_STATUS
,
2
);
arg
[
0
]
=
0
;
}
...
...
@@ -1616,7 +1780,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
);
...
...
@@ -1626,24 +1791,22 @@ 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
];
arg
[
1
]
=
child_lock
;
Oled_Display_Info
.
FLOOR_Device
.
lock_flage
=
child_lock
;
if
(
Get_Display_Status
())
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
...
...
@@ -1671,10 +1834,16 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
(
(
Get_Display_Status
())
&&
(
delay_off_time
>
0
)
)
Display_poweroff_time
(
delay_off_time
);
else
if
((
Get_Display_Status
())
&&
(
delay_off_time
==
0
)
&&
(
Oled_Display_Info
.
FLOOR_Device
.
power_off_flage
))
{
Delay_OFF_Rel_Display
(
1
,
0
,
NULL
,
0
,
0
,
0
);
Display_Up_Contend
(
FLOOR_HEATING
);
}
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
;
...
...
@@ -1693,31 +1862,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
;
...
...
@@ -1831,22 +1975,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
:
...
...
@@ -1863,8 +1998,16 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
break
;
}
Oled_Display_Info
.
FAN_Device
.
lock_flage
=
child_lock
;
if
((
sBacklight
.
blacklight_flag
)
&&
(
Oled_Display_Info
.
screen_page
==
3
))
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
;
...
...
@@ -1890,10 +2033,16 @@ void Set_CMD_Handler(u8 device_type,u16 opcode,u8 *arg,u8 arg_len)
if
(
(
Get_Display_Status
()
)
&&
(
delay_off_time
>
0
))
Display_poweroff_time
(
delay_off_time
);
else
if
((
Get_Display_Status
())
&&
(
delay_off_time
==
0
)
&&
(
Oled_Display_Info
.
FAN_Device
.
power_off_flage
))
{
Delay_OFF_Rel_Display
(
1
,
0
,
NULL
,
0
,
0
,
0
);
Display_Up_Contend
(
FAN
);
}
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
);
...
...
@@ -1923,30 +2072,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
;
...
...
@@ -2024,12 +2149,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
)
{
...
...
@@ -2054,11 +2180,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
:
...
...
@@ -2076,30 +2203,25 @@ u8 Key_Operate_Config_Operation(u8 keyid,u8 keyEvent)
{
u8
data
=
0
;
//恢复出厂 设备离网
if
(
Oled_Display_Info
.
net_work_flage
==
IN
_LINE
)
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
);
//显示关
...
...
@@ -2118,12 +2240,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
:
...
...
@@ -2139,13 +2270,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
))
{
...
...
@@ -2223,14 +2354,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
:
...
...
@@ -2249,9 +2387,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
;
...
...
@@ -2279,7 +2441,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/hardware_init.c
View file @
848e7bdc
...
...
@@ -293,6 +293,7 @@ static void FMC_init(void)
SYS_LockReg
();
}
extern
void
ReDefine_AIR_Condition_Syetem_Mode
(
void
);
void
hardware_init
(
void
)
{
SYS_Init
();
...
...
@@ -308,6 +309,7 @@ void hardware_init(void)
Setup_Task_Start
();
//fmc test
recover_current_state
();
#if DEVICE_TYPE_FAN
if
(
Oled_Display_Info
.
aging_test_flag
==
2
)
{
...
...
@@ -321,6 +323,13 @@ void hardware_init(void)
#endif
GPIO_init
();
temp_init
();
//空调设备判断当前温度,初始化当前模式
if
(
Oled_Display_Info
.
device_type
==
AIR_CONDITION
)
{
ReDefine_AIR_Condition_Syetem_Mode
();
}
#if (DEVICE_TYPE_FLOOR_HEATING || DEVICE_TYPE_FAN)
Tap_Init
();
#endif
...
...
Code/海顿-多合一地暖面板/APP/User/src/mfg_factort.c
View file @
848e7bdc
...
...
@@ -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