Difference between revisions of "CVEL"
m (R/V Vandalism by 201.234.176.85) |
|||
Line 1: | Line 1: | ||
[[Image:Dualexpress.jpg|thumb|right|250px|Building a payload hierarchy with CVEL/GPDS]] | [[Image:Dualexpress.jpg|thumb|right|250px|Building a payload hierarchy with CVEL/GPDS]] | ||
− | CVE-lite is a programming library to aid developers of add-on vessels for Orbiter. It extends the native Orbiter [[VESSEL class]] with additional functionality for multiple payloads, enhanced mesh handling or scenario-file based multistage support. It | + | CVE-lite (abridged Common Vessel Extensions) is a programming library to aid developers of add-on vessels for Orbiter. It extends the native Orbiter [[VESSEL class]] with additional functionality for multiple payloads, enhanced mesh handling or scenario-file based multistage support. It evolved from Dave Rowbotham's CVE library, cutting down on some of the internal complexity to allow for easier maintenance, and adding some new functionality. |
− | CVEL implements the [[GPDS|Generic Payload Description System]] (GPDS) to allow the end user to express via simple lines in the scenario file any payload and, if using another CVEL vessel, any additional upper stages. | + | CVEL implements the [[GPDS|Generic Payload Description System]] (GPDS) to allow the end user to express via simple lines in the scenario file any payload and, if using another CVEL vessel, any additional upper stages. Version-independent inter-vessel communication, as used by the library internally, is also extended to programmers by a companion library, [[cvelmessage.dll]]. |
==History== | ==History== | ||
Line 19: | Line 19: | ||
Since the release of CVEL v1.0, there have been a large number of vessels released that support the system including, of course, the original Ariane 5 updated to version 2. | Since the release of CVEL v1.0, there have been a large number of vessels released that support the system including, of course, the original Ariane 5 updated to version 2. | ||
− | + | A beta library, including the Orbiter 2005 [[VESSEL2 class]] updates was compiled and added to the downloads section of the [http://projectganymede.sourceforge.net/cve-lite/ CVEL website], and is considered by most to be stable for the current implementation of Orbiter. | |
+ | ==See also== | ||
+ | [[:Category:CVELVessels|incomplete list of CVEL-compatible vessels]] | ||
− | + | [http://projectganymede.sourceforge.net/cve-lite/tutorials.html CVEL programming tutorial] | |
+ | |||
+ | [[GPDS]] | ||
+ | |||
+ | ==Links== | ||
[[CCCP Fleet|The CCCP Fleet]] | [[CCCP Fleet|The CCCP Fleet]] | ||
Revision as of 12:44, 14 September 2006
CVE-lite (abridged Common Vessel Extensions) is a programming library to aid developers of add-on vessels for Orbiter. It extends the native Orbiter VESSEL class with additional functionality for multiple payloads, enhanced mesh handling or scenario-file based multistage support. It evolved from Dave Rowbotham's CVE library, cutting down on some of the internal complexity to allow for easier maintenance, and adding some new functionality.
CVEL implements the Generic Payload Description System (GPDS) to allow the end user to express via simple lines in the scenario file any payload and, if using another CVEL vessel, any additional upper stages. Version-independent inter-vessel communication, as used by the library internally, is also extended to programmers by a companion library, cvelmessage.dll.
History
GPDS was conceived as a way to mount a payload of the end user's choice atop the Ariane 5 as it was developed from a Vinka Multistage vessel to a standalone DLL.
It quickly became clear that combinations of payloads couldn't be specified. That is to say one couldn't mount an upper stage (eg. a Fregat) with a Probe on top of it. The two would necessarily have to jettison as separate vessels. This was not ideal and so an Inter-Vessel Payload Description interface was developed to allow communication between 'active' vessels (ie. to allow the Ariane 5 to tell the Fregat it should have a Probe attached).
The problem with this system (based on Rob Conley's COMMON_VESSEL class) was that, using C++ callbacks, calls between vessels compiled with different libraries would cause a crash. Something needed to be done.
Dave Rowbotham proposed extending the COMMON_VESSEL class to provide even more functionality. This included standardised mesh handling classes and an extensible GPDS handler. So was born COMMON_VESSEL_EX (CVE) which iterated through several beta variations building up an impressive array of supported vessels.
Unfortunately, CVE was also limited to interacting successfully only with other CVE vessels of the same library vintage, and the impressively complex library was slow to debug. CVE-lite was an attempt to distill CVE into a lighter, more easily integratable system. Dropping some of the features of CVE for a closer release date and quicker debugging.
Crucially, CVEL also removed the need for vessels to all be compiled with the same library by introducing the messenger DLL cvelmessage.dll. This enabled CVEL vessels to communicate not only with other CVEL vessels for the purposes of exchanging payload information, but to any other vessel about any information without requiring crash protection. Vessels that didn't support CVELmessage simply never receive the information.
Since the release of CVEL v1.0, there have been a large number of vessels released that support the system including, of course, the original Ariane 5 updated to version 2.
A beta library, including the Orbiter 2005 VESSEL2 class updates was compiled and added to the downloads section of the CVEL website, and is considered by most to be stable for the current implementation of Orbiter.
See also
incomplete list of CVEL-compatible vessels