private void CanBricklet_FrameReadCallback(BrickletCANV2 sender, byte frameType, long identifier, byte[] data) { var can = new CanPackage((CanFrameType)frameType, identifier, data); CurrentInput = can; InputUpdated?.Invoke(this, new SensorUpdatedEventArgs <CanPackage>(can)); }
/// <summary> /// Прочитать входные данные из файла, обработать их и сохранить для последующих действий. /// </summary> /// <param name="file">Ссылка на выбранный файл.</param> /// <exception cref="InvalidInputFileException">Входные данные в файле не в поддерживаемом формате.</exception> public async Task SetFromFile(IFileReference file) { await using var stream = await file.CreateMemoryStreamAsync(4096); using var reader = new StreamReader(stream); var content = reader.ReadToEnd(); var decerialized = JsonConvert.DeserializeObject <KnapsackInput>(content); if (decerialized?.Items == null || decerialized.Knapsack == null) { throw new InvalidInputFileException(); } Input = decerialized; InputUpdated?.Invoke(); }
private void UpdateInputState(object sender, ElapsedEventArgs e) { var newInputDateTime = _inputSources.GetLastInputTime(); if (newInputDateTime.Subtract(_lastInputDateTime).TotalMilliseconds > 1000) { if (_lastInputDateTime.AddMilliseconds(_maxElapsedTimeMilliseconds) < newInputDateTime) { _lastInputUpdateDateTime = DateTime.Now; InputStarted?.Invoke(this, newInputDateTime); } else if (_lastInputUpdateDateTime.AddMilliseconds(_inputUpdateFrequencyMilliseconds) < DateTime.Now) { _lastInputUpdateDateTime = DateTime.Now; InputUpdated?.Invoke(this, newInputDateTime); } _lastInputDateTime = newInputDateTime; } }
public void UpdateInput() { InputUpdated?.Invoke(this, EventArgs.Empty); }