- C and C++ are two different programming languages (see wikipedia)
- FlightGear is mostly written in C++
- if you haven't had a lot of exposure to C++ so far, it is quite an undertaking to learn C++ AND get to know FlightGear, especially if you have to meet a deadline (even with 6 months time)
- Nasal is meant to be used by non programmer, it is for example used by many aircraft or scenery developers who have very little programming experience
- Nasal will not necessarily be suitable for everything, but it can surely be used for prototyping most things
- still, being able to build FG from source is good and useful, especially for using the latest development code
- there are things that you may at some point move into C++ space, e.g. due to performance reasons
- other things may currently only be possible in C++, because there is no API provided for the scripting language
- then, you'll need to be able to build FG from source for adding new APIs, i.e. for exposing internals to Nasal that are currently not exposed
- as Torsten mentioned already, there is now very useful code available in the development version that simplifies weather related projects like your's
- Nasal is easy to pick up for anybody familiar with C or C++, in fact anything that is "C like", Java or even JavaScript experience would also be useful
- Nasal is largely ECMAscript oriented, so it is really pretty close to JavaScript from a syntax point of view
- the wiki contains lots of documentation (or links) on Nasal, the forum is also a good place for getting started
- Nasal really is a very powerful tool for prototyping things, still you may want to move some parts into C++ later on
- we are seeing this in the local weather system at the moment, which is largely implemented in Nasal, but which can benefit from C++ additions
- so being able to build FG from source is also useful for testing patches
- no, you should normally not need admin privileges for building FG, only for installing dependencies in a system-wide location, obviously
- once you start your project, you'll probably want to clone the official repository and maintain your work over at gitorious:
http://gitorious.org/fg- you can get a lot of good help from fellow FG users and developers
- regardless of the programming languages being used, you'll probably need to come up with a mathematical/physical model for wind shear
- this sort of content can be easily maintained using the wiki:
http://wiki.flightgear.org- the local weather system development was also spawned by a forum discussion and a corresponding wiki page
- you will probably want to really look into the local weather code to see if and how it could be leveraged/adjusted for your own needs
- the local weather system is meanwhile a pretty well commented piece of code, and has also very extensive developer documentation:
http://www.phy.duke.edu/~trenk/files/RE ... ather.html- apart from that, if you haven't had a lot of previous exposure to C++, it is possible that you are expected to complete your assignment using Matlab/Simulink!?
- if your professor hesitates regarding Nasal use for your FYP, let him know that you won't be able to do all of your project in Nasal, a feature such as wind shear will definitely require additions to the C++ source code at some point, even if it's just for the sake of improving runtime performance.
One of the most important (and also most powerful) concepts when working with FlightGear is the so called "property tree", which is a built-in tree representation of runtime state variables that can be easily accessed and modified dynamically. There are hundreds of variables exposed using this "property tree", andit is VERY easy to expose additional ones, too.
You will want to check out $FG_ROOT/README.introduction, README.properties and README.xmlsyntax
Also see: http://wiki.flightgear.org/index.php/Property_tree
The property tree can be inspected at runtime, using the built-in "property browser", as well as external tools like a web browser or telnet client.