phillip hommel Geschrieben 20. November 2003 Teilen Geschrieben 20. November 2003 Hallo zusammen, ich bin grade dran, für ein 737-Homecockpit die Software zu schreiben, und werde dies mit Borland Delphi realisieren. Allerdings habe ich das problem, dass einige werte die ich über die Offsets vom FSUIPC bekomme nicht richtig umgerechnet werden. So funkionier der VS-Wert nur im Positiven (steigen) bereich, sobal ich sinke (ab -1ft/min) kommt irgendein 10stelliger unregelmässig wechselnder wert heraus. Ähnlich ist es bei Bank- und Pitch-Angle oder Latitude und Longitude, da kommen auch nur sehr seltsame werte heruas, aobwohl ich diese mit den werten aus der FSUIPC for Programmers.Doc umgerechnet habe... kann mir da jmd behilflich sein, z.B. den quelltextauszug zum auslesen, verarbeiten und anzeigen der VS in nem editorfenster? grüssle Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Men Beglinger Geschrieben 20. November 2003 Teilen Geschrieben 20. November 2003 Hallo Philip - und herzlich willkommen im Forum ;) Also ich kenne weder FSUIPC noch Delphi sonderlich gut aber ich rate mal :D Könnte es sein, dass die Werte von FSUIPC in einer "signed" Variable gespeichert werden - also keine Negativen Zahlen zulassen? Dann spielt der Wert nähmlich normalerweise so verrückt wie du es beschreibst. Eventuell gibts auch einen Speicherüberlauf also die Variable (ein Integer, oder?) die so grossen Zahlen nicht korekt speichern kann. Vielleicht mal auf "float" oder "double" wechseln. Naja ist schon ein Schuss ins Blaue aber vielleicht bringts was :) Gruss, Men Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
phillip hommel Geschrieben 20. November 2003 Autor Teilen Geschrieben 20. November 2003 ich speichere ale werte als REAL variable... wie kann ich denn diese "signed" variable so bearbeiten, dass sie korrekt verwendet werden kann? gruss Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Men Beglinger Geschrieben 20. November 2003 Teilen Geschrieben 20. November 2003 Hm, ich denke real ist nicht die erste Wahl :confused: Aus der Doku die du erwähnt hast habe ich mal folgendes rauskopiert: Vertical speed, signed, as 256 * metres/sec. For the more usual ft/min you need to apply the conversion *60*3.28084/256 Dort steht tatsächlich, dass der Wert NIE negativ sein kann (eben dieses "signed"). Ausserdem steht im Dok auch noch, dass der Rückgabewert ein 4-byte Type ist. In Delphi gibts: LongWord: 0 bis 4,294,967,295 und LongInt: -2,147,483,648 bis 2,147,483,647 Da der Rückgabewert nie negativ ist würde ich es mal mit LongWord probieren.... Nimm dann auch mal die Berechnung raus (*60*3.28084/256). Vielleicht gibts auch dort noch ein Durcheinander, da mit Ganzzahlen und Kommazahlen gerechnet wird. D.h: Wenn du eine Ganzzahl mit einer Gleitkommazahl multiplizierst wird automatisch der Datentyp intern geparst und auf z.Bsp. Double gemappt. Wenn diese Gleitkommazahl dann einer Ganzzahl zugewiesen wird ist das Ergebnis nicht richtig. Ob du steigst oder sinkst musst du dann wahrscheinlich mit dem Offset 0x0578 ermitteln. So, ich hoffe das hilft jetzt ein wenig weiter. Ansonsten müsstet du schon ein wenig Code posten. Gruss, Men Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
phillip hommel Geschrieben 20. November 2003 Autor Teilen Geschrieben 20. November 2003 o578 ist doch der pitch-angle, also anstellwinkel, ich kann doch auch mit 3°Nose ab trotzdem sinken (flare). habe das noch gefunden: 0842 2 Vertical speed in metres per minute, but with –ve for UP, +ve for DOWN. Multiply by 3.28084 and reverse the sign for the normal fp measure. This works even in slew mode (except in FS2002). Sollte doch auch gehn oder? allerdings hatte ich hierbei das selbe problem mit den negativen werten... grüssle Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.