private void sc_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { switch ((EventIDs)data.uEventID) { case EventIDs.AddObject: if (data.dwData != 0 && !Objects.Contains(data.dwData)) { VehiclePosition pos = new VehiclePosition(data.dwData); Objects.Add(pos); sender.RequestDataOnSimObject( (RequestIDs)((int)RequestIDs.AIDataBase + (int)pos.ObjectID), pos.ObjectID, SIMCONNECT_PERIOD.VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG.CHANGED, pos); } break; case EventIDs.RemoveObject: if (data.dwData != 0 && Objects.Contains(data.dwData)) { Objects.Remove(data.dwData); } break; } }
void sc_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { switch ((EventIDs)data.uEventID) { case EventIDs.AddObject: if (data.dwData != 0 && !Objects.ContainsKey(data.dwData)) { UserPosition pos = new UserPosition(); sc.RequestDataOnSimObject( (RequestID)((int)RequestID.AIDataBase + data.dwData), data.dwData, SIMCONNECT_PERIOD.VISUAL_FRAME, SIMCONNECT_DATA_REQUEST_FLAG.CHANGED, pos); } break; case EventIDs.RemoveObject: if (data.dwData != 0 && Objects.ContainsKey(data.dwData)) { lstViewer.Items.Remove(Objects[data.dwData].ListItem); Objects.Remove(data.dwData); } break; } }
void sc_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { if ((Events)data.uEventID == Events.ObjectAdded && (data.eObjType == SIMCONNECT_SIMOBJECT_TYPE.AIRCRAFT || data.eObjType == SIMCONNECT_SIMOBJECT_TYPE.HELICOPTER) && (data.dwData != SimConnect.USER_SIMOBJECT)) { sc.RequestDataOnSimObject( (Requests)((uint)Requests.TrafficInfoBase + (uint)data.dwData), data.dwData, SIMCONNECT_PERIOD.SECOND, SIMCONNECT_DATA_REQUEST_FLAG.DEFAULT, typeof(TrafficInfo)); } }
private void SimConnect_OnRecvEventObjectAddremove(SimConnectImpl sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { if (data.uEventID == (uint)EVENT.ObjectAdded && (data.eObjType == SIMCONNECT_SIMOBJECT_TYPE.AIRCRAFT || data.eObjType == SIMCONNECT_SIMOBJECT_TYPE.HELICOPTER) && data.dwData != SimConnectImpl.SIMCONNECT_OBJECT_ID_USER) { _simConnect?.RequestDataOnSimObject( REQUEST.TrafficObjectBase + data.dwData, DEFINITION.Traffic, data.dwData, SIMCONNECT_PERIOD.SECOND, SIMCONNECT_DATA_REQUEST_FLAG.DEFAULT, 0, 0, 0); } }
void sc_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { switch ((Events)data.uEventID) { #if DEBUG case Events.AddObject: log.Info(string.Format("AddObject: {0} SIMCONNECT_SIMOBJECT_TYPE: {1}", data.dwData, Enum.GetName(typeof(SIMCONNECT_SIMOBJECT_TYPE), data.eObjType))); break; #endif case Events.RemoveObject: if (ObjectsInSimulation.Values.Any(x => x.ObjectID == data.dwData)) { log.Info(string.Format("RemoveObject: {0} (created by client)", data.dwData)); ObjectsInSimulation.Remove(ObjectsInSimulation.Single(x => x.Value.ObjectID == data.dwData).Key); OnPropertyChanged("CreatedSimObjectsCount"); } break; } }
void SimConnect_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { // Handle the case where the AI system adds or removes objects switch ((DATA_REQUESTS)data.uEventID) { case DATA_REQUESTS.REQUEST_AI_REMOVED: // Look through all the AIObjects in the list foreach (System.Collections.Generic.KeyValuePair <string, AIObjectData> kvp in AIObjects) { // Attempt to find a match to the ObjectID that is getting deleted if (kvp.Value.dwObjectID == data.dwData) { // If a match is found, delete the object from the AIObjects list AIObjects.Remove(kvp.Key); // Also delete the line item from the ListView control ListViewItem[] lvis = AIObjectListView.Items.Find(data.dwData.ToString(), false); if (lvis.Length == 1) { // If the item is found in the ListView, remove it AIObjectListView.Items.Remove(lvis[0]); } break; } } break; case DATA_REQUESTS.REQUEST_AI_ADDED: // Refresh the list of monitored objects for this specific request // first, Clear any current objects and stop all data requests for those objects ResetDataAndShutDownRequests(); // Now, Initiate a request for the list of objects we are interested // in monitoring in the given radius simconnect.RequestDataOnSimObjectType(DATA_REQUESTS.REQUEST_AI_OBJECT_ID_BYTYPE, DEFINITIONS.AI_Entity_Definition, MONITOR_RADIUS, monitoredObjectType); break; } }
void sc_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { switch ((EventIDs)data.uEventID) { case EventIDs.ObjectAdded: if (data.dwData != 0 && !Objects.Contains(data.dwData)) { AddObject(data.dwData); } break; case EventIDs.ObjectRemoved: if (data.dwData != 0 && Objects.Contains(data.dwData)) { this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new MyDelegate(delegate() { Objects.Remove(data.dwData); })); } break; } }
private void OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { //Console.WriteLine($"OnRecvEventObjectAddremove: {JsonConvert.SerializeObject(data, Formatting.Indented)}"); }
void sc_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { Console.WriteLine("sc_OnRecvEventObjectAddremove"); }
private void simconnect_OnRecvEventObjectAddremove(SimConnect sender, SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE data) { throw new NotImplementedException(); }