one of my apps is handling AI traffic. I am encountering a strange problem in V4 - it looks like the ATC strings are no longer properly terminated.
Edit: This only happens when I set those data fields myself with "SetDataOnSimObject"!
For example, an "ATC ID" set to <AITRAC> looks like <AITRACig> when I query it with "RequestDataOnSimObject" or "RequestDataOnSimObjectType". "ATC AIRLINE" is even worse, the strings blend over into each other.
Needless to say, this has been working as it should for over a year in all other simulator versions.
What am I doing wrong?
Best regards[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct nameStruct
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public String atcId;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public String atcAirline;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public String flightNumber;
};
simconnect.AddToDataDefinition(DEFINITIONS.ACNAME, "ATC ID", null, SIMCONNECT_DATATYPE.STRING256, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.AddToDataDefinition(DEFINITIONS.ACNAME, "ATC AIRLINE", null, SIMCONNECT_DATATYPE.STRING256, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.AddToDataDefinition(DEFINITIONS.ACNAME, "ATC FLIGHT NUMBER", null, SIMCONNECT_DATATYPE.STRING256, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.RegisterDataDefineStruct<nameStruct>(DEFINITIONS.ACNAME);
MainDialog.nameStruct nameStr = new MainDialog.nameStruct();
nameStr.atcId = createdAi.nameId;
nameStr.atcAirline = createdAi.airline;
nameStr.flightNumber = createdAi.flightnumber;
simconnect.SetDataOnSimObject(MainDialog.DEFINITIONS.ACNAME, objectId, 0, nameStr);
Oliver Binder