コード例 #1
0
        /// <summary>
        /// Load GCode from a file
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static List <GCodeLine> LoadFromFile(string fileName)
        {
            int idx = 0;
            List <GCodeLine> list = new List <GCodeLine>();

            //Create a fist line to setup initial positions, in case no information from grbl
            GCodeLine firstLn = new GCodeLine()
            {
                Index = idx
            };

            firstLn.SetInitialPosition();
            list.Add(firstLn);

            //Start reading file
            string       ln = string.Empty;
            StreamReader sr = new StreamReader(fileName);

            while ((ln = sr.ReadLine()) != null)
            {
                try
                {
                    idx++;
                    //Create a GCode Line
                    GCodeLine gcodeLn = new GCodeLine(ln)
                    {
                        Index = idx
                    };

                    if (gcodeLn.comment.Length > 0)
                    {
                        continue;
                    }
                    list.Add(gcodeLn);


                    //Create linked list
                    GCodeLine prevCode = list[list.Count - 2];
                    gcodeLn.prev  = prevCode;
                    prevCode.next = gcodeLn;
                    if (gcodeLn.IsPositionCode)
                    {
                        //gcodeLn.CalculateTravelDist();
                        //gcodeLn.GetCurrentDir();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + "<<" + ln + ">>");
                }
            }
            return(list);
        }
コード例 #2
0
        public void AddGCodeLine(string ln)
        {
            if (gcodeLines == null)
            {
                gcodeLines = new List <GCodeLine>();
            }
            ln = ln.Trim();

            if (gcodeLines.Count == 0)
            {
                GCodeLine newLn = new GCodeLine(ln.Trim());
                newLn.SetInitialPosition();
                gcodeLines.Add(newLn);
            }
            else
            {
                GCodeLine prevLn = gcodeLines[gcodeLines.Count - 1];
                GCodeLine newLn  = new GCodeLine(ln.Trim(), prevLn);
                gcodeLines.Add(newLn);
            }
        }