Esempio n. 1
0
        /// <summary>
        /// Main Constructor
        /// </summary>
        /// <param name="templateRepo">Repository Template Service</param>
        /// <param name="userService">User Service</param>
        /// <param name="codenameService">4x4 Service</param>
        /// <param name="iotHubService">IoT Hub Service</param>
        public PreviewTemplateViewModel(ICosmosDBRepository <Template> templateRepo, IUserService userService, IFourByFourService codenameService, IIoTHubService iotHubService)
        {
            Log.Debug("PreviewTemplate ViewModel called");
            _TemplateRepo    = templateRepo;
            _UserService     = userService;
            _IotHubService   = iotHubService;
            _CodenameService = codenameService;

            //Set up chip default deviceID
            //_CodenameService.FourByFourPacketReceived += _CodenameService_CodenamePacketReceived;
            COMDevices         = _CodenameService.GetCOMDevices();
            _SelectedCOMDevice = _COMDevices.Find(p => p.DeviceID == _CodenameService.SelectCOMDevice.DeviceID);

            //Set commands
            _Initialize    = new AsyncCommand <bool>(() => InitializeView(Parameter));
            _RetryCheck    = new RelayCommand(p => InitializeChip());
            _DeviceChanged = new RelayCommand(p => _CodenameService.SetCOMDevice(_SelectedCOMDevice.DeviceID));
        }
Esempio n. 2
0
        /// <summary>
        /// Main Constructor
        /// </summary>
        public MainWindowViewModel()
        {
            //Set FourByFour callback
            _FourByFourService = new FourByFourService();
            _FourByFourService.Init();
            _FourByFourService.SerialDeviceReady += Event_SerialDeviceReady;
            _FourByFourService.VariableChanged   += Event_VariableChanged;

            //Set Timer to test UART connection
            _NetworkTimer          = new DispatcherTimer();
            _NetworkTimer.Interval = TimeSpan.FromSeconds(FourByFourConstants.PING_INTERVAL_SECONDS_IF_DISCONNECTED);
            _NetworkTimer.Tick    += Event_SendPokeAlive_Tick;
            _NetworkTimer.Start();

            //Set clock
            _ClockTimer          = new DispatcherTimer();
            _ClockTimer.Interval = TimeSpan.FromSeconds(1);
            _ClockTimer.Tick    += Event_UpdateClock_Tick;
            _ClockTimer.Start();
        }
Esempio n. 3
0
        /// <summary>
        /// Main Constructor
        /// </summary>
        /// <param name="templateRepo">Repository Template Service</param>
        /// <param name="messageRepo">Repository Message Service</param>
        /// <param name="userService">User Service</param>
        /// <param name="fourByFourService">FourByFour Service</param>
        public SimulateTemplateViewModel(ICosmosDBRepository <Template> templateRepo, ICosmosDBRepository <CosmosDBMessage> messageRepo, IUserService userService, IFourByFourService fourByFourService)
        {
            Log.Debug("SimulateTemplate ViewModel called");
            _TemplateRepo      = templateRepo;
            _MessageRepo       = messageRepo;
            _UserService       = userService;
            _FourByFourService = fourByFourService;
            _InitializeCommand = new AsyncCommand <bool>(() =>
                                                         InitializeSimulation(Parameter)
                                                         );

            //Sending timer
            _TimerSending          = new Timer();
            _TimerSending.Elapsed += Event_SendMessages;
            _TimerSending.Interval = _MessagesInterval * 100;

            //Receiving timer
            _TimerReceiving          = new Timer();
            _TimerReceiving.Elapsed += Event_ReceiveMessages;
            _TimerReceiving.Interval = 3000;
        }
        /// <summary>
        /// Main Constructor
        /// </summary>
        /// <param name="container">Container Unity for DI</param>
        /// <param name="userService">User Service</param>
        /// <param name="codenameService">4x4 Service</param>
        public MainWindowViewModel(IUnityContainer container, IUserService userService, IFourByFourService codenameService)
        {
            Log.Debug("Main Window called");
            _Container = container;

            //Set Current User Callback
            _UserService = userService;
            _UserService.ConnectionStatusChanged += Event_UserService_ConnectionStatusChanged;
            IsAuthenticated = false;

            //Set Codename callback
            _CodenameService = codenameService;
            _CodenameService.Init();

            //Initialize different views
            _HomeViewModel             = container.Resolve <HomeViewModel>();
            _SelectTemplateViewModel   = container.Resolve <SelectTemplateViewModel>();
            _PreviewTemplateViewModel  = container.Resolve <PreviewTemplateViewModel>();
            _SimulateTemplateViewModel = container.Resolve <SimulateTemplateViewModel>();

            //Set home view
            Navigate(_HomeViewModel);

            //Set commands
            _LoginCommand            = new AsyncCommand <AzureConnectionStatus>(() => _UserService.SignIn());
            _LogoutCommand           = new RelayCommand(p => _UserService.SignOut());
            _ChooseTemplateCommand   = new RelayCommand(p => Navigate(_SelectTemplateViewModel));
            _PreviewTemplateCommand  = new RelayCommand(p => Navigate(_PreviewTemplateViewModel, p));
            _SimulateTemplateCommand = new RelayCommand(p => Navigate(_SimulateTemplateViewModel, p));

            //Init Connection Timer - This timer will poke the 4x4 to check for responsivity, as well as the network sl0
            _NetworkTimer          = new System.Timers.Timer();
            _NetworkTimer.Elapsed += Event_RefreshConnectionInformation;
            _NetworkTimer.Interval = POKE_INTERVAL;
            _NetworkTimer.Start();
            Event_RefreshConnectionInformation(this, null);
        }