private void resetToolStripMenuItem_Click(object sender, EventArgs e) { ShootPointController.getController().resetPoint(); setControlToolButton(true, true, true); mainTargetBox.shotRadiusPoint.Clear(); mainTargetBox.tempPoints.Clear(); mainTargetInfo.setShotLabelInfo(0, 0); }
private void loadAllClasses() { TargetBoxController.setTargetBox(mainTargetBox); allShots = ShootPointController.getController(); //graphForm = new GraphForm(mainTargetBox); targetTimer.setMainForm(this); KeyPreview = true; targetTimer.countingComplete += new TargetTimer.eventDelegate(targetTimer_countingComplete); //this.FormBorderStyle = FormBorderStyle.None; //this.WindowState = FormWindowState.Normal; }
public TargetBox() { InitializeComponent(); shotInfo = ShootPointController.getController(); //Initializeing the contorl width = this.Width; height = this.Height; numberOfCircle = DEFAULT_NUMBER; shotRadiusPoint = new ArrayList(); tempPoints = new ArrayList(); groupMid = new Mrg.Point(0, 0); //shotRad = new int[50]; calculateInfo(); }
public void showTimerForm() { // Lets generate sine and cosine wave ArrayList timePoint = ShootPointController.getController().shotTime; double[] x = new double[timePoint.Count]; double[] y = new double[timePoint.Count]; totalTime = 0; for (int i = 0; i < timePoint.Count; i++) { x[i] = i + 1; y[i] = (int)timePoint[i]; totalTime += (int)timePoint[i]; } if (timePoint.Count != 0) { averageTime = totalTime / timePoint.Count; } reflex = (short)averageTime; //MessageBox.Show(totalTime.ToString() + " - " + ShootPointController.getController().shotTaken.ToString()); // This is to remove all plots timeZedGraphControl.GraphPane.CurveList.Clear(); // GraphPane object holds one or more Curve objects (or plots) GraphPane myPane = timeZedGraphControl.GraphPane; // PointPairList holds the data for plotting, X and Y arrays PointPairList spl1 = new PointPairList(x, y); //PointPairList spl2 = new PointPairList(x, z); // Add cruves to myPane object BarItem myCurve1 = myPane.AddBar("Time", spl1, Color.Blue); //LineItem myCurve2 = myPane.AddCurve("Cosine Wave", spl2, Color.Red, SymbolType.None); myCurve1.Bar.Border = new Border(); //myCurve2.Line.Width = 3.0F; myPane.Title.Text = "Time Summary"; // I add all three functions just to be sure it refeshes the plot. timeZedGraphControl.AxisChange(); timeZedGraphControl.Invalidate(); timeZedGraphControl.Refresh(); }
private void pointingDeviceMenuItem_Click(object sender, EventArgs e) { if (pointingDeviceMenuItem.Checked == true) { ShootPointController.getController().isProjectLaser = false; pointingDeviceMenuItem.Checked = false; SettingsController.getShootSettingForm().shootBySradioButton.Checked = true; SettingsController.getShootSettingForm().shootByTrigerRadioButton.Checked = false; } else { ShootPointController.getController().isProjectLaser = true; pointingDeviceMenuItem.Checked = true; SettingsController.getShootSettingForm().shootBySradioButton.Checked = false; SettingsController.getShootSettingForm().shootByTrigerRadioButton.Checked = true; } }
private void startToolStripButton_Click(object sender, EventArgs e) { string countData = ""; if (Login.loginOther == 1) { try { DatabaseIDU data = new DatabaseIDU(); countData = data.CountData(Login.TraineeId); VideoProcess.fileNameEnd = Login.TraineeId + countData; } catch (Exception ex) { } if (File.Exists(Login.fileName + VideoProcess.fileNameEnd + "Log" + ".txt")) { File.Delete(Login.fileName + VideoProcess.fileNameEnd + "Log" + ".txt"); } if (File.Exists(Login.fileName + VideoProcess.fileNameEnd + ".txt")) { File.Delete(Login.fileName + VideoProcess.fileNameEnd + ".txt"); } ShootPointController.getController().resetPoint(); targetTimer.isRunning = true; targetTimer.singleShotTime = 0; VideoProcess.getPoint = 1; VideoProcess.count = 1; //Starting counter startCounter(); setControlToolButton(false, true, true); mainTargetInfo.setShotLabelInfo(0, 0); } else { MessageBox.Show("Please,Login as trainee"); } //gbLogin.Visible = true; //dtLogin.Value = DateTime.Now; }
private void shootSettingsToolStripMenuItem_Click(object sender, EventArgs e) { DialogResult r = SettingsController.getShootSettingForm().ShowDialog(); if (r == DialogResult.OK) { if (SettingsController.getShootSettingForm().shootBySradioButton.Checked == true) { pointingDeviceMenuItem.Checked = false; ShootPointController.getController().isProjectLaser = false; } else { pointingDeviceMenuItem.Checked = true; ShootPointController.getController().isProjectLaser = true; } shootTime = SettingsController.getShootSettingForm().shootTime; } }
private void btnLoginOk_Click(object sender, EventArgs e) { //Reseting all points ShootPointController.getController().resetPoint(); targetTimer.isRunning = true; targetTimer.singleShotTime = 0; // string bano = txtBANo.Text; string name = txtName.Text; DateTime datetime = dtLogin.Value; gbLogin.Visible = false; //gf.fromMain(bano, name, datetime); //Starting counter startCounter(); setControlToolButton(false, true, true); mainTargetInfo.setShotLabelInfo(0, 0); }
private void startToolStripMenuItem_Click(object sender, EventArgs e) { if (Login.loginOther == 1 || Login.loginAdmin == 1) { //Reseting all points ShootPointController.getController().resetPoint(); targetTimer.isRunning = true; targetTimer.singleShotTime = 0; //Starting counter startCounter(); setControlToolButton(false, true, true); mainTargetInfo.setShotLabelInfo(0, 0); } else { LoginForm form = new LoginForm(this); form.Visible = true; } }
public void showDistanceForm() { // Lets generate sine and cosine wave ArrayList shots = TargetBoxController.getTargetBox().tempPoints; shotPoint = new ArrayList(); for (int i = 0; i < shots.Count; i++) { Mrg.Point p = (Mrg.Point)shots[i]; float distance = tb.findDistance(new Mrg.Point(tb.centerX, tb.centerY), new Mrg.Point(p.getX(), p.getY())); //distance = (10 - (((float)distance / tb.radius)) * 10); int distancePoint = (10 - ((int)(distance * (10.0 / tb.radius)))); shotPoint.Add(distancePoint); } shotsTaken = (short)shotInfo.shots.Count; hitsTergeted = (short)ShootPointController.getController().shotAffected; double[] x = new double[shotPoint.Count]; double[] y = new double[shotPoint.Count]; averageDistance = 0; for (int i = 0; i < shotPoint.Count; i++) { x[i] = i + 1; y[i] = (int)shotPoint[i]; averageDistance += (int)y[i]; } if (shotPoint.Count != 0) { averageDistance = (int)((float)averageDistance / shotPoint.Count); } avgAccuracy = (short)averageDistance; // This is to remove all plots //if (distanceZedGraphControl.GraphPane != null) distanceZedGraphControl.GraphPane.CurveList.Clear(); // GraphPane object holds one or more Curve objects (or plots) GraphPane myPane = distanceZedGraphControl.GraphPane; // PointPairList holds the data for plotting, X and Y arrays PointPairList spl1 = new PointPairList(x, y); //PointPairList spl2 = new PointPairList(x, z); // Add cruves to myPane object BarItem myCurve1 = myPane.AddBar("Distance", spl1, Color.Blue); //LineItem myCurve2 = myPane.AddCurve("Cosine Wave", spl2, Color.Red, SymbolType.None); myCurve1.Bar.Border = new Border(); //myCurve2.Line.Width = 3.0F; myPane.Title.Text = "Distance Summary"; // I add all three functions just to be sure it refeshes the plot. distanceZedGraphControl.AxisChange(); distanceZedGraphControl.Invalidate(); distanceZedGraphControl.Refresh(); MessageBox.Show(averageDistance.ToString()); }
public void calculateAverage() { hitsLabel.Text = ShootPointController.getController().shotAffected.ToString(); shotsLabel.Text = ShootPointController.getController().shotTaken.ToString(); int tempPoint = 0; for (int i = 0; i < shotPoint.Count; i++) { tempPoint = tempPoint + (int)shotPoint[i]; } //MessageBox.Show("IN One " + ShootPointController.getController().shotPoint.Count.ToString()); if (shotPoint.Count != 0) { tempPoint /= shotPoint.Count; distLabel.Text = tempPoint.ToString(); //MessageBox.Show("IN side"); } //------------------------------------------ groupLabel.Text = groupMaxDistance.ToString(); //------------------------------------------ float maxTime = 0; float minTime = 0; minTime = GAYABE_NUMBER * ShootPointController.getController().shotTaken; maxTime = 24 * ShootPointController.getController().shotTaken; float difference = maxTime - minTime; float avgTime = 0; if (difference != 0) { float tempGayabe = (((float)totalTime) - (GAYABE_NUMBER * ShootPointController.getController().shotTaken)); avgTime = tempGayabe * (ShootPointController.getController().shotTaken / difference); } int result = arannya(avgTime); totalTimeLabel.Text = result.ToString(); //----------------------- // Final Average Value //----------------------- float finalAverage = ((float)(tempPoint + groupMaxDistance + result)) / 2.50F; summury = (short)finalAverage; setImageInGraph(tempPoint, false, accImg); setImageInGraph(groupMaxDistance, false, grpImg); setImageInGraph(result, true, refImg); avgLabel.Text = finalAverage.ToString(); setAverageImage(finalAverage); if (saveData) { if (File.Exists(Login.fileName + VideoProcess.fileNameEnd + "Log.txt")) { File.Delete(Login.fileName + VideoProcess.fileNameEnd + "Log.txt"); } using (System.IO.StreamWriter file = new System.IO.StreamWriter(Login.fileName + VideoProcess.fileNameEnd + "Log.txt", true)) { file.WriteLine("Shooter name :" + Login.ShooterName); file.WriteLine("Shots taken :" + ShootPointController.getController().shotTaken.ToString()); //file.WriteLine("Shots taken :"+shotsTaken.ToString()); file.WriteLine("Hits :" + hitsTergeted.ToString()); file.WriteLine("Average accuracy :" + avgAccuracy.ToString()); file.WriteLine("Average grouping :" + avgGrouping.ToString()); file.WriteLine("Reflex :" + reflex.ToString()); file.WriteLine("Summary :" + summury.ToString()); } ShootingData data = new ShootingData(); data.BaNo = Login.BaNo; data.ShooterName = Login.ShooterName; data.TraineeId = Login.TraineeId; data.Now = DateTime.Now.ToString(); //data.Shots = shotsTaken.ToString(); data.Shots = ShootPointController.getController().shotTaken.ToString(); data.Hits = hitsTergeted.ToString(); data.AvgAccuracy = avgAccuracy.ToString(); data.AvgGrouping = avgGrouping.ToString(); data.Refex = reflex.ToString(); data.Summary = summury.ToString(); data.FileName = VideoProcess.fileNameEnd; VideoProcess.count = 1; SaveData(data); } //DatabaseIDU didu = new DatabaseIDU(); //int inserted = didu.insert(bano, name, datetime, shotsTaken, hitsTergeted, avgAccuracy, avgGrouping, reflex, summury); //if (inserted > 0) //{ // MessageBox.Show("Data has been saved successfully."); //} //else //{ // MessageBox.Show("Data cannot be saved right now,Please try again later."); //} }
private void MainForm_KeyDown(object sender, KeyEventArgs e) { //float distance = 0; if (e.KeyCode == Keys.S && ShootPointController.getController().isProjectLaser == false) { Mrg.Point p = new Mrg.Point(); //MessageBox.Show(""); player.Play(); allShots = ShootPointController.getController(); Color c; vp.getCurrentImageShotInfo(out p, out c); if (p.getX() != -1 && p.getY() != -1) { allShots.shots.Add(new Mrg.Point(p.getX(), p.getY())); allShots.incrementShot(true, true); } else { allShots.incrementShot(false, true); } mainTargetBox.Invalidate(); //mainTargetInfo.setShotLabelInfo(allShots.shotAffected, allShots.shotTaken); if (ShootPointController.getController().shotTaken == shootTime) { if (MessageBox.Show("Do you want to save current shooting records?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { GraphForm graphForm = new GraphForm(mainTargetBox); graphForm.saveData = true; graphForm.showTimerForm(); graphForm.showDistanceForm(); graphForm.showCircleForm(); graphForm.calculateAverage(); if (graphForm.doneSave) { MessageBox.Show("Data has been saved successfully."); } } else { if (File.Exists(@"G:\Target\kjhkh\QBD-2011\QBD-2011\" + Login.ShooterName + "Log" + ".txt")) { File.Delete(@"G:\Target\kjhkh\QBD-2011\QBD-2011\" + Login.ShooterName + "Log" + ".txt"); } if (File.Exists(@"G:\Target\kjhkh\QBD-2011\QBD-2011\" + Login.ShooterName + ".txt")) { File.Delete(@"G:\Target\kjhkh\QBD-2011\QBD-2011\" + Login.ShooterName + ".txt"); } } setControlToolButton(true, true, true); mainTargetBox.isCircleDrawn = true; mainTargetBox.isDistanceDrawn = true; targetTimer.hangTimer(); } //time adding ShootPointController.getController().shotTime.Add(targetTimer.singleShotTime); //MessageBox.Show(targetTimer.singleShotTime.ToString()); //MessageBox.Show(targetTimer.singleShotTime.ToString()); targetTimer.singleShotTime = 0; } if (e.KeyCode == Keys.Escape) { if (totalFullScreen == true) { Fullscreen(false); totalFullScreen = false; } } }
public void validatePoints() { tempPoints.Clear(); int imageX = 0; int imageY = 0; float relativeX = 0; float relativeY = 0; float filterX = 0; float filterY = 0; Mrg.Point p = new Mrg.Point(-1, -1); int mirroredX = 0; int sPointX = 0; int sPointY = 0; for (int i = 0; i < shotInfo.shots.Count; i++) { //calculation for validated point //getting original image x, y p = (Mrg.Point)shotInfo.shots[i]; string po = p.ToString(); imageX = (int)p.getX() + 360; //335 imageY = (int)p.getY() + 60; //+97 relativeX = imageX - centerX; relativeX = relativeX * 1.40f;//1.45 //------------ relativeY = imageY - centerY; relativeY = relativeY * 1.60f;//1.42 imageY = (int)relativeY + centerY; //------ imageX = (int)(centerX + relativeX); if (imageX > centerX) { } else { imageX = imageX - 15; } if (isFullScreen == true) { imageX = (int)p.getX() + 360; //335 imageY = (int)p.getY() + 60 + 43; //+97 relativeX = imageX - centerX; relativeX = relativeX * 1.636f;//1.636 imageX = (int)(centerX + relativeX); //------------ relativeY = imageY - centerY; relativeY = relativeY * 1.604f;//1.604 imageY = (int)relativeY + centerY; //------ /* * Point centerPoint = new Point(0, 0); * Point result = new Point(imageX - centerX, imageY - centerY); * double distance = Math.Sqrt(Math.Pow((centerPoint.getX() + result.getX()), 2) + Math.Pow((centerPoint.getY() + result.getY()), 2)); * double angle = Angle(centerPoint.getX(), centerPoint.getY(), result.getX(), result.getY()); * distance = distance * 1.13f; * * imageX = (int)centerPoint.getX() + (int)Math.Round(distance * Math.Cos(angle)); * imageY = (int)centerPoint.getY() + (int)Math.Round(distance * Math.Sin(angle)); * //imageY += 40; * * imageX += centerX; * imageY += centerY; * */ } float distance = findDistance(new Mrg.Point(imageX, imageY), new Mrg.Point(centerX, centerY)); //MessageBox.Show(distance.ToString() + ">" + radius.ToString()); if (distance <= radius) { tempPoints.Add(new Mrg.Point(imageX, imageY)); ShootPointController.getController().shotAffected = tempPoints.Count; ti.setShotLabelInfo(ShootPointController.getController().shotAffected, ShootPointController.getController().shotTaken); } /* * mirroredX = getMirrorX(p); * * relativeX = ((float)targetBoxWidth / IMAGE_WIDTH) * mirroredX; * relativeY = ((float)targetBoxHeight / IMAGE_HEIGHT) * imageY; * * //filter x is the final x,y with paddiing added * * filterX = startX + relativeX; * filterY = startY + relativeY; * * tempPoints.Add(new Point(filterX, filterY)); */ //Debbug Messages string str = string.Format("x {0} y {1}\nrx {2} ry {3}\nfx {4} fy {5}\n", imageX.ToString(), imageY.ToString(), relativeX.ToString(), relativeY.ToString(), filterX.ToString(), filterY.ToString()); str += string.Format("tbw {0} tbh {1} \nih {2} iw {3}\n", targetBoxWidth.ToString(), targetBoxHeight.ToString(), IMAGE_WIDTH.ToString(), IMAGE_HEIGHT.ToString()); str += string.Format("sx {0} sy{1}\nmx{2}\n", startX.ToString(), startY.ToString(), mirroredX.ToString()); str += string.Format("cx {0}, cy{1}", centerX.ToString(), centerY.ToString()); //MessageBox.Show(str); } }//validate point