private void GenerateImages() { if (PortData == null) { DataCollection = new SerialPortDataViewModel[0]; return; } var dataCollection = new List <SerialPortDataViewModel>(); foreach (var data in PortData.Take(CountOfNumbers)) { var imageData = _imageDataCollection.SingleOrDefault(x => x.Number == data); if (imageData == null) { continue; } var item = new SerialPortDataViewModel(); if (File.Exists(imageData.Filepath)) { item.Init(imageData.Number, imageData.Filepath); } else { item.Init(imageData.Number); } dataCollection.Add(item); } DataCollection = dataCollection.ToArray(); }
private void ProcessPortData(string data) { generationCounter++; var values = data.Replace("\\r", "").Replace("\\n", "") .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) .Select(byte.Parse) .ToArray(); if (values.Length == 0) { PortData = null; return; } if (values.Length == 0 && values[0] == 0) { PortData = null; return; } message_type = values[0]; List <int> temp_answers = new List <int>(); if (message_type == 1 || message_type == 2) { answer_sended = false; SelectedImageData = null; Weight = values[1] * 128 + values[2]; var portData = new List <int>(); for (int i = 3, j = 0; i < values.Length - 1; i += 2, j++) { var item1 = values[i]; var item2 = values[i + 1]; portData.Add(item1 * 128 + item2); temp_answers.Add(item1 * 128 + item2); } answers = temp_answers.ToArray(); PortData = portData.ToArray(); } else if (message_type == 3) { if (answers.Length > 0) { var imageData = _imageDataCollection.SingleOrDefault(x => x.Number == answers[0]); var item = new SerialPortDataViewModel(); if (File.Exists(imageData.Filepath)) { item.Init(imageData.Number, imageData.Filepath); } else { item.Init(imageData.Number); } var itemArray = new SerialPortDataViewModel[1]; itemArray[0] = item; DataCollection = itemArray; } } }