SSブログ

XP11 ZIBOにRevsim TQを接続する その3 [X-Plane]

Revsim TQからXP11 ZIBO737へフラップを入力します。

これはめちゃめちゃ簡単。

Revsimのフラップポテンショメーターの値を読み、一定の範囲内に入ったらFLAP Xをセットするという命令を繰り返すだけ。

我が家のRevsimポテンショメーターは0から228なので、入力値を228で割って0から1の値に換算。
sim上のフラップ0からフラップ40までの位置をそれぞれ設定しておき、±0.05の範囲に入ったら、各フラップに設定するコマンドを投げてやる、という簡単なプログラム。




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

DCMOTORS_DEVICE = 0

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

dcmDR_input_analog	= find_dataref("pikitanga/ocusbmapper/dcm" .. DCMOTORS_DEVICE .. "/input/analog")
dcmDR_output_motor	= find_dataref("pikitanga/ocusbmapper/dcm" .. DCMOTORS_DEVICE .. "/output/motor")

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

simDR_flap0		= find_command("laminar/B738/push_button/flaps_0")
simDR_flap1		= find_command("laminar/B738/push_button/flaps_1")
simDR_flap2		= find_command("laminar/B738/push_button/flaps_2")
simDR_flap5		= find_command("laminar/B738/push_button/flaps_5")
simDR_flap10		= find_command("laminar/B738/push_button/flaps_10")
simDR_flap15		= find_command("laminar/B738/push_button/flaps_15")
simDR_flap25		= find_command("laminar/B738/push_button/flaps_25")
simDR_flap30		= find_command("laminar/B738/push_button/flaps_30")
simDR_flap40		= find_command("laminar/B738/push_button/flaps_40")

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

flaps_0                = 0.008772
flaps_1                = 0.100877
flaps_2                = 0.22807
flaps_5                = 0.381579
flaps_10              = 0.52193
flaps_15              = 0.653509
flaps_25              = 0.798246
flaps_30              = 0.894737
flaps_40              = 1.004386
flap_plus               = 0.05
flap_minus            = -0.05

--*************************************************************************************--
--** 				                 SYSTEM FUNCTIONS           	    			 **--
--*************************************************************************************--

function process_flaps()

-- flap position
revsim_flaps_pos = dcmDR_input_analog[2] / 228
	if (revsim_flaps_pos < flaps_0 + flap_plus) then
		simDR_flap0:once()
	end

	if (revsim_flaps_pos < flaps_1 + flap_plus) then
		if (revsim_flaps_pos > flaps_1 + flap_minus) then
			simDR_flap1:once()
		end
	end

	if (revsim_flaps_pos < flaps_2 + flap_plus) then
		if (revsim_flaps_pos > flaps_2 + flap_minus) then
			simDR_flap2:once()
		end
	end

	if (revsim_flaps_pos < flaps_5 + flap_plus) then
		if (revsim_flaps_pos > flaps_5 + flap_minus) then
			simDR_flap5:once()
		end
	end

	if (revsim_flaps_pos < flaps_10 + flap_plus) then
		if (revsim_flaps_pos > flaps_10 + flap_minus) then
			simDR_flap10:once()
		end
	end

	if (revsim_flaps_pos < flaps_15 + flap_plus) then
		if (revsim_flaps_pos > flaps_15 + flap_minus) then
			simDR_flap15:once()
		end
	end

	if (revsim_flaps_pos < flaps_25 + flap_plus) then
		if (revsim_flaps_pos > flaps_25 + flap_minus) then
			simDR_flap25:once()
		end
	end

	if (revsim_flaps_pos < flaps_30 + flap_plus) then
		if (revsim_flaps_pos > flaps_30 + flap_minus) then
			simDR_flap30:once()
		end
	end

	if (revsim_flaps_pos > flaps_40 + flap_minus) then
			simDR_flap40:once()
	end

end


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

function before_physics()

	process_flaps()

end



動作状況


次はトリムインジケーターとトリムホイールを設定します。






nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。