/
glebdv996
/
MarkVerify
Обзор
Документация
Войти
/
glebdv996
/
MarkVerify
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ViewModels/CameraBasicViewModel.cs
130 строк
4 KB
glebdv996
первый коммит
04 фев 2026, 07:52
Верифицирован
04 фев 2026, 07:52
f1be2bc
Код
Авторство
О чём код?
using Observable; using System; using System.Collections.ObjectModel; using System.Windows.Media; using System.Windows.Media.Imaging; using WpfApp_IC.Services.Inspectors; using WpfApp_IC.Services.SettingsD; namespace WpfApp_IC.ViewModels { public class CameraBasicViewModel : ObservableObject { private readonly IInspectorController _controller; private readonly AppSettings _settings; public CameraBasicViewModel(IInspectorController controller) { _controller = controller; _settings = SettingsService.Load(); ShowImage = true; ShowLog = true; _controller.DataMatrixRead += dm => { Set(() => { DataMatrix = dm.Normalized; DataMatrixBrush = Brushes.LimeGreen; }); }; _controller.FrameReceived += frame => { if (frame != null) Set(() => Frame = frame); }; _controller.ErrorOccurred += err => { AddLog("Ошибка: " + err); }; _controller.SignalChanged += s => { AddLog($"Сигнал: {s}"); }; _controller.CodeChecked += (actual, expected, ok) => { AddLog($"Проверка: ожидалось [{expected}], считано [{actual}], результат: {(ok ? "OK" : "BRK")}"); Set(() => { DataMatrix = actual; DataMatrixBrush = ok ? Brushes.LimeGreen : Brushes.Red; }); }; } private BitmapSource? _frame; public BitmapSource? Frame { get => _frame; set => Set(ref _frame, value); } private string _dataMatrix = ""; public string DataMatrix { get => _dataMatrix; set => Set(ref _dataMatrix, value); } private Brush _dataMatrixBrush = Brushes.Black; public Brush DataMatrixBrush { get => _dataMatrixBrush; set => Set(ref _dataMatrixBrush, value); } public ObservableCollection<string> Log { get; } = new(); private bool _showImage; public bool ShowImage { get => _showImage; set => Set(ref _showImage, value); } private bool _showLog; public bool ShowLog { get => _showLog; set => Set(ref _showLog, value); } private bool _isRunning; public bool IsRunning { get => _isRunning; set => Set(ref _isRunning, value); } public void StartStop() { if (!IsRunning) { try { _controller.Start(); AddLog("Инспекция запущена"); IsRunning = true; } catch (Exception ex) { AddLog("Ошибка запуска инспекции: " + ex.Message); } } else { _controller.Stop(); AddLog("Инспекция остановлена"); IsRunning = false; } } private void AddLog(string msg) => Log.Add(msg); } }