void BtCreateSamplesClick(object sender, EventArgs e)
		{
			
			if (_folderSelected==DialogResult.OK)
			{
				foreach (string jpg in Directory.GetFiles( Path.GetFullPath(txtPicturesFolder.Text),"*.jpg"))
		    	{
					Sample nextSample = new Sample(_updatedStation.Lat, _updatedStation.Lon, jpg);
					
					//OCR template for presure in inHg
					OCR_Template ocrPres=new OCR_Template("ocrPres","Moultrie Game Camera",
					                                      new Rectangle(71,2018,225,96),new Size(2848,2136));
					//OCR template for temp in ºC
					OCR_Template ocrTemp=new OCR_Template("ocrTemp","Moultrie Game Camera",
					                                      new Rectangle(847,2024,196,111),new Size(2848,2136));
					nextSample.OCR_Observations_list.Add(new DoubleObservation("Pressure (inHg)","",ocrPres));
					nextSample.OCR_Observations_list.Add(new IntegerObservation("Temperature (ºC)","",ocrTemp));
					nextSample.Species_Observations_list.Add(new SpeciesObservation("Species","Pending",0));
					
					nextSample.RunOCR(nextSample.OCR_Observations_list);
					
					Image nextImage = Image.FromFile(jpg);
					
					foreach(Station st in _updatedProject.StationsList)
					{
						if(st.Guid==_updatedStation.Guid)
						{
							st.SamplesList.Add(nextSample);
						}
					}
					
					ProjectDAO.InsertImage(_updatedProject.Name, nextSample.Guid, ConversionUtilities.ImageToBase64(nextImage, System.Drawing.Imaging.ImageFormat.Jpeg));
					
				}
				
					ProjectDAO.UpdateProject(_updatedProject.Name,_updatedProject);

			}
			
			
			
			
		}
Example #2
0
		private void refreshViewData(Sample currentSample)
		{
			try {
				//Refresh the listview
				lstViewData.Items.Clear();
				lstViewData.Columns.Clear();
				
				ColumnHeader columnheader;		// Used for creating column headers.
				ListViewItem listviewitem;		// Used for creating listview items.
				
				// Ensure that the view is set to show details.
				lstViewData.View = View.Details;
				
				listviewitem = new ListViewItem("Camera Model");
				listviewitem.SubItems.Add(_currentSample.CameraModel);
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Camera Manufacturer");
				listviewitem.SubItems.Add(_currentSample.CameraManufacturer);
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Image Height");
				listviewitem.SubItems.Add(_currentSample.Height.ToString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Image Width");
				listviewitem.SubItems.Add(_currentSample.Width.ToString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Vertical Resolution");
				listviewitem.SubItems.Add(_currentSample.VerticalResolution.ToString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Horizontal Resolution");
				listviewitem.SubItems.Add(_currentSample.HorizontalResolution.ToString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Date");
				listviewitem.SubItems.Add(_currentSample.DateTime.Date.ToShortDateString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Time");
				listviewitem.SubItems.Add(_currentSample.DateTime.TimeOfDay.ToString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Latitude");
				listviewitem.SubItems.Add(_currentSample.Lat.ToString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Longitude");
				listviewitem.SubItems.Add(_currentSample.Lon.ToString());
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Day Or Night");
				listviewitem.SubItems.Add(_currentSample.DayOrNight);
				this.lstViewData.Items.Add(listviewitem);
				
				listviewitem = new ListViewItem("Moon Phase");
				listviewitem.SubItems.Add(_currentSample.MoonPhase);
				this.lstViewData.Items.Add(listviewitem);
				
				
				foreach (Observation obs in _currentSample.OCR_Observations_list)
				{
					listviewitem = new ListViewItem(obs.Name);
					listviewitem.SubItems.Add(obs.Value.ToString());
					this.lstViewData.Items.Add(listviewitem);
				}
				
				foreach (SpeciesObservation obs in _currentSample.Species_Observations_list)
				{
					SpeciesObservation specie = (SpeciesObservation)obs;
					
					listviewitem = new ListViewItem(specie.Name);
					listviewitem.SubItems.Add(specie.Value.ToString());
					listviewitem.Font = new Font(listviewitem.Font, FontStyle.Bold);
					this.lstViewData.Items.Add(listviewitem);
					
					listviewitem = new ListViewItem(specie.Name+ " count");
					listviewitem.SubItems.Add(specie.Count.ToString());
					listviewitem.Font = new Font(listviewitem.Font, FontStyle.Bold);
					this.lstViewData.Items.Add(listviewitem);
				}
				
				
				// Create some column headers for the data.
				columnheader = new ColumnHeader();
				columnheader.Text = "Prop";
				this.lstViewData.Columns.Add(columnheader);
				
				columnheader = new ColumnHeader();
				columnheader.Text = "Value";
				this.lstViewData.Columns.Add(columnheader);
				
				// Loop through and size each column header to fit the column header text.
				foreach (ColumnHeader ch in this.lstViewData.Columns)
				{
					ch.Width = -2;
				}
			} catch (Exception ex) {
				throw ex;
			}
			
			
		}
Example #3
0
		void TvProjectAfterSelect(object sender, TreeViewEventArgs e)
		{

			try {
				if(tvProject.SelectedNode.Tag.GetType() == typeof(Station))
				{
					_currentStation= (Station)tvProject.SelectedNode.Tag;
					pictureBox1.Image= CameratrapManager_db.ProjectDAO.GetCurrentImage(_currentProject.Name,_currentStation.Guid);
					
					
					refreshViewData(_currentStation);
				}
				
				else if(tvProject.SelectedNode.Tag.GetType() == typeof(Sample))
				{
					_currentSample=(Sample)tvProject.SelectedNode.Tag;
					_currentStation= (Station)tvProject.SelectedNode.Parent.Tag;
					
					pictureBox1.Image= CameratrapManager_db.ProjectDAO.GetCurrentImage(_currentProject.Name,_currentSample.Guid);
					
					refreshViewData(_currentSample);
				}
			} catch (Exception ex) {
				throw ex;
			}
			
			
			
		}
Example #4
0
		void UploadSamplesToStation()
		{
			try {
				FolderBrowserDialog selectPicturesFolderDialog=new FolderBrowserDialog();
				selectPicturesFolderDialog.ShowNewFolderButton = false;
				if (selectPicturesFolderDialog.ShowDialog()==DialogResult.OK)
				{
					foreach (string jpg in Directory.GetFiles( selectPicturesFolderDialog.SelectedPath,"*.jpg"))
					{
						Sample nextSample = new Sample(_currentStation.Lat, _currentStation.Lon, jpg);
						
						//OCR template for presure in inHg
						OCR_Template ocrPres=new OCR_Template("ocrPres","Moultrie Game Camera",
						                                      new Rectangle(71,2018,225,96),new Size(2848,2136));
						//OCR template for temp in ºC
						OCR_Template ocrTemp=new OCR_Template("ocrTemp","Moultrie Game Camera",
						                                      new Rectangle(847,2024,196,111),new Size(2848,2136));
						nextSample.OCR_Observations_list.Add(new DoubleObservation("Pressure (inHg)","",ocrPres));
						nextSample.OCR_Observations_list.Add(new IntegerObservation("Temperature (ºC)","",ocrTemp));
						nextSample.Species_Observations_list.Add(new SpeciesObservation("Species","Pending",0));
						
						nextSample.RunOCR(nextSample.OCR_Observations_list);
						
						Image nextImage = Image.FromFile(jpg);
						
						foreach(Station st in _currentProject.StationsList)
						{
							if(st.Guid==_currentStation.Guid)
							{
								st.SamplesList.Add(nextSample);
							}
						}
						
						ProjectDAO.InsertImage(_currentProject.Name, nextSample.Guid, ConversionUtilities.ImageToBase64(Main_processing.ResizeImage(nextImage), System.Drawing.Imaging.ImageFormat.Jpeg));
						
					}
					
					ProjectDAO.UpdateProject(_currentProject.Name,_currentProject);
					
				}
			} catch (Exception ex) {
				throw ex;
			}
			
			
		}
Example #5
0
		void ExitApplication()
		{
			try {
				DialogResult result = MessageBox.Show("Would you like to save your changes?", "Save project?",
				                                      MessageBoxButtons.YesNo,MessageBoxIcon.Question);
				
				if (result == DialogResult.Yes)
				{
					ProjectDAO.UpdateProject(_currentProject.Name,_currentProject);
					ProjectDAO.RemoveOrphanImages(_currentProject);
					
					tvProject.Dispose();
					pictureBox1.Dispose();
					_currentProject=null;
					_currentStation=null;
					_currentSample=null;
					lstViewData.Dispose();
					dgvSelectSpecies.Dispose();
				}
				else if (result == DialogResult.Cancel)
				{
					//				Stop the closing and return to the form
					//				e.Cancel = true;
				}
			} catch (Exception ex) {
				throw ex;
			}

		}
Example #6
0
		void CloseProjectToolStripMenuItemClick(object sender, EventArgs e)
		{
			try {
				DialogResult result = MessageBox.Show("Would you like to save your changes?","Save project?",
				                                      MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);
				
				if (result == DialogResult.Yes)
				{
					ProjectDAO.UpdateProject(_currentProject.Name,_currentProject);
					ProjectDAO.RemoveOrphanImages(_currentProject);
				}
				else if (result == DialogResult.Cancel)
				{
					// Stop the closing and return to the form
					//	            e.Cancel = true;
				}
				else
				{
					tvProject.Nodes.Clear();
					pictureBox1.Image=null;
					_currentProject=null;
					_currentStation=null;
					_currentSample=null;
					lstViewData.Clear();
					dgvSelectSpecies.DataSource=null;
					speciesList.Rows.Clear();
				}
			} catch (Exception ex) {
				throw ex;
			}
			
		}