示例#1
0
        private UnitInfo CreateUnitInfo(string boardName, int seat, string sn, string plan)
        {
            var  driverType = FetchPlans.Inst(this._param.tbiesServer).GetDriverType(plan);
            Guid id         = _dataService.CreateBiRecord(sn, driverType, plan, boardName, seat.ToString());

            UnitInfo info = new UnitInfo()
            {
                Id          = id,
                Sn          = sn,
                Plan        = plan,
                Board       = boardName,
                Seat        = seat,
                Cost        = 0,
                Comment     = "",
                State       = UnitState.READY,
                Result      = UnitResult.PASS,
                CreateTime  = DateTime.Now,
                CostCounter = DateTime.Now,
                ReadCounter = DateTime.Now,
                FinishTime  = DateTime.Now,
                OutSpec     = false,
                OutStart    = DateTime.Now,
            };

            return(info);
        }
示例#2
0
        private BoardUnit GetBoardUnit()
        {
            ILog        log        = MockIlog();
            DtService36 db         = new DtService36(@"Data Source=shg-l80005754\SQLEXPRESS;Initial Catalog=BMS36;Persist Security Info=True;User ID=sa;Password=cml@shg629;Pooling=False");
            FetchPlans  fetchplans = FetchPlans.Inst("");

            fetchplans.FetchPlansList(db);
            Dictionary <string, string> ports = new Dictionary <string, string>();

            ports["OvenPort"] = "COM1";
            ports["Floor1"]   = "COM1";
            ports["Floor2"]   = "COM2";
            ports["Floor3"]   = "COM3";
            ports["Floor4"]   = "COM4";
            ports["Floor5"]   = "COM5";
            ports["Floor6"]   = "COM6";
            ports["Floor7"]   = "COM7";
            ports["Floor8"]   = "COM8";
            ports["Floor9"]   = "COM9";
            ports["Floor10"]  = "COM10";
            BoardFactory factroy = new BoardFactory(log, fetchplans, ports);
            SystemParams param   = new SystemParams();
            BoardUnit    unit    = new BoardUnit(log, db, param);

            return(unit);
        }
示例#3
0
 public static BoardFactory Instance(ILog log, FetchPlans fetchObj, Dictionary <string, string> ports)
 {
     if (factory == null)
     {
         factory = new BoardFactory(log, fetchObj, ports);
     }
     return(factory);
 }
示例#4
0
        private double GetTimeOut(string sn)
        {
            var info = GetUnitInfo(sn);

            if (info == null)
            {
                this._logger.Error("sn = " + sn + ":unit info is not exist in unit set,get timeout fail");
                return(0);
            }
            double timeOut = FetchPlans.Inst(this._param.tbiesServer).GetSpan(info.Plan) * 60;

            return(timeOut);
        }
示例#5
0
        public bool ReadActive(string sn)
        {
            var info = GetUnitInfo(sn);

            if (info == null)
            {
                this._logger.Error("sn = " + sn + ":unit info is not exist in unit set,read active fail");
                return(false);
            }
            double interval = FetchPlans.Inst(this._param.tbiesServer).GetInterval(info.Plan);

            return(DateTime.Now.Subtract(info.ReadCounter).TotalMinutes >= interval);
        }
示例#6
0
        public SpecResult CheckDataBySpec(string sn, List <KeyValuePair <string, string> > data, out string message)
        {
            message = "";
            var ret = new SpecResult {
                CompareFail = false, Pausable = false, Stopable = false
            };
            var info = GetUnitInfo(sn);

            if (info == null)
            {
                this._logger.Error("sn = " + sn + ":unit info is not exist in unit set,check data by spec fail");
                return(ret);
            }
            SpecItem[]      specArray = FetchPlans.Inst(this._param.tbiesServer).GetSpecification(info.Plan);
            List <SpecItem> failList  = new List <SpecItem>();

            foreach (var specItem in specArray)
            {
                foreach (var dataRow in data)
                {
                    if (dataRow.Key == specItem.Item)
                    {
                        if (!(double.Parse(specItem.LBound) <= double.Parse(dataRow.Value) && double.Parse(dataRow.Value) < double.Parse(specItem.UBound)))
                        {
                            message += specItem.Item;
                            failList.Add(specItem);
                        }
                    }
                }
            }

            foreach (var spec in failList)
            {
                if (spec.Type.Contains("C"))
                {
                    ret.CompareFail = true;
                }
                if (spec.Type.Contains("P"))
                {
                    ret.Pausable = true;
                }
                if (spec.Type.Contains("S"))
                {
                    ret.Stopable = true;
                }
            }
            return(ret);
        }
示例#7
0
        public void InitBiModel()
        {
            try
            {
                _fetchPlans = FetchPlans.Inst(_configParam.systemParam.tbiesServer);
                _fetchPlans.FetchPlansList(_dataService);

                _boardFactory = BoardFactory.Instance(_logger, _fetchPlans, _configParam.ports);
                _mesOperator  = BiModelFactory.GetMesOperator();
                _boardManager = new BoardManager(_logger, _dataService, BiModelFactory.CreateIPosMapScheme(_dataService), _boardFactory, _configParam.systemParam);
                _boardManager.LoadBoardUnits();
                InitTimer();
            }
            catch (Exception ex)
            {
                this._logger.Error("BiModel init fail:" + ex.Message);
                this._logger.Error(ex.StackTrace);
            }
        }
示例#8
0
 public BoardFactory(ILog log, FetchPlans fetchObj, Dictionary <string, string> ports)
 {
     this._logger     = log;
     this._ports      = ports;
     this._fetchPlans = fetchObj;
 }