User:Callahanp: Difference between revisions

Jump to navigation Jump to search
9,944 bytes removed ,  31 August 2023
(Hackathon 2023 Proposal Draft)
Line 1: Line 1:
== What I'm doing: ==
Currently working on:
Yeah, still trying to find time to build an actual cockpit.


Stuff I'm working on:
Web Socket Refactor & Fix. 


* Metal Shop Projects
OSM (Open Street Map) Scenery Build
* Arduino Projects
* Simulator Cockpit C++ Coding
* Flightgear Documentation
* 2023 Hackathon Proposal  Refactor subscribing to property values via the WebSocket interface.    The problems in this area of the flightgear codebase are:  - Subscriptions to a property with an index such as Comm and Comm[1] frequencies will return changed values for Comm, but none are returned for Comm[1]  - The web socket interface operating at the default speed with a .05 second transmission window can only send about 120 unique property values per second. A defect in the current code resets all subscribed properties to unchanged after the first six or seven properties are sent    This means that many changes are entirely missing while others are significantly delayed.  - Property values for many cockpit instruments are recalculated at twice the frame rate.  Most of these calculations cause infinitesimal changes with values flipping back and forth in a range that is invisible on the instruments.  Repeatedly transmitting these small changes for even a few properties, floods the websocket with noise, blocking or delaying the transmission of changes that are actually significant.  A minimum change threshold is needed for such properties.  I've done some investigating, but need to write it up better.  The websocket interface is used for property subscriptions requested from clients, and is also used by PHI.  I need to understand how PHI is using the HTTP service and WebSockets


'''<big>Metal Shop</big>'''
Goals (Maybe)
{| class="wikitable"
|'''Task'''
|'''Description'''
|'''Status'''
|-
|Design and Machine Aluminum Bezels for Tachometer, Airspeed, etc.
|Need:


* Design in OpenSCAD
- Download Scenery from Current Scenery Developers
* Machine on Tormach, Aluminum or Black Plastic or Composite Material.
- Build Scripts for Scenery Land Class, Elevation, and OSM processing
* Paint if Aluminum
- Understand the underlying formats in Flightgear Scenery
* Fixturing for Plastic needed.  Central hole is large in comparison to remaining material. Material can deform in the revise.  Needs to be attached at multiple point to something stable if machining as one piece. Just putting the blank in a vise won't work.
- Understand the processing of Scenery data between tiles in the build process and the running simulator
|Some work complete. Designs available for 3d printing or machining
- Assist Scenery Developers with technical support.
|-
|Design Fixture for machining Prism and Flat lenses for Instrument Illumination. Figure out how to trim the square prisms as the desired shape.
|Need
 
* to hold a piece of plexiglass to be resurfaced at the correct angle as a prism
* to hold the prisms in place so the outside edge can be machined. round for the flat lens and one of the prisms, complex shape for the prism.
* Will laser cutter do for the outside machining?
* Paint part of the edge of the prisms
|Need advice and someone to talk with how might have done machining and polishing of Acrylic or Polycarbonate
|-
|Machine and Polish Prism and Flat Lenses
|Do the work on the tormach.
|Need Material and Fixturing
|-
|
|
|
|}
'''Coding Tasks'''
{| class="wikitable"
|-
|Connect Altimiter, Tachometer, Airspeed, Fuel and Oil Gauges to Flightgear
|Plan:
 
* Use the Left Panel Shock Mount from the Cessna 172N I got for $50 on ebay.
* Use the standard subscription mechanism, or poll the properties directly.
* First cut, no calibration, let the indicators work of raw data. May need functions to do relative scaling of normed properties
* Second cut, add calibration tables for the properties.
* Third cut, provide a UI for calibration tables
* Fourth pass, persistence for calibration tables and property paths.
|Need to startC++ coding to get the data on a separate process for communication to a set of arduinos.
 
 
Later, may need to modify Flightgear to produce packets of a set of properties for input or output.
 
|}
{| class="wikitable"
|+
Arduino Projects
!Tasks
!Description
!Status
|-
|Getting an arduino to blink Morse Code
|Just for the exercise.
|Done
|-
|Getting an arduno to drive several meter movements through a 16 channel I2c PWM controller
|eight meters in all: Fuel, Left & Right, Oil Pressure & Temperature,  & 2 cdi indicators each with horizontal and vertical needles.
|
|-
|Getting an arduino to drive a 28 BYJ 48 stepper motor
|For the Altimiter
|
|-
|Getting an arduino to drive a dual needle Stepper Motor
|For the Chronometer?  What about second hand?  Take apart and re-design?
|
|-
|Getting an arduno to drivean x27-168
|Tachometer & Airspeed
|
|-
|Build the Tachometer and Airspeed Indicators to Flightgear standard for C172P 1982
|
|
|-
|Build the altimeter
|
|
|-
|Design and Machine Aluminum Bezels for Tachometer, Airspeed, etc.
|Need:
 
* Design in OpenSCAD
* Machine on Tormach, Aluminum or Black Plastic or Composite Material.
* Paint if Aluminum
* Fixturing for Plastic needed.  Central hole is large in comparison to remaining material. Material can deform in the revise.  Needs to be attached at multiple point to something stable if machining as one piece. Just putting the blank in a vise won't work.
|
|-
|Design Fixture for machining Prism and Flat lenses for Instrument Illumination. Figure out how to trim the square prisms as the desired shape.
|Need
 
* to hold a piece of plexiglass to be resurfaced at the correct angle as a prism
* to hold the prisms in place so the outside edge can be machined. round for the flat lens and one of the prisms, complex shape for the prism.
* Will laser cutter do for the outside machining?
* Paint part of the edge of the prisms
|
|-
|Machine and Polish Prism and Flat Lenses
|Do the work on the tormach.
|
|-
|Connect Altimiter, Tachometer, Airspeed, Fuel and Oil Gauges to Flightgear
|Plan:
 
* Use the Left Panel Shock Mount from the Cessna 172N I got for $50 on ebay.
* Use the standard subscription mechanism, or poll the properties directly.
* First cut, no calibration, let the indicators work of raw data. May need functions to do relative scaling of normed properties
* Second cut, add calibration tables for the properties.
* Third cut, provide a UI for calibration tables
* Fourth pass, persistence for calibration tables and property paths.
|
|}
 
 
'''<big>Define and Describe FlightGear Use Cases</big>'''
 
https://sourceforge.net/p/flightgear/mailman/message/37833798/
 
A new wiki page or edits to an existing wiki page possibly with an article on the forum:
 
*
 
There are interesting ongoing development projects on Flightgear, including new features, new scenery and aircraft.  I wanted to try some of them out.
 
As part of my project https://github.com/callahanp/fgdev, I want to document the command line options, build options, necessary files, environment variables and actions needed to use, test and develop flightgear features, scenery, airports and aircraft.
*
{| class="wikitable"
|+
!Scenario or Description
!Flightgear cmake build/Executable Startup Options
and Environment Variables
|Notes:
 
*Recommended File Placement
*Command Line Options
*Development Status
*Report Errors to:
|-
|HDR:
|<nowiki>--compositor=Compositor/HDR/hdr</nowiki>
|[[HDR Pipeline]]
 
|-
|New Canvas GUI
|{{Note|The [[PUI|PUI Compatible Canvas GUI]] is a compile time option: Use the following [[Building using CMake|cmake option]] to enable this code: {{CMake Build Option|option=ENABLE_PUICOMPAT|default=ON|description=This requires latest SG/FG AND FGDATA}}. But this is all highly fluid and most of it really developer only. At one point they will become default or be accessible in the launcher.<ref>https://sourceforge.net/p/flightgear/mailman/message/37834004/</ref>}}
<p />
<code>--prop:/nasal/gui/enabled=1</code>
|{{Main article|PUI#Canvas_Emulation}}
To learn more about the implementation of underlying widgets, see [[Canvas widget matrix]]
|-
|High Altitude and Spaceflight
|<nowiki>--prop:/earthview/show-force-all=true</nowiki>
 
--compositor=Compositor/als
|Special Data Requirements are detailed on a Wiki Page with Details: [[Earthview]]
|-
|World Scenery 2.0
|
|[https://sourceforge.net/p/flightgear/mailman/message/37803421 Updated US & Canada Scenery https://sourceforge.net/p/flightgear/mailman/message/37803421]
 
|-
| World Scenery 3.0
|
|
|-
|Photoscenery for WS2.0
|<nowiki>--prop:/sim/rendering/photoscenery/enabled=true</nowiki>
|
|-
|Photoscenery for WS3.0
|<nowiki>--prop:/sim/rendering/photoscenery/enabled=true</nowiki>
|
|-
|Other Scenery
|
|
|-
|Other Aircraft
|
|
|-
|Testing
|
|
|-
|Developer Mode
| --developer
|Not sure Exactly what this does, but currently, a dialog indicating an error in the C172P appears that is not there without developer mode.
|-
|Multiplayer
|see: [[Command line options#MultiPlayer Options]]
 
 
--multiplay=in,10,<your-internal-ip-address>,5000
example: --multiplay=in,10,192.168.1.246,5000
|In your router, allow TCP and UDP Port forwarding.
 
 
Example:
{| class="wikitable"
|+
!Application
!Original Port
!Protocol
!Fwd to Addr
!Fwd to Port
!Schedule
|-
|
|5000
|Both
|192.168.1.246
|5000
|Always
|-
|
|5001
| Both
|192.168.1.246
|5001
|Always
|}
|-
|Two Users at same location
|
|
|-
| Web Server - Phi
|see: [[Command line options#Network Options]]
 
 
<nowiki>--httpd=5401</nowiki>
|In web browser on the same machine as Flightgear is running on, enter this URL:
localhost:5401
|-
|Other useful Options
| --callsign=N1742C --timeofday=noon --enable-terrasync --enable-real-weather-fetch --enable-horizon-effect -multiplay=in,10,192.168.1.246,5000  --httpd=5401
|These options are present by default when you run using the fgdev infrastructure. Your ip address and environment variable MY_CALLSIGN will be used
|-
|Building Flightgear from Sources
|see [[Building FlightGear]]
|'''Shamelss plug for "flightgear development utilities":'''
 
Let's make this easy: <nowiki>https://github.com/callahanp/fgdev</nowiki>
 
b -c next
 
r next  --airport=KBED --developer
 
v next
 
1,2,3 - Build, run, open flightgear and simgear in vscode and use it's debugger.
|-
|Changing Flightgear Materials - In addition to pulling from the official flightgear git repos, you want to make changes and bug fixes on branches, pushing your changes to private forks and submitting merge requests to have your changes integrated with the official repos.
|In the situation described in the altassian tutorial, the author mentions three options for dealing with additional changes suggested in response to a merge request.  The article doesn't clearly state what the three options are. 
|https://www.atlassian.com/git/tutorials/git-forks-and-upstreams
|}
 
*
 
<references />
936

edits

Navigation menu