/// <summary> /// The main entry point for the application. /// </summary> // [STAThread] static void Main() { //Create forms that query the program to setup the software depending //on user choices MainForm mainForm = new MainForm(); ActivityProtocolForm activityProtocolForm = new ActivityProtocolForm(); SensorConfigurationForm sensorConfigurationForm = new SensorConfigurationForm(); BuildModelFeatureForm buildModelFeatureForm = new BuildModelFeatureForm(); WhereStoreDataForm whereStoreDataForm = new WhereStoreDataForm(); TroubleshootModel troubleshootModelForm = new TroubleshootModel(); SimilarActivitiesForm similarActivitiesForm = new SimilarActivitiesForm(); MobilityForm mobilityForm = new MobilityForm(); OrientationForm orientationForm = new OrientationForm(); CalibrateSensors calibrateSensorsForm = new CalibrateSensors(); CalibrateSensor calibrateSensorForm = new CalibrateSensor(); ActivityProtocolForm annotationActivityProtocolForm = new ActivityProtocolForm(); SensorConfigurationForm annotationSensorConfigurationForm = new SensorConfigurationForm(); //Forms that are used to collect MITes Data activityProtocolForm.PreviousForm = mainForm; activityProtocolForm.NextForm = sensorConfigurationForm; sensorConfigurationForm.PreviousForm = activityProtocolForm; sensorConfigurationForm.NextForm = whereStoreDataForm; whereStoreDataForm.PreviousForm = sensorConfigurationForm; whereStoreDataForm.NextForm = null; buildModelFeatureForm.PreviousForm = mainForm; buildModelFeatureForm.NextForm = null; //Forms that are used to troubleshoot a model and reconstruct //a hierarchical tree troubleshootModelForm.NextForm = similarActivitiesForm; troubleshootModelForm.PreviousForm = mainForm; similarActivitiesForm.PreviousForm = troubleshootModelForm; similarActivitiesForm.NextForm = mobilityForm; mobilityForm.PreviousForm = similarActivitiesForm; mobilityForm.NextForm = orientationForm; orientationForm.PreviousForm = mobilityForm; orientationForm.NextForm = null; //Calibration forms calibrateSensorsForm.NextForm = calibrateSensorForm; calibrateSensorsForm.PreviousForm = mainForm; calibrateSensorForm.NextForm = null; calibrateSensorForm.PreviousForm = calibrateSensorsForm; //forms that are used for annotation only annotationActivityProtocolForm.PreviousForm = mainForm; annotationActivityProtocolForm.NextForm = annotationSensorConfigurationForm; annotationSensorConfigurationForm.PreviousForm = annotationActivityProtocolForm; annotationSensorConfigurationForm.NextForm = null; //the forms that are linked to choices on the MainForm Form[] nextForms = new Form[5]; nextForms[0] = activityProtocolForm; nextForms[1] = buildModelFeatureForm; nextForms[2] = troubleshootModelForm; nextForms[3] = calibrateSensorsForm; nextForms[4] = annotationActivityProtocolForm; mainForm.SetNextForms(nextForms); mainForm.ShowDialog(); //Once the user makes the choices, cleanup all the forms and close them activityProtocolForm.Close(); sensorConfigurationForm.Close(); buildModelFeatureForm.Close(); whereStoreDataForm.Close(); #if(PocketPC) calibrateSensorsForm.Close(); calibrateSensorForm.Close(); #else #endif //choice #1: collect data if ( (MainForm.SelectedForm == Constants.MAIN_SELECTED_COLLECT_DATA) || (MainForm.SelectedForm == Constants.MAIN_SELECTED_ANNOTATION)) { string destinationFolder = ""; if (MainForm.SelectedForm == Constants.MAIN_SELECTED_COLLECT_DATA) destinationFolder = WhereStoreDataForm.SelectedFolder; else { //Create the storage directory if it does not exist if (Directory.Exists(Constants.DEFAULT_DATA_STORAGE_DIRECTORY) == false) Directory.CreateDirectory(Constants.DEFAULT_DATA_STORAGE_DIRECTORY); //Check if the directory is empty if (isDirectoryEmpty(Constants.DEFAULT_DATA_STORAGE_DIRECTORY) == false) { MessageBox.Show("Please delete the content of " + Constants.DEFAULT_DATA_STORAGE_DIRECTORY + "."); Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); } destinationFolder = Constants.DEFAULT_DATA_STORAGE_DIRECTORY; } //check all required paramters were selected if ((ActivityProtocolForm.SelectedProtocol==null)||(ActivityProtocolForm.SelectedProtocol.FileName == "") ||(SensorConfigurationForm.SelectedSensors==null)|| (SensorConfigurationForm.SelectedSensors.FileName == "") || (destinationFolder == "") || (destinationFolder == null)) { MessageBox.Show("Exiting: You need to select an activity protocol, sensor configuration and a directory to store your data"); #if (PocketPC) Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); #else Environment.Exit(0); #endif } else { //Copy the activity protocol to the data directory try { File.Copy(Constants.ACTIVITY_PROTOCOLS_DIRECTORY + ActivityProtocolForm.SelectedProtocol.FileName, destinationFolder + "\\" + AXML.Reader.DEFAULT_XML_FILE); } catch (Exception) { MessageBox.Show("Exiting: Please choose an empty storage directory"); #if (PocketPC) Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); #else Environment.Exit(0); #endif } //Copy the sensor configuration to the data directory try { File.Copy(Constants.SENSOR_CONFIGURATIONS_DIRECTORY + SensorConfigurationForm.SelectedSensors.FileName, destinationFolder + "\\" + SXML.Reader.DEFAULT_XML_FILE); } catch (Exception) { MessageBox.Show("Exiting: Please choose an empty storage directory"); #if (PocketPC) Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); #else Environment.Exit(0); #endif } //Copy the configuration file to the data directory try { File.Copy(Constants.MASTER_DIRECTORY + MITesFeatures.core.conf.ConfigurationReader.DEFAULT_XML_FILE, destinationFolder + "\\" + MITesFeatures.core.conf.ConfigurationReader.DEFAULT_XML_FILE); } catch (Exception) { MessageBox.Show("Exiting: Please choose an empty storage directory"); #if (PocketPC) Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); #else Environment.Exit(0); #endif } #if(PocketPC) try { File.Copy(Constants.MASTER_DIRECTORY + ActivitySummary.Reader.DEFAULT_XML_FILE, destinationFolder + "\\" + ActivitySummary.Reader.DEFAULT_XML_FILE); } catch (Exception) { MessageBox.Show("Exiting: Please choose an empty storage directory"); #if (PocketPC) Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); #else Environment.Exit(0); #endif } #endif if (MainForm.SelectedForm==Constants.MAIN_SELECTED_COLLECT_DATA) Application.Run(new MITesDataCollectionForm(WhereStoreDataForm.SelectedFolder)); else Application.Run(new MITesDataCollectionForm()); } } //Choice #2: Load an existing model and estimate energy expenditure else if (MainForm.SelectedForm == Constants.MAIN_SELECTED_ESTIMATE_ENERGY) Application.Run(new MITesDataCollectionForm(BuildModelFeatureForm.SelectedFolder,BuildModelFeatureForm.SelectedFile,false)); //Choice #3: Troubleshoot the model by reconstructing a hierarchical decision tree //based on user responses else if (MainForm.SelectedForm == Constants.MAIN_SELECTED_TROUBLESHOOT) Application.Run(new MITesDataCollectionForm(TroubleshootModel.SelectedFolder, TroubleshootModel.SelectedFile, true)); //Choice #4: Calibrate the sensors in a setup else if (MainForm.SelectedForm == Constants.MAIN_SELECTED_CALIBRATE) Application.Run(new MITesDataCollectionForm(CalibrateSensors.Sensors,"/test")); #if (PocketPC) Application.Exit(); System.Diagnostics.Process.GetCurrentProcess().Kill(); #else Environment.Exit(0); #endif }
/// <summary> /// The main entry point for the application. /// </summary> // [STAThread] static void Main() { //Application.Run(new ProgressForm()); MainForm mainForm = new MainForm(); ActivityProtocolForm activityProtocolForm = new ActivityProtocolForm(); SensorConfigurationForm sensorConfigurationForm = new SensorConfigurationForm(); BuildModelFeatureForm buildModelFeatureForm = new BuildModelFeatureForm(); WhereStoreDataForm whereStoreDataForm = new WhereStoreDataForm(); activityProtocolForm.PreviousForm = mainForm; activityProtocolForm.NextForm = sensorConfigurationForm; sensorConfigurationForm.PreviousForm = activityProtocolForm; sensorConfigurationForm.NextForm = whereStoreDataForm; whereStoreDataForm.PreviousForm = sensorConfigurationForm; whereStoreDataForm.NextForm = null; Form[] nextForms = new Form[2]; nextForms[0] = activityProtocolForm; nextForms[1] = buildModelFeatureForm; mainForm.SetNextForms(nextForms); mainForm.ShowDialog(); //cleanup all forms activityProtocolForm.Close(); sensorConfigurationForm.Close(); buildModelFeatureForm.Close(); whereStoreDataForm.Close(); if (MainForm.SelectedForm == Constants.MAIN_SELECTED_COLLECT_DATA) { //check all required paramters were selected if ((ActivityProtocolForm.SelectedProtocol.FileName == "") || (SensorConfigurationForm.SelectedSensors.FileName == "") || (WhereStoreDataForm.SelectedFolder == "")) { MessageBox.Show("Exiting: You need to select an activity protocol, sensor configuration and a directory to store your data"); #if (PocketPC) Application.Exit(); #else Environment.Exit(0); #endif } else { try { File.Copy(Constants.ACTIVITY_PROTOCOLS_DIRECTORY + ActivityProtocolForm.SelectedProtocol.FileName, WhereStoreDataForm.SelectedFolder + "\\" + AXML.Reader.DEFAULT_XML_FILE); } catch (Exception) { MessageBox.Show("Exiting: Please choose an empty storage directory"); #if (PocketPC) Application.Exit(); #else Environment.Exit(0); #endif } try { File.Copy(Constants.SENSOR_CONFIGURATIONS_DIRECTORY + SensorConfigurationForm.SelectedSensors.FileName, WhereStoreDataForm.SelectedFolder + "\\" + SXML.Reader.DEFAULT_XML_FILE); } catch (Exception) { MessageBox.Show("Exiting: Please choose an empty storage directory"); #if (PocketPC) Application.Exit(); #else Environment.Exit(0); #endif } try { File.Copy(Constants.MASTER_DIRECTORY + MITesFeatures.core.conf.ConfigurationReader.DEFAULT_XML_FILE, WhereStoreDataForm.SelectedFolder + "\\" + MITesFeatures.core.conf.ConfigurationReader.DEFAULT_XML_FILE); } catch (Exception) { MessageBox.Show("Exiting: Please choose an empty storage directory"); #if (PocketPC) Application.Exit(); #else Environment.Exit(0); #endif } // t.Abort(); //progressForm.Close(); Application.Run(new MITesDataCollectionForm(WhereStoreDataForm.SelectedFolder)); } } //copy the files to the folder }