private void LogEvent(object sender, ParticleEventResponse particeEvent) { ++eventCount; NoEventsProgress.IsActive = false; if (eventCount > 100) EventsListView.Items.RemoveAt(EventsListView.Items.Count - 1); EventsListView.Items.Insert(0, particeEvent); }
private void OnParticleEvent(object sender, ParticleEventResponse particeEvent) { var deviceEvent = new DeviceEvent { Type = particeEvent.Name, Data = particeEvent.Data, Timestamp = particeEvent.PublishedAt }; _eventHistory.RecordEvent(deviceEvent); DeviceHadEvent?.Invoke(this, deviceEvent); }
/// <summary> /// New message for this group of event handlers /// </summary> /// <param name="sender">Object sending request</param> /// <param name="particeEvent">ParticleEventResponse</param> public void NewMessage(object sender, ParticleEventResponse particeEvent) { try { if (HasHandlers) { OnMessage(sender, particeEvent); } } catch { } }
/// <summary> /// A ParticleEventHandler to look for the specific event that this device is online /// </summary> /// <param name="sender">Object sending request</param> /// <param name="particeEvent">ParticleEventResponse</param> private void CheckForOnlineEvent(object sender, ParticleEventResponse particeEvent) { if (particeEvent.Name.Equals("spark/status") && particeEvent.Data.Equals("online")) { UnsubscribeFromEvent(onlineEventListenerID); isFlashing = false; particleCloud.SynchronizationContextPost(async a => { UpdateState(); await RefreshAsync(); }, null); } }
private void LogEvent(object sender, ParticleEventResponse particeEvent) { ++eventCount; NoEventsProgress.IsActive = false; if (eventCount > 100) { EventsListView.Items.RemoveAt(EventsListView.Items.Count - 1); } EventsListView.Items.Insert(0, particeEvent); }
private async void SparkMessages(object sender, ParticleEventResponse particeEvent) { var particleDevice = TinkerData.Devices.FirstOrDefault(device => device.Id == particeEvent.DeviceId); if (particleDevice == null) { return; } switch (particeEvent.Name) { case "spark/status": if (particleDevice.IsFlashing && particeEvent.Data.Equals("online")) { particleDevice.FlagFlashStatusChange(true); } bool success = await particleDevice.RefreshAsync(); if (success) { var sortedDevices = TinkerData.Devices.OrderByDescending(device => device.Connected).ThenBy(device => device.Name).ToList(); var newIndex = sortedDevices.IndexOf(particleDevice); var oldIndex = TinkerData.Devices.IndexOf(particleDevice); if (newIndex != oldIndex) { TinkerData.Devices.Remove(particleDevice); TinkerData.Devices.Insert(newIndex, particleDevice); } } break; case "spark/flash/status": if (particeEvent.Data.StartsWith("started")) { particleDevice.FlagFlashStatusChange(); } break; } }