From fa65993dc6b1a8dc4cda5215660d3d0118f18aa2 Mon Sep 17 00:00:00 2001 From: Anders Gidenstam Date: Wed, 28 Sep 2011 21:00:27 +0200 Subject: [PATCH 01/11] Moved the RAF Mk.9 bubble sextant to Aircraft/Instruments-3d. --- .../10_setting_knob.png | Bin 0 -> 41899 bytes .../RAF_Mk9_bubble_sextant.ac | 10434 ++++++++++++++++ .../RAF_Mk9_bubble_sextant.nas | 477 + .../RAF_Mk9_bubble_sextant.xml | 520 + .../RAF_Mk9_bubble_sextant/README | 210 + .../RAF_Mk9_bubble_sextant/degree_drum.png | Bin 0 -> 7952 bytes .../RAF_Mk9_bubble_sextant/leatherette.png | Bin 0 -> 62782 bytes .../RAF_Mk9_bubble_sextant/minute_drum.png | Bin 0 -> 14676 bytes 8 files changed, 11641 insertions(+) create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/10_setting_knob.png create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/RAF_Mk9_bubble_sextant.ac create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/RAF_Mk9_bubble_sextant.nas create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/RAF_Mk9_bubble_sextant.xml create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/README create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/degree_drum.png create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/leatherette.png create mode 100644 Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/minute_drum.png diff --git a/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/10_setting_knob.png b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/10_setting_knob.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbe81470ba88dd10257386aa41404ffa5ea5777 GIT binary patch literal 41899 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%0AJ{WM@s8%7;K6_MPN+@@4^PTr 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 180) roll = 180; + sextant.set_orientation(orient[0], orient[1], roll); + } else { + var view = "/sim/current-view/heading-offset-deg"; + var val = getprop(view) - delta; + if(val < 0) val = 0; + if(val > 360) val = 360; + setprop(view, val); + } + } +} + +var mouseY = func { + if (!handling.enabled) return; + if(__kbd.alt.getValue()) { + var delta = 3*cmdarg().getNode("offset").getValue(); + if(__kbd.shift.getValue() and handling.enabled) { + # Altitude adjustment + sextant.adjust_altitude_fine(delta); + } else { + var view = "/sim/current-view/pitch-offset-deg"; + var val = getprop(view) - delta; + if(val < -90) val = -90; + if(val > 90) val = 90; + setprop(view, val); + } + } +} + +var RAD = math.pi/180; +var DEG = 180/math.pi; + +############################################################################### +# Class for managing one RAF mk9 bubble sextant instrument. +var sextant = { + ################################################## + init : func (n=0) { + me.UPDATE_INTERVAL = 0.0; + me.loopid = 0; + me.base = + props.globals.getNode("instrumentation/sextant["~ n ~"]/", 1); + + ## Instrument properties + me.pitch_err = me.base.getNode("pitch-error-deg", 1); + me.pitch_err.setDoubleValue(0); + me.roll_err = me.base.getNode("roll-error-deg", 1); + me.roll_err.setDoubleValue(0); + me.setting_min = me.base.getNode("setting/min", 1); + me.setting_min.setDoubleValue(0); + me.setting_deg1 = me.base.getNode("setting/deg1", 1); + me.setting_deg1.setDoubleValue(0); # 0 - 10 deg fractional. + me.setting_deg10 = me.base.getNode("setting/deg10", 1); + me.setting_deg10.setDoubleValue(0); + me.bubble = me.base.getNode("bubble-norm", 1); + me.bubble.setDoubleValue(0); + me.serviceable = me.base.getNode("serviceable", 1); + me.serviceable.setBoolValue(1); + + ## The instrument's orientation in the aircraft frame + ## and position offset relative its initial position. + me.position = [me.base.getNode("offsets/x-m", 1), + me.base.getNode("offsets/y-m", 1), + me.base.getNode("offsets/z-m", 1)]; + me.heading = me.base.getNode("offsets/heading-deg", 1); + me.pitch = me.base.getNode("offsets/pitch-deg", 1); + me.roll = me.base.getNode("offsets/roll-deg", 1); + + me.position[0].setValue(0); + me.position[1].setValue(0); + me.position[2].setValue(0); + me.heading.setValue(0); + me.pitch.setValue(0); + me.roll.setValue(0); + + me.reset(); + + print("RAF Mk9 bubble sextant ... initialized"); + }, + ################################################## + set_position : func (x, y ,z) { + me.position[0].setValue(x); + me.position[1].setValue(y); + me.position[2].setValue(z); + }, + ################################################## + get_position : func (x, y ,z) { + return [me.position[0].getValue(), + me.position[1].getValue(), + me.position[2].getValue()]; + }, + ################################################## + set_orientation : func (heading, pitch, roll) { + me.heading.setValue(heading); + me.pitch.setValue(pitch); + me.roll.setValue(roll); + }, + ################################################## + get_orientation : func () { + return [me.heading.getValue(), + me.pitch.getValue(), + me.roll.getValue()]; + }, + ################################################## + step_10deg_knob : func (d) { + var val = me.setting_deg10.getValue() + (d < 0 ? -1 : 1); + if(val < 0) val = 0; + if(val > 8) val = 8; + me.setting_deg10.setValue(val); + }, + ################################################## + step_5deg_knob : func (d) { + var val = me.setting_deg1.getValue(); + var new = val; + if (d <= 0 and val >= 5.0) new -= 5.0; + if (d >= 0 and val < 5.0) new += 5.0; + if(new < 0.0) new = 0; + if(new > 10.0) new = 10; + me.setting_deg1.setValue(new); + }, + ################################################## + step_bubble_knob : func (d) { + var val = me.bubble.getValue() + d; + if(val < 0) val = 0; + if(val > 1) val = 1; + me.bubble.setValue(val); + }, + ################################################## + adjust_altitude_fine : func (d) { + var val = me.setting_deg1.getValue() - d; + if(val < 0) val = 0; + if(val > 10) val = 10; + + me.setting_deg1.setValue(val); + me.setting_min.setValue(60.0*val - 60*int(val)); + }, + ################################################## + get_altitude : func { + return 10.0 * me.setting_deg10.getValue() + me.setting_deg1.getValue(); + }, + ################################################## + reset : func { + me.loopid += 1; + me._loop_(me.loopid); + }, + ################################################## + update : func { + ## State data we need. + var heading_ac = getprop("/orientation/heading-deg") * RAD; + var pitch_ac = getprop("/orientation/pitch-deg") * RAD; + var roll_ac = getprop("/orientation/roll-deg") * RAD; + + var yaw_v = me.heading.getValue() * RAD; + var pitch_v = me.pitch.getValue() * RAD; + var roll_v = me.roll.getValue() * RAD; + + ## Compute local aircraft axes vectors in the local frame + ## Account for aircraft orientation. (x/y/z = front/left/up) + var T_ac = mulMM(mulMM(rotateZ(heading_ac), rotateY(pitch_ac)), + rotateX(roll_ac)); + ## Account for view orientation and sextant settings. + ## The sextant frame is assumed to coincide with the view frame + ## except that it is pitched down altitude deg around its local + ## Y axis. + var T_bs = mulMM(mulMM(mulMM(mulMM( + T_ac, + rotateZ(yaw_v)), + rotateY(pitch_v)), + rotateX(roll_v)), + rotateY(-me.get_altitude() * RAD)); + + var X_bs = mulMv(T_bs, X); + var Y_bs = mulMv(T_bs, Y); + var Z_bs = mulMv(T_bs, Z); + + ## Transform up in the local frame to the sextant frame. + var Up = mulMv([X_bs, Y_bs, Z_bs], Z); + var Up_xz = [Up[0], 0, Up[2]]; + var Up_yz = [0, Up[1], Up[2]]; + + ## Compute interesting angles in the sextant frame. + var p_err = angleV(Z, Up_xz); + if (scalar(Up_xz, X) < 0.0) { + p_err *= -1; + } + me.pitch_err.setValue(p_err*DEG); + + var r_err = angleV(Z, Up_yz); + if (scalar(Up_yz, Y) < 0.0) { + r_err *= -1; + } + me.roll_err.setValue(r_err*DEG); + }, + ################################################## + _loop_ : func(id) { + id == me.loopid or return; + me.update(); + settimer(func { me._loop_(id); }, me.UPDATE_INTERVAL, 1); + } +}; + +############################################################################### +## Singleton class for handling (i.e. moving / rotating) a sextant. +var handling = { + enabled : 0, + ################################################## + init : func (n=0) { + me.UPDATE_INTERVAL = 0.0; + me.loopid = 0; + me.lookthrough = 0; + + me.base = + props.globals.getNode("instrumentation/sextant["~ n ~"]/", 1); + + ## Instrument properties + me.altitude_deg = me.base.getNode("altitude-deg", 1); + me.altitude_deg.setDoubleValue(0); + + ## 3d model position properties + me.source_view = view.views[view.indexof(VIEW_NAME)]; + var src = me.source_view.getNode("config"); + me.offset = {x: src.getNode("z-offset-m").getValue(), + y: src.getNode("x-offset-m").getValue(), + z: src.getNode("y-offset-m").getValue()}; + + me.view_distance = me.base.getNode("view-distance-m", 1); + me.view_distance.setDoubleValue(2.0*VIEW_DISTANCE); + me.view_angle = me.base.getNode("view-angle-deg", 1); + me.view_angle.setDoubleValue(0.0); + + sextant.init(); + sextant.set_position + (STOWED.position.x, + STOWED.position.y, + STOWED.position.z); + sextant.set_orientation + (STOWED.orientation.heading, + STOWED.orientation.pitch, + STOWED.orientation.roll); + + ## Instrument "display" + me.display = screen.display.new(20, 10); + me.display.add(me.altitude_deg, + props.globals.getNode("/sim/time/gmt")); + + me.disable(); + + print("RAF Mk9 bubble sextant handling ... initialized"); + }, + ################################################## + toggle : func { + if (me.enabled) { + me.disable(); + } else { + me.enable(); + } + }, + ################################################## + enable : func { + me.enabled = 1; + me.display.toggle(); + + me.loopid += 1; + me._loop_(me.loopid); + }, + ################################################## + toggle_look_through : func { + if (!me.enabled) return; + if (!me.lookthrough) { + me.lookthrough = 1; + + me.view_distance.setDoubleValue(VIEW_DISTANCE); + me.view_angle.setValue(0.0); + + me.old_view = view.point.save(); + setprop("/sim/current-view/field-of-view", FOV); + } else { + me.lookthrough = 0; + setprop("/sim/current-view/field-of-view", + me.old_view.getChild("field-of-view").getValue()); +# view.point.restore(); + me.view_angle.setValue(-90.0); + me.view_distance.setValue(2.0*VIEW_DISTANCE); + } + }, + ################################################## + disable : func { + me.enabled = 0; + me.lookthrough = 0; + me.display.toggle(); + + sextant.set_position + (STOWED.position.x, + STOWED.position.y, + STOWED.position.z); + sextant.set_orientation + (STOWED.orientation.heading, + STOWED.orientation.pitch, + STOWED.orientation.roll); + me.view_distance.setDoubleValue(0.0); + me.view_angle.setValue(0.0); + + if (me.lookthrough) { + me.toggle_look_through(); + } + }, + ################################################## + update : func { + ## Move the 3d model. + if (view.current == me.source_view) { + var src = props.globals.getNode("/sim/current-view"); + sextant.set_position + (src.getNode("z-offset-m").getValue() - me.offset.x, + src.getNode("x-offset-m").getValue() - me.offset.y, + src.getNode("y-offset-m").getValue() - me.offset.z); + var old = sextant.get_orientation(); + sextant.set_orientation + (getprop("/sim/current-view/heading-offset-deg"), + getprop("/sim/current-view/pitch-offset-deg"), + old[2]); + me.altitude_deg.setValue(sextant.get_altitude()); + } + }, + ################################################## + _loop_ : func(id) { + id == me.loopid and me.enabled or return; + me.update(); + settimer(func { me._loop_(id); }, me.UPDATE_INTERVAL, 1); + } +}; + +############################################################################### +setlistener("/sim/signals/fdm-initialized", func { + handling.init(); +}); + +############################################################################### +## Ugly matrix math as needed. +## Probably horribly inefficient matrix representation: +## M[row][col] = [[row1], [row2], [row3]] +## v[row] = [x, y, z] + +var X = [1, 0, 0]; +var Y = [0, 1, 0]; +var Z = [0, 0, 1]; +var id = [X, Y, Z]; + +var mulMv = func(M, v) { + return [M[0][0]*v[0] + M[0][1]*v[1] + M[0][2]*v[2], + M[1][0]*v[0] + M[1][1]*v[1] + M[1][2]*v[2], + M[2][0]*v[0] + M[2][1]*v[1] + M[2][2]*v[2]]; +} + +var mulMM = func(A, B) { + return [[A[0][0]*B[0][0] + A[0][1]*B[1][0] + A[0][2]*B[2][0], + A[0][0]*B[0][1] + A[0][1]*B[1][1] + A[0][2]*B[2][1], + A[0][0]*B[0][2] + A[0][1]*B[1][2] + A[0][2]*B[2][2]], + [A[1][0]*B[0][0] + A[1][1]*B[1][0] + A[1][2]*B[2][0], + A[1][0]*B[0][1] + A[1][1]*B[1][1] + A[1][2]*B[2][1], + A[1][0]*B[0][2] + A[1][1]*B[1][2] + A[1][2]*B[2][2]], + [A[2][0]*B[0][0] + A[2][1]*B[1][0] + A[2][2]*B[2][0], + A[2][0]*B[0][1] + A[2][1]*B[1][1] + A[2][2]*B[2][1], + A[2][0]*B[0][2] + A[2][1]*B[1][2] + A[2][2]*B[2][2]]]; +} + +var scalar = func(a, b) { + return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]; +} + +var absV = func(a) { + return math.sqrt(scalar(a, a)); +} + +var crossV = func(a, b) { + return [a[1]*b[2] - a[2]*b[1], + a[2]*b[0] - a[0]*b[2], + a[0]*b[1] - a[1]*b[0]]; +} + +var rotateX = func (r) { + return [[1, 0, 0], + [0, math.cos(-r), -math.sin(-r)], + [0, math.sin(-r), math.cos(-r)]]; +} + +var rotateY = func (r) { + return [[math.cos(-r), 0, math.sin(-r)], + [0, 1, 0], + [-math.sin(-r), 0, math.cos(-r)]]; +} + +var rotateZ = func (r) { + return [[math.cos(r), -math.sin(r), 0], + [math.sin(r), math.cos(r), 0], + [0, 0, 1]]; +} + +var printMat = func (m) { + foreach (var e; m) { + if (typeof(e) == "scalar") { + print(" " ~ e); + } else { + var line = ""; + foreach (var ee; e) { + line = line ~ " " ~ ee; + } + print(line); + } + } +} + +var angleV = func (a, b) { + return math.acos(math.abs(scalar(a,b)) / (absV(a) * absV(b))); +} + +#print("id*id="); +#printMat(mulMM(id,id)); + +#print("X="); +#printMat(X); + +#print("RotY(45)*X="); +#printMat(mulMv(rotateY(45*math.pi/180),X)); + +#print("Y*X= " ~scalar(Y,X)); diff --git a/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/RAF_Mk9_bubble_sextant.xml b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/RAF_Mk9_bubble_sextant.xml new file mode 100644 index 000000000..c93aef300 --- /dev/null +++ b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/RAF_Mk9_bubble_sextant.xml @@ -0,0 +1,520 @@ + + + + + RAF_Mk9_bubble_sextant.ac + + + + + + + + translate + bubble + instrumentation/sextant/roll-error-deg + + 0 + 1 + 0 + + + + -4 + 0.008 + + + 0 + 0 + + + 4 + -0.008 + + + + + translate + bubble + instrumentation/sextant/pitch-error-deg + + 0 + 0 + 1 + + + + -4 + 0.008 + + + 0 + 0 + + + 4 + -0.008 + + + + + scale + bubble + instrumentation/sextant/bubble-norm + 0.0 + 1.0 + 1.0 + 0.0 + 1.0 + 0.0 +
+ -0.060 + 0.000 + 0.000 +
+
+ + + + select + bubble + + instrumentation/sextant/serviceable + + + + + + + rotate + 10_setting_knob + instrumentation/sextant/setting/deg10 + 5.0 + -15.0 +
+ -0.057 + 0.035 + 0.038 +
+ + 0.0 + 1.0 + 0.0 + +
+ + rotate + 10_setting_knob_scale + instrumentation/sextant/setting/deg10 + 5.0 + -15.0 +
+ -0.057 + 0.035 + 0.038 +
+ + 0.0 + 1.0 + 0.0 + +
+ + + + + rotate + degree_drum + instrumentation/sextant/setting/deg1 + 36.0 + 18 +
+ -0.1110 + 0.0150 + -0.0450 +
+ + 1.0 + 0.0 + 0.0 + +
+ + + + + rotate + minute_drum + instrumentation/sextant/setting/min + 6.0 + 30.0 +
+ -0.1270 + 0.0040 + -0.0315 +
+ + -1.0 + 0.0 + 0.0 + +
+ + + + rotate + slow_motion_knob + instrumentation/sextant/setting/deg1 + 120.0 + 0 +
+ -0.0680 + 0.0230 + 0.0090 +
+ + 0.0 + 1.0 + 0.0 + +
+ + + + rotate + bubble_knob + instrumentation/sextant/bubble-norm + 360.0 + 0 +
+ -0.0350 + -0.0230 + 0.0390 +
+ + 0.0 + 1.0 + 0.0 + +
+ + + + + pick + 10_setting_knob + + + false + + nasal + + + + + + false + + nasal + + + + + + false + + nasal + + + + + + false + + nasal + + + + + + + pick + slow_motion_knob + + + true + + nasal + + + + + + true + + nasal + + + + + + false + + nasal + + + + + + false + + nasal + + + + + + + pick + 5_deg_knob + + + false + + nasal + + + + + + + pick + bubble_knob + + + true + + nasal + + + + + + true + + nasal + + + + + + false + + nasal + + + + + + false + + nasal + + + + + + + + + + rotate + instrumentation/sextant/view-angle-deg + 1.0 +
+ -0.10 + 0.00 + 0.00 +
+ + 0.0 + 0.3 + 1.0 + +
+ + + + + translate + instrumentation/sextant/view-distance-m + + -1.0 + 0.0 + 0.0 + + 1.0 + + + + + rotate + instrumentation/sextant/offsets/roll-deg + 1.0 +
+ 0.00 + 0.00 + 0.00 +
+ + 1.0 + 0.0 + 0.0 + +
+ + + rotate + instrumentation/sextant/offsets/pitch-deg + 1.0 +
+ 0.00 + 0.00 + 0.00 +
+ + 0.0 + 1.0 + 0.0 + +
+ + + rotate + instrumentation/sextant/offsets/heading-deg + 1.0 +
+ 0.00 + 0.00 + 0.00 +
+ + 0.0 + 0.0 + 1.0 + +
+ + + + + translate + instrumentation/sextant/offsets/x-m + + 1 + 0 + 0 + + 1.0 + + + translate + instrumentation/sextant/offsets/y-m + + 0 + 1 + 0 + + 1.0 + + + translate + instrumentation/sextant/offsets/z-m + + 0 + 0 + 1 + + 1.0 + + + + + pick + eye_piece + + + false + + nasal + + + + + + pick + left_handle + + + false + + nasal + + + + + + pick + right_handle + + + false + + nasal + + + + + +
diff --git a/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/README b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/README new file mode 100644 index 000000000..7460be0ef --- /dev/null +++ b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/README @@ -0,0 +1,210 @@ + +Bubble sextant for Celestial Navigation in FlightGear +----------------------------------------------------- + +Copyright 2007 - 2010 Anders Gidenstam + + * These programs are free software; you can redistribute them and/or modify + * them under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Yes, the stars on the night sky in FlightGear can be used for navigation. +This short text gives a hint to how it is done. The references explain it +much better, though, so have a look there both for introduction and more +advanced topics. + + +Part 0 - Installing the tools: 3d bubble sextant model for FlightGear +--------------------------------------------------------------------- + + - The bubble sextant 3d model RAF_Mk9_bubble_sextant.xml need to be + loaded from the aircraft 3d model file and placed at the center of + the view it is intended to be used from. For example for a view located + 2.5 meter behind and 2.0 meter above the aircraft origin: + (Note that any offsets of the main 3d model needs to be accounted for + in translating the view position to a 3d model position and that the + axes order differs.) + + + + Bubble_sextant + Aircraft/Short_Empire/Instruments/BubbleSextant/RAF_Mk9_bubble_sextant.xml + + 2.50 + 0.50 + 2.00 + + + + - The Nasal module needs to be loaded from the main aircraft -set file. + The name of the view in which the sextant will be used and + the stowed (= inactive) location of the instrument needs to be set. + The stored location is specified in a frame axis parallel with the + aircraft frame but centered at the location given for the sextant + 3d model in the 3d model file. + For example: + + + Aircraft/Short_Empire/Instruments/BubbleSextant/RAF_Mk9_bubble_sextant.nas + + + + + - To allow fine control of the sextant using the mouse add the following + XML snippet to the aircraft's -set file. + It binds moves movements in mode 0/pointer mode to the sextant. + alt + move mouse - precision movement of view direction. + alt + shift + move mouse - up/down changes the altitude setting of the + sextant. + - left/right tilts the sextant to align with + the horizon. + + + + + + + + + nasal + + + + + + nasal + + + + + + + + + + To correctly measure the altitude of a heavenly body the instrument + must be level, i.e. the bubble must be centered. + The instrument is configured for an aim-then-level method, i.e. + one first center the view on the desired object then change the altitude + and tilt settings until the instrument is level. (I.e. changing altitude + behaves as if the user changes the setting and rotates the instrument so + that it remains aimed in the same direction). + + NOTE: Tilting of the instrument might still be somewhat buggy. + + +Part 1 - Taking sextant sights in FlightGear +------------------------------------- + +What is needed? +- The celestial altitude (~angle from the horizon) for some (at least 2) + stars and the precise time of observation. + +How? + +- Pick up the sextant by clicking on either of its handles. + +- Enter the sextant view by clicking on the sextant eye piece. + +- Obtain a bubble by turning the bubble knob on the left side of + the instrument. It is possible to reach the bubble knob while in + sextant view. + +- Aim the center of the view on the star. Alt + move mouse in pointer mode + enables high precision view rotation. + +- Level the instrument. This is done by changing the altitude setting, + first in 10 degree steps by the coarse motion knob on the right side + of the instrument (reachable also while in sextant view) and then + with the slow motion knob (or alt+shift+move mouse up/down). + Tilt the instrument (alt+shift+move mouse right/left) as needed to + center the bubble. + +- Time + celestial altitude constitutes a sighting. Make sure that + the instrument is level and aimed at the star when you note the time + and altitude. + + +But where are those bl**dy stars? + +- I use the star charts around page 256 in "The American Practical Navigator", + http://www.nga.mil/MSISiteContent/StaticFiles/NAV_PUBS/APN/pub9.zip + to find some. For me the ones in Ursa Major was easiest to find (though + one should use a wider spread). + + Suggestion (northern hemisphere): + * Dubhe (Right upper corner star of the Ursa Major "wagon".) + * Alkaid (Third and last (leftmost) star in the Ursa Major "wagon" handle.) + * Arcturus (Brightest star found to the "left" of Alkaid just below the + extended line between Alkaid and the star immediately to the + right in the Ursa Major "wagon" handle. + See star chart in [Bowditch] page 256.) + + +Part 2 - Computing a position +----------------------------- + +The Intercept method + +- Assume a position. It should be close to ones actual position - usually one + has a dead reckoning position to start from. (The assumed position need + not be equal to the DR one - one can choose a more convenient one e.g. + when using tables.) + +- Compute the expected locations of the observed stars for + that position. + Use a program/website, like http://www.tecepe.com.br/cgi-win/cgiasvis.exe , + or a Nautical Almenac + tables. +- Compare the observed star locations with the computed ones. + This gives a position line for each star. Plot the position + lines to (hopefully) get a fix. + Further info and plotting sheets: http://www.efalk.org/Navigation/ + + +References +---------- + +http://www.celestialnavigation.net/ + Good place to start. + +http://www.efalk.org/Navigation/ + Intercept method tutorial and downloadable plot sheets. + +http://www.ludd.luth.se/users/kavli/peck_celestial/space.html + Longer tutorial and description. Focuses on the use of tables for sight + reductions. + +http://www.tecepe.com.br/cgi-win/cgiasvis.exe + Computes star locations. Use instead of tables. + +[Bowditch] + "The American Practical Navigator", + http://www.nga.mil/MSISiteContent/StaticFiles/NAV_PUBS/APN/pub9.zip + For those that really really want to learn it all :) + +RAF Mk9 bubble sextant manuals and more information + http://www.users.bigpond.com/bgrobler/sextant/RAF_Mk9_manual.pdf + http://www.users.bigpond.com/bgrobler/sextant/sextant.html + http://www.physics.uq.edu.au/physics_museum/bblsex.html + diff --git a/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/degree_drum.png b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/degree_drum.png new file mode 100644 index 0000000000000000000000000000000000000000..aad4bb77c04262bb9f9d07800713bafdec55a912 GIT binary patch literal 7952 zcmd^kWmr^w_w^_$iXa%kEfOj%NFyDJbP5R4DAEE-4=or7H;SY*(nu-YBOoHpP(uy~ z14H-F@!#`2*Z;%&_5Jw1To-5N9L_oXV(+!rTKj{Rh9U(S9T@_FpiowNsEt6JhOdZ# z^XK5`tB<}2A7@-1DC?ewAD{EjgW>$bOChaXs z65-+D!DH)a?_%-vr6rG(vvtCXBpm|57^eL2zOHBD@;K5{-Q$>at-F)4wUaGgDebcQ z)hh!unPHYxchlFywI8XfeSWm?R6)(Q&Bi_tt>_w69-@W*I`TvBkzJUffRd7S+12NY zIIBq9=0Q`puXESQEMo~268{O4-af3KdtMZBnWllTGz z*&E_f_B9ppgM;cnt9JGQ@#Oz})&Khs;huN5nHU@YX=)16y+ds)ME5N>_lLC$!VhzJ zbky29kJgWm%l-bnr|a(NfC+&FQp8=u($t}$Cm|m{X658?goK2o1q2{AwzgQTt*slX z-Q3(V&^9@hm0vbCHaJ8?Vx3)F=6}8>aowC%Hxi+q^jOBVMqZ<#QF!>UtgH;TuwaL$ z;WR3->g3?y2tGVKR4UNZK_bPXqodKwqZPT|zO`XHNp8bS(tCQe$S5c>+_{sc z8q0%jdQZ7LE_5ndMSf*vWkgqBUy+)cTGzlpnSz2sFV;R1@e_lI{r!&usa zoL};-Y6L|_UPXF)M^;pbynX+^4~ABDvV%G~`c&>Xu9Bx;lqKP@GL$y#-dAF+xxbKC zRNDUj58*?a;HbvOd~b8RrxikEdr~a2rJKuHCYJJ%5>SUmXDiII`9zsAGKYonFDb#yer5nHQF z%WImEm`ESlB1B6|8_)Ojw0gq5um^H-%9+|1j!znbNK5@s{PuB?nsbv4LHCy47Q*g& z%|z?Z4O^#VuC2W!qomCK{+-WmFh8zA61FKSB}H?1csMF4N!_|TIrHdXN5|4KQ|xhl z_d^y{?Ysd=@9h`$9;=L_DwdY4yr#8Zj*gBj?JMeZP<}^ee8=j%E0)|~-8SD`xax`T zN-{P!&M(L-Esgp_FV?7&tuYgG*GQ$XWn#jtCw6M;+3>;C(o%=q`%5!nH$gr+R zqZS(4xw?|i|4>PLZE;`*2Cg5ekzKrq94@vjUdndPhG@f9IHgp*=P!8o?i{w*@*?TE zb8Uk(>mK28drQM5l5PwA6GyKEZ{7^hFEDI={P?j~g|&gfb#`|4lF-ml?4j?$HnoqY z8ockKHxfBqswpikofr|(7#9~e*3)CYE}fw%FMrnmh=8G|rER$r-6lIO7l$K5jFdar zqu)h;`~E$=#(mjthe7+}^F_pDw7%(Ih|c)2tWTO=_4W077|TUOs(z7aVnTv_DU-)4 zc1AgpZ5{_<`4{%Us5E5;k9T?gJY#(4vWvD3DWb5jaA|rvUER^qk!I#oaPXv{b=Q+E zB%h$Y5S@mGMogWI|H0^lC#>U$kaZV*$p&E&qq*@Zxv}xV3bw9>`>2N&A*p9%)IQ<6 z!_d;){3AU*eSF72Ra;Gs95x}YOv=UC+12m7>q7qrt~+BL3a1&8wf%$UAuDSK|@2s2x&YyKttMPW`&-?0wdP43G6;$QL)Bjb&zLuxa9r* z&ML3!@P`i{O07ES>SAwGaB^{_f4IutD>C6@@yhr3_*fUh%!G%N^DE6=!zaccr7v8# z5S5(l=#27wu{87}DketZ;ir|a4nyBxV?C!SLKp7>D96|lF}fJ3?H9#B}tsE$jBrkC(i(M?YqcZd($ZHH=p2Llj^95$jBSx z3O7_(2xPM6<~M1nsprEa86`b`E@F!C>(ea|Oe_*&VsR#gK|v%HwtepuKQVUZ=@m>x zL|mzJvk{_m94#*xPuJmW)ze3qB4?9leZSBD>m`pI9um_=ToeWJ1CXJP!9{ zjNNKhK9q+4@_GxCfBvTb-rnBf(aywX1gq+9-41rTv{b0;&!5S*HkCTduz&a;#2oML z@5j5z4}SUf?auL96XjkR#&r7EuZPEYnUmHVB91sSzrALg`l9;%Z)m@}O?LyvYdjWp zwVyos6UnCjtjzH4sK(^NLL0N?_$5l{+4ZMVCaNlu{@#&0*r@)gRhb~Dk^FX z;&^vsrrp@c$o^#=lt3d_)t@w{0$|`~wVsch4v3H^A(7CXDAq*DB;CJv0s#L*C9`+$ z*;tj!`wkf@>%#P3Grw*SWE>uqdsB_L3kJ6&0mDRuZw>kOvzO zaIKI@V^Bs`dNVIl{=*j#85xP}PL}ct8U|>D3WvgV%a6r2htei=2)ZrkCT$y|{F1WO z;u@j+C~SIpd2N*1_U%Gei(4v5p@UIDklD2!tEMG>!4y|!}<7N;>2++ z@$!``jj+i5xtqJ|)5TlXNBab?ilZtQ{BDv5_Ak^*XUG9jKECi2=Out#Q6Acn_}_`3LE(bC1-pcm-;kij!xWI&mkBj-1|9w4z`ygR&FJzbjAx$ z3)>IQ^-GxlMAWS246+%WL9C)q>bvfJD=eIi6SQ`gl?^aADKqR$R|uP$Zuzu0{{(NRWi}c^0XHRnI z5v{7KS`VS-a$S)0+RDMzb4Ve2b_@grc@2tx;hOXwJ$mG`G{m1&o2{7=b6Ay;nR%g2 zO+`f@PVw-tF`7%CTY6jA37c4ChT`GC_k5L$*nc)BF;wklpDf|QgU90&%KVLM+{0vc zCrK_{yck*Qo0$RS_QFVXQc`EP^g(_DLBf5Bwh@SBtH6Z zVN+Jhd%K@=bE-KsF+AK{@8>|eA|=$)oSP?#OuiW&CYqX>#D9gsU@i_i+1N}bOL-UL z5I2Q|A8W1suxR1-qxut%o1FX!@K4*Hl$^|yt0p2M;y7MiW}^MofmajoKYX_Z$ele#mw!$ ze*HSotRIkbWK=yS3jou_&8@6Fe`Lf^SzlA#mz05lL5zpzV}--0)u2NeB!KkGNd!9^ zn=^1&76)t9$fBYma|s!r-Ef$glYkkf(1c*R{zcsF+pwF2xcJ6=U-sEO$U^p9nH2xy zs?^%Rz|)s5T=V5GFVPL)n&WM}!`TJ9$y!VDbUZ$a8 z8$xC#+x$W`E-Tw1dNNgMlLXBCkK9T&D_#soP%=v9=qM;FU+|dkZMHG3B0-cH7F=!k zNGII(ynYAkt+`sxaPP&JVYdpW3DfKqbh@JI!Y5HgkBtzKsQo9IUGZHE4po31LRIxY z@@~$usFDPPhf^hWTQt3+pusHS@!6YW=wi!u76L0&9`uhP(gAE39GO{Tsgmo2q1WsOF{Np^mSFoKd1kBhLAftiS2|mT&(H-klzo!sh zk(&B*3eWY9{Q5JuqbZ1un?p{E3k&(ji9ta@XD#EZ#dBBP2THm%tRt=ZyMH~!XX8W0vE)~XAkyJ!BneEF&C(bJ}P7Y0*AoRTy4W%lQo?<0%q zw&P(5HW_qtb;l~4%&?WO(pyQNG1a{Mdm44HQe!p2Sju)pDDtQ7-_Wsqjhx6s6R{nM#Baa3vQltmI2hzw2OULWZLKkWAj<{cWnk>Drx#-`CMr5KB|so}QkAlkOiV1$Qm06_JuJ?4qTW}?XZI!9rAt{j-1EqybD$4< z0?%HY175e)L@Cqr{b|#4CchC3M*sVZ*5liZPtoxhE?%>G?tf@@*X_#(sZfEQ3;mpV z?Y*%mh`@6g2OFDIx5dE=$Afj=MjhvN6YK!>45b`!Bg+g(E}f7yckH3!dloCI3QQavHB@&8O7-jSnpFcKnTT82L}i99fVjteE7y( zOhBM_YQL$m@yvmPt!-|zr6k*>v}CUZ2$U717X>9F7>NyYT=nlz@#w;WN47wWs84~ z$bSy~usA!DnVA`v%1i`+pd+o zb2uuHA>jiAZrImO$)SaaAxr!yaCos1sdh5!(b&t4zp^jI1D;YG#ZxeL-Y#IMyp?JJh(%nJVsAo4GbdKUmRE6ujcFAU;QH4hM&PbU({C8Sfb`A@|!hqgR zCS*ro@ke^G+qR?J2E`8nzVXbUy3Z`?>thU0$Pt&(Aau^OgTWGQsidX@AUY3xh??Aq ztG@PWE(GP`LnW{oB6PFrg8kPk>;_a~oV!zGG{>vm`l=`^UjBVxSo!iRw_ETBfAk05 z=#lu{VgeAH7uwwr=C+5s>qJMQp-vTM@gJLEYrd}^s6#^kxb81~oeaO2sXTt|tRX32 zpj`#Ukag)T0dQPKk&uvZN=c35ium}!@&N{r{qv{n@`OgB=u<-UzgaJVF#{CcE`utF z_1RPxcVGI_xp3uVBn3F;Rsr9)I*0#`6&P9eCZ8Jm{xryZ?=7uq>T3OgMsJ;{ zj--^7ElghAV#aB#@{#i}DEz<~AP%ZLeT=_$-c@_7@)!+cip;VZrM$G<-ODFeL3(G* zw8yp|BNFOJ5U+g8lSB3)H2Oi)#6ty{Otu8iX>RRr6H${AJZHDvCx4!5D9-hc$qG(! z<9FHD3Bn@r3=PGxv9v(u|4b@d0EPuxm>V0@`)&_gi!Te{)&-fS_-6~^f|?lbaBN*FJ6KHR*gphL4h|~%?y<2k4k;-U{NKsnjg5^qaNEfH2Sf(Cd~(;Qykn^w zUr>SV6>~S-lqFbz%i)Uqb9uSArbfbHyn5icM@rIm1;nx6sM;tSU{z9JoEL)Y+Dan(=&A^Rs-@XlvkDCnMJJ{b}U=VxR z@{vLOATY|y$H(Uki5IAi?xkBQqouY@bzX#CHhZkM8Dw>;3@AeNVoj>cAW;?>_MloN zf*5hzMtV=2{?pp}7fc~K^)NI3gZb=~{6dMFH)XXve0}Slc_#h0;#m7gI*SJ!PZ>|%(m|-xl_;wm$ z!}kXC&4iz%z^1-M7e^!z-*o{e8<3;wtm_`a0QE7_d%L@9Fv=I-JAsGPg0qq=i4*|k=4@lbaj>_y z-k+;;R!&PqPfzbRlnb`(;)0^0lapJ9nS_SqQ?k=ULXymH@ebz<2}7Y#{k(1Z)hdBv zIqCD~23Tc0r%u)y=pQ85Mu!B9*^NZG=7`H&6s({D>Rsm}up6KU8({xI4cV*=m z8a=I9&@C@|-9e@#J&kKlspuEiD>A*y;Q|KFy%V)y#;|f$ETvJI-2jW*qJ2A9E?bV% z5O}YYl>V&pAk54CM5jPm>S}d;k~!uuLP<(WdIIsG*^!@U7&fL0Q`qR~_|)gbiU=1Z zEDh_dJ~#WFDC2K>U~c8 zBbX64y@Z;rr%A#KsA*`NL3>zEpnsLPK!qHhm8iIT8nI3l-|?d4uS8N}q9@RKFBx{R zOVXfJX`|vIBP}+&-ze?$PD2{SXP8=WN=uurCj0}YdZ20wDi&c5Qv&`Enhi)DO_ZR= zit+Hyd}}28joJ;4Z150P#;QtQIGiw_Lp=PH{6|FSanTU?d7?lu!cpK*Dp*SkeZ{&9Qvu3iAg@fJcPgT{`h6&p%7bZ#Nf&CkaH zrBr3SH=s2F)|k0mfpJyuti<+JO-XR9DF@la3dKc5Md!$!?zFsc|GjWk)3t%SyMbL? z+%VhN#d<3u0%SOE&SpC=suYaCgVfQ(TG~8k6}o-|HHpR@JZUFc_hvQ#ykS#Aqt?4joW30L}wfP;!JhWCyry4 zPd71&H(cOJa1?A~?d|Oy_6v_!qrtm`{0t$sXSlilg@NQi*9G>B<&(B81tlfr0(e|y zU~U3OBhDOJO*#4b|88tZt!X|IM%hY=gFvPi@Kc4}{*A)fwkr&jkN lY1~|D-6*UxLOqN2h^h2!vg`Gz15@Hn%JLcy3m=#V{tuIqEO-C_ literal 0 HcmV?d00001 diff --git a/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/leatherette.png b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/leatherette.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca0579d264b18a9b678272881a0d4809c2dceae GIT binary patch literal 62782 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�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 literal 0 HcmV?d00001 diff --git a/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/minute_drum.png b/Aircraft/Instruments-3d/RAF_Mk9_bubble_sextant/minute_drum.png new file mode 100644 index 0000000000000000000000000000000000000000..db24f21e3e6728153fb86950208ee965be2b4102 GIT binary patch literal 14676 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 DAF&)3 literal 0 HcmV?d00001 From fa1593f9f05e6de9b4a0c6e245909aadf4faa418 Mon Sep 17 00:00:00 2001 From: Melchior FRANZ Date: Sat, 24 Sep 2011 21:26:56 +0200 Subject: [PATCH 02/11] warthog: tailwheel/reverser/speedbrake + cleanup Unfortunately, some aircraft (seahawk) don't play nice and ignore the common speedbrake property, inventing their own. (These basic concepts must be *really* hard to understand ...) --- .../ThrustMaster/Warthog/Warthog-Stick.xml | 24 +++++++++----- .../ThrustMaster/Warthog/Warthog-Throttle.xml | 33 ++++++++++++++++--- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml b/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml index 0ab91c505..fb86b6840 100644 --- a/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml +++ b/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml @@ -11,9 +11,9 @@ Thustmaster Joystick - HOTAS Warthog + Thrustmaster Joystick - HOTAS Warthog - nasal + - + updateListener : func( n ) { + var SpeedUp = getprop("/sim/speed-up"); + if (SpeedUp<0.9) + { + SpeedUp=1/SpeedUp; + SpeedUp = "1/" ~ SpeedUp; + } + setprop("/sim/gui/dialogs/replay/time-factor","" ~ SpeedUp ~ "x"); + }, - + close : func { + #removelistener( me.maxListenerId ); + }, - - - # Populate the view combo box with a list of the available views - var combo = cmdarg().getChildren("group")[1].getNode("combo"); - combo.removeChildren("value"); + findElementByName : func(base,name) { + foreach( var child; base.getChildren() ) { + var n = child.getNode( "name" ); + if( n != nil and n.getValue() == name ) + return child; + var f = me.findElementByName(child,name); + if( f != nil ) return f; + } + return nil; + }, - var current_view = getprop("/sim/current-view/view-number"); - var i = 0; - foreach (var v; view.views) { + }; - var name = "Unnamed view " ~ v.getIndex(); + var controller = ReplayDialogController.new( cmdarg() ); + controller.open(); + ]]> - if (v.getNode("name") != nil) { - name = v.getNode("name").getValue(); - } + + - # Pre-populate the combo box selected value - if (v.getIndex() == current_view) { - setprop("/sim/replay/view-name", name); - } + + hbox + fill + 28 - combo.getNode("value[" ~ i ~ "]", 1).setValue(name); - i = i + 1; - } - - + + + SANS_12B + + + + 0.9 + 0.9 + 0.9 + 1 + + 70 + - - table + + + + 0.7 + 0.7 + 0.7 + 1 + + - - 00 - right - - + + replay-looped + left + + 0.6 + 0.6 + 0.6 + 0.8 + + /sim/replay/looped + + dialog-apply + replay-looped + + + + replay-duration + 40 + + 0.5 + 0.5 + 0.5 + 0.8 + + /sim/replay/duration + + dialog-apply + replay-duration + + - - 01 - 40 - left - /sim/replay/duration - + 40 - - 10 - right - - + + + Time: %s + + 0.7 + 0.7 + 0.7 + 1 + + true + /sim/replay/time-str + - - 11 - left - 200 - /sim/replay/view-name - - dialog-apply - - + 10 - - 21 - left - /sim/replay/looped - - - dialog-apply - - - + + + Size: %.1fMB + + 0.7 + 0.7 + 0.7 + 1 + + /sim/replay/buffer-size-mbyte + - + 40 - - left - - + + + + 0.7 + 0.7 + 0.7 + 1 + + + + + + 28 + %s + + 0.7 + 0.7 + 0.7 + 1 + + true + /sim/gui/dialogs/replay/time-factor + + - - table + 1 + + + - - 10 - center - - + + hbox + center - - 11 - left - - + - - 20 - center - - + - - 21 - left - - + + + + 0.7 + 0.7 + 0.7 + 1 + + %8s + right + true + /sim/replay/start-time-str + - - 30 - center - - + + replay-time-slider + 0 + + 0.4 + 0.4 + 0.4 + 1 + + left + 350 + 0 + 1.0 + /sim/replay/time + true + + dialog-apply + replay-time-slider + + - - 31 - left - - - + + + + 0.7 + 0.7 + 0.7 + 1 + + %s + left + true + /sim/replay/end-time-str + - + - - hbox - true - - true - - true - - true - + + + + hbox + center + false + 3 + + + + + + + diff --git a/gui/menubar.xml b/gui/menubar.xml index e75a0715d..834c0c71b 100644 --- a/gui/menubar.xml +++ b/gui/menubar.xml @@ -190,6 +190,9 @@ + + replay + dialog-show replay diff --git a/keyboard.xml b/keyboard.xml index aabb75488..ce8a214ed 100644 --- a/keyboard.xml +++ b/keyboard.xml @@ -168,6 +168,10 @@ top down before the key bindings are parsed. replay + + dialog-show + replay + @@ -268,9 +272,22 @@ top down before the key bindings are parsed. ESC Prompt and quit FlightGear + + + /sim/freeze/replay-state + + dialog-show exit + + + /sim/freeze/replay-state + + property-assign + /sim/replay/disable + true + Reset FlightGear diff --git a/preferences.xml b/preferences.xml index a714cb827..f5831610b 100644 --- a/preferences.xml +++ b/preferences.xml @@ -677,6 +677,17 @@ Started September 2000 by David Megginson, david@megginson.com 90 1 true + + + 60.0 + + + 0.5 + 600.0 + + 5.0 + 3600.0 + @@ -768,6 +779,11 @@ Started September 2000 by David Megginson, david@megginson.com svn + + + /Aircraft/Generic/flightrecorder/generic-piston-propeller-4.xml + + From 45766cf824fa8ab145bfe2f1395a82113ca13075 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sat, 1 Oct 2011 23:23:38 +0200 Subject: [PATCH 06/11] c172p: Use generic replay configuration for single engine/prop aircraft --- Aircraft/c172p/c172p-set.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Aircraft/c172p/c172p-set.xml b/Aircraft/c172p/c172p-set.xml index 0b7e7e874..8a5eeb9b9 100644 --- a/Aircraft/c172p/c172p-set.xml +++ b/Aircraft/c172p/c172p-set.xml @@ -108,7 +108,14 @@ Started October 23 2001 by John Check, fgpanels@rockfish.net 0 - + + + 0 + + C172p Flight Recorder + + + From 7d9ea536f7d50c414f5ec161eddd9a65bd9a4bd0 Mon Sep 17 00:00:00 2001 From: Melchior FRANZ Date: Sat, 1 Oct 2011 18:34:28 +0200 Subject: [PATCH 07/11] warthog: first stab at throttle hardware config (backlight + LEDs) This works under Linux only, which is certainly suboptimal. But there's no reason why support for other OSes couldn't be added later, and there's no reason to not support Linux now, either. The code can set the throttle's backlight brightness and the five programmable LEDs. As a demonstration, the latter is currently used for a gear-down warning. Support for setting the stick's hardware deadzone is planned. (It's on by default.) The mechanism writes directly to Linux' hidraw devices, which requires some simple configuration. This is described in the README. It doesn't depend on any external utility. --- Input/Joysticks/ThrustMaster/Warthog/README | 72 +++++++++++++++++++ .../ThrustMaster/Warthog/Throttle/seahawk.xml | 10 +-- .../ThrustMaster/Warthog/Warthog-Stick.xml | 10 +-- .../ThrustMaster/Warthog/Warthog-Throttle.xml | 37 ++++++++-- .../ThrustMaster/Warthog/warthog.nas | 54 ++++++++++++++ 5 files changed, 170 insertions(+), 13 deletions(-) create mode 100644 Input/Joysticks/ThrustMaster/Warthog/warthog.nas diff --git a/Input/Joysticks/ThrustMaster/Warthog/README b/Input/Joysticks/ThrustMaster/Warthog/README index fc0e4d898..a0aa1d4e5 100644 --- a/Input/Joysticks/ThrustMaster/Warthog/README +++ b/Input/Joysticks/ThrustMaster/Warthog/README @@ -33,3 +33,75 @@ axis definition uses the same index as the master file. The n-th uses etc. Nasal blocks are properly executed in the namespace of the master file, so you can access all its functions and variables. + + + + + + +Joystick configuration from within FlightGear under Linux: +-------------------------------------------------------------------------------- +This allows to set backlight brightness and LEDs from within FlightGear +without requiring any config application, by directly writing to the devices +via raw HID support. + + + +(1) Make sure your kernel has hidraw support compiled in: check if there is at + least one file listed with + + $ ls /dev/hidraw* + + or if your kernel .config contains: + + CONFIG_HIDRAW=y + + + +(2) To get a reliable, persistent file name for your Warthog devices, create + a file /etc/udev/rules.d/00-local.rules and add these lines: + + SUBSYSTEM=="input", ENV{ID_INPUT_JOYSTICK}!="?*", IMPORT{program}="input_id %p" + SUBSYSTEM=="hidraw", ENV{ID_SERIAL}!="?*", IMPORT{program}="usb_id --export %p" + SUBSYSTEM=="hidraw", SYMLINK+="input/hidraw/%E{ID_SERIAL}" + SUBSYSTEM=="hidraw", ENV{ID_INPUT_JOYSTICK}!="0", GROUP:="js" + + If you don't have a user group "js" (for joystick hardware access) either + create one or, in the fourth line, use a group instead where all joystick + users are member, e.g. GROUP:="users". Then plug your Warthog devices out + and in again and check if this created two device files under /dev/hid/: + + $ ls -l /dev/input/hidraw/* + lrwxrwxrwx 1 root root 10 Oct 2 14:23 Thrustmaster_Throttle_-_HOTAS_Warthog -> ../hidraw1 + lrwxrwxrwx 1 root root 10 Oct 2 14:23 Thustmaster_Joystick_-_HOTAS_Warthog -> ../hidraw0 + + Also check if the linked-to hidraw devices have proper permissions (rw for "js"): + + $ ls -l /dev/hidraw* + crw-rw---- 1 root js 251, 0 Oct 2 09:11 /dev/hidraw0 + crw-rw---- 1 root js 251, 1 Oct 2 14:23 /dev/hidraw1 + + + +(3) Allow FlightGear to write to the two devices. The best way to do this is + to edit a local copy of the global IOrules. Just copy the global file + to your FG_HOME directory: + + $ mkdir -p ~/.fgfs/Nasal + $ cp $FG_ROOT/Nasal/IOrules ~/.fgfs/Nasal + + Now add these two lines there: + + WRITE ALLOW /dev/input/hidraw/Thustmaster_Joystick_-_HOTAS_Warthog + WRITE ALLOW /dev/input/hidraw/Thrustmaster_Throttle_-_HOTAS_Warthog + + CAVE: Don't fix the bad spelling of "Thrustmaster", unless your stick + really uses that! + + + + +DISCLAIMER: Of course, you take all responsibility for any possible +damages to your hardware if you make these changes. Neither the +FlightGear project nor any of its developers and contributors are in +any way liable. diff --git a/Input/Joysticks/ThrustMaster/Warthog/Throttle/seahawk.xml b/Input/Joysticks/ThrustMaster/Warthog/Throttle/seahawk.xml index 2292941f4..b41ada8f4 100644 --- a/Input/Joysticks/ThrustMaster/Warthog/Throttle/seahawk.xml +++ b/Input/Joysticks/ThrustMaster/Warthog/Throttle/seahawk.xml @@ -4,11 +4,11 @@ diff --git a/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml b/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml index fb86b6840..896b6192c 100644 --- a/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml +++ b/Input/Joysticks/ThrustMaster/Warthog/Warthog-Stick.xml @@ -17,6 +17,10 @@ + @@ -219,17 +211,9 @@ 0.3 0.8 - 357 nasal - + @@ -290,15 +274,7 @@ nasal - + @@ -312,18 +288,9 @@ 0.3 0.8 - 356 nasal - + @@ -386,20 +353,9 @@ 0.3 0.8 - 358 nasal - + @@ -415,17 +371,7 @@ nasal - + diff --git a/gui/dialogs/timeofday.xml b/gui/dialogs/timeofday.xml index 1e9ae6b5a..07592a219 100644 --- a/gui/dialogs/timeofday.xml +++ b/gui/dialogs/timeofday.xml @@ -86,10 +86,8 @@ diff --git a/keyboard.xml b/keyboard.xml index ce8a214ed..107e04889 100644 --- a/keyboard.xml +++ b/keyboard.xml @@ -1259,7 +1259,10 @@ top down before the key bindings are parsed. nasal @@ -1279,7 +1282,10 @@ top down before the key bindings are parsed. nasal @@ -1299,7 +1305,10 @@ top down before the key bindings are parsed. nasal 0.05 @@ -1320,7 +1329,10 @@ top down before the key bindings are parsed. nasal diff --git a/preferences.xml b/preferences.xml index 7a708d2a7..d7081f3f3 100644 --- a/preferences.xml +++ b/preferences.xml @@ -740,6 +740,7 @@ Started September 2000 by David Megginson, david@megginson.com userarchive="y">true false + true Models/Geometry/glider.ac