Exemple #1
0
        public bool Sample()
        {
            bool isNoShortCircuit;
            int  pointNo;
            int  circuitNo;

            if (!SampleCheck.BeginSampleCheck(out isNoShortCircuit, out _shortCircuitInfoResult, out pointNo, out circuitNo))
            {
                InfoBox.ErrorMsg("取样失败,请检查设备连接");
                return(false);
            }

            CircuitCount = circuitNo;
            PointCount   = pointNo;
            CheckResults.Clear();
            if (!isNoShortCircuit)
            {
                var id = 0;
                foreach (var tmpList in _shortCircuitInfoResult)
                {
                    CommonCheck.OrderCheckResult(tmpList);
                    var tmpCircuitLoop = tmpList.Aggregate("", (current, tmp) => current + (tmp + "-"));
                    ++id;
                    CheckResults.Add(new BindCheckResult {
                        Id = id, CheckResult = tmpCircuitLoop.Remove(tmpCircuitLoop.Length - 1, 1)
                    });
                }
            }
            InfoBox.PlaySound(true);
            return(true);
        }
Exemple #2
0
        public IHttpActionResult PostSampleCheck(SampleCheck sampleCheck)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.SampleChecks.Add(sampleCheck);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (SampleCheckExists(sampleCheck.ProcessOrderNo))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = sampleCheck.ProcessOrderNo }, sampleCheck));
        }
Exemple #3
0
        public IHttpActionResult PutSampleCheck(int id, SampleCheck sampleCheck)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != sampleCheck.ProcessOrderNo)
            {
                return(BadRequest());
            }

            db.Entry(sampleCheck).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SampleCheckExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #4
0
        public IHttpActionResult GetSampleCheck(int id)
        {
            SampleCheck sampleCheck = db.SampleChecks.Find(id);

            if (sampleCheck == null)
            {
                return(NotFound());
            }

            return(Ok(sampleCheck));
        }
Exemple #5
0
        public IHttpActionResult DeleteSampleCheck(int id)
        {
            SampleCheck sampleCheck = db.SampleChecks.Find(id);

            if (sampleCheck == null)
            {
                return(NotFound());
            }

            db.SampleChecks.Remove(sampleCheck);
            db.SaveChanges();

            return(Ok(sampleCheck));
        }
Exemple #6
0
        private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            BtnOk.IsEnabled = false;

            WaitBox wb = null;
            var     t  = new Thread(() =>
            {
                wb = new WaitBox();
                wb.ShowDialog();//不能用Show
            });

            t.SetApartmentState(ApartmentState.STA);
            t.Start();


            int pointNo;
            int circuitNo;
            List <List <string> > shortCircuitInfoResult;
            bool isSelfCheckOk;

            if (!SampleCheck.BeginSampleCheck(out isSelfCheckOk, out shortCircuitInfoResult, out pointNo, out circuitNo))
            {
                InfoBox.ErrorMsg("自检失败,请检查设备连接");
                wb.Dispatcher.Invoke((Action)(() => wb.Close()));
                return;
            }


            if (!isSelfCheckOk)
            {
                CheckResults.Clear();
                var id = 0;
                foreach (var tmpList in shortCircuitInfoResult)
                {
                    var tmpResult = tmpList.Aggregate("", (current, tmp) => current + (tmp + "-"));
                    ++id;
                    CheckResults.Add(new BindCheckResult
                    {
                        Id          = id,
                        CheckResult = tmpResult.Remove(tmpResult.Length - 1, 1)
                    });
                }
            }

            BtnOk.IsEnabled = true;
            wb.Dispatcher.Invoke((Action)(() => wb.Close()));
            InfoBox.PlaySound(isSelfCheckOk);
            new ResultPopUp(isSelfCheckOk, true, true).ShowDialog();
        }
Exemple #7
0
        private void ManualCheck()
        {
            WaitBox wb = null;
            var     t  = new Thread(() =>
            {
                wb = new WaitBox();
                wb.ShowDialog();//不能用Show
            });

            t.SetApartmentState(ApartmentState.STA);
            t.Start();

            int             pointNo;
            int             circuitNo;
            List <string[]> shortCircuitList;
            List <string[]> openCircuitList;

            if (!SampleCheck.ManualCheck(_circuitLoop, out pointNo, out circuitNo, out shortCircuitList, out openCircuitList))
            {
                wb.Dispatcher.Invoke((Action)(() => wb.Close()));
                return;
            }

            List <List <string> > shortCircuitResult;
            List <List <string> > openCircuitResult;

            CpldControl.DataParser.CommonParser.PointToCircuit(shortCircuitList, out shortCircuitResult);
            CpldControl.DataParser.CommonParser.PointToPair(openCircuitList, out openCircuitResult);

            RemoveErrorLine();
            var isCheckOk = true;                         //0-NG, 1-OK

            if (!(shortCircuitList.Count == 0 && openCircuitList.Count == 0))
            {
                isCheckOk = false;
                DrawErrorLines(shortCircuitResult, openCircuitResult);
            }
            string tmp;

            InfoBox.RichTextMsg(out tmp, isCheckOk, pointNo, circuitNo, shortCircuitResult, openCircuitList, _phyAddrMapToDot);

            TbInfo.Text = tmp;
            wb.Dispatcher.Invoke((Action)(() => wb.Close()));
            HandleCheckResult(isCheckOk, shortCircuitResult, openCircuitList);
        }
Exemple #8
0
        private void OkWaitCheck()
        {
            var                   pointNo   = 0;
            var                   circuitNo = 0;
            List <string[]>       openCircuitList;
            List <List <string> > shortCircuitResult = null;
            List <List <string> > openCircuitResult  = null;

            var isCheckOk    = false;
            var currErrorMsg = "";
            var prevErrorMsg = "";

            Dispatcher.Invoke(new Action(delegate { LblStartMode.Content = "OK等待中......"; }));

            while (_autoStartFlag)
            {
                List <string[]> shortCircuitList;
                if (!SampleCheck.ManualCheck(_circuitLoop, out pointNo, out circuitNo, out shortCircuitList, out openCircuitList))
                {
                    InfoBox.ErrorMsg("检测失败,请检查设备连接");
                    Dispatcher.Invoke(new Action(delegate
                    {
                        LblStartMode.Content = "当前工作模式:OK等待,第一次请手动点击开始";
                        BtnStart.Content     = "开    始";
                        BtnStart.Background  = Brushes.LightGreen;
                    }));
                    return;
                }

                CpldControl.DataParser.CommonParser.PointToCircuit(shortCircuitList, out shortCircuitResult);

                while (_needStopFlag)
                {
                    if (!CpldControl.Check.SampleCheck.ManualCheck(_circuitLoop, out pointNo, out circuitNo, out shortCircuitList, out openCircuitList))
                    {
                        InfoBox.ErrorMsg("检测失败,请检查设备连接");
                        Dispatcher.Invoke(new Action(delegate
                        {
                            LblStartMode.Content = "当前工作模式:OK等待,第一次请手动点击开始";
                            BtnStart.Content     = "开    始";
                            BtnStart.Background  = Brushes.LightGreen;
                        }));
                        return;
                    }
                    if (pointNo == 0)
                    {
                        Dispatcher.Invoke(new Action(delegate
                        {
                            LblStartMode.Content = "请插上电缆";
                        }));
                    }
                    else
                    {
                        Dispatcher.Invoke(new Action(delegate
                        {
                            LblStartMode.Content = "OK等待中......";
                        }));
                        _needStopFlag = false;
                    }
                    //Thread.Sleep(200);
                }

                if (shortCircuitList.Count == 0 && openCircuitList.Count == 0)
                {
                    isCheckOk = true;
                    Dispatcher.Invoke(new Action(delegate
                    {
                        RemoveErrorLine();
                        TbInfo.Text          = "检测结果:OK";
                        LblStartMode.Content = "请取下电缆";
                    }));
                    Dispatcher.Invoke(new Action(delegate
                    {
                        HandleCheckResult(isCheckOk, shortCircuitResult, openCircuitList);
                    }));
                    while (pointNo != 0 && _manualStopFlag)
                    {
                        if (!CpldControl.Check.SampleCheck.ManualCheck(_circuitLoop, out pointNo, out circuitNo, out shortCircuitList, out openCircuitList))
                        {
                            CpldBase.InfoBox.ErrorMsg("检测失败,请检查设备连接");
                            Dispatcher.Invoke(new Action(delegate
                            {
                                LblStartMode.Content = "当前工作模式:OK等待,第一次请手动点击开始";
                                BtnStart.Content     = "开    始";
                                BtnStart.Background  = Brushes.LightGreen;
                            }));
                            return;
                        }
                        //Thread.Sleep(200);
                    }

                    _needStopFlag = true;
                }
                else
                {
                    isCheckOk = false;

                    var list = shortCircuitList;
                    Dispatcher.Invoke(new Action(delegate
                    {
                        try
                        {
                            CpldControl.DataParser.CommonParser.PointToCircuit(list, out shortCircuitResult);
                            CpldControl.DataParser.CommonParser.PointToPair(openCircuitList, out openCircuitResult);

                            InfoBox.RichTextMsg(out currErrorMsg, isCheckOk, pointNo, circuitNo, shortCircuitResult, openCircuitList, _phyAddrMapToDot);
                            TbInfo.Text = currErrorMsg;
                            if (_manualStartOnce != true)
                            {
                                return;
                            }
                            if (prevErrorMsg.Equals(currErrorMsg))
                            {
                                return;
                            }
                            RemoveErrorLine();
                            DrawErrorLines(shortCircuitResult, openCircuitResult);
                            if (list.Count != 0)
                            {
                                InfoBox.PlaySound(isCheckOk);
                                //new ResultPopUp(isCheckOk, okAutoRelease, ngAutoRelease).ShowDialog();
                            }
                            prevErrorMsg = currErrorMsg;
                        }
                        catch (Exception e)
                        {
                            InfoBox.ErrorMsg(e.ToString());
                            throw;
                        }
                    }));
                }
                //Thread.Sleep(200);
            }
        }