![]() |
ok, danke hab ich auch grad rausgefunden, ich kamn auf extended nur durch die fehlermeldung "inkompatible typen string und extended"...ich komm dem ganzen immer näher, nur bei lat und logitude kommt noch irgenden quatsch raus und bei vs hab ich das problem dass der POSITIVE wert immer stimmt, sobald man aber sinkt, also ab -1 ft/min kommt wieder ein POSTIVER 9 oder 10 stelliger wert raus...falsches format???
|
hmmm, hab grad noch ein grosses problem entdeckt: ich kann in der Delphi Paintbox einen text (tcanvas.text) nur "richtigrum" also horizontal ausgerichtet schreiben, in der iriginal B737 ist aber ZB um das ND im RoseMode die Gradzahlen tangential zum Kreismittelpunkt ausgerichtet(also bei hdg=0 steh die 180° "auf dem Kopf)...gibts da nen trick das zu realisieren?
grüssle |
Werte für IAS
Hallo Phil,
die Ansteuerung der Servos meiner Analogintrumente programmiere ich in Visual Basic. Den Wert für die IAS ermittele ich folgendermaßen: If FSUIPC_Read(&H2BD, 4, VarPtr(speed), dwspeed) Then If FSUIPC_Process(dwspeed) Then speedvalue = Format((speed) * (2), "000") End If End If lblias.Caption = Format((speed) * 2, "000") Funktioniert einwandfrei. Vielleicht hilft es Dir weiter! Viele Grüße Günter |
Hallo Phil,
mein Beitrag war wohl etwas zu spät. Hans Hartmann hat ja schon in etwa die gleiche Antwort gegeben. Nichts für ungut ! Gruß Günter |
Jo, IAS hab ich inzwischen, mein Problem sind die werte für VS, Heading (kann ich die noch wo lesen oder nur über die "whiskey compas degrees"??) alle winkelwerte, also auch bank und pitch angle und die Latitude und Longitude.
Grüssle Phil |
Hdg, VS , Pitch , Bank
Hallo Phil,
hier einige Auszüge , die o.g. Werte betreffen: Heading ins Label schreiben If FSUIPC_Read(&H583, 4, VarPtr(hdg), dwHeading) Then If FSUIPC_Process(dwHeading) Then lblfshdg.Caption = Format((hdg * 1.4117647), "000") '-------------------------------------------------------------- ' Pitch ins Label schreiben If FSUIPC_Read(&H57A, 4, VarPtr(pitch), dwpitch) Then If FSUIPC_Process(dwpitch) Then lblpitch.Caption = Format(pitch * 0.0256 * (-0.25), "00") '-------------------------------------------------------------- ' Bank ins Label schreiben If FSUIPC_Read(&H57E, 4, VarPtr(bank), dwbank) Then ' "Read" proceeded without any problems If FSUIPC_Process(dwbank) Then ' "Process" proceeded without any problems End If End If lblbank.Caption = Format((bank * 0.0256 / 4), "00") '-------------------------------------------------------------- ' Vertikal ins Label schreiben If FSUIPC_Read(&H2C8, 4, VarPtr(vert), dwvert) Then If FSUIPC_Process(dwvert) Then lblvsi.Caption = Format((vert * 0.768946845), "0000") End If End If Viele Grüße Günter |
hi, ist das java? werde es mal versuchen so zu machen...grüssle
|
äääääh, wieso "H"??? bei hex werten gehts doch von 0-9 und dann A-F...wo kommen die Hs in den offsets aus deinen beispielen hjer? grüssle Phil
|
Hallo,
die Sprache ist Visual Basic und das "H" vor der Hex Zahl macht dem Programm die Variable als Hex bekannt. Die eigentliche Variable ist natürlich ohne "H". Gruß Günter |
Hi Phil,
bzgl. negativer Werte (bei der V/S) ... nicht, daß ich wirklich Ahnung von FSUIPC-Programmierung hättte (allerdings von anderen FS- im besonderen den PS1.3-Interfaces), aber mir scheint, du erwartest einen Integer (also einen vorzeichenbehafteten Wert) und bekommst ein Word (DWORD etc ... was auch immer) zurück. Ein übliches Problem beim Programmieren ... der Computer kennt nur z.B. Bytes mit Werten von 0 bis 255. Ein ShortInt(eger) sei nun eine Variable mit dem Wertebereich -128..127 und sie werde in einem Byte gespeicher. Für Werte von 0..127 ist das einfach, negative Werte werden einfach von oben herab gezählt. 255 entspricht dann - 1, 254 wird zu -2, 253 zu -3 und so weiter. Auf gut Deutsch, das höchste Bit im Byte speichert das Vorzeichen (0 = +, 1 = -1). So wird es womöglich auch bei dir sein. > in der iriginal B737 ist aber ZB um das ND im RoseMode die Gradzahlen > tangential zum Kreismittelpunkt ausgerichtet(also bei hdg=0 steh die > 180° "auf dem Kopf)...gibts da nen trick das zu realisieren? Vergiss Tcanvas und erfinde das Rat nicht neu. Tcanvas ist vielleicht einfach, aber einfach für ein ND viel zu langsam. Verwende lieber eine vorhandenen schnelle Grafikschnittstelle wie DirectX oder OpenGL. Für beide gibt es Header und Units für Delphi. ;) Ich persönliche bevorzuge OpenGL für mein ND, weil ich es für eleganter halte... Markus p.s. Hans hat schon recht ... du hast dir viel vorgenommen. Geh es am besten Stück für Stück an. ;) |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 21:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag