Пример #1
0
        private void OnClickStatus(object sender, MouseEventArgs e)
        {
            try
            {
                BombInfo bi = new BombInfo();
                if (m_BombInfo.Bombs.Count == 0)
                {
                    BombPoint        bp  = new BombPoint();
                    List <BombPoint> bps = new List <BombPoint>();
                    bps.Add(bp);
                    bi.Bombs.Add(bps);

                    BombPoint        bp2  = new BombPoint();
                    List <BombPoint> bps2 = new List <BombPoint>();
                    bps2.Add(bp2);

                    bi.Bombs.Add(bps2);
                }

                Serialize <BombInfo>(@"d:\BombInfo.xml", bi);
            }
            catch (Exception ex)
            {
                Logger.Bomb.Error("DeSerialize:" + ex.ToString());
            }
        }
Пример #2
0
        private int GetZone(BombPoint bp, int ResolutionX, int ResolutionY)
        {
            double x = (double)bp.X / (double)ResolutionX;

            double y = (double)bp.Y / (double)ResolutionY;

            int i = 1;
            int j = 1;

            if (x < 0.33333)
            {
                i = 1;
            }
            else if (x < 0.66666)
            {
                i = 2;
            }
            else
            {
                i = 3;
            }

            if (y < 0.33333)
            {
                j = 0;
            }
            else if (y < 0.66666)
            {
                j = 1;
            }
            else
            {
                j = 2;
            }

            int Zone = 1;

            Zone = j * 3 + i;


            return(Zone);
        }
Пример #3
0
        private void Reciving(object sender, APISocket.APISocksEventArgs e)
        {
            try
            {
                this.Invoke(new Action(() =>
                {
                    txtACPRecive.Text = e.msg;
                    //InspectCenter(e.msg);
                }
                                       ));


                if (e.msg.Length > 5)
                {
                    string[] sp = e.msg.Split(',');

                    if (sp.Length >= 1)
                    {
                        if (sp[0] == "GETBOMB")
                        {
                            if (sp.Length == 2)
                            {
                                BLID     = sp[1];
                                isGotBom = true;
                                GetBomb(m_BombInfo.Fab, m_BombInfo.EQ, sp[1]);
                            }
                        }
                        else if (sp[0] == "BOMBRESULT")
                        {
                            if (isGotBom)
                            {
                                //BOMBRESULT,count,Def1X,def1y,.....
                                if (sp.Length >= 2)
                                {
                                    int count            = int.Parse(sp[1]);
                                    List <BombPoint> bps = new List <BombPoint>();

                                    int i, j;

                                    for (i = 0; i < count; i++)
                                    {
                                        BombPoint bp = new BombPoint();
                                        bp.X = (int)(float.Parse(sp[2 + i * 2]) * (float)m_BombInfo.ResolutionX);
                                        bp.Y = (int)(float.Parse(sp[2 + i * 2 + 1]) * (float)m_BombInfo.ResolutionY);

                                        bps.Add(bp);
                                    }
                                    int match = 0;

                                    double xx, yy;
                                    for (i = 0; i < m_BombInfo.Bombs[BombIndex].Count; i++)
                                    {
                                        for (j = 0; j < bps.Count; j++)
                                        {
                                            xx = m_BombInfo.Bombs[BombIndex][i].X - bps[j].X;
                                            yy = m_BombInfo.Bombs[BombIndex][i].Y - bps[j].Y;

                                            if (Math.Sqrt(xx * xx + yy * yy) < 20)
                                            {
                                                match++;
                                            }
                                        }
                                    }
                                    string result = "NG";

                                    if (match == m_BombInfo.Bombs[BombIndex].Count)
                                    {
                                        result = "OK";
                                    }

                                    string xyResult = "";

                                    for (i = 0; i < bps.Count; i++)
                                    {
                                        var bp = bps[i];

                                        xyResult += GetZone(bp, m_BombInfo.ResolutionX, m_BombInfo.ResolutionY).ToString()
                                                    + "(" + bp.X + "," + bp.Y + ")";

                                        if (i != bps.Count - 1)
                                        {
                                            xyResult += ";";
                                        }
                                    }


                                    string strBombRep = "OK";
                                    if (!isTestMode)
                                    {
                                        strBombRep = apibomb.GetBombResult(m_BombInfo.Fab, m_BombInfo.EQ, BLID, "White", xyResult, result);
                                    }

                                    Logger.socket.Info("Send to Web Service: " + m_BombInfo.Fab + "," + m_BombInfo.EQ + "," + BLID + "," + "White" + xyResult + "," + result);

                                    this.Invoke(new Action(() =>
                                    {
                                        textBomSend.Text   = "Send Bomb Result!";
                                        txtBombRecive.Text = strBombRep;
                                    }
                                                           ));
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Bomb.Error(ex.ToString());
            }
        }