--[[
{***************************************************************************}
{ S4_logic04                                                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;


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