示例#1
0
    public IEnumerator GenerateGCode(Action <Progress> progress, Action <string> result)
    {
        foreach (var i in GenerateGCodeFile())
        {
            progress(i);
            yield return(null);
        }

        if (gcode != null)
        {
            // export gcode
            MemoryStream ms   = new MemoryStream();
            string       data = "";
            using (StreamWriter w = new StreamWriter(ms)) {
                StandardGCodeWriter writer = new StandardGCodeWriter();
                foreach (var i in writer.WriteFileEnumerator(gcode, w))
                {
                    progress(i);
                    yield return(i);
                }
                gcode  = null;
                writer = null;
                yield return(null);

                w.Flush();
                ms.Seek(0, SeekOrigin.Begin);
                using (var reader = new StreamReader(ms)) {
                    data = reader.ReadToEnd();
                }
                ms.Dispose();
                yield return(null);
            }
            result(data);
        }
    }