Frequently Asked Questions
What Is the Best Way to Get Started?
Read the I/ITSEC 2006 paper titled "Building Distributed Applications Utilizing the Eaagles Framework." This should provide a good high level understanding of what OpenEaagles is all about. Next, download the software and installation video. Watch the video and try to install, compile and run a few of the included OpenEaagles examples. Next watch the video on understanding input files. Try to modify some of the inputs to the examples and re-running them. After getting somewhat comfortable, look though the tutorial applications the try to extend them in some way. After gaining some confidence, go back to the examples and try extending them. After working your way through this, you should be well on your way to creating some exciting simulation applications.
What Documentation is Available?
Documentation comes in several forms, for example, the C++ header which defines the interface to the framework is well commented. Example applications and tutorials are provided to demonstrate various aspects of using the framework should help facilitate understanding. A number of papers, briefings and a growing set of videos have also been posted to help you understand and use the framework.
How Do I Compile with Microsoft Visual C++ 2005 Express?
Visual C++ 2005 Express is available as a download from Microsoft. In order to utilize this compiler for OpenEaagles, the Microsoft Platform SDK for Win32 is also required. The SDK provides all the include files (such as "windows.h") and library files needed to compile Win32 applications. So to install Visual C++ 2005, download both the compiler and the SDK. Both are available and free to download from the Microsoft site.
What is Reference Counting and Why is it Manual?
Reference counting is a technique of storing the number of references, pointers, or handles to a resource such as an object or block of memory. It is typically used as a means of deallocating objects which are no longer referenced. Some languages, such as Java automatically manage this activity. Others, such as C++ do not. Many solutions for C++ exist. One such solution is to implement reference counting via smart pointers. OpenEaagles supports smart pointers for automatic reference counting, but more typically uses a manual technique where the methods ref() and unref() are called directly. If it can be done automatically why do it manually? The short answer is for performance reasons and the deterministic resource manipulation of memory, which is important in the design of real-time systems. For example, there are situations, where the excessive allocation and deallocation of memory can significantly degrade overall application performance. By following coding standards, and allowing for this flexibility, higher performing systems can be designed.
Why Is OpenEaagles Coded in C++?
If you are asking this question, then you are probably wondering why we didn't code it in either C for the best possible performance (excluding assembly) or a language like Java, C# or maybe even Ruby! Our answer lies in the application domain we are targeting, specifically, we are targeting the development of virtual and constructive simulation applications that run in "real-time". These types of applications demand high performance deterministic execution. At this time, we feel C++ is the optimal language to meet this need in terms of its object-oriented flexibility, portable cross-platform compatibility and C-like execution performance.
What is the Offical License for OpenEaagles?
OpenEaagles is licensed under the standard GNU Lesser General Public License (LGPL).
Disclaimer
"The OpenEaagles project and website is maintained by a voluntary association of individuals working to maintain and improve the publicly released software code. It is not sponsored by, nor is it funded by, the United States Air Force."
