private void Window_Loaded(object sender, RoutedEventArgs e) { m_imager = new Imager(); m_imager.m_cameraEvent += Imager_CameraEvent; m_imager.m_temperatureEvent += Imager_TemperatureEvent; bool success = m_imager.Initialize(); if (success) { m_imager.m_camera.CoolerON(true); VM.CoolingOn = true; TempOnIndicator.Fill = new SolidColorBrush(Colors.Blue); MyExperimentConfigurator.SetImager(m_imager); } else { MessageBox.Show("Imager Failed to Initialize. Imager operation disabled.", "Imager Error", MessageBoxButton.OK, MessageBoxImage.Error); Dispatcher.BeginInvoke((Action)(() => MainTabControl.SelectedIndex = 1)); ExperimentConfiguratorTab.IsEnabled = false; MaintenanceTab.IsEnabled = false; } }
private void Window_Loaded(object sender, RoutedEventArgs e) { m_splash = new SplashScreen("/Images/WG_Loading.png"); m_splash.Show(false); bool admin = IsAdministrator(); //if (admin) { MessageBox.Show("You ARE an administrator"); } //else { MessageBox.Show("You ARE NOT an administrator"); } bool success = VerifySQLServerServiceRunning(); // Don't have the security privileges to start services...need to fix // Until this is fixed, just set success = true success = true; if (success) { m_imager = new Imager(); bool done = false; while (!done) { m_imager.Init(); if (m_imager.ImagerReady) { done = true; m_imager.m_cameraEvent += Imager_CameraEvent; m_imager.m_cameraTemperatureEvent += Imager_TemperatureEvent; m_imager.m_camera.CoolerON(true); VM.CoolingOn = true; CameraTempOnIndicator.Fill = new SolidColorBrush(Colors.Blue); if (GlobalVars.Instance.Enable_EthernetIOModule) { m_imager.m_ethernetIO.m_doorStatusEvent += m_ethernetIO_m_doorStatusEvent; m_imager.m_ethernetIO.m_ioMessageEvent += m_ethernetIO_m_ioMessageEvent; } if (GlobalVars.Instance.Enable_EnclosureTemperatureController) { m_imager.m_insideTemperatureEvent += m_imager_m_insideTemperatureEvent; m_imager.m_omegaTempController.MessageEvent += m_omegaTempController_MessageEvent; m_imager.m_omegaTempController.TempEvent += m_omegaTempController_TempEvent; } MyExperimentConfigurator.Init(m_imager); MyExperimentConfigurator.StartExperimentEvent += MyExperimentConfigurator_StartExperimentEvent; MyRunExperimentControl.CloseRunExperimentPanelEvent += MyRunExperimentControl_CloseRunExperimentPanelEvent; m_vworksReady = StartVWorks(); if (m_vworksReady) { MyRunExperimentControl.VM.StatusChange += VM_StatusChange; } } else { MessageBoxResult response = MessageBox.Show("Imager Failed to Initialize. Retry?" + Environment.NewLine + Environment.NewLine + " YES - to retry Imager initialization" + Environment.NewLine + Environment.NewLine + " NO - continue with Imager disabled" + Environment.NewLine, "Imager Error", MessageBoxButton.YesNo, MessageBoxImage.Error); if (response == MessageBoxResult.No) { done = true; Dispatcher.BeginInvoke((Action)(() => MainTabControl.SelectedIndex = 1)); ExperimentConfiguratorTab.IsEnabled = false; //MaintenanceTab.IsEnabled = false; } } } } else { MessageBox.Show("MS SQL Server Service could not be started.", "MS SQL Server Error", MessageBoxButton.OK, MessageBoxImage.Error); Close(); } }
void MyRunExperimentControl_CloseRunExperimentPanelEvent(object sender, EventArgs e) { MyExperimentConfigurator.ResetExperimentConfigurator(); VM.ShowRunExperimentPanel = false; }
async private void M_tcpServer_DataReceived(object sender, Message e) { WaveguideMessage message; byte[] packet; if (WaveguideMessageUtil.ParseMessage(e.Data, out message)) { m_commandMessageCount++; m_timestamp = DateTime.Now.ToString(); switch (message.messageType) { case Waveguide.WGMessageType.GET_STATUS: if (WaveguideMessageUtil.Build_Status_Message(GlobalVars.Instance.Status, GlobalVars.Instance.Status.ToString(), out packet)) { e.Reply(packet); } break; case Waveguide.WGMessageType.CONFIG_EXPERIMENT: ExperimentConfiguration config; PostMessage("Configuration Message Received"); // Waveguide must be in ONLINE or READY state to accept a config command if (GlobalVars.Instance.Status == WGStatus.ONLINE || GlobalVars.Instance.Status == WGStatus.READY) { if (ExperimentConfiguration.ParseConfigurationPayload(message.payloadBytes, out config)) { if (MyExperimentConfigurator.SetConfiguration(config)) { // Set Status to Ready GlobalVars.Instance.Status = WGStatus.READY; // send response if (WaveguideMessageUtil.Build_Status_Message(GlobalVars.Instance.Status, GlobalVars.Instance.Status.ToString(), out packet)) { e.Reply(packet); } } else { GlobalVars.Instance.Status = WGStatus.ONLINE; PostMessage("Configuration Message Format Error"); if (WaveguideMessageUtil.Build_Status_Message(WGStatus.MESSAGE_FAILED__MESSAGE_FORMAT_ERROR, "Failed to parse message", out packet)) { e.Reply(packet); } } } else { // received bad configuration data GlobalVars.Instance.Status = WGStatus.ONLINE; if (WaveguideMessageUtil.Build_Status_Message(WGStatus.MESSAGE_FAILED__MESSAGE_FORMAT_ERROR, "Failed to parse message", out packet)) { e.Reply(packet); PostMessage("Configuration Message Parse Error"); } } } else { if (WaveguideMessageUtil.Build_Status_Message(WGStatus.MESSAGE_FAILED__INCORRECT_MODE, "Current Waveguide mode = " + GlobalVars.Instance.Status.ToString() + "\nIt must be in ONLINE or READY mode in order to accept a configuration command", out packet)) { e.Reply(packet); PostMessage("Configuration Message No Accepted. Waveguide not in correct mode."); } } break; case Waveguide.WGMessageType.START_EXPERIMENT: // Waveguide must be in "Ready" state in order to Start an experiment PostMessage("Start Message Received"); if (GlobalVars.Instance.Status == WGStatus.READY) { GlobalVars.Instance.Status = WGStatus.RUNNING; if (WaveguideMessageUtil.Build_Status_Message(GlobalVars.Instance.Status, GlobalVars.Instance.Status.ToString(), out packet)) { e.Reply(packet); } // Start Experiment! MyExperimentConfigurator.StartExperiment(); // wait for camera temperature bool overridden = false; Application.Current.Dispatcher.Invoke( () => { // Code to run on the GUI thread. TemperatureMonitorDialog tdlg = new TemperatureMonitorDialog(m_imager.m_camera); tdlg.ShowDialog(); overridden = tdlg.WasOverridden(); if (overridden) { MyRunExperimentControl.VM.CameraTemperatureTarget = MyRunExperimentControl.VM.CameraTemperatureActual; } }); await Task.Delay(2000); // give time for RunExperimentControl to enable run // run vworks protocol MyRunExperimentControl.Run(); } else { if (WaveguideMessageUtil.Build_Status_Message(WGStatus.MESSAGE_FAILED__INCORRECT_MODE, "Current Waveguide mode = " + GlobalVars.Instance.Status.ToString() + "\nIt must be in READY mode in order to accept a Start command", out packet)) { e.Reply(packet); } } break; case Waveguide.WGMessageType.STOP_EXPERIMENT: PostMessage("Stop Message Received"); if (GlobalVars.Instance.Status == WGStatus.RUNNING) { GlobalVars.Instance.Status = WGStatus.READY; if (WaveguideMessageUtil.Build_Status_Message(GlobalVars.Instance.Status, GlobalVars.Instance.Status.ToString(), out packet)) { e.Reply(packet); } } else { if (WaveguideMessageUtil.Build_Status_Message(WGStatus.MESSAGE_FAILED__INCORRECT_MODE, "Current Waveguide mode = " + GlobalVars.Instance.Status.ToString() + "\nIt must be in RUNNING mode in order to accept a Stop command", out packet)) { e.Reply(packet); } } break; case Waveguide.WGMessageType.STATUS: break; } } else { //m_vm.status = WGStatus.ERROR; if (WaveguideMessageUtil.Build_Status_Message(WGStatus.MESSAGE_FAILED__MESSAGE_FORMAT_ERROR, "Error Parsing Message", out packet)) { e.Reply(packet); } } }