/// <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)); }
/// <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(); }
/// <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); }