Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
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;
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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;
            }
        }
Exemplo n.º 6
0
        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;
        }
Exemplo n.º 7
0
        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;
            }
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
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;
            }
        }
Exemplo n.º 10
0
        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());
        }
Exemplo n.º 11
0
        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.");
            //}
        }
Exemplo n.º 12
0
        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;
                }
            }
        }
Exemplo n.º 13
0
        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