public FAProductInfo()
 {
     ECInfo = new FAECInfo();
     ECInfo.Clear();
     IsEmptyBox = false;
     NotifyPropertyChanged("ECInfo");
 }
 public FAExtendECPart()
 {
     ECInfo = new FAECInfo();
     ECInfo.Clear();
     ECData = new Dictionary<string, string>();
     Watch = new Stopwatch();
     Watch.Start();
 }
 public FAProductInfo()
 {
     ECInfo = new FAECInfo();
     ECInfo.Clear();
     SimaxInfo = new FASimaxInfo();
     SimaxInfo.Clear();
     IsEmptyBox = false;
     SmallBoxBypassMode = false;
     MergeStackerMode = false;
 }
Beispiel #4
0
 public FAProductInfo()
 {
     SerialBarcodeInfo = new BarcodeInfo();
     PPIDBarcodeInfo = new BarcodeInfo();
     WWNBarcodeInfo = new BarcodeInfo();
     CSerialBarcodeInfo = new BarcodeInfo();
     PSIDBarcodeInfo = new BarcodeInfo();
     ECInfo = new FAECInfo();
     ECInfo.Clear();
     IsEmptyBox = false;
 }
        public FAExtendECPart()
            : base()
        {
            ECInfo = new FAECInfo();
            TimeSendInterval = new FALibrary.Utility.FATime(FALibrary.Utility.FATimeType.millisecond, 200);
            ECData = new Dictionary<string, string>();
            Watch = new Stopwatch();
            Watch.Start();

            SetPropertyChangedEventHandler();
        }
 public FAProductInfo()
 {
     ECInfo = new FAECInfo();
     ECInfo.Clear();
     ECLargeBoxInfo = new FAECLargeBoxInfo();
     ECLargeBoxInfo.Clear();
     //SimaxInfo = new FASimaxInfo();
     //SimaxInfo.Clear();
     IsEmptyBox = false;
     SmallBoxBypassMode = false;
     MergeStackerMode = false;
     FailMessage = string.Empty;
 }
 public ECReceivedData()
 {
     ECInfo = new FAECInfo();
 }
        public void SendCommand(FAECInfo.ECCommand command)
        {
            try
            {
                string msg = command.ToCommand();
                string header = GetHeader(msg);

                ExistReceivedData = false;

                this.SendData(header, msg);

                Manager.LogManager.Instance.WriteECCommLog("[SEND], " + header);
                Manager.LogManager.Instance.WriteECCommLog("[SEND], " + msg);
            }
            catch (Exception e)
            {
                FAFramework.Manager.LogManager.Instance.WriteSystemLog("SERVER EC PART\n"
                    + this.FullName + "\n"
                    + e.ToString());
            }
        }
        private string GetErrorMessageOfTrayLOTCLOSECheck(FAECInfo.LOT_CLOSE_RPY obj)
        {
            StringBuilder sb = new StringBuilder();

            var FIALMSG = obj.MSG;

                try
                {
                    var line = string.Format("FAIL={0}",FIALMSG);
                    sb.Append(line);
                }
                catch
                {
                }
            return sb.ToString();
        }
        private bool AddLoadingCount(FAECInfo.PACKING_MASTER_INFO_RPY masterInfo, string serial, out bool changedLot, out bool differentLot, out bool duplicateSerial)
        {
            changedLot = false;
            duplicateSerial = false;
            differentLot = false;

            if (string.IsNullOrEmpty(CurrentLotInfo.LOT_ID) && LoadingCount == 0)
            {
                changedLot = true;
                LoadingCount++;
                CurrentLotProductList.Add(serial);
                masterInfo.CopyTo(CurrentLotInfo);
                return true;
            }
            else
            {
                if (CurrentLotInfo.LOT_ID == masterInfo.LOT_ID)
                {
                    if (CurrentLotProductList.Contains(serial) == true)
                    {
                        duplicateSerial = true;
                        return false;
                    }
                    else
                    {
                        LoadingCount++;
                        CurrentLotProductList.Add(serial);
                        return true;
                    }
                }
                else
                {
                    differentLot = true;
                    return false;
                }
            }
        }
 public FAProductInfo()
 {
     ECInfo = new FAECInfo();
     ECInfo.Clear();
     IsEmptyBox = false;
 }
 public FAProductInfo()
 {
     ECInfo = new FAECInfo();
     ECInfo.Clear();
 }
Beispiel #13
0
 public void CopyTo(FAECInfo obj)
 {
     ReceiveSeeLot.CopyTo(obj.ReceiveSeeLot);
     ReceiveLotClose.CopyTo(obj.ReceiveLotClose);
     ReceivePKSerialCheck.CopyTo(obj.ReceivePKSerialCheck);
     ReceiveBrandLabelIssue.CopyTo(obj.ReceiveBrandLabelIssue);
     ReceiveNextLotClose.CopyTo(obj.ReceiveNextLotClose);
     ReceivePKXClose.CopyTo(obj.ReceivePKXClose);
     ReceiveNextLotLoad.CopyTo(obj.ReceiveNextLotLoad);
     ReceivePKXCloseInform.CopyTo(obj.ReceivePKXCloseInform);
     ReceiveNextSSD.CopyTo(obj.ReceiveNextSSD);
 }
Beispiel #14
0
 public void CopyTo(FAECInfo obj)
 {
     obj.Result = this.Result;
     obj.CMD = this.CMD;
     obj.EQPID = this.EQPID;
     obj.LotID = this.LotID;
     obj.QTY = this.QTY;
     obj.PartID = this.PartID;
     obj.StepSEQ = this.StepSEQ;
     obj.TrayStackingThick = this.TrayStackingThick;
     obj.TrayArrayX = this.TrayArrayX;
     obj.TrayArrayY = this.TrayArrayY;
     obj.MSG = this.MSG;
 }
Beispiel #15
0
 public void AutoShipCopyTo(FAECInfo obj)
 {
     obj.AutoShipMSG = this.AutoShipMSG;
     obj.AutoShipResult = this.AutoShipResult;
     obj.AutoShipResultType = this.AutoShipResultType;
 }
        public void AddWork(FAECInfo.PACKING_MASTER_INFO_RPY packingMasterInfo, FAProductInfo allProductInfo)
        {
            RobotWork robotWork = new RobotWork();
            allProductInfo.CopyTo(robotWork.AllProductInfo);

            packingMasterInfo.CopyTo(robotWork.ProductInfo);
            robotWork.SmallBoxCount = packingMasterInfo.LOT_QTY / packingMasterInfo.S_BOX_MOQ;
            if (packingMasterInfo.LOT_QTY % packingMasterInfo.S_BOX_MOQ > 0)
                robotWork.SmallBoxCount += 1;

            int largeBoxCount = robotWork.SmallBoxCount / robotWork.ProductInfo.L_BOX_MOQ;
            if (robotWork.SmallBoxCount % robotWork.ProductInfo.L_BOX_MOQ > 0)
                largeBoxCount += 1;

            int smallBoxCountIncludeEmptyBox = robotWork.ProductInfo.L_BOX_MOQ * largeBoxCount;
            robotWork.TotalSmallBoxCount = smallBoxCountIncludeEmptyBox;

            WorkQueue.Enqueue(robotWork);
        }
Beispiel #17
0
        public void AddCommand(FAECInfo.ECCommand command, ECResult result)
        {
            if (result == null)
                result = new ECResult();

            if (command is FAECInfo.RetryableCommand)
            {
                ((FAECInfo.RetryableCommand)command).IsRetry = false;
                ((FAECInfo.RetryableCommand)command).RetryCount = 0;
            }

            result.LastAlarmNo = 0;
            ECCommandData cmd = new ECCommandData();
            cmd.Command = command;
            cmd.Result = result;
            _commandQueue.Enqueue(cmd);
        }
        private string GetErrorMessageOfTrayPEBAGCheck(int trayIndex, FAECInfo.BRAND_PEBAG_TRAY_CHECK_RPY obj)
        {
            StringBuilder sb = new StringBuilder();
            var serials = obj.SERIAL_LIST;
            var serialsError = obj.SERIALS_ERROR_LIST;

            foreach(var item in serials)
            {
                string ssdIndex = "UNKNOWN";
                string ssdSerial = "UNKNOWN";

                try
                {
                    ssdIndex = item.Key.Remove(0, 3);
                    var result = Regex.Match(item.Value, "PROD_SRLNO=[^,^)]*");
                    ssdSerial = result.Value.Split('=')[1];
                }
                catch
                {
                }

                try
                {
                    string errorKey = item.Key + "_ERR";
                    string errorMsg = string.Empty;

                    if (serialsError.ContainsKey(errorKey))
                        errorMsg = serialsError[errorKey];

                    var line = string.Format("TRAY INDEX={0}\nSSD_INDEX={1}\nSSD_SERIAL={2}\nERR_MSG={3}\n\n", trayIndex, ssdIndex, ssdSerial, errorMsg);
                    sb.Append(line);
                }
                catch
                {
                }
            }

            return sb.ToString();
        }
 public void CopyTo(FAECInfo obj)
 {
     obj.Result = this.Result;
     obj.LotClose = this.LotClose;
     obj.LotID = this.LotID;
     obj.Sequence = this.Sequence;
     obj.PartNo = this.PartNo;
     obj.LotQuantity = this.LotQuantity;
     obj.LotStep = this.LotStep;
     obj.PackageType = this.PackageType;
     obj.TrayCode = this.TrayCode;
     obj.TrayMarking = this.TrayMarking;
     obj.TrayArrayX = this.TrayArrayX;
     obj.TrayArrayY = this.TrayArrayY;
     obj.TrayThickness = this.TrayThickness;
     obj.PocketPitchX = this.PocketPitchX;
     obj.PocketPitchY = this.PocketPitchY;
     obj.CTapeCode = this.CTapeCode;
     obj.ReelCode = this.ReelCode;
     obj.ReelModel = this.ReelModel;
     obj.DesipakCode = this.DesipakCode;
     obj.DesipakModel = this.DesipakModel;
     obj.IndicatorCode = this.IndicatorCode;
     obj.IndicatorModel = this.IndicatorModel;
     obj.BodySize = this.BodySize;
     obj.ReelMOQ = this.ReelMOQ;
     obj.ReelCount = this.ReelCount;
     obj.Customer = this.Customer;
     obj.LargeBoxVIDKey = this.LargeBoxVIDKey;
     obj.LargeBox = this.LargeBox;
     obj.LargeBoxVID = this.LargeBoxVID;
     obj.BoxCount = this.BoxCount;
     obj.LabelCount = this.LabelCount;
     obj.DataLength = this.DataLength;
     obj.SamsungLabelFormat = this.SamsungLabelFormat;
     obj.SpecialLabelFormat = this.SpecialLabelFormat;
 }
Beispiel #20
0
 public void CopyTo(FAECInfo obj)
 {
     LargeBoxIssue.CopyTo(obj.LargeBoxIssue);
     PackingMasterInfo.CopyTo(obj.PackingMasterInfo);
     LotClose.CopyTo(obj.LotClose);
     PebagCheck.CopyTo(obj.PebagCheck);
     PebagComplite.CopyTo(obj.PebagComplite);
     BoatIDModif.CopyTo(obj.BoatIDModif);
     BrandDensityLabelCSS.CopyTo(obj.BrandDensityLabelCSS);
     BrandDtbtLabelIssue.CopyTo(obj.BrandDtbtLabelIssue);
     BrandWeightSboxIssue.CopyTo(obj.BrandWeightSboxIssue);
     AutoShip.CopyTo(obj.AutoShip);
     BoatIDInfo.CopyTo(obj.BoatIDInfo);
     SBoxInfo.CopyTo(obj.SBoxInfo);
     ProdSerialInfo.CopyTo(obj.ProdSerialInfo);
     PKXClose.CopyTo(obj.PKXClose);
     ToolChange.CopyTo(obj.ToolChange);
     ToolCheck.CopyTo(obj.ToolCheck);
     BrandDTBTLabelCSS.CopyTo(obj.BrandDTBTLabelCSS);
 }
        public void AddCommand(FAECInfo.ECCommand command, ECResult result)
        {
            if (result == null)
                result = new ECResult();

            if (command is FAECInfo.RetryableCommand)
            {
                ((FAECInfo.RetryableCommand)command).RETRY = FAECInfo.FAECYesNo.NO;
                ((FAECInfo.RetryableCommand)command).RETRY_CNT = 0;
            }

            result.LastAlarmNo = 0;
            ECCommandData cmd = new ECCommandData();
            cmd.Command = command;
            cmd.Result = result;
            _commandQueue.Enqueue(cmd);
        }
Beispiel #22
0
 public void CopyTo(FAECInfo obj)
 {
     LOT_CLOSE.CopyTo(obj.LOT_CLOSE);
     PEBAG_CHECK.CopyTo(obj.PEBAG_CHECK);
     BRAND_PEBAG_TRAY_CHECK.CopyTo(obj.BRAND_PEBAG_TRAY_CHECK);
     PEBAG_COMPLITE.CopyTo(obj.PEBAG_COMPLITE);
     OEM_SBOX_ISSUE.CopyTo(obj.OEM_SBOX_ISSUE);
     OEM_LBOX_ISSUE.CopyTo(obj.OEM_LBOX_ISSUE);
     AUTO_SHIP.CopyTo(obj.AUTO_SHIP);
     PACKING_MASTER_INFO.CopyTo(obj.PACKING_MASTER_INFO);
     PK_XCLOSE.CopyTo(obj.PK_XCLOSE);
     TOOL_CHANGE.CopyTo(obj.TOOL_CHANGE);
     TOOL_CHECK.CopyTo(obj.TOOL_CHECK);
     DATA_CLEAR.CopyTo(obj.DATA_CLEAR);
 }
        private bool AddLoadingCount(FAECInfo.PACKING_MASTER_INFO_RPY masterInfo, out bool changedLot)
        {
            changedLot = false;

            if (string.IsNullOrEmpty(CurrentLotInfo.LOT_ID) && LoadingCount == 0)
            {
                if (GlobalConfigModule.RobotWorkType == ERobotWorkType.StartAtScanedFirstSmallBox)
                    changedLot = true;
                LoadingCount++;
                masterInfo.CopyTo(CurrentLotInfo);
                return true;
            }
            else
            {
                if (CurrentLotInfo.LOT_ID == masterInfo.LOT_ID)
                {
                    LoadingCount++;

                    if (GlobalConfigModule.RobotWorkType == ERobotWorkType.StartAtScanedLastSmallBox)
                    {
                        if (LoadingCount == MAX_SMALLBOX_COUNT)
                            changedLot = true;
                    }

                    return true;
                }
                else
                    return false;
            }
        }