public void ProcessGCodeResult(GCode gcode, string resultFromPrinter, PrinterInfo printerInfo) { if (!gcode.hasM || gcode.M != 27) { return; } var str1 = resultFromPrinter; char[] chArray = new char[1] { '\n' }; foreach (var str2 in str1.Split(chArray)) { if (str2.Contains("Not SD printing.")) { m_oPrinterSDCardStatus.IsPrintingFromSD = false; m_oPrinterSDCardStatus.SDFileLength = 0L; m_oPrinterSDCardStatus.SDFilePosition = 0L; } else if (str2.StartsWith("SD printing byte")) { try { string[] strArray = str2.Substring("SD printing byte".Length).Split('/'); if (strArray.Length == 2) { long.TryParse(strArray[0], out m_oPrinterSDCardStatus.SDFilePosition); long.TryParse(strArray[1], out m_oPrinterSDCardStatus.SDFileLength); m_oPrinterSDCardStatus.IsPrintingFromSD = true; } } catch (Exception ex) { } if (printerInfo.current_job == null && m_OnActiveSDPrint != null) { m_OnActiveSDPrint(); m_OnActiveSDPrint = null; } } } }
public SDCardPlugin(SDCard PrinterSDCardStatus, SDCardPlugin.ActiveSDPrintCallback activePrintCallback) { m_oPrinterSDCardStatus = PrinterSDCardStatus; m_OnActiveSDPrint = activePrintCallback; }