The online racing simulator
Searching in All forums
(22 results)
Additional OutSim / OutGauge Data?
bvillersjr
S2 licensed
From what I understand, neither OutSim or OutGauge provide a current lap number, lap distance percentage or SteeringNm.


We're working on next gen motion platforms and one of the things we're doing is automatically logging telemetry both for analysis purposes, but also for the automatic generation of motion profiles, SimVibe tactile feedback profiles and AccuForce wheel profiles. If this is of interest to anyone, my ramblings can be found here:


http://simxperience.com/Commun ... try-Logging-Analysis.aspx


http://simxperience.com/Commun ... ion-SimVibe-Settings.aspx


Long story short, I'm wondering if it might be possible to get add a few pieces of data to the end of the OutSim or OutGauge structs to help to bring this API more inline with rFactor, GSC and iRacing? If so, this would help us to make LFS a first class citizen in our upcoming products.


Also, I'm open to alternatives, but much prefer not to have to find in memory values every time an update is released if I can avoid it.
bvillersjr
S2 licensed
Quote from DarkTimes :I've been working on InSim.NET 3.0, that I intend to use to clear up certain annoyances I have with the library currently.

The main issue is that, when InSim.NET 1.0 was written, it was intended to be used with InSimSniffer, which put certain constraints on its design. Firstly it had to match the original InSim protocol as closely as possible, this meant using Scawen's naming conventions and other stuff like that. The rest of the library, stuff what I made, was written to .NET naming conventions. This means the library currently mixes naming conventions, which is an annoyance to me. It also means that some things are harder to do that they could be, which has really come to forefront recently with values containing low/high bits, such as the RST Timing. So I first of all want to clear all that up and rewrite the InSim stuff to .NET conventions, and also add lots of stuff to make using the actual packets much simpler. Obviously this means breaking backwards compatibility.

I've also got very tried of having to laboriously type out the packet handlers each time, and while of course you can write a codesnippet to do it for you, they would work better as events. So the second thing I plan to do is to make each packet a proper .NET event.

Basically the plan is to make InSim.NET 3.0 a higher level library, where appropriate. I think a balance between low and high level, in terms of the API, is what I'm looking for these days.

I've already written most of this, and might try to release a beta/alpha version soon, but I just thought I'd mention it now so as no one is surprised when it comes out. I'm going to fork the CodePlex repository at some point (I'm just working off local repositories at the moment), so the existing codebase and releases will remain, so you won't need to upgrade if you don't want to.

Will the OutSim Packet handlers still be overridable? I haven't got around to building it yet, but it looked like the best way to handle other games was simply to override and parse the packets myself. In theory, it would be a tidy implementation.
bvillersjr
S2 licensed
Quote from morpha :Integrating this into an InSim library is rather pointless since CM titles don't actually implement InSim, only OutSim, and not 100% to LFS's specification at that. With ExtraData=1, it becomes something entirely unrelated altogether.

What is it you're ultimately looking for? Logging? Displaying? Sending to a motion sim?
Receiving and processing the data is simple in virtually ever language, so the choice depends on how interfacing with the motion sim works, if that's what you intend to do.

I want to send data to a motion sim and log as well. The way the data is split into two streams in LFS is an issue for me since I need all of the OutSim data and a few tidbits from OutGauge. I need to do all of this without interfering with other devices like gauges that also need OutGauge data. I can write a UDP forwarder for this. I'm guessing that this problem has already been solved though, or that LFS has a way of sending OutGauge data to multiple ports?
bvillersjr
S2 licensed
Same question here. Any chance these will get integrated into InSim. If not, any recomendation as to where I should inject this so as to not be suffering when new InSim releases are made?

Also, does InSim have some kind of proxy capability that can be used to forward the raw data steam back out on a specificed port for other devices to grab? Or is there another recognized way of forwarding?
bvillersjr
S2 licensed
Awesome! That was an amazingly quick reverse engineering time!

Now to sort out the best way to integrate this into InSim.

Since the ExtraData =1 outputs entirely different structs, I'm gusssing that DarkTimes has lost interest in this?

If so, I'll look at maintaining some kind of derived work that supports all of the above. 99.5% of the plumbing for this is already in the InSim project.

Also, who do I have to talk to about commercial use of LFS? A friend of mine wants to make a Sim Center and is interested in LFS as a basis for this.
bvillersjr
S2 licensed
Email sent. Thanks again!

21 hours just might be a record!

I would think that Engine RPM is almost certainly there somewhere since they now directly support the SLI-Pro hardware gauge but perhaps this integrates in some other way.

I believe that X-Sim had a Yaw value for this game if I'm not mistaken.

Maybe these are pieces to the puzzle.
bvillersjr
S2 licensed
Not a problem. You have saved me alot of time. It would have taken me weeks to sort that out to the extent you already have. Please send me an email address to send the Steam unlock codes to.
bvillersjr
S2 licensed
@Morpha - You're the man! If I'm ever in Austria, I owe you a beer!

If DarkSide puts this struct into the app as he mentioned above, I'll be able to see it and can try to help determine what the other data is as well.

What do you use to sniff these packets with?

I'm happy to buy you guys copies of F1 2010, Grid and Dirt2 for your tsting efforts. If you don't already have em, let me know and I'll PM or email them to you.
Last edited by bvillersjr, .
bvillersjr
S2 licensed
No memory loss. I helped test his plugin, but the source for the plugin was never published, nor was any additional information about the ExtraData extension.

SirNoNames project is closed source and it's plugin architecture is limited to C++ only.

A friend of mine in Germany has been trying to reach him for months with no success.

Glad to hear that someone has fun with this sniffing!
Last edited by bvillersjr, .
bvillersjr
S2 licensed
I'll try to get ahold of CM, but I'm not certain I will be able to get an answer. I can say that I've scoured the net for this struct with no luck.

I believe its 8 bits of additional data as follows:

public float exd1;
public float exd2;
public float exd3;
public float exd4;
public float exd5;
public float exd6;
public float exd7;
public float exd8;

I would have to see the data to determine what it is. I'm more than happy to sort out the proper filed labels.

What method would you recommend for viewing the raw data so I can begin to sort it out?

Thanks for all your help btw! I really hope I can return the favor.
bvillersjr
S2 licensed
OK, Here's the story.

Grid, Dirt2 and F1 2010 are all OutSim compatible and are working with InSim.Net.

However, just to muddy the water I guess, they chose to use only one UDP port and have a config option ExtraData = 0 or 1

ExtraData carries some derivative of the OutGague stuff. It may even be in the precise format, I'm not sure yet.

That said, whatever format it is in, when ExtraData=1 is enabled, it will be a different struct so unless DarkTImes has an interest in having this as part of InSim.Net, I'm looking at a derivative work, which I'm not wildly ehthused about.

Nontheless, it would seem foolish to ignore the similarities for the sake of not parsing a few extra bytes. Actually, it looks like it will be 1 byte (8 floats)
Last edited by bvillersjr, .
OutGauge ShowLights / DashLights with InSim.Net
bvillersjr
S2 licensed
Hello again,

I'm sorting my way through InSim.Net which thus far is proving to be an awesome time-saver.

Is there a helper class for parsing the ShowLights / DashLights or an Enum for this. Something along the lines of an Enum to cast to? I assume so and that I'm missing something given all of the other candy. I searched for DL_ in this forum, but only see a C++ post and nothing regarding InSim.Net.
Last edited by bvillersjr, .
bvillersjr
S2 licensed
Am I correct in assuming that the unit of OutSim Delay is ms and that I should expect approx 1000 events per sec from InSim.Net with an OutSim Delay of 1?

I have no idea what the internal Physics rate of LFS is, or what the rate of the outputs are. 1000Hz seems a bit unlikely
Last edited by bvillersjr, .
bvillersjr
S2 licensed
Quote from DarkTimes :At first I thought you was crazy, but then on closer inspection I saw a bug in the code. I fixed the bug and pushed out a release onto CodePlex. Try the new one as I think it should work for you now.

Sorry about that!

http://insimdotnet.codeplex.com/releases/view/64947

I was starting to think I was crazy too

Fortunately, your fix solved the problem and I'm back on track. Thanks for your efforts! When I get my project wrapped up, I'll try to circle back and help you with some unit tests for your project.
bvillersjr
S2 licensed
Hmm,

Either I'm missing something simple, or the latest InSim.Net is broken.

It never gives me the PacketReceived Event but does fire the timeout event.

I double checked my firewall (even disabled it for a minute to test), reviewed my cfg.txt (pertinent lines below, yet it NEVER once fired the packet received event.

I got tired of babging my head on the desk and grabbed the sample code from CodePlex, and it has the same problem.

What am I missing?

Code in question:

[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]
[SIZE=2][FONT=Consolas][COLOR=#0000ff]using[/COLOR][/FONT][/SIZE][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] System;[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] System.Collections.Generic;[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] System.Linq;[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] System.Text;[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] InSimDotNet.Out;[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]class[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Program[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]{[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]static[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] Main()[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]{[/FONT][/SIZE]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]// Create timeout interval.[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]TimeSpan[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] timeout = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]TimeSpan[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].FromSeconds(10);[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]// Create OutSim object with the specified timeout.[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] ([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]OutSim[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] outsim = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]OutSim[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2](timeout))[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]{[/FONT][/SIZE]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]// Attach event handlers to packet-received and timedout events.[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]outsim.PacketReceived += [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]EventHandler[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]<[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]OutSimEventArgs[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]>(outsim_PacketReceived);[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]outsim.TimedOut += [/FONT][/SIZE][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]EventHandler[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2](outsim_TimedOut);[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]// Start listening for packets from LFS.[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]outsim.Connect([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]"127.0.0.1"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2], 29999);[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]// Stop program from exiting while listening.[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Console[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].ReadKey([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]}[/FONT][/SIZE]
[SIZE=2][FONT=Consolas]}[/FONT][/SIZE]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]static[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] outsim_TimedOut([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] sender, [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]EventArgs[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] e)[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]{[/FONT][/SIZE]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Console[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].WriteLine([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]"OutSim timed out!"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]}[/FONT][/SIZE]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]static[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] outsim_PacketReceived([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] sender, [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]OutSimEventArgs[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] e)[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]{[/FONT][/SIZE]
[/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]// Handle packet.[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Console[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].WriteLine(e.Heading);[/SIZE][/FONT]
[SIZE=2][FONT=Consolas]}[/FONT][/SIZE]
[SIZE=2][FONT=Consolas]}[/FONT][/SIZE]
[/SIZE][/FONT]

And the cfg.txt lines:

OutSim Mode 1
OutSim Delay 1
OutSim IP 127.0.0.1
OutSim Port 29999
OutSim ID 0
OutGauge Mode 0
OutGauge Delay 10
OutGauge IP 127.0.0.1
OutGauge Port 30000
OutGauge ID 0

If there is a primer or docs somewhere other than the CodePlex site that I should be reviewing, please don't hesitate to point it out and give me a big RTMF!
bvillersjr
S2 licensed
No luck locating any docs, but I think it's safe to assume that since they claim OutSim compatibility, that there will at least be that much.

I'll let you know after a few trials in case anyone else is building software that can benefit from additional suported titles.
bvillersjr
S2 licensed
It is indeed LFS compatible per the following (and only related info btw) from the Cody site:

If your system has a motion platform, then GRID™ should be able to control it. This feature is completely untested beyond checking that the basic data output is correct, and as such should be used entirely at your own risk. The output format is designed to be compatible with the "Live for Speed" outsim motion platform format. To enable, just open the hardware_settings_config.XML file and edit the motion attributes:
< motion enabled="true" ip="192.168.0.10" port="20777" delay="1" extradata="0" />
  • enabled – Set “true” or “false” to enable or disable the motion platform
  • ip - The IP address of the motion platform
  • port - The port of the motion platform
  • delay - the time between data updates from the game (1/100ths second).
  • extradata - This should always be set to “0”
bvillersjr
S2 licensed
Turns out it's F1 2010, Dirt2 and Grid that have an OutSim similar output.

I was posting here in hopes that someone had more infor about the subtle differences because I can't find an docs for this.

However, for each of the games mentioned, a line starting with "<motion enabled" exists in the hardware_settings_config.xml file (which is usually located in My Docs\Codemasters or MyDocs\My Games\(Dirt2 or FormulaOne).

Changing this line to:

<motion enabled="false" ip="127.0.0.1" port="20777" delay="1" extradata="0" />

-OR-

<motion enabled="false" ip="127.0.0.1" port="20777" delay="1" extradata="1" />

will suposedly output in an OutSim similar fashion.
OutSim With Dirt2 and Grid?
bvillersjr
S2 licensed
Hello,

As I mentioned before, I am developing an app that utilizes InSim/OutSim. I've learned that Codemasters uses an OutSim similar mechanism to export Dirt2 and Grid info. It would be nice to get a couple of extra supported games with minimal additional effort.

Does anyone know what differences exist between the two or any gotchas I should be aware of?
bvillersjr
S2 licensed
Thanks for the feedback guys!
.Net InSim/OutSim Opinions
bvillersjr
S2 licensed
Hello,

I am working on a project that requires .Net compatibility with both InSim and OutSim.

I've noticed several .Net InSim/OutSim libraries for .Net. Is one of them "official"?

If not, may I ask opinions as to which is the most complete, mature/stable and likely to be updated with future releases?

Any opinions are appreciated.
FGED GREDG RDFGDR GSFDG