![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Simulationen Alles zum Thema Simulation |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#11 |
Senior Member
![]() |
![]() Mir persönlich würde es schon reichen, einen 'Gauge-Platzierer' zu haben, damit vorhandene Gauges in eigenen Cockpit platziert werden können ohne dass man die Werte mühsam von Hand in der Panel.cfg eingeben muss. Gibt's sowas?
Gruss und in grosser Erwartung... Pascal
____________________________________
Setze den unerschrockensten Seemann, den kühnsten Flieger und den tapfersten Soldaten an einen Tisch, und was kommt dabei heraus? Die Summe ihrer Ängste. Winston Churchill |
![]() |
![]() |
![]() |
#12 |
Inventar
![]() Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908
|
![]() Biddesehr: www.cfgedit.com
|
![]() |
![]() |
![]() |
#13 |
Senior Member
![]() |
![]() Hey, merci vielmal!!!
![]() Grüässli us de Schwiiz Pascal
____________________________________
Setze den unerschrockensten Seemann, den kühnsten Flieger und den tapfersten Soldaten an einen Tisch, und was kommt dabei heraus? Die Summe ihrer Ängste. Winston Churchill |
![]() |
![]() |
![]() |
#14 | |
Veteran
![]() |
![]() Zitat:
Hier mal ein Beispiel. Erst der Code, danach das Ergebnis. Es ist ein relativ einfaches Gauge für die Kontrolle der Ruderfunktionen an einer 707. Man kann wohl nur erahnen welch ein Aufwand hinter solchen Projekten wie PMDG, PT TU154 oder Flight1 ATR steckt: Code:
// Project Boeing B707 Control Surfaces Source Code // Copyright 2004 Sven Goericke/Project Boeing. All rights reserved. char surfaces_gauge_name[] = GAUGE_NAME; extern PELEMENT_HEADER surfaces_list; extern MOUSERECT surfaces_mouse_rect[]; GAUGE_HEADER_FS700( GAUGE_W, surfaces_gauge_name, &surfaces_list, surfaces_mouse_rect, 0, 0, 0, 0 ); FLOAT64 FSAPI rudder_slider_cb( PELEMENT_SLIDER pelement ) { FLOAT64 val = pelement-> source_var_x.var_value.n; if (val > 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; else if (val < 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; return val; } MAKE_SLIDER( rudder, SURF_RUDDER_BMP, NULL, 0, IMAGE_USE_TRANSPARENCY | IMAGE_USE_ERASE | IMAGE_USE_LUMINOUS, 0, { 98, 27 }, OBSOLETE_RUDDER_POS, rudder_slider_cb, 0.001, MODULE_VAR_NONE, NULL, 0); PELEMENT_HEADER surfaces_list1[]= { &rudder.header, NULL }; FLOAT64 FSAPI elevator_slider_cb( PELEMENT_SLIDER pelement ) { FLOAT64 val = pelement->source_var_y.var_value.n; if (val > 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; else if (val < 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; return val; } MAKE_SLIDER( elevator, SURF_ELEVATOR_BMP, &surfaces_list1, NULL, IMAGE_USE_TRANSPARENCY | IMAGE_USE_ERASE | IMAGE_USE_LUMINOUS, 0, { 81, 146 }, MODULE_VAR_NONE, NULL, 0, OBSOLETE_ELEVATOR_POS, elevator_slider_cb, -0.001 ); PELEMENT_HEADER surfaces_list2[]= { &elevator.header, NULL }; NONLINEARITY aileron_nonlinearity[] = { {{0, 132}, -16200, 0}, {{0, 54}, 16200, 0} }; #define aileron_MIN_pos -16200 #define aileron_MAX_pos 16200 FLOAT64 FSAPI aileron_needle_cb( PELEMENT_NEEDLE pelement ) { FLOAT64 val = pelement->source_var.var_value.n; if (val > aileron_MAX_pos) val = aileron_MAX_pos; else if (val < aileron_MIN_pos) val = aileron_MIN_pos; else if (val > 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; else if (val < 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; return val; } MAKE_NEEDLE( aileron, SURF_AILERON_BMP, &surfaces_list2, NULL, IMAGE_USE_TRANSPARENCY | IMAGE_USE_ERASE | IMAGE_USE_LUMINOUS, 0, {99, 94}, {52, 2}, OBSOLETE_AILERON_POS, aileron_needle_cb, aileron_nonlinearity, 6 ) PELEMENT_HEADER surfaces_list3[]= { &aileron.header, NULL }; MAKE_STATIC( surf_background, SURF_BG_BMP, &surfaces_list3, NULL, IMAGE_USE_TRANSPARENCY | IMAGE_USE_LUMINOUS, 0, {0, 0} ) PELEMENT_HEADER surfaces_list = &surf_background.header; MOUSE_BEGIN( surfaces_mouse_rect, HELP_NONE, 0, 0 ) MOUSE_PARENT( 73,21,54,44, HELPID_GAUGE_YAW_TRIM) MOUSE_PARENT( 46,65,107,54, HELPID_GAUGE_ROLL_TRIM) MOUSE_PARENT( 76,119,47,58, HELPID_GAUGE_PITCH_TRIM) MOUSE_END ///////////////////////////////////////////////////////////////////////////// #undef GAUGE_NAME #undef GAUGEHDR_VAR_NAME #undef GAUGE_W ![]() ![]() Hier mal ein EPR-Gauge Hintergrund-Bitmap was mein "Kumpane" schon nachbearbeitet hat: ![]() Dabei steht noch nicht fest ob der Code so bleibt. Das Gauge funktioniert zwar. Nur steht noch nicht fest ob evtl. noch Abhängigkeiten zu anderen Systemen implementiert werden müssen. Es ist also auch wichtig das man sich gute Informationen über das jeweilige Flugzeug organisiert. Danach noch überlegen was man wie im FS umsetzen kann/möchte. Ich denke aber die meiste Zeit nehmen die Tests in Anspruch wenn es darum geht die Funktionen mit dem realen Vorbild zu vergleichen und Fehler allgemein auszumerzen. Viele Grüße |
|
![]() |
![]() |
![]() |
#15 |
Veteran
![]() |
![]() Kleiner Nachtrag
![]() Wie ich heute so mit der Straßenbahn unterwegs bin mache ich mir so meine Gedanken und da fällt mir doch tatsächlich noch etwas zu oberem Gauge ein: zumindest ein Parameter fehlt noch. Die Ruder eines Airliners funktionieren für gewöhnlich hydraulisch. Das Gauge funktioniert im Moment allerdings schon wenn elektrischer Strom fließt da nur eine Abfrage nach der Spannung stattfindet: Code:
if (val > 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; else if (val < 0 && (MainBusNo1Volts < 22 || MainBusNo2Volts < 22)) val = 0; Das ist also nicht ganz korrekt denn nur mit Strom allein bewegen sich die Ruder noch nicht. Ergo muß ich noch eine Abfrage nach dem Hydraulikdruck implementieren, womöglich noch jedes Hydrauliksystem einzeln. Das nur zur Info für diejenigen die interessiert was "hinter den Gauges" passiert ![]() Viele Grüße Edit: auf diesem Weg ist das auch nicht korrekt. Eine Abfrage des Hydraulikdruckes ist m.E. überflüssig-der FS bewegt die Ruder momentan ja trotzdem. Also muß man dem FS beibringen das er die Ruder nicht zu bewegen hat solange der Hydraulikdruck nicht ausreicht. Demzufolge sollte der bisherige Code stimmen da er ja die Position der Ruder abfragt... Ich glaub ich kauf mir eine Monatskarte für die Straßenbahn ![]() |
![]() |
![]() |
![]() |
#16 |
Jr. Member
![]() Registriert seit: 20.01.2003
Alter: 36
Beiträge: 39
|
![]() Die sehen Ja Klasse aus.....
![]() .... Aber ich habe ja schon probleme mie einfachen QBasic programmen...... ![]() MFG,jan
____________________________________
Immer auf die kleinen ![]() ![]() |
![]() |
![]() |
![]() |
#17 | |
Veteran
![]() |
![]() Zitat:
http://www.schellong.de/c.htm Viele Grüße |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|