Example #1
0
        public MainViewModel(MainWindow mainWindow)
        {
            CurrentSerialPort        = new ViewModelProperty <string>(ConnectToArduino);
            CurrentProgrammerProfile = new ViewModelProperty <string>(LoadProfile);
            SerialPorts         = new ViewModelProperty <IEnumerable <string> >();
            ProgrammerProfiles  = new ViewModelProperty <IEnumerable <string> >();
            SerialPortMenuItems = new ReadOnlyViewModelProperty <List <SerialPortMenuItem> >(SerialPorts, () =>
            {
                var items = new List <SerialPortMenuItem>();
                if (SerialPorts.Value != null)
                {
                    foreach (var item in SerialPorts.Value)
                    {
                        items.Add(new SerialPortSelectionItem(this, item));
                    }
                }

                if (items.Count == 0)
                {
                    items.Add(NoPortsAvailable.Value);
                }

                return(items);
            });
            SerialMonitor         = new SerialMonitor();
            TestButtonDeckCommand = new ActionCommandModel(() => !string.IsNullOrEmpty(CurrentSerialPort.Value), OnTestButtonDeck);
            LoggingCommand        = new ActionCommandModel(() => true, OnOpenLogging);
            OpenProgrammer        = new ActionCommandModel(() => true, OnOpenProgrammer);

            LogListener   = new LogListener();
            RootLogger    = new LoggerFactory().Create(LogListener);
            Communication = new ButtonDeckCommunication(RootLogger);
            MainWindow    = mainWindow;
        }
 internal void Connect(ButtonDeckCommunication communication)
 {
     Communication = communication;
     Communication.ToggleStateChanged   += Communication_ToggleStateChanged;
     Communication.VersionResponse      += Communication_VersionResponse;
     Communication.HeartbeatResponse    += Communication_HeartbeatResponse;
     Communication.LEDBrightness        += Communication_LEDBrightness;
     Communication.ButtonUp             += Communication_ButtonUp;
     Communication.ButtonDown           += Communication_ButtonDown;
     Communication.InvalidResponse      += Communication_InvalidResponse;
     Communication.AcknowledgedResponse += Communication_AcknowledgedResponse;
 }
Example #3
0
 public ActionRouter(ILogger logger, ButtonDeckCommunication communication)
 {
     _logger       = CategoryLogger.Create(nameof(ActionRouter), logger);
     Communication = communication;
     Communication.ToggleStateChanged   += Communication_ToggleStateChanged;
     Communication.VersionResponse      += Communication_VersionResponse;
     Communication.HeartbeatResponse    += Communication_HeartbeatResponse;
     Communication.LEDBrightness        += Communication_LEDBrightness;
     Communication.ButtonUp             += Communication_ButtonUp;
     Communication.ButtonDown           += Communication_ButtonDown;
     Communication.InvalidResponse      += Communication_InvalidResponse;
     Communication.AcknowledgedResponse += Communication_AcknowledgedResponse;
     Deck = ButtonDeckInformation.Default;
     Initialise();
 }