Exemplo n.º 1
0
        public List <PlrCrd> CreatedefualtPos()
        {
            lock ( key )
            {
                var path  = @"D:\03JobPro\2017\011.ISP\CsvData\TLA talko _new Sample\1pos\pos.csv";
                var datas = ReadCsv2String(path, ',', order0Dirction: false);

                List <PlrCrd> crtnlist = new List <PlrCrd>();

                for (int i = 0; i < datas.Len(2); i++)
                {
                    for (int j = 0; j < datas.Len(0) / 2; j++)
                    {
                        var crt = new CrtnCrd(Convert.ToDouble(datas[j * 2][i]), Convert.ToDouble(datas[j * 2 + 1][i]));
                        var plr = crt.ToPolar();
                        crtnlist.Add(plr as PlrCrd);
                    }
                }
                return(crtnlist);
            }
        }
Exemplo n.º 2
0
        public bool ScanManualRun(double [] TargetPosTR, int intervalsec, int count)
        {
            OpMaxSpeed();
            OpORGMaxSpeed();
            // Ref Check --
            if (!FlgRefReady)
            {
                return(false.Act(x => MessageBox.Show("Set Referance Please")));
            }
            // Home And Check --
            //if ( !FlgHomeDone ) if ( !OpHome() ) return false;
            ///OpHome();
            FlgHomeDone = true;

            // Scan Ready And Check --
            if (FlgDarkReady == false)
            {
                if (!OpReady(ScanReadyMode.Dark))
                {
                    return(false);
                }
            }
            FlgDarkReady = true;

            var toReflect = FnCalReflections(Darks, Refs, SelectedReflctFactors);

            var plrpos = new CrtnCrd(TargetPosTR[0],
                                     TargetPosTR[1])
                         .ToPolar() as PlrCrd;

            var stgMoveRes = new TEither(Stg as IStgCtrl, 12)
                             .Bind(x => x.Act(f =>
            {
                f.SendAndReady(f.GoAbs
                               + plrpos.Theta.Degree2Pulse().ToPos(Axis.W)
                               + plrpos.Rho.mmToPulse().ToOffPos());
                f.SendAndReady(f.Go);
            }).ToTEither(), "R Stage Move Command Fail");
            var moveResLog = stgMoveRes.ToLEither(new double[] { });

            lock ( keySingle )
            {
                int curcount = 0;
                while (FlgCoreSingleScan)
                {
                    Console.WriteLine("Current Count : {0} , Limit Count : {1}", curcount, count);

                    if (curcount == count)
                    {
                        break;
                    }

                    var currentInten = GetSpectrum();
                    var reflet       = toReflect(currentInten);
                    var thckn        = ToThickness(
                        reflet.ToLEither(),
                        SelectedWaves,
                        plrpos)
                                       .Item2.Right;

                    evtSngSignal(currentInten, reflet, SelectedWaves, thckn, curcount);
                    Thread.Sleep(intervalsec * 1000);
                    curcount++;
                }
            }
            Console.WriteLine("Complete");
            evtSingleMeasureComplete();
            FlgCoreSingleScan = false;
            return(true);
        }