private void MyManager_DataRxEvent(RequestsEnum request, SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE data) { try { if (request == RequestsEnum.RefreshDataRequest) { RefreshDataStruct receivedData = (RefreshDataStruct)data.dwData[0]; tugHeading = receivedData.trueHeading; if (parkingBrakeSet != receivedData.parkingBrakeState) { parkingBrakeSet = receivedData.parkingBrakeState; SetTugVelocity(tugVelocitySet); } if (receivedData.pushbackState == 3) { Status = TugStatus.Disabled; } else if (receivedData.pushbackState == 0 && !TugActive) { Status = TugStatus.Waiting; StartTugMode(); } } else if (request == RequestsEnum.StartTugMode) { RefreshDataStruct receivedData = (RefreshDataStruct)data.dwData[0]; Status = TugStatus.Waiting; } } catch (Exception) { } }
public void RequestData(RequestsEnum request, DefinitionsEnum definition) { if (!Connected) { return; } simClient.RequestDataOnSimObjectType(request, definition, 0, SIMCONNECT_SIMOBJECT_TYPE.USER); }
private void MyManager_DataRxEvent(RequestsEnum request, Microsoft.FlightSimulator.SimConnect.SIMCONNECT_RECV_SIMOBJECT_DATA data) { try { if (request == RequestsEnum.RefreshDataRequest) { RefreshDataStruct receivedData = (RefreshDataStruct)data.dwData[0]; if (ParkingBrakeOn != receivedData.parkingBrakeState) { ParkingBrakeOn = receivedData.parkingBrakeState; } } } catch (Exception) { } }
private void MyManager_DataRxEvent(RequestsEnum request, SIMCONNECT_RECV_SIMOBJECT_DATA data) { try { if (request == RequestsEnum.RefreshDataRequest) { RefreshDataStruct receivedData = (RefreshDataStruct)data.dwData[0]; tugHeading = receivedData.trueHeading; if (parkingBrakeSet != receivedData.parkingBrakeState) { parkingBrakeSet = receivedData.parkingBrakeState; switch (Status) { case TugStatus.Forward: SetTugSpeed(SpeedFactor); break; case TugStatus.Reverse: SetTugSpeed(-SpeedFactor); break; } } if (receivedData.pushbackState == 3) { Status = TugStatus.Disabled; } else if (receivedData.pushbackState == 0 && !TugActive) { Status = TugStatus.Waiting; StartTugMode(); } } else if (request == RequestsEnum.StartTugMode) { RefreshDataStruct receivedData = (RefreshDataStruct)data.dwData[0]; Status = TugStatus.Waiting; } } catch (Exception) { } }
private void MyManager_DataRxEvent(RequestsEnum request, SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE data) { try { if (request == RequestsEnum.ExitTypeRequest) { uint i = 0; ExitDataStruct exitData = (ExitDataStruct)data.dwData[0]; foreach (var field in (exitData.GetType().GetFields())) { exitTypeArray[i] = (double)field.GetValue(exitData); i++; } /* * The exit data types returned from SimConnect do not match what is expected. This method below attempts to map each aircraft to known working values per plane type * Exit type 0 = Main * Exit type 1 = Cargo * Exit type 2 = Emergency * Exit type 99 = Unused */ if (exitTypeArray[3] == 0) //Type A320 { mainExitIndex = 0; emergencyExitIndex = 3; cargoExitIndex = 5; } else if (exitTypeArray[13] == 1) //Type 747 { mainExitIndex = 10; emergencyExitIndex = 1; cargoExitIndex = 12; } else if (exitTypeArray[10] == 1) //Type 787 { mainExitIndex = 0; emergencyExitIndex = 7; cargoExitIndex = 8; } else { mainExitIndex = 0; emergencyExitIndex = 1; cargoExitIndex = 2; } } else if (request == RequestsEnum.ExitOpenRequest) { uint i = 0; ExitDataStruct exitData = (ExitDataStruct)data.dwData[0]; foreach (var field in (exitData.GetType().GetFields())) { exitOpenArray[i] = (double)field.GetValue(exitData); i++; } MainExit = exitOpenArray[mainExitIndex] > .5; CargoExit = exitOpenArray[cargoExitIndex] > .5; EmergencyExit = exitOpenArray[emergencyExitIndex] > .5; } } catch (Exception) { } }