| 
					
				 | 
			
			
				@@ -151,9 +151,20 @@ class IO_Digital(IO_Module): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.set_outputs(SysUtils.set_bit(ret, output - 1, val))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def set_outputs_save(self, val):
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'Текущее состояние выходов в обычном режиме'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.modbus.write_holding_register(DioReg.OUT_BITS_SAVE.value, val)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def set_output_save(self, output, val):
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'Установить значение на конкретном выходе [1..8]'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ret = self.modbus.read_holding_registers(DioReg.OUT_BITS_SAVE.value, 1)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.set_outputs_save(SysUtils.set_bit(ret, output - 1, val))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_outputs_mode(self, val):
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         'Режим работы выходов (битовое поле)'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.modbus.write_holding_register(DioReg.OUT_MODE.value, 1)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.modbus.write_holding_register(DioReg.OUT_MODE.value, val)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_output_mode(self, output, val):
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -164,13 +175,13 @@ class IO_Digital(IO_Module): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_outputs_mode_save(self, val):
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         'Режим работы выходов в безопасном режиме (битовое поле)'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.modbus.write_holding_register(DioReg.OUT_MODE_SAVE.value, 1)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.modbus.write_holding_register(DioReg.OUT_MODE_SAVE.value, val)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_output_mode_save(self, output, val):
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         'Установить режим работы конкретного выхода [1..8] в безопамном режиме'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ret = self.modbus.read_holding_registers(DioReg.OUT_MODE_SAVE.value, 1)[0]
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.set_outputs_mode(SysUtils.set_bit(ret, output - 1, val))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.set_outputs_mode_save(SysUtils.set_bit(ret, output - 1, val))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def print_inputs(self):
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -320,16 +331,31 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '''Режим работы'''
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dio.get_outputs_mode())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dio.get_outputs_mode_save())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # dio.set_outputs_mode(0b0010_1100)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs_state(0b0000_0001)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs_mode(0b0000_0000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs(0b0000_0001)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dio.get_outputs_mode())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    dio.set_outputs(0b1000_1001)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '''Текущие значения'''
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dio.get_outputs())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dio.get_outputs_save())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # dio.set_output_mode(3, 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs_state(0b1000_0000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_output_mode(8, 1)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs(0b1000_0000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs_state_save(0b0000_0000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs_save(0b0000_0000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs_state_save(0b1000_0000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_output_mode_save(8, 0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.set_outputs_save(0b1000_0000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dio.get_inputs_mode())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # for i in range(100):
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -342,6 +368,13 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # dio.sys.get_system_vars()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dio.sys.get_bat_votage())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '''Безопасный режим'''
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # print(dio.sys.get_save_delay())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # print(dio.sys.get_save_mode())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.sys.set_save_mode(0)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # print(dio.sys.get_save_mode())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    dio.sys.set_save_delay(5)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ''' Установить текущее время с учетом часового пояса'''
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # dev.sys.set_rtc()     
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -369,7 +402,7 @@ def main(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # print(dev.log.get_archive_entry(0, 1))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '''Сохранение настроек'''
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # dev.sys.save_sattings()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # dio.sys.save_sattings()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '''Настройки'''
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 |