I tried option 3 but run into a snag. I requested 11 variables and only got 10 back.
int count= (int)pObjData->dwDefineCount; //10 doubles were returned
.....
double dvalue[11];
.....
memcpy(dvalue, x, 88);
However, my request was:
for (int i = 0; i < SimRec.size(); i++) {
hr = SimConnect_AddToDataDefinition(hSimConnect, SimRec[i].def_ID, SimRec[i].SimVar, SimRec[i].SimUnit);
}
hr = SimConnect_RequestDataOnSimObject(hSimConnect, REQUEST_PACKAGE_1, DEFINITION_PACKAGE_1, SIMCONNECT_SIMOBJECT_TYPE_USER, SIMCONNECT_PERIOD_SIM_FRAME, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED);
And my data definitions are:
array <SimConnectRequest, 11> SimRec = { {
{DEFINITION_PACKAGE_1,"GENERAL ENG THROTTLE LEVER POSITION:1","percent",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"GENERAL ENG THROTTLE LEVER POSITION:2","percent",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT PANEL ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT BEACON ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT CABIN ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT NAV ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT TAXI ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT WING ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT LANDING ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"LIGHT PROBE ON","Boolean",REQUEST_PACKAGE_1,0},
{DEFINITION_PACKAGE_1,"AUTOPILOT HEADING LOCK DIR", "degrees",REQUEST_PACKAGE_1,0}
} };
I am not getting AUTOPILOT HEADING LOCK DIR. Is there a limit to the number of variables that can be defined in a package? The rest of the variables are correct.
Thanks,
Chris