jit.off()
--[[
*****************************************************************************************
* Script Name :  A333.ecam_fws320.lua
* Process: FWS Warning Monitor
*
* Author Name :	Jim Gregory
*
* Revisions:
* -- DATE --  --- REV NO ---  --- DESCRIPTION -------------------------------------------
*
*
*
*
*
*****************************************************************************************
*       					     COPYRIGHT © 2021, 2022
*					 	   L A M I N A R   R E S E A R C H
*								  ALL RIGHTS RESERVED
*****************************************************************************************
--]]


--print("LOAD: A333.ecam_fws320.lua")

--*************************************************************************************--
--** 					              XLUA GLOBALS              				     **--
--*************************************************************************************--

--[[

SIM_PERIOD: this contains the duration of the current frame in seconds (so it is alway a
fraction).  Use this to normalize rates,  e.g. to add 3 units of fuel per second in a
per-frame callback you’d do fuel = fuel + 3 * SIM_PERIOD.


IN_REPLAY: evaluates to 0 if replay is off, 1 if replay mode is on

--]]


--*************************************************************************************--
--** 					               CONSTANTS                    				 **--
--*************************************************************************************--



--*************************************************************************************--
--** 					            GLOBAL VARIABLES                				 **--
--*************************************************************************************--



--*************************************************************************************--
--** 					            LOCAL VARIABLES                 				 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				             FIND X-PLANE DATAREFS            			    	 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				             FIND X-PLANE COMMANDS                   	    	 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				             FIND CUSTOM DATAREFS             			    	 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				             FIND CUSTOM COMMANDS								**--
--*************************************************************************************--



--*************************************************************************************--
--** 				        CREATE READ-ONLY CUSTOM DATAREFS               	         **--
--*************************************************************************************--



--*************************************************************************************--
--** 				       READ-WRITE CUSTOM DATAREF HANDLERS     	        	     **--
--*************************************************************************************--



--*************************************************************************************--
--** 				       CREATE READ-WRITE CUSTOM DATAREFS                         **--
--*************************************************************************************--



--*************************************************************************************--
--** 				            CUSTOM COMMAND HANDLERS            				     **--
--*************************************************************************************--



--*************************************************************************************--
--** 				             CREATE CUSTOM COMMANDS              			     **--
--*************************************************************************************--



--*************************************************************************************--
--** 				          X-PLANE WRAP COMMAND HANDLERS              	    	 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				              WRAP X-PLANE COMMANDS                  	    	 **--
--*************************************************************************************--


--*************************************************************************************--
--** 				         X-PLANE REPLACE COMMAND HANDLERS              	    	 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				            REPLACE X-PLANE COMMANDS                  	    	 **--
--*************************************************************************************--



--*************************************************************************************--
--** 					          OBJECT CONSTRUCTORS         		        		 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				                 CREATE OBJECTS              	     			 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				              FUNCTION DEFINITIONS         	    				 **--
--*************************************************************************************--

function A333_fws_ewd_monitor()

	-- WARNING CHECK FOR E/WD ZONE 0 (LEFT) CUE
	local cueZone0ContainsWarnings = false
	for _, v in ipairs(A333_ewd_msg_cue_L) do
		if A333_ewd_msg[v.Name].FailType == 1 or A333_ewd_msg[v.Name].FailType == 2 then
			cueZone0ContainsWarnings = true
		end
	end

	-- WARNING CHECK FOR E/WD ZONE 1 (RIGHT) CUE
	local cueZone1ContainsWarnings = false
	for _, v in ipairs(A333_ewd_msg_cue_R) do
		if A333_ewd_msg[v.Name].FailType >= 1 and A333_ewd_msg[v.Name].FailType <= 4 then
			cueZone1ContainsWarnings = true
		end
	end


	-- SET THE OUTPUT
	for _, msg in pairs(A333_ewd_msg) do

		local output

		if msg.Monitor.video.IN == 0 then
			output = 0

		elseif msg.Monitor.video.IN == 1 then

			-- OUTPUT ACTIVATION
			if msg.Inhibit[A333DR_flight_phase] == 0								-- NOT FLIGHT PHASE INHIBITED
				or msg.Inhibit[A333DR_flight_phase] == 1 and ZFPION == true			-- INHIBITED WITH INHIBITION OVERRIDE
			then
				output = 1
			end

			-- OUTPUT DEACTIVATION
			if output == 1 then

				if msg.Monitor.video.OUT == 2 then   								-- (CLR) THIS WARNING WAS CLEARED BY THE CLR PUSHBUTTON
					output = 2
				end

				-- E/WD ZONE 0 (LEFT) MEMO AND CONFIG MEMO SUPPRESSION
				if msg.Zone == 0 then												-- E/WD ZONE 0 (LEFT)
					if cueZone0ContainsWarnings then								-- CUE CONTAINS WARNINGS
						if msg.FailType == 5 or msg.FailType == 6 then				-- ONLY CONSIDER MEMOS AND CONFIG MEMOS
							output = 4												-- SUPPRESSES THE INSERTION OF MEMOS INTO THE CUE TABLE
						end
					end
				end

				-- E/WD ZONE 1 (RIGHT) MEMO AND CONFIG MEMO SUPPRESSION
				if msg.Zone == 1 then												-- E/WD ZONE 1 (RIGHT)
					if cueZone1ContainsWarnings then								-- CUE CONTAINS WARNINGS
						if msg.FailType == 5 or msg.FailType == 6 then				-- ONLY CONSIDER MEMOS AND CONFIG MEMOS
							output = 4												-- SUPPRESSES THE INSERTION OF MEMOS INTO THE CUE TABLE
						end
					end
				end
			end
		end


		-- SET THE VIDEO OUTPUT
		msg.Monitor.video.OUT = output

	end

end









--*************************************************************************************--
--** 				                   PROCESSING             	     	  			 **--
--*************************************************************************************--

function A333_fws_320()

	A333_fws_ewd_monitor()

end



--*************************************************************************************--
--** 				                 EVENT CALLBACKS           	    	 			 **--
--*************************************************************************************--



--*************************************************************************************--
--** 				               SUB-SCRIPT LOADING             	     			 **--
--*************************************************************************************--

-- dofile("fileName.lua")







