Hey Pete,
I have a C# application interfacing with WideClient. I'm able to read data just fine, however I am running into some problems reading traffic data.
Setup: Prepar3d 3 with Ultimate Traffic 2 installed & running. FSUIPC installed running WideServer. Seperate computer runs WideClient & C# application.
When running the simulator with UT2 there are maybe 50 or more AI aircraft loaded.
The TCAS data I read seems unusable, no field is coming through as useful. I wonder if AI traffic is not transmitted to WideClient. When I view the raw bytes, for example, the first 8 or so are all 0. As I scroll through the raw data there are occasional bytes with values - however I can't find any 40-byte block that does not contains enough data to decode to anything useful. If you need I can reply with a screenshot of the raw byte data.
My test method is as follows:
private Offset<byte[]> airborneTraffic = new Offset<byte[]>(0x3840, 3840); // AI airborne aircraft traffic data (same format as the entry for E080)
private void ProcessTraffic()
{
var t = airborneTraffic.Value;
// (96x 40 byte array)
for (int i = 0; i < 3840; i += 0)
{
// TCAS DATA
var id = BitConverter.ToInt32(t, i); i += 4; // 0 = empty, otherwise this is an FSgenerated ID.FSUIPC makes this negative to distinguish FS entries from user added ones
var lat = BitConverter.ToSingle(t, i); i += 4;
var lon = BitConverter.ToSingle(t, i); i += 4;
var alt = BitConverter.ToSingle(t, i); i += 4;
var hdg = BitConverter.ToInt16(t, i); i += 2;
var gs = BitConverter.ToInt16(t, i); i += 2;
var vs = BitConverter.ToInt16(t, i); i += 2;
var idAtc = Encoding.ASCII.GetString(t, i, 15).ToString(); i += 15;
var bState = BitConverter.ToBoolean(t, i); i += 1;
var com1 = BitConverter.ToInt16(t, i); i += 2;
}
}
So question is, is my test method way off base, or is AI traffic not transmitted to WideClient?
Thank you!
Kent