Orbiter 2016 a better bet for simpit?

ahunn

New member
Joined
Jul 21, 2011
Messages
39
Reaction score
0
Points
0
A few years ago I researched an Orbiter simpit but came to the realization that simulating controls with toggle switches and push buttons and some type of keyboard emulator was easy enough, getting the vessel state to drive led's or other indicators was not possible, never mind 120 degree projection external visuals... has anything changed in that regard with the release of Orbiter 2016?
 

TCR_500

Developer of Solar Lander
Joined
Mar 3, 2009
Messages
603
Reaction score
21
Points
18
Website
www.tchapman500.com
I'm not sure, but you may need to make a DLL for orbiter which outputs data to a USB device, a driver for a USB device, and a custom USB device to drive the LEDs. I found this thing on a Google search to help you get started.

I believe all the stock vessels are open source. It shouldn't be too hard to modify them to output to your USB device.
 

ahunn

New member
Joined
Jul 21, 2011
Messages
39
Reaction score
0
Points
0
Thanks TCR_500, I have a number of hardware options, but I had settled on Arduino, particularly as the Processing language seems doable for a non-programmer like me to build the systems. But unfortunately I do not have any programming experience, so building a custom .DLL is probably a step too far. Maybe that is something I would consider contracting out.
 

yagni01

Addon Developer
Addon Developer
Donator
Joined
Feb 8, 2008
Messages
464
Reaction score
0
Points
0
Location
Atlanta, GA
The Orb::Connect add-on plus add-ons by Kamaz and others made it eminently doable to drive LEDs and inputs from switches. The XR- vessels have an interface that allows for really detailed vessel control. Master/Slave should enable you to drive external views, although I never personally got that far. Mine was looking pretty awesome before I had to take it down. Unfortunately, imageshack broke all the links to my photos.

I know Orbiter-2010 is supported, but don't know about 2016 version.
 

ahunn

New member
Joined
Jul 21, 2011
Messages
39
Reaction score
0
Points
0
Here we go again - OrbConnect

Well here I am again, about once every couple of months I find myself getting excited by an orbiter simpit, so resurrecting this thread...

First off, I can confirm that OrbCOnnect appears to work with Orbiter 2016. I have been able to load and run the XR2 and use both the vanilla web interface and the java client app, both functioned as expected, so thats good news.

I am looking for show-stoppers at the moment before I spend any significant time or effort on figuring out how best to proceed. It looks like OrbConnect is the way to go, but I am concerned that some of the critical ship variables may not be available in OrbConnect, for example hull temperature. I plan to base the sim on the XR series of vehicles, and managing hull temp during launch and re-entry is a requirement, but the OrbConnect user documentation does not reference this variable at all.

I suspect it may be possible to extract the hull temp from things like vessel speed and dynamic pressure, but have no idea where to start.
 

dbeachy1

O-F Administrator
Administrator
Orbiter Contributor
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
8,991
Reaction score
1,078
Points
203
Location
VA
Website
alteaaerospace.com
I suspect it may be possible to extract the hull temp from things like vessel speed and dynamic pressure, but have no idea where to start.

For XR vessels, take a look at XRVesselCtrlDemo, available on my Web site's download page -- it shows how external code can use the XRVesselCtrl APIs to get and set XR-specific vessel state. For example, from XRVesselCtrl.h:

Code:
struct XRSystemStatusRead : public XRSystemStatusWrite
{
    // The warning states below are not persisted in the scenario file; they are constantly
    // recalculated dynamically.
    XRWarningState HullTemperatureWarning;
    XRWarningState MainFuelWarning;
    XRWarningState RCSFuelWarning;
    XRWarningState APUFuelWarning;
    XRWarningState LOXWarning;
    XRWarningState DynamicPressureWarning;
    XRWarningState CoolantWarning;
    XRWarningState MasterWarning;     // warning active if *any* other warning active
    bool           MWSLightState;     // updated as the MWS light blinks: true = lit, false = not lit

    // Fields added in API version 2.1
    double RCSFuelLevel;        // 0 <= n <= 1.0
    double RCSMaxFuelMass;      // max fuel mass for RCS in kg (includes bay fuel tanks, if any)
    double APUFuelLevel;        // 0 <= n <= 1.0
    double APUMaxFuelMass;      // max fuel mass for APU in kg
    double LOXLevel;            // 0 <= n <= 1.0
    double LOXMaxMass;          // max internal LOX mass in kg (includes bay LOX tanks, if any)
    double BayLOXMass;          // quantity of LOX in kg currently in PAYLOAD BAY TANKS ONLY (may be zero)

    // Fields added in API version 3.0
    bool MWSAlarmState;         // true = MWS alarm active, false = alarm silenced via alarm reset or no warning active
    bool COGAutoMode;           // true = center-of-gravity shift in auto-mode because the Attitude Hold or Descent Hold autopilot is engaged
    bool InternalSystemsFailure;// true = internal systems failed due to coolant overheat
    double CenterOfGravity;     // CoG shift in meters: 0 = centered, < 0 is forward, > 0 is aft
    double CabinO2Level;        // Oxygen fraction in cabin; nominal = .209 (20.9%)
    
    double CoolantTemp;         // in degrees C
    double NoseconeTemp;        // in Kelvin
    double LeftWingTemp;        // in Kelvin
    double RightWingTemp;       // in Kelvin
    double CockpitTemp;         // external cockpit hull temperature in Kelvin
    double TopHullTemp;         // in Kelvin

    double MaxSafeNoseconeTemp; // in Kelvin
    double MaxSafeWingTemp;     // in Kelvin
    double MaxSafeCockpitTemp;  // in Kelvin
    double MaxSafeTopHullTemp;  // in Kelvin
};

<...snip...>

struct XREngineStateRead : public XREngineStateWrite
{
    double     TSFC;            // 0 <= n
    double     FlowRate;        // kg/sec
    double     Thrust;          // kN
    double     FuelLevel;       // 0 <= n <= 1.0
    double     MaxFuelMass;     // max fuel mass for this tank in kg (includes bay fuel tanks, if any)

    // Some or all of these values may not be available for all engines; any unsupported value will be set to -1.
    double DiffuserTemp;        // degrees K
    double BurnerTemp;          // degrees K
    double ExhaustTemp;         // degrees K

    // Field added in API Version 2.1
    double     BayFuelMass;     // quantity of fuel in kg currently in PAYLOAD BAY TANKS ONLY (may be zero)
};

There are also a bunch of other fields in the XRVesselCtrl APIs besides those listed above. :)
 

ahunn

New member
Joined
Jul 21, 2011
Messages
39
Reaction score
0
Points
0
Thanks Doug, that looks really useful. My problem is a total lack of programming experience, but I will keep your XRVesselCtrlDemo project in mind.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
36,355
Reaction score
846
Points
203
Location
Langendernbach
Thanks Doug, that looks really useful. My problem is a total lack of programming experience, but I will keep your XRVesselCtrlDemo project in mind.

If that is a problem, its better to minimize programming as much as you can. :thumbup:
 

Mars Bleu

New member
Joined
Jan 1, 2018
Messages
5
Reaction score
0
Points
1
Is there a way to get such values like "COGAutoMode" or"CoolantTemp" with a Lua script?
 
Top