Commit 848e7bdc authored by limm's avatar limm

1,根据V2.0需求,增加需求功能;

parent d7b3a49f
......@@ -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>689</Bottom>
<Top>50</Top>
<Left>-1345</Left>
<Right>-262</Right>
<Bottom>749</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
<RegID>0</RegID>
<MDITabState>
<Len>4003</Len>
<Data>010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000130000000B00000001000000A8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C646973706C61795F636F6D6D6F6E2E630000000010646973706C61795F636F6D6D6F6E2E6300000000FFDC7800FFFFFFFFA8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C646973706C61795F636F6D6D6F6E2E680000000010646973706C61795F636F6D6D6F6E2E6800000000BECEA100FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C636F6E74726F6C5F636F6D6D2E63000000000E636F6E74726F6C5F636F6D6D2E6300000000F0A0A100FFFFFFFFD0443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C41524D5C737461727475705F4D696E6935385365726965732E730000000016737461727475705F4D696E6935385365726965732E7300000000BCA8E100FFFFFFFF95443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4343323533305F7472616E73706172656E745F616E616C797A652E68000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6800000000F7B88600FFFFFFFFA7443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C68617264776172655F696E69742E63000000000F68617264776172655F696E69742E6300000000D9ADC200FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C72657461726765742E63000000000A72657461726765742E6300000000A5C2D700FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6D66675F666163746F72742E63000000000D6D66675F666163746F72742E6300000000B3A6BE00FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C636C6B2E630000000005636C6B2E6300000000EAD6A300FFFFFFFFCB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C73797374656D5F4D696E6935385365726965732E63000000001573797374656D5F4D696E6935385365726965732E6300000000F6FA7D00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4B65792E6300000000054B65792E6300000000B5E99D00FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C424C3535303732412E63000000000A424C3535303732412E63000000005FC3CF00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4B65792E6800000000054B65792E6800000000C1838300FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6932635F736F6674776172655F6770696F2E6300000000136932635F736F6674776172655F6770696F2E6300000000CACAD500FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C424C3535303732412E68000000000A424C3535303732412E6800000000C5D4F200FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C636F6E74726F6C5F636F6D6D2E68000000000E636F6E74726F6C5F636F6D6D2E6800000000FFDC7800FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4343323533305F7472616E73706172656E745F616E616C797A652E63000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6300000000BECEA100FFFFFFFF9F443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C53485443332E63000000000753485443332E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000009401000066000000000500000B020000</Data>
<Data>010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000001000000130000000B00000001000000A8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C646973706C61795F636F6D6D6F6E2E630000000010646973706C61795F636F6D6D6F6E2E6300000000FFDC7800FFFFFFFFA8443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C646973706C61795F636F6D6D6F6E2E680000000010646973706C61795F636F6D6D6F6E2E6800000000BECEA100FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C636F6E74726F6C5F636F6D6D2E63000000000E636F6E74726F6C5F636F6D6D2E6300000000F0A0A100FFFFFFFFD0443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C41524D5C737461727475705F4D696E6935385365726965732E730000000016737461727475705F4D696E6935385365726965732E7300000000BCA8E100FFFFFFFF95443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C6D61696E2E6300000000066D61696E2E63000000009CC1B600FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4343323533305F7472616E73706172656E745F616E616C797A652E68000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6800000000F7B88600FFFFFFFFA7443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C68617264776172655F696E69742E63000000000F68617264776172655F696E69742E6300000000D9ADC200FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C72657461726765742E63000000000A72657461726765742E6300000000A5C2D700FFFFFFFFA5443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6D66675F666163746F72742E63000000000D6D66675F666163746F72742E6300000000B3A6BE00FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C5374644472697665725C7372635C636C6B2E630000000005636C6B2E6300000000EAD6A300FFFFFFFFCB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4C6962726172795C4465766963655C4E75766F746F6E5C4D696E6935385365726965735C536F757263655C73797374656D5F4D696E6935385365726965732E63000000001573797374656D5F4D696E6935385365726965732E6300000000F6FA7D00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4B65792E6300000000054B65792E6300000000B5E99D00FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C424C3535303732412E63000000000A424C3535303732412E63000000005FC3CF00FFFFFFFF9D443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C4B65792E6800000000054B65792E6800000000C1838300FFFFFFFFAB443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C6932635F736F6674776172655F6770696F2E6300000000136932635F736F6674776172655F6770696F2E6300000000CACAD500FFFFFFFFA2443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C424C3535303732412E68000000000A424C3535303732412E6800000000C5D4F200FFFFFFFFA6443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C696E635C636F6E74726F6C5F636F6D6D2E68000000000E636F6E74726F6C5F636F6D6D2E6800000000FFDC7800FFFFFFFFB4443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C4343323533305F7472616E73706172656E745F616E616C797A652E63000000001C4343323533305F7472616E73706172656E745F616E616C797A652E6300000000BECEA100FFFFFFFF9F443A5C55736572735C31313733305C53696D706C696369747953747564696F5C76345F776F726B73706163655C4B4B416C6C2D496E2D4F6E65546865726D6F7374617450616E656C4D47323156315C7A33735F746865726D6F73746174616C6C696E6F6E656D67323173646B36363576325C436F64655CBAA3B6D92DB6E0BACFD2BBB5D8C5AFC3E6B0E55C4150505C557365725C7372635C53485443332E63000000000753485443332E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007DF9FFFFDDFFFFFF000000007F020000</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
......@@ -118,7 +118,7 @@
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>A40000006600000090050000F5000000</Data>
<Data>24F9FFFFDDFFFFFF10FEFFFF6C000000</Data>
</RectRecentFloat>
</Window>
<Window>
......@@ -134,7 +134,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000008D010000DB010000</Data>
<Data>0300000066000000F6000000D8020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -154,7 +154,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000008D010000DB010000</Data>
<Data>0300000066000000F6000000D8020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -434,7 +434,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000008D010000DB010000</Data>
<Data>0300000066000000F6000000D8020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -454,7 +454,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000008D010000DB010000</Data>
<Data>0300000066000000F6000000D8020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -474,7 +474,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>000000000C0200000005000087020000</Data>
<Data>030000000C0300007D070000D7030000</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>030000000F0200007D0700006E020000</Data>
<Data>030000000C0300007D070000D7030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1114,7 +1114,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000009D00000044030000</Data>
<Data>0300000066000000F6000000D8020000</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>030000000F0200007D0700006E020000</Data>
<Data>030000000C0300007D070000D7030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1154,7 +1154,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>030000000F0200007D0700006E020000</Data>
<Data>030000000C0300007D070000D7030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1634,7 +1634,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>0000000087020000000500009A020000</Data>
<Data>00000000F00300008007000003040000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1683,14 +1683,14 @@
</Window>
<DockMan>
<Len>3119</Len>
<Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000DE00000090050000E2000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000A40000006600000090050000F5000000A40000004F00000090050000DE0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFEC0400004F000000F004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000F0040000660000009005000040020000F00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F00000094010000F40100000100000002000010040000000100000062FFFFFF57040000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000A000000074030000000000004F00000090010000F40100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D3020000000000001902000090050000BC02000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BC02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F401000000050000F8010000010000000100001004000000010000000000000000000000FFFFFFFF04000000C5000000C7000000B401000077940000018000800000010000000000000078030000800700000704000000000000F801000000050000870200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
<Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFA4000000DE00000090050000E2000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E65002000000000000024F9FFFFDDFFFFFF10FEFFFF6C000000A40000004F00000090050000DE0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFEC0400004F000000F004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000070FDFFFFDDFFFFFF10FEFFFFB7010000F00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF90000004F000000FD000000F10200000100000002000010040000000100000064FEFFFF59030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFF79F9FFFF7F020000000000004F000000F9000000F10200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000000000080F8FFFFA701000010FEFFFF4A020000000000001902000090050000BC02000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BC02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000F102000080070000F502000001000000010000100400000001000000E5FCFFFF7B000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFF83020000000000007E03000000000000F502000080070000F00300000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
</DockMan>
<ToolBar>
<RegID>59392</RegID>
<Name>File</Name>
<Buttons>
<Len>2213</Len>
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000D756172745F6D73675F6465616C960000000000000008000D756172745F6D73675F6465616C1A7374617469635F7472616E737072656E745F627566665F6D666714427566665F73656E645F73657269616C5F6E756D167374617469635F7472616E737072656E745F627566661B7374617469635F7472616E73706172656E745F6D73675F696E666F17424C3535303732415F446973706C617947656E6572616C0D4C6364436F6E74726F6C5333320E424C3535303732415F53454731340000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data>
<Len>2494</Len>
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000F6167696E675F746573745F666C6167960000000000000014001452657365745F44656C61794F46465F74696D65720F6167696E675F746573745F666C61671DC9CFB5E7C4ACC8CFC9E8B1B8C0E0D0CD30A3A8C0E4C8C8B7D6B9DCA3A9214F6C65645F446973706C61795F496E666F2E6167696E675F746573745F666C616709736176655F646174610A6167696E675F7374657017436F6E74726F6C5F4368696C644C6F636B5F4F6E6F66660A6167696E675F746573741151756572795F4465766963655F496E666F1B4F50434F44455F47454E4552414C5F5354415455535F5155455259156E6574776F726B5F73746174655F6D616368696E651746697273745F457869745F466163746F72795F4D6F6465106167696E675F746573745F73746172740F6167696E675F746573745F73746F7005636F756E741C46616E5F73706565645F616E645F6469726563745F636F6E74726F6C1761646A7573745F66616E5F73706565645F73746174757312446973706C61795F55705F436F6E74656E6415446973706C61795F706F7765726F66665F74696D650E74656D705F6F70656E5F74696D650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data>
</Buttons>
<OriginalItems>
<Len>1423</Len>
......@@ -1755,11 +1755,11 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>340100004F000000800700000B010000</Data>
<Data>340100004F000000800700008B000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
<Data>B4F9FFFFDDFFFFFF0000000099000000</Data>
<Data>B4F9FFFFDDFFFFFF80FDFFFF19000000</Data>
</RectRecentFloat>
</Window>
<Window>
......@@ -1775,7 +1775,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000002D010000DF010000</Data>
<Data>03000000660000002D010000CC020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1795,7 +1795,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000002D010000DF010000</Data>
<Data>03000000660000002D010000CB010000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1815,7 +1815,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300007D0700009D030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1835,7 +1835,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1855,7 +1855,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1875,7 +1875,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1915,7 +1915,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>37010000660000007D070000F2000000</Data>
<Data>3701000066000000FD04000072000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1935,7 +1935,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300007D0700009D030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1955,7 +1955,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300007D0700009D030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1975,7 +1975,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300007D0700009D030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -1995,7 +1995,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2015,7 +2015,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2035,7 +2035,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2055,7 +2055,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2075,7 +2075,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000002D010000DF010000</Data>
<Data>03000000660000002D010000CB010000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2095,7 +2095,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000002D010000DF010000</Data>
<Data>03000000660000002D010000CB010000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2115,7 +2115,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000620300007D070000D7030000</Data>
<Data>03000000D1030000FD040000D7030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2135,7 +2135,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>00000000FC010000C003000047030000</Data>
<Data>00000000E9020000C0030000B6030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2155,7 +2155,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>000000005F03000080070000F0030000</Data>
<Data>00000000CE03000080070000F0030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2175,7 +2175,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>3401000063000000800700000B010000</Data>
<Data>3401000063000000800700008B000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2195,7 +2195,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>37010000660000007D070000F2000000</Data>
<Data>3701000066000000FD04000072000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2255,7 +2255,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2275,7 +2275,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>37010000660000007D070000F2000000</Data>
<Data>3701000066000000FD04000072000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2295,7 +2295,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>37010000660000007D070000F2000000</Data>
<Data>3701000066000000FD04000072000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2315,7 +2315,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>37010000660000007D070000F2000000</Data>
<Data>3701000066000000FD04000072000000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2755,7 +2755,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000660000002D010000DF010000</Data>
<Data>03000000660000002D010000CC020000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2775,7 +2775,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000620300007D070000D7030000</Data>
<Data>03000000D1030000FD040000D7030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2795,7 +2795,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>03000000620300007D070000D7030000</Data>
<Data>03000000D1030000FD040000D7030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2815,7 +2815,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -2835,7 +2835,7 @@
<RecentRowIndex>0</RecentRowIndex>
<RectRecentDocked>
<Len>16</Len>
<Data>C7030000130200007D0700002E030000</Data>
<Data>C7030000000300003D06000035030000</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>91FBFFFFF4FFFFFF2DFCFFFF0F000000</Data>
<Data>1303000066000000AD0300002D010000</Data>
</RectRecentDocked>
<RectRecentFloat>
<Len>16</Len>
......@@ -3324,14 +3324,14 @@
</Window>
<DockMan>
<Len>3118</Len>
<Data>000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF340100000B010000800700000F0100000100000001000010040000000100000008FFFFFFD7000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000B4F9FFFFDDFFFFFF0000000099000000340100004F000000800700000B0100000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000090FBFFFFDDFFFFFF30FCFFFFD4000000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F00000034010000F80100000100000002000010040000000100000062FFFFFFD7060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFFB0F9FFFF86010000000000004F00000030010000F80100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000F801000080070000FC01000001000000010000100400000001000000DDFEFFFFA700000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000044FCFFFF8A01000000000000D5020000C4030000FC010000800700004703000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032010000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF090000000000000001000000000000000100000001000000FFFFFFFFC0030000FC010000C40300004703000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000047030000800700004B03000001000000010000100400000001000000E9FDFFFFBF000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFFD9020000000000007E030000000000004B03000080070000F00300000000000040820056040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
<Data>000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF340100008B000000800700008F0000000100000001000010040000000100000008FFFFFFD7000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000001000000B4F9FFFFDDFFFFFF80FDFFFF19000000340100004F000000800700008B0000000000000040280056060000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF0C0300004F0000001003000046010000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000090FBFFFFDDFFFFFF30FCFFFFD4000000100300004F000000B00300004601000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF300100004F00000034010000E50200000100000002000010040000000100000062FFFFFFD7060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080F8FFFFDDFFFFFFB0F9FFFF72010000000000004F00000030010000E50200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000E502000080070000E90200000100000001000010040000000100000047FDFFFF0000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB0900000180008000000100000004FBFFFF7601000080FDFFFFDB010000C4030000E902000080070000B603000000000000404100560E0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032010000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFFC0030000E9020000C4030000B603000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000B603000080070000BA03000001000000010000100400000001000000B6FEFFFFA3000000FFFFFFFF04000000C5000000C7000000B4010000779400000180008000000100000080F8FFFFDF01000080FDFFFF1502000000000000BA03000080070000F00300000000000040820056040000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF01000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
</DockMan>
<ToolBar>
<RegID>59392</RegID>
<Name>File</Name>
<Buttons>
<Len>2560</Len>
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E77696E645F6F70656E5F74696D65960000000000000014000E77696E645F6F70656E5F74696D651D506F7765725F4F66665F5363616E2C706F7765725F6F66665F74696D65000974656D702064617461186F7065726174655F63616C6962726174655F74656D7065722964656C61795F6F7065726174655F63616C6962726174655F74656D7065725F5461736B5F53746172742264656C61795F6F7065726174655F64656C61795F6F66665F5461736B5F53746172742864656C61795F6F7065726174655F63616C6962726174655F74656D7065725F5461736B5F53746F70186F7065726174655F64656C61795F6F66665F7374617475731E64656C61795F6F7065726174655F63616C6962726174655F74656D7065721166697273744C6F6E675072657373466C671174705F7265706F72745F7365715F6E756D136F70636F64655F636865636B5F737461747573155F4F50434F44455F5345545F4E45545F5354415445124765745F446973706C61795F5374617475731973687463335F73656E736F725F6D6561737572655F6C6F6F70156E6574776F726B5F73746174655F6D616368696E652A734B65795F4F7065726174696F6E5B315D2E6F7065726174655F63616C6962726174655F74656D7065720E6C65645F666C6173685F6C6F6F70056F6E6F66660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</Data>
<Len>2438</Len>
<Data>00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000012446973706C61795F55705F436F6E74656E649600000000000000140012446973706C61795F55705F436F6E74656E64197461736B5F636F6D70735B365D2E7461736B5F7377697463680F5461705F5374617475735F5363616E094175746F5F57696E640F4445564943455F545950455F46414E0D73657475705F68616E646C6572144765745F4C6173745F53797374656D5F4D6F64651153797374656D5F4D6F64655F5472616E731973687463335F73656E736F725F6D6561737572655F6C6F6F70187A69676265655F756172745F646973706C61795F666C61670E61626E6F726D616C5F74696D65731544656C61795F4F46465F52656C5F446973706C617915446973706C61795F706F7765726F66665F74696D650E485F434841525F444953504C41590A5370616B655F466C61670F7461736B5F72657472616E736D69740974656D705F696E69740E6F7065726174696F6E5F6D6F64650B73797374656D5F74797065084F55545F4C494E450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020001001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000</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>77</CurrentLine>
<ColumnNumber>44</ColumnNumber>
<TopLine>1698</TopLine>
<CurrentLine>1727</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>101</TopLine>
<CurrentLine>105</CurrentLine>
<ColumnNumber>26</ColumnNumber>
<TopLine>105</TopLine>
<CurrentLine>106</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
<Name>main.c</Name>
<ColumnNumber>56</ColumnNumber>
<TopLine>51</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>208</TopLine>
<CurrentLine>227</CurrentLine>
<ColumnNumber>7</ColumnNumber>
<TopLine>293</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>35</TopLine>
<TopLine>34</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>52</ColumnNumber>
<TopLine>1108</TopLine>
<ColumnNumber>54</ColumnNumber>
<TopLine>1088</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>114</CurrentLine>
<ColumnNumber>20</ColumnNumber>
<TopLine>79</TopLine>
<CurrentLine>111</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>
......
......@@ -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>109</LineNumber>
<LineNumber>107</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>24326</Address>
<Address>25830</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\109</Expression>
<Expression>\\AllToOneThermostatPannel\User/src/mfg_factort.c\107</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>105</LineNumber>
<LineNumber>700</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>24322</Address>
<Address>2320</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>
......
......@@ -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>
......
[Version]
Nu_LinkVersion=V5.14
[Process]
ProcessID=0x00001054
ProcessCreationTime_L=0xc8cc9aaa
ProcessCreationTime_H=0x01d6dcdf
ProcessID=0x00005b14
ProcessCreationTime_L=0xb5a87b5a
ProcessCreationTime_H=0x01d71acb
NuLinkID=0x18101887
NuLinkID0=0x18101887
NuLinkIDs_Count=0x00000001
......
......@@ -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
{
......
......@@ -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; \
......
......@@ -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;
u8 config_page2_value;
u16 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);
......
......@@ -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);
......
......@@ -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");
......
......@@ -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 ButtonShortEvent:
case Button0_5sLongEvent:
{
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 ButtonShortEvent:
case Button0_5sLongEvent:
{
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 <= 160) //美的空调温度调节范围 17度 - 30度
Oled_Display_Info.Air_Device.set_temperature = 160;
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 <= 200) //美的空调温度调节范围 17度 - 30度
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
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
}
......@@ -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, 1000, 70);
PWM_ConfigOutputChannel(PWM, 0, 1300, 80);
//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, 1000, 0);
i = 0;
PWM_ConfigOutputChannel(PWM, 0, 1300, 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, 1000, 70);
PWM_ConfigOutputChannel(PWM, 0, 1300, 80);
}
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, 1000, 0);
if(i == 2*Spake_Continue_Time_ms+Spake_Interval_Time_ms)
PWM_ConfigOutputChannel(PWM, 0, 1300, 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 = 330;
temp_close_time = 500;
temp_open_time = 250;
temp_close_time = 200;
#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;
......
......@@ -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,0x11,0,0,0,0,{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{1,0,0,0,260,0,3,0,5,0,2,1,0,0,3000,0,0xff,0xff,0},{1,0,0,0,260,0,2,0,DEV_TYPE,0,0,0},{1,0,0,0,0,2,1,0,0,0,3000,0}};
OLED_ALL_DSD Oled_Display_Info = { 1,0,1,0,0,0x20,0,0,0,{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{0,0,0,0,260,0,3,0,5,0,2,1,0,0,3000,0,0xff,0xff,0},{0,0,0,0,260,0,2,0,DEV_TYPE,0,0,0},{0,0,0,0,0,2,1,0,0,0,3000,0}};
#elif DEVICE_TYPE_FLOOR_HEATING
OLED_ALL_DSD Oled_Display_Info = { 2,0,2,0,0,0x11,0,0,0,0,{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{1,0,0,0,260,0,3,0,5,0,2,1,0,0,3000,0,0xff,0xff,0},{1,0,0,0,260,0,2,0,DEV_TYPE,0,0,0},{1,0,0,0,0,2,1,0,0,0,3000,0}};
OLED_ALL_DSD Oled_Display_Info = { 2,0,2,0,0,0x20,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,0x11,0,0,0,0,{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},{1,0,0,0,260,0,3,0,5,0,2,1,0,0,3000,0,0xff,0xff,0},{1,0,0,0,260,0,2,0,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,0x20,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_Current_Temper(s16 temper)
void Display_Set_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);
}
......
......@@ -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
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment