private static List<LanceQuant> LanceQuantizer()
        {
            // Logger.log(SmPattern.steps[0].O2Volume.ToString());
            int frameStart = 0;
            const int lanceMinPos = 180;

            frameStart = LanceGetFrameNumber(); //определяем номер кадра
            m_lanceCurrentFrame = frameStart;
            frameStart *= LanceMaxStepsFrame; //определяем начало кадра

            List<LanceQuant> LanceStepsFrame = new List<LanceQuant>();

            for (int step = 0; step < LanceMaxStepsFrame; step++) //выборка MaxStepsFrame шагов
            {
                int shiftStep = 0;
                shiftStep = frameStart + step;
                LanceStepsFrame.Add(new LanceQuant());
                if (shiftStep < SmPattern.steps.Count) {
                    LanceStepsFrame[step].O2Volume = SmPattern.steps[shiftStep].O2Volume;
                    LanceStepsFrame[step].O2Flow = SmPattern.steps[shiftStep].lance.O2Flow;
                    if ((SmPattern.steps[shiftStep].lance.LancePositin > 0) &&
                        (SmPattern.steps[shiftStep].lance.LancePositin < lanceMinPos)) // если ниже 2 метров и не -1
                        LanceStepsFrame[step].LancePositin = lanceMinPos;
                    else
                        LanceStepsFrame[step].LancePositin = SmPattern.steps[shiftStep].lance.LancePositin;
                }
                else
                    LanceStepsFrame[step] = new LanceQuant(); // забиваем -1, которые присваиваются в конструкторе
            }
            return LanceStepsFrame;
        }
        private static List<LanceQuant> LanceQuantizer()
        {
            Logger.log(SmPattern.steps[0].O2Volume.ToString());
            int frameStart = 0;
            //int reminder = 0;

            //frameStart = Math.DivRem(m_oxigenCurrentStep, MaxStepsFrame, out reminder); //определяем номер кадра
            frameStart = LanceGetFrameNumber();
            m_lanceCurrentFrame = frameStart;
            frameStart *= LanceMaxStepsFrame;                                          //определяем начало кадра

            List<LanceQuant> LanceStepsFrame = new List<LanceQuant>();

            for (int step = 0; step < LanceMaxStepsFrame; step++) //выборка MaxStepsFrame шагов
            {
                int shiftStep = 0;
                shiftStep = frameStart + step;
                LanceStepsFrame.Add(new LanceQuant());
                if (shiftStep < SmPattern.steps.Count)
                {
                    //LanceStepsFrame[step] = SmPattern.steps[shiftStep].lance;
                    //Logger.log(shiftStep.ToString() + " --- " + SmPattern.steps[shiftStep].O2Volume.ToString());
                    LanceStepsFrame[step].O2Volume = SmPattern.steps[shiftStep].O2Volume;
                    LanceStepsFrame[step].O2Flow = SmPattern.steps[shiftStep].lance.O2Flow;
                    LanceStepsFrame[step].LancePositin = SmPattern.steps[shiftStep].lance.LancePositin;
                }
                else
                {
                    LanceStepsFrame[step] = new LanceQuant(); // забиваем -1, которые присваиваются в конструкторе
                }
               //     Logger.log(String.Format("step {0} ==>> {1}\n", step, stepsFrame[step].lance.LancePositin), "LancePosition", Logger.TypeMessage.danger);
                //Logger.log(String.Format("step {0} ==>> {1}\n", step, stepsFrame[step].lance.O2Flow), "O2Flow", Logger.TypeMessage.danger);
                //Logger.log(String.Format("step {0} ==>> {1}\n", step, stepsFrame[step].lance.O2Volume), "O2Volume", Logger.TypeMessage.danger);
            }
            //Logger.log(frameStart.ToString(), "frameStart", Logger.TypeMessage.important);
               // Logger.log(LanceStepsFrame[0].O2Volume.ToString());
            //Logger.log("wwwwwwwwwwwwwwwwwww", "Processor", Logger.TypeMessage.terror);
            return LanceStepsFrame;
        }