Hello All, I’m working on retrieving facilities data for the airports.
When trying to get the data it seems like I’m getting the same array of data every time.
Code
void handleReceived_Airport_List(Isolate* isolate, SIMCONNECT_RECV* pData, DWORD cbData)
{
SIMCONNECT_RECV_AIRPORT_LIST* pObjData = (SIMCONNECT_RECV_AIRPORT_LIST*)pData;
Local ctx = isolate->GetCurrentContext();
// printf(“cbData: %s \n”, cbData);
// printf(“Data message SIMCONNECT_RECV_FACILITIES_LIST: %i\n”, pObjData);
// printf(“Data msage SIMCONNECT_RECV_FACILITIES_LIST dwRequestID: %s \n”, pObjData->dwRequestID);
printf(“------------------------------------------------------------- \n”);
printf(“Data msage SIMCONNECT_RECV_FACILITIES_LIST dwRequestID: %i \n”, pObjData->dwRequestID);
printf(“Data message SIMCONNECT_RECV_FACILITIES_LIST dwArraySize: %i \n”, pObjData->dwArraySize);
printf(“Data message SIMCONNECT_RECV_FACILITIES_LIST dwEntryNumber: %i \n”, pObjData->dwEntryNumber);
printf(“Data message SIMCONNECT_RECV_FACILITIES_LIST dwOutOf: %i \n”, pObjData->dwOutOf);
// Result to be returned
Local<Object> result = Object::New(isolate);
// Populate all values here
Local<Array> nodes = Array::New(isolate);
// Array will be stored to this key
MaybeLocal<String> keyObj = String::NewFromUtf8(isolate, "DataMap");
int len = sizeof(pObjData->rgData);
printf("Array Size: %i And Value: %s 2,000 and Value at 100 %s \n", len, pObjData->rgData[2000].Icao, pObjData->rgData[100].Icao);
for (int i = 0; i < (int)pObjData->dwArraySize; i++)
{
try {
Local<Object> node = Object::New(isolate);
Local<Object> childNode = Object::New(isolate);
MaybeLocal<String> keyLat = String::NewFromUtf8(isolate, "LAT");
MaybeLocal<String> keyLong = String::NewFromUtf8(isolate, "LONG");
MaybeLocal<String> keyIcao = String::NewFromUtf8(isolate, "ICAO");
MaybeLocal<String> keyCords = String::NewFromUtf8(isolate, "CORDS");
MaybeLocal<String> valueIcao = String::NewFromUtf8(isolate, pObjData->rgData[i].Icao);
childNode->Set(ctx, keyLat.ToLocalChecked(), Number::New(isolate, pObjData->rgData[i].Latitude));
childNode->Set(ctx, keyLong.ToLocalChecked(), Number::New(isolate, pObjData->rgData[i].Longitude));
node->Set(ctx, keyIcao.ToLocalChecked(), valueIcao.ToLocalChecked());
node->Set(ctx, keyCords.ToLocalChecked(), childNode);
nodes->Set(ctx, i, node);
}
catch (...)
{
}
}
// Add all of the results to our object
result->Set(ctx, keyObj.ToLocalChecked(), nodes);
const int argc = 1;
Local<Value> argv[argc] = { result };
dataRequestCallbacks[pObjData->dwRequestID]->Call(isolate->GetCurrentContext()->Global(), argc, argv);
}
Output
Data msage SIMCONNECT_RECV_FACILITIES_LIST dwRequestID: 0
Data message SIMCONNECT_RECV_FACILITIES_LIST dwArraySize: 1243
Data message SIMCONNECT_RECV_FACILITIES_LIST dwEntryNumber: 0
Data message SIMCONNECT_RECV_FACILITIES_LIST dwOutOf: 30
Data message pObjData->rgData[0] Icao: HTSE
Data msage SIMCONNECT_RECV_FACILITIES_LIST dwRequestID: 0
Data message SIMCONNECT_RECV_FACILITIES_LIST dwArraySize: 1243
Data message SIMCONNECT_RECV_FACILITIES_LIST dwEntryNumber: 1
Data message SIMCONNECT_RECV_FACILITIES_LIST dwOutOf: 30
Data message pObjData->rgData[0] Icao: HTSE
Data msage SIMCONNECT_RECV_FACILITIES_LIST dwRequestID: 0
Data message SIMCONNECT_RECV_FACILITIES_LIST dwArraySize: 1243
Data message SIMCONNECT_RECV_FACILITIES_LIST dwEntryNumber: 2
Data message SIMCONNECT_RECV_FACILITIES_LIST dwOutOf: 30
Data message pObjData->rgData[0] Icao: HTSE
Any help would be greatly apprecaited.
Thank you,