--[[
{***************************************************************************}
{ S4_logic01                                                11/10/2012      }
{                                                                           }
{	Eelectron S.p.A.                                                        }
{   Via Magenta 77/22                                                       }
{   I-20017 Rho(MI)                                                         }
{   Web: www.eelectron.com                                                  }
{                                                                           }
{ The source code is given as is, WITHOUT WARRANTY OF ANY KIND.             }
{ The author is not responsible for any possible damage done due to the     }
{ use of this code.                                                         }
{***************************************************************************}
--]]


-- ***************************
-- variables
-- ***************************
out_or_0 = 0;
out_or_1 = 0;
out_or_2 = 0;
out_or_3 = 0;
out_or_4 = 0;
out_or_5 = 0;
out_or_6 = 0;


-- ***************************
-- 
-- ***************************
function myLogic(x)
-- 
-- first OR condition
--
  if ( x >= 222 and x <= 225 ) then
    if  ((knx.get_integer(222) == 1) or (knx.get_integer(223) == 1) 
	  or (knx.get_integer(224) == 1) or (knx.get_integer(225) == 1)) then        
		out_or_0 = 1;
	else
	    out_or_0 = 0;
	end
	
	knx.set_integer(226,0,out_or_0);
  end
  
 
-- 
-- second OR condition
--
  if ( x >= 227 and x <= 230 ) then
    if ((knx.get_integer(227) == 1) or (knx.get_integer(228) == 1) 
	  or (knx.get_integer(229) == 1) or (knx.get_integer(230) == 1)) then
        out_or_1 = 1;	
	else
	    out_or_1 = 0;
	end
	
 	  knx.set_integer(231,0,out_or_1);	 
  end 
  
-- 
-- third OR condition
--
  if ( x >= 232 and x <= 235 ) then
    if ((knx.get_integer(232) == 1) or (knx.get_integer(233) == 1) 
	  or (knx.get_integer(234) == 1) or (knx.get_integer(235) == 1)) then
		out_or_2 = 1;	
	else
	    out_or_2 = 0;
	end
	
		knx.set_integer(236,0,out_or_2);	
  end 
  
-- 
-- fourth OR condition
--
  if ( x >= 237 and x <= 240 ) then
    if ((knx.get_integer(237) == 1) or (knx.get_integer(238) == 1) 
	  or (knx.get_integer(239) == 1) or (knx.get_integer(240) == 1)) then
		out_or_3 = 1;	
	else
	    out_or_3 = 0;
	end
	
		knx.set_integer(241,0,out_or_3);	
  end 
    
-- 
-- fifth OR condition
--
  if ( x >= 242 and x <= 245 ) then
    if ((knx.get_integer(242) == 1) or (knx.get_integer(243) == 1) 
	  or (knx.get_integer(244) == 1) or (knx.get_integer(245) == 1)) then
		out_or_4 = 1;	
	else
	    out_or_4 = 0;
	end
	
		knx.set_integer(246,0,out_or_4);	
  end 
  
-- 
-- sixth OR condition
--
  if ( x >= 247 and x <= 250 ) then
    if ((knx.get_integer(247) == 1) or (knx.get_integer(248) == 1) 
	  or (knx.get_integer(249) == 1) or (knx.get_integer(250) == 1)) then
		out_or_5 = 1;	
	else
	    out_or_5 = 0;
	end
	
		knx.set_integer(251,0,out_or_5);	
  end 
  
--
-- all
--  
  if ( out_or_0 == 1 or out_or_1 == 1 or out_or_2 == 1 
      or out_or_3 == 1 or out_or_4 == 1 or out_or_5 == 1 ) then
        knx.set_integer(252,0,1);
	else
	  knx.set_integer(252,0,0);		
  end   
end

-- ***************************
-- call back for value changed
-- ***************************
function knx_value_changed(x)
  myLogic(x);
end

-- ***************************
-- call back for value update
-- ***************************
function knx_value_update(x)
  myLogic(x);
end


--[[
  EOF 
--]]
