Mission Control for Orbiter v1

I was just saying that by adding the If Image<>Nothing would prevent the other users from crashing.

Just in case you miss my post on the OrbConnect thread, here's the source for ORTS (Orbiter Remote Tracking Station)

http://purinton.us/ORTS/

btw: yagni01 has done a very excellent job in extending the OUIPC service and writing the commands documentation. There are a few things i will suggest to him for a later version. I think I shall allow OUIPC to be completed superceeded by OrbConnect.

There's a couple of concerns i need to bring up about a change in command processing. In OUIPC I had a seperate thread processing commands for each client, I think. This could be rolled into 1 thread that processes commands for all clients, but yagni has told it to process commands in the opcPostStep callback function. I don't think this will be good for the simulator. All work should be done in seperate threads.

Dave, you'll notice that ORTS is very thread-centric also.
Here's code to connect to the server properly (includes error handling support)... Note, modifications will be needed to convert it for OrbConnect.

http://purinton.us/ORTS/ROTS/OUIPC.vb

SDP algorithm for plotting ground track is used in MainForm. It has code to convert the recieved Element2 into TLE format to be fed thru the SDP4 algorithm and you can calculate latitude/longitude and altitude for any given date/time. This lets you draw the orbital track on the map.

Regards,
 
You will need to keep the server threaded for each client connection because in my code I also use a thread for the connection and, well, i just like threads and it reduces unexpected clashes.

I will attempt to add the code so that if image=nothing, then nothing happens and I will upload this code to the website and please download it and try it for me!

New code online: http://new-frontiers.sourceforge.net/download.html
 
btw: yagni01 has done a very excellent job in extending the OUIPC service and writing the commands documentation. There are a few things i will suggest to him for a later version. I think I shall allow OUIPC to be completed superceeded by OrbConnect.

There's a couple of concerns i need to bring up about a change in command processing. In OUIPC I had a seperate thread processing commands for each client, I think. This could be rolled into 1 thread that processes commands for all clients, but yagni has told it to process commands in the opcPostStep callback function. I don't think this will be good for the simulator. All work should be done in seperate threads.
Russ, thanks for the vote of confidence. :blush:

I pushed all message processing into the opcPostStep because I got pretty consistent CTDs when I left it asynch and cranked the message traffic up. I tried a few variations, but this appeared to provide the most stability. I look forward to getting feedback from you and the other more experienced addon developers on improvements, esp WRT networking and performance; I definitely want to add UDP/Multicast ability at some point, too. Maybe I could get Tex to start a development thread for the project. ;)
 
I'd like to help with this...

I'm a program manager with Lockheed Martin and so can help you with what current day real counts and flight operations look like...including the counts from start to finish.

I was actually thinking about doing something similar but having it web based from a central server rather than have clients connecting to IP. That would also allow for a simulated DSN activity and permanent/persistant spacecraft telemetry and state that isn't reliant on someone's client running.

Maybe combine the two projects? One server side to properly reflect spacecraft opns (thinking unmanned here) and to allow for DSN uploads/commands?

Let me know - my time is rather limited as I'm doing real opns at the moment but I'll wade in as I can and perhaps take a swing at an online DSN....
 
I'm a program manager with Lockheed Martin and so can help you with what current day real counts and flight operations look like...including the counts from start to finish.

I was actually thinking about doing something similar but having it web based from a central server rather than have clients connecting to IP. That would also allow for a simulated DSN activity and permanent/persistant spacecraft telemetry and state that isn't reliant on someone's client running.

Maybe combine the two projects? One server side to properly reflect spacecraft opns (thinking unmanned here) and to allow for DSN uploads/commands?

Let me know - my time is rather limited as I'm doing real opns at the moment but I'll wade in as I can and perhaps take a swing at an online DSN....

Hi, I used to work at LM too. I have succesfully done what you are referring to. I have written web-based apps (using PHP) to get telemetry from orbiter. I also did some with AJAX to provide live streaming telemetry to the browser.

I'm working on an Orbiter server system that incorporates multiple internet protocols including HTTP, FTP, SIP, and RTP, with custom transport protocols to include ascii commands (like OrbConnect), a binary transport protocol for replication of vessel status, as well as multimedia codecs for voice, video, and other possible datastreams. It's being developed to run on a set of clustered servers, possibly even geographically redudant. Servers will replicate the simulation state to provide a realiable uninteruptable real time simulation state available to clients connecting thru a variety of protocols. I would expect developement is going to take a really long time since there isn't a team of coders working on it around the clock...

Sounds like your expertise will be very helpful in creating authentic mission control procedures.

Regards,
 
Hi, I used to work at LM too. I have succesfully done what you are referring to. I have written web-based apps (using PHP) to get telemetry from orbiter. I also did some with AJAX to provide live streaming telemetry to the browser.

I'm working on an Orbiter server system that incorporates multiple internet protocols including HTTP, FTP, SIP, and RTP, with custom transport protocols to include ascii commands (like OrbConnect), a binary transport protocol for replication of vessel status, as well as multimedia codecs for voice, video, and other possible datastreams. It's being developed to run on a set of clustered servers, possibly even geographically redudant. Servers will replicate the simulation state to provide a realiable uninteruptable real time simulation state available to clients connecting thru a variety of protocols. I would expect developement is going to take a really long time since there isn't a team of coders working on it around the clock...

Sounds like your expertise will be very helpful in creating authentic mission control procedures.

Regards,

Well I applied for a job at lockheed martin here in australia but didn't get the job.
But I think what you are aiming for is well out of the scope of part time hobbyists in a free game like orbiter.
If you have any experience in project development, you will know that what you are setting out to achieve is not worth it given the amount of people that will be using it.
However.
The only thing I can think of is doing the following:

Every person around the world who plays orbiter will have as one of their mods enabled a network module.
This module will automatically transmit information to a central server which could display this on the web.
Then, anyone else around the world can just tune in to a mission currently running and watch it, or interact with it.

Otherwise, cheap and nasty, which is sort of what I'm doing, is the best solution now for a VERY low audience.

I'm merley increasing the interactivity of the game to a few people more then currently which is one.
 
If you have any experience in project development, you will know that what you are setting out to achieve is not worth it given the amount of people that will be using it.
Irrelevant. Its a hobby and we do it because we want to. That's all that matters. I'm not building an XR in my attic because a lot of people will use it. Russ creates communication protocols into Orbiter. I applaud and support his work, as without it there would be no Orb:Connect. Same with all the other addon developers out there, whether I use their product or not; including you. We're having fun.

There may be only three people in the world that might use your Mission Control. If you're creating it expecting 1000 downloads and hoping to achieve some ROI other than your own satisfaction, or maybe a couple virtual pats on the back, I think you'll be disappointed.

And its a simulator.
 
Irrelevant. Its a hobby and we do it because we want to. That's all that matters. I'm not building an XR in my attic because a lot of people will use it. Russ creates communication protocols into Orbiter. I applaud and support his work, as without it there would be no Orb:Connect. Same with all the other addon developers out there, whether I use their product or not; including you. We're having fun.

There may be only three people in the world that might use your Mission Control. If you're creating it expecting 1000 downloads and hoping to achieve some ROI other than your own satisfaction, or maybe a couple virtual pats on the back, I think you'll be disappointed.

And its a simulator.

No not really.
I don't mind who uses it and I do these things because they are a challenege not because I want fans.
 
It just won't connect

I tried the mission control add-on. i won't connect, none of my programs can connect. i allowed them to go threw firewall, but it keeps sayin' unable to connect, whats goin on?
 
I tried the mission control add-on. i won't connect, none of my programs can connect. i allowed them to go threw firewall, but it keeps sayin' unable to connect, whats goin on?

When you enter the IP Address in the main view, make sure this is set to the computer running the orbiter program.

Make sure that you have the latest OrbConnect installed and enable as a plugin in orbiter. You can get it from: [ame="http://www.orbithangar.com/searchid.php?ID=3395"]Orb:Connect v1.0[/ame] This addon must be installed on the Orbiter computer you wish to connect to.

Make sure that the OrbConnect.cfg file (found in your config directory) has a port number matching the one you are trying to connect to in the orbiter window.

Finally, if all else fails, its usually due to a sneaky firewall which even when "disabled" still blocks traffic.

Hope that helps
 
I got it working! It connected with an error, I'll look it up for you:
Code:
************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: image
   at System.Drawing.Graphics.DrawImage(Image image, RectangleF destRect, RectangleF srcRect, GraphicsUnit srcUnit)
   at orbiterMC.Form1.renderMap()
   at orbiterMC.Form1.Timer1_Tick(Object sender, EventArgs e)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.Callback(IntPtr hWnd, Int32 msg, IntPtr idEvent, IntPtr dwTime)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
orbiterMC
    Assembly Version: 1.0.3096.28220
    Win32 Version: 1.0.3096.28220
    CodeBase: file:///E:/Documents%20and%20Settings/Dad/My%20Documents/Games/Orbiter/orbiterMC.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 7.0.5000.0
    Win32 Version: 7.10.3052.4
    CodeBase: file:///c:/windows/assembly/gac/microsoft.visualbasic/7.0.5000.0__b03f5f7f11d50a3a/microsoft.visualbasic.dll
----------------------------------------
Accessibility
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/accessibility/1.0.5000.0__b03f5f7f11d50a3a/accessibility.dll
----------------------------------------
System.Xml
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.xml/1.0.5000.0__b77a5c561934e089/system.xml.dll
----------------------------------------
I'm running Mission Control on the same PC as Orbiter is running, if that has any significance to the error. Of course I just click continue and it works fine.

It crashed before, I don't know why. I'll tell you if it happens again.

Other than that great work! I've tried it with a few different craft and it works flawlessly so far. I'd like to see how far you take this.:cheers:

EDIT:Yes the error was that it lost the connection and recommended to restart the connection again. Not a big deal.
 
Davewave, that what you are currently working on looks great but i have one question:
will there be something like the orbit MFD from orbiter in your app?
because i downloaded some other mission control some time ago and it didn't have a orbit MFD or something similar so i didn't know really know where the pilot was :hmm: , e.g. LEO or somewhere between LEO and mars.
 
I think SSM07 has a good MCC idea. It's a panel that shows an orbital path and map, GET mission time, external spacecraft view, and the last comm and the mission objective. For V1 of this addon whe should try to keep as simple as possible while making this version fun and enjoyable to all.
 
When you enter the IP Address in the main view, make sure this is set to the computer running the orbiter program.

Make sure that you have the latest OrbConnect installed and enable as a plugin in orbiter. You can get it from: http://www.orbithangar.com/searchid.php?ID=3395 This addon must be installed on the Orbiter computer you wish to connect to.

Make sure that the OrbConnect.cfg file (found in your config directory) has a port number matching the one you are trying to connect to in the orbiter window.

Finally, if all else fails, its usually due to a sneaky firewall which even when "disabled" still blocks traffic.

Hope that helps


Thank you so much for your help. it connects. it was just my IP address:whistle:.
 
I get an error when attempting to connect to my local orbiter session:

"Value cannot be null
parameter name: image"

I'm using my local IP address and OrbConnect is obviously running the background of Orbiter. Orbiter runs fine until I attempt to connect. When connecting, Orbiter CTDs with one of XP's generic-looking memory errors and MCOF crashes with what I posted above.

Are you with Earth's SOI? I tried 2 scenarios, one within Earth's SOI & another en route to Jupiter. The 1st can connect without error but the issue happens for 2nd one.
 
I believe my problem is the same. However it occurred with craft both in Earth's SOI and The Moon's SOI.

Of course my problem allows me to continue the connection...
 
Are you with Earth's SOI? I tried 2 scenarios, one within Earth's SOI & another en route to Jupiter. The 1st can connect without error but the issue happens for 2nd one.

I haven't programmed for SOI other then earth or the moon so it probably won't work yet. I did say this was a beta, almost an alpha.

Give me more time to work on this.
 
Thank you for the effort you put into this. I hope the comments are of some use to you.
 
Back
Top