示例#1
0
 private void SetScanLayoutButton_Click(object sender, System.EventArgs e)
 {
     try
     {
         SySal.DAQSystem.ScanServer Srv  = (SySal.DAQSystem.ScanServer)System.Runtime.Remoting.RemotingServices.Connect(typeof(SySal.DAQSystem.ScanServer), "tcp://" + IPBox.Text + ":" + (int)SySal.DAQSystem.OperaPort.ScanServer + "/ScanServer.rem");
         OpenFileDialog             odlg = new OpenFileDialog();
         odlg.CheckFileExists = true;
         odlg.Filter          = "XML files (*.xml)|*.xml";
         if (odlg.ShowDialog() == DialogResult.OK)
         {
             System.IO.StreamReader r = new System.IO.StreamReader(odlg.FileName);
             string xmlstring         = r.ReadToEnd();
             r.Close();
             MessageBox.Show("Result: " + Srv.SetScanLayout(xmlstring).ToString());
         }
     }
     catch (Exception x)
     {
         MessageBox.Show(x.ToString(), "Error");
     }
 }
示例#2
0
        static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            if (args.Length != 4)
            {
                Console.WriteLine("usage: CSTrackSearch <server> <input file> <link file> <output file>");
                return;
            }
            System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(new TcpChannel());
            SySal.DAQSystem.ScanServer Srv = (SySal.DAQSystem.ScanServer)System.Runtime.Remoting.RemotingServices.Connect(typeof(SySal.DAQSystem.ScanServer), "tcp://" + args[0] + ":1777/ScanServer.rem");
            System.IO.StreamReader     inf = new System.IO.StreamReader(args[1]);
            SySal.DAQSystem.Scanning.MountPlateDesc mpd;
            mpd.Id.Part0 = mpd.Id.Part1 = mpd.Id.Part2 = mpd.Id.Part3 = 0;
            mpd.TextDesc = inf.ReadLine();
            Srv.LoadPlate(mpd);

            StripesFragLink2.StripesFragmentLinker sfl = new StripesFragLink2.StripesFragmentLinker();

            System.IO.FileStream sff = new System.IO.FileStream(args[2], System.IO.FileMode.Open, System.IO.FileAccess.Read);
            System.Xml.Serialization.XmlSerializer xmls = new System.Xml.Serialization.XmlSerializer(typeof(StripesFragLink2.Configuration));
            StripesFragLink2.Configuration         sfc  = (StripesFragLink2.Configuration)xmls.Deserialize(sff);
            SFL.Config = sfc;
            sff.Close();

            System.IO.StreamWriter outf = new System.IO.StreamWriter(args[3]);
            outf.AutoFlush = true;

            System.DateTime Start = System.DateTime.Now;
            Console.WriteLine("Batch started. Time: " + Start.ToString());

            string line;
            int    pos;

            while ((line = inf.ReadLine()).Length > 0)
            {
                pos = 0;
                Identifier Id;
                double     px, py, sx, sy, ptol, stol;
                int        minpts;
                Id.Part0 = Convert.ToInt32(GetNextToken(line, ref pos));
                Id.Part1 = Convert.ToInt32(GetNextToken(line, ref pos));
                Id.Part2 = Convert.ToInt32(GetNextToken(line, ref pos));
                Id.Part3 = Convert.ToInt32(GetNextToken(line, ref pos));
                px       = Convert.ToDouble(GetNextToken(line, ref pos));
                py       = Convert.ToDouble(GetNextToken(line, ref pos));
                sx       = Convert.ToDouble(GetNextToken(line, ref pos));
                sy       = Convert.ToDouble(GetNextToken(line, ref pos));
                minpts   = Convert.ToInt32(GetNextToken(line, ref pos));
                ptol     = Convert.ToDouble(GetNextToken(line, ref pos));
                stol     = Convert.ToDouble(GetNextToken(line, ref pos));
                SySal.DAQSystem.Scanning.ZoneDesc zd;
                zd.Id      = Id;
                zd.MinX    = px - ptol;
                zd.MaxX    = px + ptol;
                zd.MinY    = py - ptol;
                zd.MaxY    = py + ptol;
                zd.Outname = GetNextToken(line, ref pos).Trim();
                bool success;
                Console.WriteLine("Zone {0}/{1}/{2}/{3} {4} {5} {6} {7} {8}", zd.Id.Part0, zd.Id.Part1, zd.Id.Part2, zd.Id.Part3, px, py, sx, sy, (success = Srv.Scan(zd)));
                if (success)
                {
                    new DataProcessor(zd.Id, zd.Outname, px, py, sx, sy, minpts, ptol, stol, outf).Process();
                }
            }
            inf.Close();
            outf.Close();
            Console.WriteLine("Batch finished. Total time: " + (System.DateTime.Now - Start).ToString());
        }
示例#3
0
        static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            if (args.Length != 3)
            {
                Console.WriteLine("usage: filebatch <serveraddress> <inputfile> <outputfile>");
                return;
            }
            ChannelServices.RegisterChannel(new TcpChannel());
            SySal.DAQSystem.ScanServer Srv = (SySal.DAQSystem.ScanServer)RemotingServices.Connect(typeof(SySal.DAQSystem.ScanServer), "tcp://" + args[0] + ":" + ((int)(SySal.DAQSystem.OperaPort.ScanServer)).ToString() + "/ScanServer.rem");

            System.IO.StreamReader r = new System.IO.StreamReader(args[1]);
            System.IO.StreamWriter w = new System.IO.StreamWriter(args[2]);
            w.AutoFlush = true;

            int count = 0;

            try
            {
                string [] data = r.ReadLine().Split(' ');
                if (data.Length != 5)
                {
                    throw new Exception("Invalid header");
                }

                SySal.DAQSystem.Scanning.MountPlateDesc mpd = new SySal.DAQSystem.Scanning.MountPlateDesc();
                mpd.Id.Part0      = Convert.ToInt32(data[0]);
                mpd.Id.Part1      = Convert.ToInt32(data[1]);
                mpd.Id.Part2      = Convert.ToInt32(data[2]);
                mpd.Id.Part3      = Convert.ToInt32(data[3]);
                mpd.TextDesc      = data[4];
                mpd.MapInitString = r.ReadLine();
                bool ret;
                w.WriteLine("LoadPlate: {0} {1} {2} {3} {4} - Result: {5}", data[0], data[1], data[2], data[3], data[4], (ret = Srv.LoadPlate(mpd)));
                if (ret == false)
                {
                    throw new Exception("Plate not loaded");
                }
                while (true)
                {
                    string line;
                    line = r.ReadLine();
                    if (line == null)
                    {
                        break;
                    }
                    data = line.Split(' ');
                    if (data.Length != 9)
                    {
                        throw new Exception("Invalid prediction");
                    }

                    SySal.DAQSystem.Scanning.ZoneDesc zd = new SySal.DAQSystem.Scanning.ZoneDesc();

                    zd.Id.Part0 = Convert.ToInt32(data[0]);
                    zd.Id.Part1 = Convert.ToInt32(data[1]);
                    zd.Id.Part2 = Convert.ToInt32(data[2]);
                    zd.Id.Part3 = Convert.ToInt32(data[3]);
                    zd.MinX     = Convert.ToSingle(data[4]);
                    zd.MaxX     = Convert.ToSingle(data[5]);
                    zd.MinY     = Convert.ToSingle(data[6]);
                    zd.MaxY     = Convert.ToSingle(data[7]);
                    zd.Outname  = data[8];
                    w.WriteLine("Scan: {0} {1} {2} {3} {4} {5} {6} {7} {8} - Result: {9} - at {10}",
                                data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8],
                                Srv.Scan(zd), System.DateTime.Now);
                    Console.WriteLine("Prediction {0} complete", ++count);
                }
                w.WriteLine("UnloadPlate: - Result: {0}", Srv.UnloadPlate());
            }
            catch (Exception x)
            {
                w.WriteLine("Batch Interrupted at {0}", System.DateTime.Now);
                w.WriteLine("Reason: {0}", x.Message);
                w.WriteLine("Details: {0}", x.ToString());
            }
            Console.WriteLine("Batch finished");
            w.Close();
            r.Close();
        }
示例#4
0
        static void Main(string[] args)
        {
            if (args.Length != 3)
            {
                Console.WriteLine("ListScan: <scanserver address> <zone list file> <XML scanning configuration file>");
                Console.WriteLine("Zone list file syntax: ");
                Console.WriteLine("  Plate line: <brick>,<plate>,<map init string>");
                Console.WriteLine("  Zone line: <id>,<minx>,<maxx>,<miny>,<maxy>,<output name>");
                Console.WriteLine("  Note: first line must be a Plate line ");
                return;
            }
            System.IO.StreamReader r = new System.IO.StreamReader(args[2]);
            string config            = r.ReadToEnd();

            r.Close();

            System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(new TcpChannel());
            SySal.DAQSystem.ScanServer ScanSrv = (SySal.DAQSystem.ScanServer)System.Runtime.Remoting.RemotingServices.Connect(typeof(SySal.DAQSystem.ScanServer), "tcp://" + args[0] + ":" + ((int)SySal.DAQSystem.OperaPort.ScanServer).ToString() + "/ScanServer.rem");
            ScanSrv.SetScanLayout(config);

            SySal.DAQSystem.Scanning.MountPlateDesc plated = new SySal.DAQSystem.Scanning.MountPlateDesc();
            r = new System.IO.StreamReader(args[1]);

            //	bool isloaded = false;


            string line = r.ReadLine();

            string [] tokens = line.Split(',');
            if (tokens.Length != 3)
            {
                Console.WriteLine("First Line must be a Plate line");
                return;
            }

            do
            {
                tokens = line.Split(',');
                if (!(tokens.Length == 6 || tokens.Length == 3))
                {
                    Console.WriteLine("Plate line must be in the format:\n<brick>,<plate>,<map init string>");
                    Console.WriteLine("Zone line must be in the format:\n<id>,<minx>,<maxx>,<miny>,<maxy>,<output name>");
                    Console.WriteLine("Skipping line: " + line);
                    continue;
                }
                try
                {
                    if (tokens.Length == 3)
                    {
                        plated.BrickId       = Convert.ToInt32(tokens[0]);
                        plated.PlateId       = Convert.ToInt32(tokens[1]);
                        plated.MapInitString = tokens[2];
                        plated.TextDesc      = "";

                        Console.WriteLine("Load Plate: " + plated.PlateId);
                        if (!ScanSrv.LoadPlate(plated))
                        {
                            Console.WriteLine("ERROR: Unable to LOAD PLATE");
                            return;
                        }
                    }
                    else if (tokens.Length == 6)
                    {
                        int    id;
                        double minx, maxx, miny, maxy;
                        id   = Convert.ToInt32(tokens[0]);
                        minx = Convert.ToDouble(tokens[1]);
                        maxx = Convert.ToDouble(tokens[2]);
                        miny = Convert.ToDouble(tokens[3]);
                        maxy = Convert.ToDouble(tokens[4]);
                        Console.WriteLine("  scan zone: " + id + " ( " + minx + ", " + maxx + ", " + miny + ", " + maxx + ", " + minx + ")");
                        SySal.DAQSystem.Scanning.ZoneDesc zd = new SySal.DAQSystem.Scanning.ZoneDesc();
                        zd.Series  = id;
                        zd.MinX    = minx;
                        zd.MaxX    = maxx;
                        zd.MinY    = miny;
                        zd.MaxY    = maxy;
                        zd.Outname = tokens[5];
                        ScanSrv.Scan(zd);
                    }
                }
                catch (Exception x)
                {
                    Console.WriteLine("Error \n" + x.Message + "\nat line: " + line);
                    Console.WriteLine("Line skipped");
                }
            } while ((line = r.ReadLine()) != null && line.Length > 0);

            Console.WriteLine("List scan complete");
        }
示例#5
0
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Usage: ListScanV5 <ip> <listfile>");
                Console.WriteLine("Each command must begin with a number, and commands are executed in increasing order.");
                Console.WriteLine("Executed commands are rewritten to the file with a negative number.");
                Console.WriteLine("<taskid> " + CmdLoadSetup.Explain);
                Console.WriteLine("<taskid> " + CmdLoadPlate.Explain);
                Console.WriteLine("<taskid> " + CmdScan.Explain);
                Console.WriteLine("<taskid> " + CmdRun.Explain);
                Console.WriteLine("<taskid> " + CmdBatch.Explain);
                return;
            }
            ScanSrv = (SySal.DAQSystem.ScanServer)System.Runtime.Remoting.RemotingServices.Connect(typeof(SySal.DAQSystem.ScanServer), "tcp://" + args[0] + ":" + ((int)SySal.DAQSystem.OperaPort.ScanServer) + "/ScanServer.rem");
            string[] lines = System.IO.File.ReadAllText(args[1]).Split('\n', '\r');
            System.Collections.ArrayList cmd = new System.Collections.ArrayList();
            int errors = 0;

            foreach (string line in lines)
            {
                if (line.Trim().Length > 0)
                {
                    System.Text.RegularExpressions.Match m = rx_linenum.Match(line);
                    if (m.Success == false)
                    {
                        errors++;
                        Console.WriteLine("Cannot understand line \"" + line + "\"");
                    }
                    else
                    {
                        try
                        {
                            int linenum = Convert.ToInt32(m.Groups[1].Value);
                            switch (m.Groups[2].Value)
                            {
                            case StrLoadSetup: cmd.Add(new CmdLoadSetup(linenum, line, m.Index + m.Length)); break;

                            case StrLoadPlate: cmd.Add(new CmdLoadPlate(linenum, line, m.Index + m.Length)); break;

                            case StrScan: cmd.Add(new CmdScan(linenum, line, m.Index + m.Length)); break;

                            case StrRun: cmd.Add(new CmdRun(linenum, line, m.Index + m.Length)); break;

                            case StrBatch: cmd.Add(new CmdBatch(linenum, line, m.Index + m.Length)); break;

                            default: Console.WriteLine("Unknown command \"" + m.Groups[2].Value + "\"."); errors++; break;
                            }
                        }
                        catch (Exception x)
                        {
                            Console.WriteLine("Error in line \"" + line + "\": " + x.ToString());
                            errors++;
                        }
                    }
                }
            }
            if (errors > 0)
            {
                Console.Error.WriteLine(errors + " error(s) found; aborting.");
                return;
            }
            Console.WriteLine(cmd.Count + " Commands read.");
            int cmdexec = 0;

            do
            {
                cmd.Sort();
                string rewfile = "";
                foreach (Command c in cmd)
                {
                    rewfile += "\r\n" + c.LineNumber + " " + c.ToString();
                }
                try
                {
                    System.IO.File.WriteAllText(args[1], rewfile);
                }
                catch (Exception x)
                {
                    Console.Error.WriteLine("Cannot update list file!\r\nAborting\r\n" + x.ToString());
                    return;
                }
                int ln;
                for (cmdexec = 0; cmdexec < cmd.Count; cmdexec++)
                {
                    if ((ln = (cmd[cmdexec] as Command).LineNumber) > 0)
                    {
                        (cmd[cmdexec] as Command).Execute();
                        (cmd[cmdexec] as Command).LineNumber = -ln;
                        break;
                    }
                }
            }while (cmdexec != cmd.Count);
        }