You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(47) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(140) |
Feb
(98) |
Mar
(152) |
Apr
(104) |
May
(71) |
Jun
(94) |
Jul
(169) |
Aug
(83) |
Sep
(47) |
Oct
(134) |
Nov
(7) |
Dec
(20) |
2004 |
Jan
(41) |
Feb
(14) |
Mar
(42) |
Apr
(47) |
May
(68) |
Jun
(143) |
Jul
(65) |
Aug
(29) |
Sep
(40) |
Oct
(34) |
Nov
(33) |
Dec
(97) |
2005 |
Jan
(29) |
Feb
(30) |
Mar
(9) |
Apr
(37) |
May
(13) |
Jun
(31) |
Jul
(22) |
Aug
(23) |
Sep
|
Oct
(37) |
Nov
(34) |
Dec
(117) |
2006 |
Jan
(48) |
Feb
(6) |
Mar
(2) |
Apr
(71) |
May
(10) |
Jun
(16) |
Jul
(7) |
Aug
(1) |
Sep
(14) |
Oct
(17) |
Nov
(25) |
Dec
(26) |
2007 |
Jan
(8) |
Feb
(2) |
Mar
(7) |
Apr
(26) |
May
|
Jun
(12) |
Jul
(30) |
Aug
(14) |
Sep
(9) |
Oct
(4) |
Nov
(7) |
Dec
(6) |
2008 |
Jan
(10) |
Feb
(10) |
Mar
(6) |
Apr
(8) |
May
|
Jun
(10) |
Jul
(18) |
Aug
(15) |
Sep
(16) |
Oct
(5) |
Nov
(3) |
Dec
(10) |
2009 |
Jan
(11) |
Feb
(2) |
Mar
|
Apr
(15) |
May
(31) |
Jun
(18) |
Jul
(11) |
Aug
(26) |
Sep
(52) |
Oct
(17) |
Nov
(4) |
Dec
|
2010 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@ww...> - 2006-01-22 21:32:49
|
Author: mkrose Date: 2006-01-22 13:32:41 -0800 (Sun, 22 Jan 2006) New Revision: 1853 Added: trunk/csp/cspsim/cspsim.dox Log: Add missing doxygen script for cspsim. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1853 Diff omitted (46126 bytes). |
From: <sv...@ww...> - 2006-01-22 20:19:10
|
Author: mkrose Date: 2006-01-22 12:19:00 -0800 (Sun, 22 Jan 2006) New Revision: 1852 Modified: trunk/csp/modules/chunklod/SConscript Log: Fix chunklod build under linux. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1852 Modified: trunk/csp/modules/chunklod/SConscript =================================================================== --- trunk/csp/modules/chunklod/SConscript 2006-01-22 10:54:00 UTC (rev 1851) +++ trunk/csp/modules/chunklod/SConscript 2006-01-22 20:19:00 UTC (rev 1852) @@ -25,7 +25,8 @@ env.RemoveFlags(CXXFLAGS=Split('-pedantic -W /W3')) # to remove conflicts with MSVCRT -env.AppendUnique(SHLINKFLAGS=Split('/NODEFAULTLIB:LIBC')) +if env['PLATFORM'].startswith('win'): + env.AppendUnique(SHLINKFLAGS=Split('/NODEFAULTLIB:LIBC')) build.SharedLibrary(env, name = 'chunklod', |
From: <sv...@ww...> - 2006-01-22 10:54:12
|
Author: mkrose Date: 2006-01-22 02:54:00 -0800 (Sun, 22 Jan 2006) New Revision: 1851 Added: branches/unrefactored/CSP/ Removed: trunk/CSP/ Log: The original trunk/CSP code. This contains some code and data that has not yet been copied to the new (refactored) trunk/csp directory. This branch can be deleted after all useful content has been copied. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1851 Copied: branches/unrefactored/CSP (from rev 1850, trunk/CSP) |
From: <sv...@ww...> - 2006-01-22 10:53:12
|
Author: mkrose Date: 2006-01-22 02:53:07 -0800 (Sun, 22 Jan 2006) New Revision: 1850 Added: branches/unrefactored/ Log: Placeholder for the original trunk/CSP code. This contains some code and data that has not yet been copied to the new (refactored) trunk/csp directory. This branch can be deleted after all useful content has been copied. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1850 |
From: <sv...@ww...> - 2006-01-22 10:49:42
|
Author: mkrose Date: 2006-01-22 02:49:34 -0800 (Sun, 22 Jan 2006) New Revision: 1849 Added: trunk/csp/ Removed: trunk/CSP/csp/ Log: Replace top-level csp directory with refactored code base. The next step will be to move the convert trunk/CSP directory to a branch. Unfortunately this will probably create problems on case-insensitive platforms, but likely no worse than those caused by moving the root directories. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1849 Copied: trunk/csp (from rev 1848, trunk/CSP/csp) |
From: <sv...@ww...> - 2006-01-22 10:07:35
|
Author: mkrose Date: 2006-01-22 02:07:23 -0800 (Sun, 22 Jan 2006) New Revision: 1848 Added: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/resources.xml Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/systems.xml Log: Add the mfd, ded, and vmu systems to the f16. Also add the f16 sound resources. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1848 Added: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/resources.xml =================================================================== --- trunk/CSP/csp/data/xml/vehicles/aircraft/f16/resources.xml 2006-01-22 10:06:33 UTC (rev 1847) +++ trunk/CSP/csp/data/xml/vehicles/aircraft/f16/resources.xml 2006-01-22 10:07:23 UTC (rev 1848) @@ -0,0 +1,26 @@ +<Object class="ResourceBundle"> + <List name="sounds"> + <Object class="SoundSample"> + <String name="name">low_speed_warning_sound</String> + <External name="filename">../data/sounds/f16_low_speed_warning_tone.ogg</External> + <Bool name="looping">true</Bool> + </Object> + <Object class="SoundSample"> + <String name="name">configuration_warning_sound</String> + <External name="filename">../data/sounds/f16_configuration_warning_tone.ogg</External> + <Bool name="looping">true</Bool> + </Object> + <Object class="SoundSample"> + <String name="name">altitude_warning_sample</String> + <External name="filename">../data/sounds/f16_betty_altitude.ogg</External> + </Object> + <Object class="SoundSample"> + <String name="name">engine</String> + <External name="filename">../data/sounds/engine03.ogg</External> + <Bool name="looping">true</Bool> + <Float name="reference_distance">70.0</Float> + <Float name="max_distance">40000.0</Float> + <Int name="priority">10</Int> + </Object> + </List> +</Object> Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/systems.xml =================================================================== --- trunk/CSP/csp/data/xml/vehicles/aircraft/f16/systems.xml 2006-01-22 10:06:33 UTC (rev 1847) +++ trunk/CSP/csp/data/xml/vehicles/aircraft/f16/systems.xml 2006-01-22 10:07:23 UTC (rev 1848) @@ -17,14 +17,36 @@ <Float name="final_key">6.0</Float> <String name="sequence_channel">Aircraft.CanopySequence.ReferenceTime</String> </Object> + <Path name="resources">resources</Path> </Object> - <Object class="F16HUD" /> <Object class="F16INS"> <Float name="ins_attitude_response_time">0.04</Float> </Object> + <Object class="F16HUD" /> + <Object class="MultiFunctionDisplay"> + <String name="channel">LeftMFD</String> + <String name="event_prefix">LEFT_</String> + <String name="default_configuration">*FCR BLANK BLANK</String> + </Object> + <Object class="MultiFunctionDisplay"> + <String name="channel">RightMFD</String> + <String name="event_prefix">RIGHT_</String> + <String name="default_configuration">BLANK BLANK *SMS</String> + </Object> + <Object class="DataEntryDisplay"> + <Vector name="color">1.0 0.95 0.5</Vector> + <Float name="text_height">0.0038</Float> + <Float name="line_spacing">0.0040</Float> + </Object> + <!--Object class="MultiFunctionDisplay"> + <String name="channel">LeftMFD</String> + </Object--> + <Object class="F16Radio" /> + <Object class="GroundAvoidanceAdvisory" /> <Object class="UpFrontControls" /> - <Object class="GroundAvoidanceAdvisory" /> - <Object class="F16Radio" /> + <Object class="VoiceMessageUnit"> + <Path name="resources">resources</Path> + </Object> <Path class="f16::FuelSystem">fuel</Path> </List> @@ -39,6 +61,7 @@ <Path name="store_drag">.objects.stores_drag</Path> </Object> <Object class="EngineDynamics"> + <Path name="resources">resources</Path> <List name="engine_set"> <Object class="F16Engine"> <Path name="thrust_data">thrust</Path> |
From: <sv...@ww...> - 2006-01-22 10:06:50
|
Author: mkrose Date: 2006-01-22 02:06:33 -0800 (Sun, 22 Jan 2006) New Revision: 1847 Added: trunk/CSP/csp/data/sounds/ trunk/CSP/csp/data/sounds/COPYING trunk/CSP/csp/data/sounds/engine03.ogg trunk/CSP/csp/data/sounds/f16_betty_altitude.ogg trunk/CSP/csp/data/sounds/f16_configuration_warning_tone.ogg trunk/CSP/csp/data/sounds/f16_low_speed_warning_tone.ogg Log: Add sound samples for the f16. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1847 Added: trunk/CSP/csp/data/sounds/COPYING =================================================================== --- trunk/CSP/csp/data/sounds/COPYING 2006-01-22 09:38:24 UTC (rev 1846) +++ trunk/CSP/csp/data/sounds/COPYING 2006-01-22 10:06:33 UTC (rev 1847) @@ -0,0 +1,41 @@ +f16_configuration_warning_tone.ogg + -- + Copyright 2005 Mark Rose <mk...@us...> + This work is licensed under the Creative Commons Attribution-ShareAlike 2.5 + License. To view a copy of this license, visit + http://creativecommons.org/licenses/by-sa/2.5/ or send a letter to Creative + Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. + --- + Created using Audacity. Note that this is a test sample only and likely + does not bear any relation to the sound in the real jet. + + +f16_low_speed_warning_tone.ogg + -- + Copyright 2005 Mark Rose <mk...@us...> + This work is licensed under the Creative Commons Attribution-ShareAlike 2.5 + License. To view a copy of this license, visit + http://creativecommons.org/licenses/by-sa/2.5/ or send a letter to Creative + Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. + --- + Created using Audacity. Note that this is a test sample only and likely + does not bear any relation to the sound in the real jet. + +engine03.ogg + -- + Copyright 2005 Mark Rose <mk...@us...> + This work is licensed under the Creative Commons Attribution-ShareAlike 2.5 + License. To view a copy of this license, visit + http://creativecommons.org/licenses/by-sa/2.5/ or send a letter to Creative + Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. + --- + Created using Audacity. Note that this is a test sample only, generated by + ear, and only bears a faint resemblence to the sound of a real jet. + +f16_betty_altitude.ogg + -- + Actual VMU sound sampled from a real F-16 HUD video. Given that the original + sound was produced by the US Government I don't believe this sample can be + protected by copyright. Even if copyrighted, I expect that the short duration + of this sample would fall under fair use. + Added: trunk/CSP/csp/data/sounds/engine03.ogg =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/sounds/engine03.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/sounds/f16_betty_altitude.ogg =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/sounds/f16_betty_altitude.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/sounds/f16_configuration_warning_tone.ogg =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/sounds/f16_configuration_warning_tone.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/sounds/f16_low_speed_warning_tone.ogg =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/sounds/f16_low_speed_warning_tone.ogg ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <sv...@ww...> - 2006-01-22 09:38:31
|
Author: mkrose Date: 2006-01-22 01:38:24 -0800 (Sun, 22 Jan 2006) New Revision: 1846 Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16dj/cockpit.xml Log: Add the animation definitions for the left and right mfd displays, the ded, and the left osb buttons. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1846 Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16dj/cockpit.xml =================================================================== --- trunk/CSP/csp/data/xml/vehicles/aircraft/f16dj/cockpit.xml 2006-01-22 09:37:18 UTC (rev 1845) +++ trunk/CSP/csp/data/xml/vehicles/aircraft/f16dj/cockpit.xml 2006-01-22 09:38:24 UTC (rev 1846) @@ -15,7 +15,82 @@ <Vector>0.0 4.45 1.19</Vector> </List> <List name="animations"> + <Object class="DisplayScreen"> + <String name="model_id">LeftMFD</String> + <String name="channel_name">LeftMFD</String> + <Vector name="offset">0 -0.01 0</Vector> + </Object> + <Object class="DisplayScreen"> + <String name="model_id">RightMFD</String> + <String name="channel_name">RightMFD</String> + <Vector name="offset">0 -0.01 0</Vector> + </Object> <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_00</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_01</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_02</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_03</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_04</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_05</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_06</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_07</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_08</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_09</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_10</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_11</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_12</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_13</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_14</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_15</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_16</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_17</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_18</String> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">LEFT_OSB_19</String> + </Object> + <Object class="DisplayScreen"> + <String name="model_id">DED</String> + <String name="channel_name">DataEntryDisplay</String> + <Vector name="offset">-0.032 -0.023 0.009</Vector> + </Object> + <Object class="AnimatedMomentarySwitch"> <String name="model_id">ICP.DataControlSwitch</String> <List name="event_channel_names"> <String>ICP_SEQ</String> @@ -117,6 +192,20 @@ <Float name="cycle_time">0.3</Float> </Object> <Object class="AnimatedMomentarySwitch"> + <String name="model_id">ICP AA</String> + <List name="event_channel_names"> + <String>ICP_AA</String> + </List> + <Float name="cycle_time">0.3</Float> + </Object> + <Object class="AnimatedMomentarySwitch"> + <String name="model_id">ICP AG</String> + <List name="event_channel_names"> + <String>ICP_AG</String> + </List> + <Float name="cycle_time">0.3</Float> + </Object> + <Object class="AnimatedMomentarySwitch"> <String name="model_id">ICP DECINC</String> <List name="event_channel_names"> <String>ICP_INC</String> |
From: <sv...@ww...> - 2006-01-22 09:37:24
|
Author: mkrose Date: 2006-01-22 01:37:18 -0800 (Sun, 22 Jan 2006) New Revision: 1845 Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/fm.xml Log: Add a reminder to the drag data that it needs to be renormalized at high speed to take LEF scheduling into account. (The HFFM data already incorporates LEF scheduling, so the current approach of scaling low speed data by the normalized HFFM factor should lead to too little drag at high speed.) Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1845 Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/fm.xml =================================================================== --- trunk/CSP/csp/data/xml/vehicles/aircraft/f16/fm.xml 2006-01-22 09:31:09 UTC (rev 1844) +++ trunk/CSP/csp/data/xml/vehicles/aircraft/f16/fm.xml 2006-01-22 09:37:18 UTC (rev 1845) @@ -18,6 +18,8 @@ CD values extracted from HFFM, normalized to 1.0 at M=0. Each column gives the drag profile vs mach at a given aoa. These values are then scaled by the NASA low speed drag data to obtain the total drag as a function of airspeed, alpha, beta, and elevator deflection. + + TODO renormalize taking LEF scheduling into account. --> <Table2 name="cd_m_a"> <Breaks0 spacing="0.05"> |
From: <sv...@ww...> - 2006-01-22 09:31:24
|
Author: mkrose Date: 2006-01-22 01:31:09 -0800 (Sun, 22 Jan 2006) New Revision: 1844 Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/gear.xml Log: Increase the f16 main gear damping to improve landing stability. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1844 Modified: trunk/CSP/csp/data/xml/vehicles/aircraft/f16/gear.xml =================================================================== --- trunk/CSP/csp/data/xml/vehicles/aircraft/f16/gear.xml 2006-01-22 09:30:19 UTC (rev 1843) +++ trunk/CSP/csp/data/xml/vehicles/aircraft/f16/gear.xml 2006-01-22 09:31:09 UTC (rev 1844) @@ -50,7 +50,7 @@ <!-- 0.191 --> <Float name="compression_limit">0.223</Float> <Float name="K">350000.0</Float> - <Float name="beta">190000.0</Float> + <Float name="beta">240000.0</Float> <Float name="brake_limit">50000.0</Float> <Float name="brake_slip">0.8</Float> <Float name="tire_radius">0.4</Float> @@ -81,7 +81,7 @@ <Real name="damage_limit">80000.0:10000.0</Real> <Float name="compression_limit">0.223</Float> <Float name="K">350000.0</Float> - <Float name="beta">190000.0</Float> + <Float name="beta">240000.0</Float> <Float name="brake_limit">50000.0</Float> <Float name="brake_slip">0.8</Float> <Float name="tire_radius">0.4</Float> |
From: <sv...@ww...> - 2006-01-22 09:30:27
|
Author: mkrose Date: 2006-01-22 01:30:19 -0800 (Sun, 22 Jan 2006) New Revision: 1843 Modified: trunk/CSP/csp/data/models/aircraft/f16/f16dj.osg Log: Fix the environment map texture path and apply the static environment map to the external cockpit glass reflection. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1843 Modified: trunk/CSP/csp/data/models/aircraft/f16/f16dj.osg =================================================================== --- trunk/CSP/csp/data/models/aircraft/f16/f16dj.osg 2006-01-22 09:29:04 UTC (rev 1842) +++ trunk/CSP/csp/data/models/aircraft/f16/f16dj.osg 2006-01-22 09:30:19 UTC (rev 1843) @@ -60408,7 +60408,7 @@ Texture2D { UniqueID TextureF16Lak DataVariance STATIC - file "environment.tga" + file "environment.png" wrap_s CLAMP_TO_EDGE wrap_t CLAMP_TO_EDGE wrap_r CLAMP_TO_EDGE @@ -89880,7 +89880,7 @@ Use TextureF16Lak Texture2DXXX { DataVariance STATIC - file "environment.tga" + file "environment.png" wrap_s CLAMP_TO_EDGE wrap_t CLAMP_TO_EDGE wrap_r CLAMP_TO_EDGE @@ -91691,7 +91691,7 @@ Use TextureF16Lak Texture2DXXX { DataVariance STATIC - file "environment.tga" + file "environment.png" wrap_s CLAMP_TO_EDGE wrap_t CLAMP_TO_EDGE wrap_r CLAMP_TO_EDGE @@ -122115,14 +122115,14 @@ borderColor 0 0 0 0 borderWidth 0 useHardwareMipMapGeneration FALSE - unRefImageDataAfterApply FALSE + unRefImageDataAfterApply TRUE internalFormatMode USE_IMAGE_DATA_FORMAT - image POSITIVE_X "posx.jpg" - image POSITIVE_Y "posy.jpg" - image POSITIVE_Z "posz.jpg" - image NEGATIVE_X "negx.jpg" - image NEGATIVE_Y "negy.jpg" - image NEGATIVE_Z "negz.jpg" + image POSITIVE_X "staticenv-posx.png" + image POSITIVE_Y "staticenv-posy.png" + image POSITIVE_Z "staticenv-posz.png" + image NEGATIVE_X "staticenv-negx.png" + image NEGATIVE_Y "staticenv-negy.png" + image NEGATIVE_Z "staticenv-negz.png" } TexEnvCombine { DataVariance STATIC |
From: <sv...@ww...> - 2006-01-22 09:29:13
|
Author: mkrose Date: 2006-01-22 01:29:04 -0800 (Sun, 22 Jan 2006) New Revision: 1842 Modified: trunk/CSP/csp/data/models/aircraft/f16/f16dj-cockpit.osg Log: Add hooks for the mfd and ded displays, as well as the left-mfd OSB buttons. The latter are not yet animated, but can be clicked on. To modify the right mfd it is necessary to swap the displays for now (osb 15). Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1842 Diff omitted (10463 bytes). |
From: <sv...@ww...> - 2006-01-22 09:26:41
|
Author: mkrose Date: 2006-01-22 01:26:30 -0800 (Sun, 22 Jan 2006) New Revision: 1841 Added: trunk/CSP/csp/data/images/staticenv-negx.png trunk/CSP/csp/data/images/staticenv-negy.png trunk/CSP/csp/data/images/staticenv-negz.png trunk/CSP/csp/data/images/staticenv-posx.png trunk/CSP/csp/data/images/staticenv-posy.png trunk/CSP/csp/data/images/staticenv-posz.png Log: Add images for an environment map. These were captured from the simulation at about 3000 ft above the airbase in +/- X, Y, and Z directions. This is mostly a temporary hack, and avoids potential copyright issues with static environment maps that are available on the web. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1841 Added: trunk/CSP/csp/data/images/staticenv-negx.png =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/images/staticenv-negx.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/images/staticenv-negy.png =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/images/staticenv-negy.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/images/staticenv-negz.png =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/images/staticenv-negz.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/images/staticenv-posx.png =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/images/staticenv-posx.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/images/staticenv-posy.png =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/images/staticenv-posy.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/CSP/csp/data/images/staticenv-posz.png =================================================================== (Binary files differ) Property changes on: trunk/CSP/csp/data/images/staticenv-posz.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <sv...@ww...> - 2006-01-22 09:21:16
|
Author: mkrose Date: 2006-01-22 01:21:10 -0800 (Sun, 22 Jan 2006) New Revision: 1840 Modified: trunk/CSP/csp/tools/hid/examples/aircraft.map Log: Map the x36 pinkie switch to toggle the joystick shift state. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1840 Modified: trunk/CSP/csp/tools/hid/examples/aircraft.map =================================================================== --- trunk/CSP/csp/tools/hid/examples/aircraft.map 2006-01-22 09:18:54 UTC (rev 1839) +++ trunk/CSP/csp/tools/hid/examples/aircraft.map 2006-01-22 09:21:10 UTC (rev 1840) @@ -3,14 +3,17 @@ device joystick 0 x36 Saitek_X36 -map x36:Stick_X axis AILERON -map x36:Stick_Y axis ELEVATOR -map x36:Rudder axis RUDDER -map x36:Throttle axis THROTTLE -map x36:FireA press SMOKE_TOGGLE -map x36:FireB press WHEEL_BRAKE_ON -map x36:FireB release WHEEL_BRAKE_OFF +map x36:Stick_X axis AILERON +map x36:Stick_Y axis ELEVATOR +map x36:Rudder axis RUDDER +map x36:Throttle axis THROTTLE +map x36:FireA press SMOKE_TOGGLE +map x36:FireB press WHEEL_BRAKE_ON +map x36:FireB release WHEEL_BRAKE_OFF +map x36:Pinkie press SHIFT +map x36:SHIFT-Pinkie release NOSHIFT + map key:CTRL-SHIFT-a press CYCLE_HUD_ALTITUDE_SWITCH map key:CTRL-SHIFT-d press CYCLE_HUD_DATA_SWITCH map key:CTRL-SHIFT-f press CYCLE_HUD_FLIGHT_PATH_MARKER_SWITCH |
From: <sv...@ww...> - 2006-01-22 09:19:00
|
Author: mkrose Date: 2006-01-22 01:18:54 -0800 (Sun, 22 Jan 2006) New Revision: 1839 Modified: trunk/CSP/csp/cspsim/SConscript Log: Add new source files to the build. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1839 Modified: trunk/CSP/csp/cspsim/SConscript =================================================================== --- trunk/CSP/csp/cspsim/SConscript 2006-01-22 09:17:28 UTC (rev 1838) +++ trunk/CSP/csp/cspsim/SConscript 2006-01-22 09:18:54 UTC (rev 1839) @@ -75,8 +75,6 @@ 'Colorspace.cpp', 'Colorspace.h', 'ConditionsChannels.h', -# 'Config.cpp', -# 'Config.h', 'ControlInputsChannels.h', 'ControlNode.h', 'ControlSurfacesChannels.h', @@ -180,21 +178,18 @@ 'VirtualScene.cpp', 'VirtualScene.h', -# 'battlefield/Battlefield.cpp', -# 'battlefield/Battlefield.h', -# 'battlefield/BattlefieldMessages.net', 'battlefield/LocalBattlefield.cpp', 'battlefield/LocalBattlefield.h', 'battlefield/SceneManager.cpp', 'battlefield/SceneManager.h', -# 'battlefield/SimObject.cpp', -# 'battlefield/SimObject.h', 'f16/AlphaNumericDisplay.cpp', 'f16/AlphaNumericDisplay.h', 'f16/Constants.cpp', 'f16/Constants.h', 'f16/DataEntry.h', + 'f16/DataEntryDisplay.cpp', + 'f16/DataEntryDisplay.h', 'f16/DataEntryPage.cpp', 'f16/DataEntryPage.h', 'f16/F16Channels.cpp', @@ -216,8 +211,12 @@ 'f16/FuelSystem.cpp', 'f16/GroundAvoidanceAdvisory.cpp', 'f16/GroundAvoidanceAdvisory.h', + 'f16/JetFuelStarter.cpp', + 'f16/JetFuelStarter.h', 'f16/MasterModes.cpp', 'f16/MasterModes.h', + 'f16/MultiFunctionDisplay.cpp', + 'f16/MultiFunctionDisplay.h', 'f16/NavigationSystem.cpp', 'f16/NavigationSystem.h', 'f16/PageALOW.h', @@ -232,8 +231,11 @@ 'f16/Radio.h', 'f16/SpecialFonts.cpp', 'f16/SpecialFonts.h', + 'f16/StoresManagementPages.cpp', 'f16/UpFrontControls.cpp', 'f16/UpFrontControls.h', + 'f16/VoiceMessageUnit.cpp', + 'f16/VoiceMessageUnit.h', 'glDiagnostics.cpp', 'glDiagnostics.h', |
From: <sv...@ww...> - 2006-01-22 09:17:34
|
Author: mkrose Date: 2006-01-22 01:17:28 -0800 (Sun, 22 Jan 2006) New Revision: 1838 Added: trunk/CSP/csp/cspsim/f16/JetFuelStarter.cpp trunk/CSP/csp/cspsim/f16/JetFuelStarter.h Log: Add the start of a jfs model for the f16. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1838 Added: trunk/CSP/csp/cspsim/f16/JetFuelStarter.cpp =================================================================== --- trunk/CSP/csp/cspsim/f16/JetFuelStarter.cpp 2006-01-22 09:16:46 UTC (rev 1837) +++ trunk/CSP/csp/cspsim/f16/JetFuelStarter.cpp 2006-01-22 09:17:28 UTC (rev 1838) @@ -0,0 +1,167 @@ +// Combat Simulator Project +// Copyright (C) 2005 The Combat Simulator Project +// http://csp.sourceforge.net +// +// This program is free software; you can redistribute it and/or +// modify it 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. + + +/** + * @file JetFuelStarter.cpp + * + **/ + + +#include <csp/cspsim/f16/JetFuelStarter.h> +#include <csp/csplib/util/Conversions.h> +#include <csp/csplib/util/Math.h> +#include <csp/csplib/util/Random.h> +#include <csp/csplib/data/ObjectInterface.h> + +CSP_NAMESPACE + +CSP_XML_BEGIN(JetFuelStarter) + CSP_DEF("power", m_Power, true) + CSP_DEF("drive_rate", m_DriveRate, true) + CSP_DEF("start_chance", m_StartChance, true) + CSP_DEF("heat_rate", m_HeatRate, true) + CSP_DEF("cool_rate", m_CoolRate, true) + CSP_DEF("shutdown_temperature", m_ShutdownTemp, true) + CSP_DEF("spinup_rate", m_SpinupRate, true) + CSP_DEF("spindown_rate", m_SpindownRate, true) + CSP_DEF("max_fuel_flow", m_MaxFuelFlow, true) +CSP_XML_END + + +JetFuelStarter::JetFuelStarter(): + m_Enabled(false), + m_Temperature(0.0), + m_Drive(0.0), + m_Power(0.0294), + m_DriveRate(0.03), + m_StartChance(0.999), + m_HeatRate(0.01), + m_CoolRate(0.01), + m_ShutdownTemp(0.85), + m_SpinupRate(0.2), + m_SpindownRate(0.8), + m_MaxFuelFlow(0.0184) { // l/s (JFS 100-13 burns 117 lb/hr at max hp) +} + +double JetFuelStarter::getFuelDemand(double dt) const { + return m_Enabled ? std::max(0.0, m_MaxFuelFlow * m_Drive * dt) : 0.0; +} + +void JetFuelStarter::update(double dt, double fuel_received) { + if (m_Enabled) { + const double fuel_needed = getFuelDemand(dt); + if (fuel_received < fuel_needed) { + deactivate(); + return; + } + double spool_rate = (1.0 - m_Drive) * m_SpinupRate; + m_Drive = std::min(1.0, m_Drive + spool_rate * dt); + double heat_rate = (1.0 - m_Temperature) * m_HeatRate; + m_Temperature = std::min(1.0, m_Temperature + heat_rate * dt); + if (m_Temperature > m_ShutdownTemp) { + deactivate(); + } + } else { + if (m_Temperature > 0.0) { + double heat_rate = -m_Temperature * m_CoolRate; + m_Temperature = std::max(0.0, m_Temperature + heat_rate * dt); + } + if (m_Drive > 0.0) { + double spool_rate = -m_Drive * m_SpindownRate; + m_Drive = std::max(0.0, m_DriveRate + spool_rate * dt); + } + } +} + +/* TODO accumulators should be managed elsewhere (e.g. by EngineDynamics) since + * they have to be available to multiple systems. +updateAccumulators(dt, engine_rpm); +void JetFuelStarter::updateAccumulators(double dt, double engine_rpm) { + if (m_Accumulator1 + m_Accumulator2 < 2.0) { + double factor = clampTo((engine_rpm - m_AccumulatorRechargeRpm) * m_AccumulatorRechargeFactor, 0.0, 1.0); + double recharge = factor * m_AccumulatorRechargeRate * dt; + if (m_Accumulator1 < 1.0 && m_Accumulator2 < 1.0) recharge *= 0.5; + m_Accumulator1 = std::min(1.0, m_Accumulator1 + recharge); + m_Accumulator2 = std::min(1.0, m_Accumulator2 + recharge); + } +} +*/ + +// Note that the caller is responsible for draining the accumulator. +void JetFuelStarter::start(double accumulator, double altitude, double airspeed) { + // ignite doesn't check for available fuel, but if fuel isn't available the first + // update will shut the jfs down. + if (ignite(accumulator, altitude, airspeed)) { + enable(true); + // init drive to a negative value to simulate startup time + m_Drive = accumulator * 0.5 - 1.0; + } +} + +static double decay(double x, double scale) { return 1.0 / (1.0 + x * x / (scale * scale)); } + +bool JetFuelStarter::ignite(double accumulator, double altitude, double airspeed) { + // ad-hoc dependence on accumulator pressure. best start chance at 95% charge + // or above, with steep drop off to no chance below 63% charge. + double sq = accumulator * accumulator; + double start_chance = clampTo(1.5 * (sq * sq * sq - 0.0625), 0.0, 1.0); + start_chance *= m_StartChance; + + // rapid drop above T = 0.4 (0.5 @ T = 0.43) + double temperature_factor = std::max(0.0, m_Temperature - 0.4); + start_chance *= decay(temperature_factor, 0.03); + + // quasi ad-hoc altitude and airspeed dependence based on recommended JFS start + // conditions in MCI 11-F16, vol. 3, 21 April 1995. + + // reduced chance above 6000m (~ 20000 ft). + double altitude_factor = std::max(0.0, altitude - 6000.0); + start_chance *= decay(altitude_factor, 2000.0); + + // reduced chance above 400 kias. + double airspeed_kias = convert::mps_kts(airspeed); + double airspeed_factor = std::max(0.0, airspeed_kias - 400.0); + start_chance *= decay(airspeed_factor, 50.0); + + double dice = g_Random.unit(); // FIXME use thread-specific rng + return (dice < start_chance); +} + +void JetFuelStarter::deactivate() { + enable(false); +} + +double JetFuelStarter::getDrive() const { + return std::max(0.0, m_Drive) * m_Power; +} + +bool JetFuelStarter::isActive() const { + return m_Enabled && m_Drive > 0.0; +} + +bool JetFuelStarter::isEnabled() const { + return m_Enabled; +} + +void JetFuelStarter::enable(bool on) { + m_Enabled = on; +} + +CSP_NAMESPACE_END + Added: trunk/CSP/csp/cspsim/f16/JetFuelStarter.h =================================================================== --- trunk/CSP/csp/cspsim/f16/JetFuelStarter.h 2006-01-22 09:16:46 UTC (rev 1837) +++ trunk/CSP/csp/cspsim/f16/JetFuelStarter.h 2006-01-22 09:17:28 UTC (rev 1838) @@ -0,0 +1,73 @@ +// Combat Simulator Project +// Copyright (C) 2005 The Combat Simulator Project +// http://csp.sourceforge.net +// +// This program is free software; you can redistribute it and/or +// modify it 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. + + +/** + * @file JetFuelStarter.h + * + **/ + + +#ifndef __JETFUELSTARTER_H__ +#define __JETFUELSTARTER_H__ + +#include <csp/csplib/data/Object.h> + +CSP_NAMESPACE + +class JetFuelStarter: public Object { +public: + CSP_DECLARE_OBJECT(JetFuelStarter) + + JetFuelStarter(); + + virtual double getFuelDemand(double dt) const; + virtual void update(double dt, double fuel); + virtual void start(double accumulator, double altitude, double airspeed); + virtual void deactivate(); + virtual double getDrive() const; + virtual bool isActive() const; + +protected: + void enable(bool on); + bool isEnabled() const; + +private: + bool ignite(double accumulator, double altitude, double airspeed); + + // state + bool m_Enabled; + double m_Temperature; + double m_Drive; + + // xml interface + double m_Power; + double m_DriveRate; + double m_StartChance; + double m_HeatRate; + double m_CoolRate; + double m_ShutdownTemp; + double m_SpinupRate; + double m_SpindownRate; + double m_MaxFuelFlow; +}; + +CSP_NAMESPACE_END + +#endif // __JETFUELSTARTER_H__ + |
From: <sv...@ww...> - 2006-01-22 09:16:52
|
Author: mkrose Date: 2006-01-22 01:16:46 -0800 (Sun, 22 Jan 2006) New Revision: 1837 Added: trunk/CSP/csp/cspsim/f16/MultiFunctionDisplay.cpp trunk/CSP/csp/cspsim/f16/MultiFunctionDisplay.h trunk/CSP/csp/cspsim/f16/StoresManagementPages.cpp trunk/CSP/csp/cspsim/f16/StoresManagementPages.h Log: Add initial support for the f16 multifunction displays, and a partial implementation of the SMS pages. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1837 Diff omitted (74842 bytes). |
From: <sv...@ww...> - 2006-01-22 09:15:43
|
Author: mkrose Date: 2006-01-22 01:15:37 -0800 (Sun, 22 Jan 2006) New Revision: 1836 Added: trunk/CSP/csp/cspsim/f16/DataEntryDisplay.cpp trunk/CSP/csp/cspsim/f16/DataEntryDisplay.h Log: Add the visual interface of the f16 data entry display. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1836 Added: trunk/CSP/csp/cspsim/f16/DataEntryDisplay.cpp =================================================================== --- trunk/CSP/csp/cspsim/f16/DataEntryDisplay.cpp 2006-01-22 09:14:00 UTC (rev 1835) +++ trunk/CSP/csp/cspsim/f16/DataEntryDisplay.cpp 2006-01-22 09:15:37 UTC (rev 1836) @@ -0,0 +1,122 @@ +// Combat Simulator Project +// Copyright (C) 2005 The Combat Simulator Project +// http://csp.sourceforge.net +// +// This program is free software; you can redistribute it and/or +// modify it 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. + + +/** + * @file DataEntryDisplay.cpp + * + **/ + + +#include <csp/cspsim/f16/DataEntryDisplay.h> +#include <csp/cspsim/f16/AlphaNumericDisplay.h> +#include <csp/cspsim/f16/SpecialFonts.h> +#include <csp/cspsim/hud/DisplayTools.h> +#include <csp/cspsim/hud/Text.h> + +#include <csp/csplib/util/Log.h> +#include <csp/csplib/util/osg.h> +#include <csp/csplib/util/StringTools.h> +#include <csp/csplib/data/ObjectInterface.h> + +#include <osg/Geode> +#include <osgText/Text> + + +CSP_NAMESPACE + +CSP_XML_BEGIN(DataEntryDisplay) + CSP_DEF("color", m_Color, false) + CSP_DEF("text_height", m_TextHeight, true) + CSP_DEF("line_spacing", m_LineSpacing, true) +CSP_XML_END + +using display::Element; +using display::ElementText; +using display::SymbolMaker; + +class DEDStandardFont: public DisplayFont { + float m_Height; + osg::Vec4 m_Color; + osg::ref_ptr<osgText::Font> m_Font; +public: + DEDStandardFont(float height, osg::Vec4 const &color): m_Height(height), m_Color(color), m_Font(NULL) { + m_Font = ReverseAltFont::load("hud.ttf"); + } + virtual double getHeight() const { return m_Height; } + virtual osgText::Font const *font() const { return m_Font.get(); } + virtual void apply(osgText::Text *text) { + text->setFont(m_Font.get()); + text->setFontResolution(30, 30); + text->setColor(m_Color); + text->setCharacterSize(m_Height); + text->setKerningType(osgText::KERNING_NONE); + text->setAxisAlignment(osgText::Text::XZ_PLANE); + } +}; + +DataEntryDisplay::DataEntryDisplay(): m_Color(1, 1, 1), m_TextHeight(0.003), m_LineSpacing(0.0035), m_LineCount(0), m_Lines(0), m_DirtyCount(0), m_Display(new osg::Group) { +} + +DataEntryDisplay::~DataEntryDisplay() { + delete[] m_Lines; +} + +void DataEntryDisplay::postCreate() { + System::postCreate(); + m_StandardFont = new DEDStandardFont(m_TextHeight, osg::Vec4(m_Color.x(), m_Color.y(), m_Color.z(), 1.0)); +} + +void DataEntryDisplay::registerChannels(Bus* bus) { + b_Display = bus->registerSharedDataChannel<Display>("DataEntryDisplay", Display()); + b_Display->value().model()->addChild(m_Display.get()); +} + +void DataEntryDisplay::importChannels(Bus* bus) { + b_DEDReadout = bus->getChannel("DED", false); + if (b_DEDReadout.valid() && b_DEDReadout->value().valid()) initDisplay(); +} + +void DataEntryDisplay::initDisplay() { + assert(m_LineCount == 0); + m_LineCount = b_DEDReadout->value()->height(); + CSPLOG(INFO, ALL) << "DataEntryDisplay::initDisplaye " << m_LineCount; + m_Lines = new osg::ref_ptr<osgText::Text>[m_LineCount]; + for (unsigned i = 0; i < m_LineCount; ++i) { + display::LabelElement *line = new display::LabelElement; + m_StandardFont->apply(line->text()); + m_Lines[i] = line->text(); + m_Lines[i]->setPosition(osg::Vec3(0, 0, -m_LineSpacing * i)); + m_Display->addChild(line->geode()); + } +} + +double DataEntryDisplay::onUpdate(double) { + assert(!m_LineCount || m_LineCount == b_DEDReadout->value()->height()); + int count = b_DEDReadout->value()->getDirtyCount(); + if (m_DirtyCount != count) { + m_DirtyCount = count; + for (unsigned i = 0; i < m_LineCount; ++i) { + m_Lines[i]->setText(b_DEDReadout->value()->getLine(i)); + } + } + return (m_LineCount > 0) ? 0.1 : -1; +} + +CSP_NAMESPACE_END + Added: trunk/CSP/csp/cspsim/f16/DataEntryDisplay.h =================================================================== --- trunk/CSP/csp/cspsim/f16/DataEntryDisplay.h 2006-01-22 09:14:00 UTC (rev 1835) +++ trunk/CSP/csp/cspsim/f16/DataEntryDisplay.h 2006-01-22 09:15:37 UTC (rev 1836) @@ -0,0 +1,75 @@ +// Combat Simulator Project +// Copyright (C) 2005 The Combat Simulator Project +// http://csp.sourceforge.net +// +// This program is free software; you can redistribute it and/or +// modify it 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. + + +/** + * @file DataEntryDisplay.h + * + **/ + + +#ifndef __CSPSIM_F16_DATAENTRYDISPLAY_H__ +#define __CSPSIM_F16_DATAENTRYDISPLAY_H__ + +#include <csp/cspsim/System.h> +#include <csp/cspsim/hud/Display.h> +#include <csp/csplib/data/Vector3.h> + +#include <osg/ref_ptr> +namespace osg { class Group; } +namespace osgText { class Text; } + +CSP_NAMESPACE + +class DisplayFont; +class AlphaNumericDisplay; + + +class DataEntryDisplay: public System { +public: + CSP_DECLARE_OBJECT(DataEntryDisplay) + + DataEntryDisplay(); + virtual ~DataEntryDisplay(); + + virtual void registerChannels(Bus*); + virtual void importChannels(Bus*); + +private: + virtual void postCreate(); + virtual double onUpdate(double dt); + void initDisplay(); + + Vector3 m_Color; + double m_TextHeight; + double m_LineSpacing; + + unsigned m_LineCount; + osg::ref_ptr<osgText::Text> *m_Lines; + int m_DirtyCount; + + DataChannel<Display>::RefT b_Display; + DataChannel<Ref<AlphaNumericDisplay> >::CRefT b_DEDReadout; + osg::ref_ptr<DisplayFont> m_StandardFont; + osg::ref_ptr<osg::Group> m_Display; +}; + +CSP_NAMESPACE_END + +#endif // __CSPSIM_F16_MULTIFUNCTIONDISPLAY_H__ + |
From: <sv...@ww...> - 2006-01-22 09:14:12
|
Author: mkrose Date: 2006-01-22 01:14:00 -0800 (Sun, 22 Jan 2006) New Revision: 1835 Added: trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.cpp trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.h Log: Add an initial voice messaging system (bitchin betty) for the f16. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1835 Added: trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.cpp =================================================================== --- trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.cpp 2006-01-22 08:42:53 UTC (rev 1834) +++ trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.cpp 2006-01-22 09:14:00 UTC (rev 1835) @@ -0,0 +1,101 @@ +// Combat Simulator Project +// Copyright (C) 2005 The Combat Simulator Project +// http://csp.sourceforge.net +// +// This program is free software; you can redistribute it and/or +// modify it 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. + + +/** + * @file VoiceMessageUnit.cpp + * + **/ + + +#include <csp/cspsim/f16/VoiceMessageUnit.h> +#include <csp/cspsim/f16/F16Channels.h> +#include <csp/csplib/util/Log.h> +#include <csp/csplib/data/ObjectInterface.h> + +#include <osgAL/SoundState> + +CSP_NAMESPACE + +// TODO notes for generalizing the VMU interface: +// - Sounds triggered by channel events: +// + boolean push channels only for now +// - Playback modes: +// + loop while active, complete current loop when deactivated. +// + loop while active, stop when deactivated. +// + loop while active, pause when deactivated. +// + play once when activated, optionally abort when deactivated +// + play once when deactivated, optionally abort when activated +// + others? +// +// Could be extended arbitrarily using channel adaptors from arbitrary +// input channels to a single output boolean push channel. +// +// Messages would be a list of {channel, sample, playback_mode}. + +CSP_XML_BEGIN(VoiceMessageUnit) +CSP_XML_END + + +VoiceMessageUnit::VoiceMessageUnit() { +} + +void VoiceMessageUnit::registerChannels(Bus*) { +} + +void VoiceMessageUnit::importChannels(Bus* bus) { + // TODO generalize to a list of messages, channels, and playback modes + b_AltitudeAdvisory = bindChannel(bus, "F16.GroundAvoidance.AltitudeAdvisory", &VoiceMessageUnit::onAltitudeAdvisory); + b_DescentWarningAfterTakeoff = bindChannel(bus, "F16.GroundAvoidance.DescentWarningAfterTakeoff", &VoiceMessageUnit::onDescentWarningAfterTakeoff); + m_AltitudeSoundEffect = addSoundEffect("altitude_warning_sample", SoundEffect::HEADSET); +} + + +DataChannel<bool>::CRefT VoiceMessageUnit::bindChannel(Bus *bus, std::string const &channel_name, void (VoiceMessageUnit::*handler)()) { + assert(bus); + DataChannel<bool>::CRefT channel = bus->getChannel(channel_name, false); + if (channel.valid()) channel->connect(this, handler); + return channel; +} + +void VoiceMessageUnit::onAltitudeAdvisory() { + assert(b_AltitudeAdvisory.valid()); + playMessage(m_AltitudeSoundEffect, b_AltitudeAdvisory->value()); +} + + +void VoiceMessageUnit::onDescentWarningAfterTakeoff() { + assert(b_DescentWarningAfterTakeoff.valid()); + playMessage(m_AltitudeSoundEffect, b_DescentWarningAfterTakeoff->value()); +} + +void VoiceMessageUnit::playMessage(Ref<SoundEffect> const &effect, bool active) { + if (!effect) return; + if (active) { + if (!effect->state()->isActive()) effect->state()->setPlay(false); + effect->state()->setLooping(true); + if (!effect->state()->getPlay()) effect->play(true); + } else { + // set the advisory warning to turn off after it completes. + if (effect->state()->getLooping()) effect->state()->setLooping(false); + if (!effect->state()->isActive()) effect->state()->setPlay(false); + } +} + +CSP_NAMESPACE_END + Added: trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.h =================================================================== --- trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.h 2006-01-22 08:42:53 UTC (rev 1834) +++ trunk/CSP/csp/cspsim/f16/VoiceMessageUnit.h 2006-01-22 09:14:00 UTC (rev 1835) @@ -0,0 +1,65 @@ +// Combat Simulator Project +// Copyright (C) 2005 The Combat Simulator Project +// http://csp.sourceforge.net +// +// This program is free software; you can redistribute it and/or +// modify it 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. + + +/** + * @file VoiceMessageUnit.h + * + **/ + + +#ifndef __F16_VOICEMESSAGEUNIT_H__ +#define __F16_VOICEMESSAGEUNIT_H__ + +#include <csp/cspsim/System.h> + +CSP_NAMESPACE + +/** Implements the F-16 Voice Message Unit (aka Bitchin' Betty). + * + * TODO generalize this implementation to work with arbitrary triggers + * and sounds. + */ + +class VoiceMessageUnit: public System, public sigc::trackable { +public: + CSP_DECLARE_OBJECT(VoiceMessageUnit) + + VoiceMessageUnit(); + + virtual void registerChannels(Bus* bus); + virtual void importChannels(Bus* bus); + +private: + DataChannel<bool>::CRefT bindChannel(Bus *bus, std::string const &channel_name, void (VoiceMessageUnit::*handler)()); + void playMessage(Ref<SoundEffect> const &effect, bool active); + + void onAltitudeAdvisory(); + void onDescentWarningAfterTakeoff(); + + Ref<SoundEffect> m_AltitudeSoundEffect; + + DataChannel<bool>::CRefT b_AltitudeAdvisory; + DataChannel<bool>::CRefT b_DescentWarningAfterTakeoff; +}; + + +CSP_NAMESPACE_END + +#endif // __F16_VOICEMESSAGEUNIT_H__ + |
From: <sv...@ww...> - 2006-01-22 08:43:01
|
Author: mkrose Date: 2006-01-22 00:42:53 -0800 (Sun, 22 Jan 2006) New Revision: 1834 Modified: trunk/CSP/csp/cspsim/SConscript Log: Remove DynamicModel.* from the build. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1834 Modified: trunk/CSP/csp/cspsim/SConscript =================================================================== --- trunk/CSP/csp/cspsim/SConscript 2006-01-22 08:35:18 UTC (rev 1833) +++ trunk/CSP/csp/cspsim/SConscript 2006-01-22 08:42:53 UTC (rev 1834) @@ -89,8 +89,6 @@ # 'DemeterTerrain.cpp', # 'DemeterTerrain.h', 'DoubleChannelMirror.cpp', - 'DynamicModel.cpp', - 'DynamicModel.h', 'DynamicObject.cpp', 'DynamicObject.h', 'DynamicalSystem.cpp', |
From: <sv...@ww...> - 2006-01-22 08:35:24
|
Author: mkrose Date: 2006-01-22 00:35:18 -0800 (Sun, 22 Jan 2006) New Revision: 1833 Removed: trunk/CSP/csp/cspsim/DynamicModel.cpp trunk/CSP/csp/cspsim/DynamicModel.h Modified: trunk/CSP/csp/cspsim/Animation.cpp trunk/CSP/csp/cspsim/CSPSim.cpp trunk/CSP/csp/cspsim/DynamicObject.cpp trunk/CSP/csp/cspsim/DynamicObject.h trunk/CSP/csp/cspsim/Engine.cpp trunk/CSP/csp/cspsim/Engine.h trunk/CSP/csp/cspsim/SceneModel.cpp trunk/CSP/csp/cspsim/SceneModel.h trunk/CSP/csp/cspsim/System.cpp trunk/CSP/csp/cspsim/System.h trunk/CSP/csp/cspsim/SystemsModel.cpp trunk/CSP/csp/cspsim/SystemsModel.h trunk/CSP/csp/cspsim/VirtualScene.cpp trunk/CSP/csp/cspsim/VirtualScene.h trunk/CSP/csp/cspsim/f16/AlphaNumericDisplay.cpp trunk/CSP/csp/cspsim/f16/AlphaNumericDisplay.h trunk/CSP/csp/cspsim/f16/UpFrontControls.cpp trunk/CSP/csp/cspsim/f16/UpFrontControls.h trunk/CSP/csp/cspsim/stores/StoresManagementSystem.cpp trunk/CSP/csp/cspsim/stores/StoresManagementSystem.h Log: So much for trying to check in small, self-contained sets of changes! The rest of the changes in my client are too interdependent, so I'm checking most of them in en masse. * Add a cockpit interface (Animation subclass) to support 2D displays. * Make AnimatedMomentarySwitch work even if the model does not define an animation path. * Initialize the sound system and add the listener node to the scene. * Remove DynamicModel in favor of direct callbacks in System. * Provide interfaces in System for adding sound effects to an object. * Miscellaneous house cleaning. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1833 Diff omitted (70293 bytes). |
From: <sv...@ww...> - 2006-01-22 08:24:46
|
Author: mkrose Date: 2006-01-22 00:24:37 -0800 (Sun, 22 Jan 2006) New Revision: 1832 Modified: trunk/CSP/csp/cspsim/f16/F16System.cpp trunk/CSP/csp/cspsim/f16/F16System.h Log: Add support for low speed and gear configuration warning tones, and fix the mastermode channel declaration needed by the f16 hud. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1832 Modified: trunk/CSP/csp/cspsim/f16/F16System.cpp =================================================================== --- trunk/CSP/csp/cspsim/f16/F16System.cpp 2006-01-22 04:54:12 UTC (rev 1831) +++ trunk/CSP/csp/cspsim/f16/F16System.cpp 2006-01-22 08:24:37 UTC (rev 1832) @@ -25,21 +25,25 @@ #include <csp/cspsim/f16/F16System.h> #include <csp/cspsim/f16/F16Channels.h> #include <csp/cspsim/AnimationSequence.h> -#include <csp/cspsim/CSPSim.h> #include <csp/cspsim/FlightDynamicsChannels.h> +#include <csp/cspsim/FuelManagementSystem.h> +#include <csp/cspsim/InputEventChannel.h> +#include <csp/cspsim/KineticsChannels.h> #include <csp/cspsim/LandingGearChannels.h> #include <csp/cspsim/NavigationChannels.h> +#include <csp/cspsim/SoundEffect.h> #include <csp/cspsim/SystemsModel.h> // for testing stores release #include <csp/cspsim/stores/StoresManagementSystem.h> #include <csp/cspsim/stores/Stores.h> +#include <csp/csplib/data/Date.h> +#include <csp/csplib/data/ObjectInterface.h> #include <csp/csplib/util/Conversions.h> -#include <csp/csplib/data/Date.h> #include <csp/csplib/util/Math.h> -#include <csp/csplib/data/ObjectInterface.h> + CSP_NAMESPACE CSP_XML_BEGIN(F16System) @@ -49,9 +53,7 @@ DEFINE_INPUT_INTERFACE(F16System) -const Enumeration F16System::MasterModes("NAV AA AG"); - F16System::F16System(): m_CatIII(false) { } @@ -65,7 +67,7 @@ b_StandbyGains = bus->registerLocalDataChannel<bool>(bus::F16::StandbyGains, false); b_TakeoffLandingGains = bus->registerLocalDataChannel<bool>(bus::F16::TakeoffLandingGains, false); b_NavigationSystem = bus->registerSharedDataChannel<Ref<NavigationSystem> >("Navigation", new NavigationSystem); - b_MasterMode = bus->registerLocalPushChannel<EnumLink>("MasterMode", MasterMode("NAV")); + b_MasterMode = bus->registerChannel(new f16::MasterModeSelection); bus->registerSharedDataChannel<double>("F16.CaraAlow", 0.0); bus->registerSharedDataChannel<double>("F16.MslFloor", 0.0); bus->registerSharedDataChannel<double>("F16.TfAdv", 0.0); @@ -82,14 +84,26 @@ b_LeftMainLandingGearWOW = bus->getChannel(bus::LandingGear::selectWOW("LeftGear")); b_RightMainLandingGearWOW = bus->getChannel(bus::LandingGear::selectWOW("RightGear")); b_GearFullyRetracted = bus->getChannel(bus::LandingGear::FullyRetracted); - // TODO bus::LandingGear::GearExtendSelected or bus::F16::GearHandleUp? + b_GearFullyExtended = bus->getChannel(bus::LandingGear::FullyExtended); b_GearExtendSelected = bus->getChannel(bus::LandingGear::GearExtendSelected); + b_GearHandleUp = bus->getChannel(bus::F16::GearHandleUp); b_Airspeed = bus->getChannel(bus::FlightDynamics::Airspeed); + b_Alpha = bus->getChannel(bus::FlightDynamics::Alpha); + b_Pitch = bus->getChannel(bus::Kinetics::Pitch); + b_Position = bus->getChannel(bus::Kinetics::Position); + b_Velocity = bus->getChannel(bus::Kinetics::Velocity); + b_PressureAltitude = bus->getChannel(bus::FlightDynamics::PressureAltitude); b_FuelDoorSequence = bus->getChannel("Aircraft.FuelDoorSequence.NormalizedTime", false); b_AirRefuelSwitch = bus->getChannel("F16.AirRefuelSwitch", false); + b_EngineRpm = bus->getChannel("Engine.RPM", true); + b_FuelManagementSystem = bus->getChannel("FuelManagementSystem"); + if (b_AirRefuelSwitch.valid()) { b_AirRefuelSwitch->connect(this, &F16System::onAirRefuelSwitch); } + + m_LowSpeedWarning = addSoundEffect("low_speed_warning_sound", SoundEffect::HEADSET); + m_ConfigurationWarning = addSoundEffect("configuration_warning_sound", SoundEffect::HEADSET); } double F16System::onUpdate(double dt) { @@ -114,6 +128,7 @@ if (m_CanopySequence.valid()) { m_CanopySequence->update(dt); } + updateWarnings(dt); return 0.0; } @@ -190,5 +205,50 @@ b_ManualPitchOverride->value() = false; } +void F16System::getInfo(InfoList &) const { +} + +// TODO use LocalUpdate to call this only occasionally +void F16System::updateWarnings(double) { + double alpha = toDegrees(b_Alpha->value()); + double pitch = toDegrees(b_Pitch->value()); + double airspeed = convert::mps_kts(b_Airspeed->value()); + bool horn = false; + bool tone = false; + bool light = false; + if (alpha > 15.0 && (!b_GearHandleUp->value() || b_AltFlaps->value())) { + tone = true;; + } else if (b_GearHandleUp->value() && !b_AltFlaps->value() && pitch >= 45.0) { + double limit = 200.0 - (90.0 - pitch) * (100.0 / 45.0); + tone = (airspeed < limit); + } + if (airspeed < 170.0) { + static const double altitude_limit = convert::ft_m(10000.0); + if (b_Position->value().z() < altitude_limit) { + static const double vv_limit = convert::ft_m(250.0 / 60.0); // fpm to mps + if (b_Velocity->value().z() < -vv_limit) { + if (!b_GearFullyExtended->value()) { + horn = true; + light = true; + } else if (b_TrailingEdgeFlapExtension->value() < toRadians(24.9)) { + light = true; + } + } + } + } + + // FIXME replace statics with member varibales + static bool low = false; + if (tone != low) { + low = tone; + if (m_LowSpeedWarning.valid()) m_LowSpeedWarning->play(tone); + } + static bool gear = false; + if (gear != (horn || light)) { + gear = !gear; + if (m_ConfigurationWarning.valid()) m_ConfigurationWarning->play(horn); + } +} + CSP_NAMESPACE_END Modified: trunk/CSP/csp/cspsim/f16/F16System.h =================================================================== --- trunk/CSP/csp/cspsim/f16/F16System.h 2006-01-22 04:54:12 UTC (rev 1831) +++ trunk/CSP/csp/cspsim/f16/F16System.h 2006-01-22 08:24:37 UTC (rev 1832) @@ -30,6 +30,7 @@ #ifndef __CSPSIM_F16_F16SYSTEM_H__ #define __CSPSIM_F16_F16SYSTEM_H__ +#include <csp/cspsim/f16/Constants.h> #include <csp/cspsim/f16/NavigationSystem.h> #include <csp/cspsim/System.h> #include <csp/cspsim/Steerpoint.h> @@ -40,11 +41,12 @@ CSP_NAMESPACE +class FuelManagementSystem; +class JetFuelStarter; class TimedSequence; + class F16System: public System { - static const Enumeration MasterModes; - public: CSP_DECLARE_OBJECT(F16System) @@ -78,39 +80,57 @@ virtual void nextSteerpoint(); virtual void prevSteerpoint(); + virtual void getInfo(InfoList &info) const; + +protected: virtual void registerChannels(Bus*); virtual void importChannels(Bus*); - typedef Enum<MasterModes> MasterMode; + DataChannel<EnumLink>::CRefT b_AirRefuelSwitch; -protected: + DataChannel<bool>::CRefT b_GearExtendSelected; + DataChannel<bool>::CRefT b_GearFullyExtended; + DataChannel<bool>::CRefT b_GearFullyRetracted; + DataChannel<bool>::CRefT b_GearHandleUp; - //void addTestSteerpoints(); + DataChannel<Vector3>::CRefT b_Position; + DataChannel<Vector3>::CRefT b_Velocity; - DataChannel<EnumLink>::CRefT b_AirRefuelSwitch; - DataChannel<bool>::CRefT b_GearExtendSelected; - DataChannel<bool>::CRefT b_GearFullyRetracted; + DataChannel<double>::CRefT b_Alpha; + DataChannel<double>::CRefT b_Pitch; DataChannel<double>::CRefT b_Airspeed; + DataChannel<double>::CRefT b_PressureAltitude; + DataChannel<double>::CRefT b_EngineRpm; + DataChannel<double>::CRefT b_FuelDoorSequence; DataChannel<bool>::CRefT b_NoseLandingGearWOW; DataChannel<bool>::CRefT b_LeftMainLandingGearWOW; DataChannel<bool>::CRefT b_RightMainLandingGearWOW; DataChannel<bool>::CRefT b_WheelSpin; + DataChannel<double>::RefT b_TrailingEdgeFlapExtension; DataChannel<double>::RefT b_AirbrakeLimit; + DataChannel<bool>::RefT b_AltFlaps; DataChannel<bool>::RefT b_CatIII; DataChannel<bool>::RefT b_ManualPitchOverride; DataChannel<bool>::RefT b_ManualPitchOverrideActive; + DataChannel<bool>::RefT b_StandbyGains; DataChannel<bool>::RefT b_TakeoffLandingGains; + + DataChannel<Ref<FuelManagementSystem> >::CRefT b_FuelManagementSystem; DataChannel<Ref<NavigationSystem> >::RefT b_NavigationSystem; - DataChannel<EnumLink>::RefT b_MasterMode; + f16::MasterModeSelection::RefT b_MasterMode; Link<TimedSequence> m_FuelDoorSequence; Link<TimedSequence> m_CanopySequence; + Ref<SoundEffect> m_LowSpeedWarning; + Ref<SoundEffect> m_ConfigurationWarning; + virtual double onUpdate(double dt); + void updateWarnings(double dt); // TODO should use push channels so we don't have to track state separately! // right now we poll state variables in the update handler to check if anything |
From: <sv...@ww...> - 2006-01-22 04:54:19
|
Author: mkrose Date: 2006-01-21 20:54:12 -0800 (Sat, 21 Jan 2006) New Revision: 1831 Added: trunk/CSP/csp/cspsim/f16/Constants.cpp trunk/CSP/csp/cspsim/f16/Constants.h trunk/CSP/csp/cspsim/hud/Display.cpp trunk/CSP/csp/cspsim/hud/Display.h trunk/CSP/csp/cspsim/hud/DisplayTools.cpp trunk/CSP/csp/cspsim/hud/DisplayTools.h Modified: trunk/CSP/csp/cspsim/SConscript trunk/CSP/csp/cspsim/f16/F16HUD.cpp trunk/CSP/csp/cspsim/f16/F16HUD.h trunk/CSP/csp/cspsim/hud/HUD.cpp trunk/CSP/csp/cspsim/hud/HUD.h trunk/CSP/csp/cspsim/hud/PitchLadder.h trunk/CSP/csp/cspsim/hud/Tape.cpp trunk/CSP/csp/cspsim/hud/Tape.h trunk/CSP/csp/cspsim/hud/Text.cpp trunk/CSP/csp/cspsim/hud/Text.h Log: Refactor hud drawing classes to provide a general framework for rendering vehicle displays (hud, text, mfd, etc). Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1831 Diff omitted (84255 bytes). |
From: <sv...@ww...> - 2006-01-22 04:50:46
|
Author: mkrose Date: 2006-01-21 20:50:39 -0800 (Sat, 21 Jan 2006) New Revision: 1830 Modified: trunk/CSP/csp/cspsim/SConscript Log: Add MasterModes to the bulid. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1830 Modified: trunk/CSP/csp/cspsim/SConscript =================================================================== --- trunk/CSP/csp/cspsim/SConscript 2006-01-22 03:47:58 UTC (rev 1829) +++ trunk/CSP/csp/cspsim/SConscript 2006-01-22 04:50:39 UTC (rev 1830) @@ -216,6 +216,8 @@ 'f16/FuelSystem.cpp', 'f16/GroundAvoidanceAdvisory.cpp', 'f16/GroundAvoidanceAdvisory.h', + 'f16/MasterModes.cpp', + 'f16/MasterModes.h', 'f16/NavigationSystem.cpp', 'f16/NavigationSystem.h', 'f16/PageALOW.h', |
From: <sv...@ww...> - 2006-01-22 03:48:07
|
Author: mkrose Date: 2006-01-21 19:47:58 -0800 (Sat, 21 Jan 2006) New Revision: 1829 Added: trunk/CSP/csp/cspsim/f16/SpecialFonts.cpp Modified: trunk/CSP/csp/cspsim/f16/SpecialFonts.h Log: Move f16 specialized font implementations out of the header and add a custom font cache that is keyed on both facade type and filename. This allows multiple custom facades to be used safely with the same font file and avoids segfaults that were possible with the old implementation. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1829 Diff omitted (21176 bytes). |