Example #1
0
        private static void ProcessNonBarcode()
        {
            var cList = GetNonBarcodeCells();
            var c     = cList[_patternLast];

            _patternLast += 1;
            if (_patternLast == cList.Count)
            {
                _patternLast = 0;
            }

            //if (c!.Full()) return;

            var adjWidth  = 0;
            var adjHeight = 0;
            var offadjX   = 0;
            var offadjY   = 0;
            var boxed     = 0;

            if (PatternProduct !.GetYontem() == 156 || PatternProduct.GetYontem() == 223 ||
                PatternProduct.GetYontem() == 250)
            {
                boxed      = 1;
                adjHeight += 80;
                adjWidth  += 80;
            }

            var a = PatternProduct.GetProductType();
            var z = 0;

            if (boxed == 1)
            {
                z = a switch
                {
                    11 => 96,
                    21 => 96,
                    22 => 130,
                    33 => 180,
                    _ => z
                };
            }
            else
            {
                z = a switch
                {
                    11 => 74,
                    21 => 76,
                    22 => 108,
                    33 => 164,
                    _ => z
                };
            }

            var cNo = c.GetRobotNo();

            if (c.PHolding == 0)
            {
                OnCellFull(c.RobotNo - 1);
            }

            c.AddProduct();
            //offset hesapları

            var offsets = Calculator.Calculate(PatternProduct.GetHeight() + adjHeight,
                                               PatternProduct.GetWidth() + adjWidth,
                                               z,
                                               c.PHolding,
                                               PatternProduct.GetYontem(), PatternProduct.GetProductType(), c.GetPalletHeight(),
                                               c.GetPalletWidth(), c.GetPalletZ());
            //gerekli sinyaller gönderilir
            var full = 0;

            if (offsets.NextKat > c.KatMax || c.Full())
            {
                full = 1;
            }

            var s = new Signal(cNo, offsets, PatternProduct.GetHeight() + adjHeight,
                               PatternProduct.GetWidth() + adjWidth,
                               PatternProduct.GetProductType(), c.PHolding, full, boxed, offadjX, offadjY, c.KatMax);

            SendPlcSignals(s);

            if (full == 1)
            {
                c.PHolding = 0;
                c.PDropped = 0;
            }

            ProductAdd(cNo);
            ReportLogger.AddRecord(PatternProduct.YontemKodu, PatternProduct.GetProductType(), PatternProduct.Height, PatternProduct.Width);

            //cell, (x,y,z) offsets, dizilim şekli, en, boy, kat, tip, sayı, hücredolu, kutulu?
        }