13 Nov

D-ALAM – DATALOADER Display

Irgendwann ist wirklich alles fertig gebaut – leider. Wirklich alles fertig? Na ja, man könnte ja das DATALOADER Display „beleben“ und ein LCD Display einbauen. Ein ARDUINO mit unbelegten Outputs hatte ich ja noch…

Als Display kommt ein HD44780 16×2 LCD Modul Display Bundle mit I2C Schnittstelle zum Einsatz (Link zu Amazon). Das Display wird mit MOBIFLIGHT betrieben.

Das Display habe ich unten an das Panel geschraubt. Da keine Halterung vorhanden war, habe ich Schrauben an das Panel geklebt und kann das Display mit einer Mutter fixieren.

Die Verkabelung habe ich auf Basis dieses Tutorials so realisiert:

KabelDisplayArduino
SchwarzGNDGND
WeißVCC+5V
BlauSDAPin 20 (SDA)
GrünSCLPin 21 (SCL)

Im Mobiflight habe die beiden Lines so konfiguriert, dass Line 1 die Airline und das Callsign aus der aircraft.cfg anzeigt (Offset 0x3148 und 0x3130). Für die Line 2 habe ich in mein GSX Script eine Statusabfrage implementiert. Diese ist in meinem Softwareprojekt „peroJeeHellExtPWRbyGSX“ enthalten.

Aktuell schaut das Script so aus (Änderungen werden hier nicht gepflegt und es wird nicht benötigt, wenn man mein GSX Script verwendet):

function checkDataloader()
	local simStatus = ipc.readUB(0x3402)
	
	-- GSX Status
	if (BOARDING_STATE == 4 or BOARDING_STATE == 5) then 
		line2 = "BDG in progress"
	elseif (BOARDING_STATE == 6 and engineLeftRunning==0 and engineRightRunning==0) then		
		line2 = "BDG completed"
	elseif (DEBOARDING_STATE == 4 or DEBOARDING_STATE == 5) then 
		line2 = "DBDG in progress"
	elseif (DEBOARDING_STATE == 6 and engineLeftRunning==0 and engineRightRunning==0) then
		line2 = "DBDG completed"
	else		
		line2 = "In Operation"		
	end

	-- Simulator Status
	if (logic.And(simStatus,1) ~= 0) and (logic.And(simStatus,2) ~= 0) then
		line2 = "** PAUSE/SLEW **"
	elseif (logic.And(simStatus,1) ~= 0) then	
		line2 = "**** PAUSED ****"
	elseif (logic.And(simStatus,2) ~= 0) then
		line2 = "***** SLEW *****"	
	end
	
	-- Write to Offset
	if (ipc.readSTR(0x66F1,16) ~= line2) then ipc.writeSTR(0x66F1, line2, 16) end	
	
end

Der Status für GSX wurde final nochmal angepasst:

  • BDG in progress
  • BDG completed
  • DEBDG in progress
  • DEBDG completed