CNCGUI.MainForm.ParseSystemResponse C# (CSharp) Method

ParseSystemResponse() private method

private ParseSystemResponse ( string line ) : void
line string
return void
        private void ParseSystemResponse(string line)
        {
            string key = line.Length >= 5 ? line.Substring(0, 5) : string.Empty;
            switch (key)
            {
                case "[fb] ":
                    cnc.FirmwareBuild.Clear();
                    if (scanf.Parse(line, "[fb] firmware build %d.%d") == 2
                    && scanf.Results.Count == 2)
                    {
                        cnc.FirmwareBuild.Major = (int)scanf.Results[0];
                        cnc.FirmwareBuild.Minor = (int)scanf.Results[1];
                    }
                    break;

                case "[fv] ":
                    cnc.FirmwareVersion.Clear();
                    if (scanf.Parse(line, "[fv] firmware version %d.%d") == 2)
                    {
                        cnc.FirmwareVersion.Major = (int)scanf.Results[0];
                        cnc.FirmwareVersion.Minor = (int)scanf.Results[1];
                    }
                    break;
                case "[hv] ":
                    cnc.HardwareVersion.Clear();
                    if (scanf.Parse(line, "[hv] hardware version %d.%d") == 2)
                    {
                        cnc.HardwareVersion.Major = (int)scanf.Results[0];
                        cnc.HardwareVersion.Minor = (int)scanf.Results[1];
                    }
                    break;
                case "[id] ":
                    cnc.ID = string.Empty;
                    if (scanf.Parse(line, "[id] TinyG ID %s") == 1)
                        cnc.ID = (string)scanf.Results[0];
                    break;
                case "[ja] ":
                    cnc.JunctionAcceleration.Default();
                    if (scanf.Parse(line, "[ja] junction acceleration %d %s") >= 1)
                        cnc.JunctionAcceleration.Set(scanf);
                    break;
                case "[ct] ":
                    cnc.ChordalTolerance.Default();
                    if (scanf.Parse(line, "[ct] chordal tolerance %f %s") >= 1)
                        cnc.ChordalTolerance.Set(scanf);
                    break;
                case "[st] ":
                    cnc.SwitchType.Value = SWITCH_TYPE.NormalOpen;
                    if (scanf.Parse(line, "[st] switch type %d [%s]") >= 1)
                        cnc.SwitchType.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[ej] ":
                    cnc.JsonMode.Value = JSON_MODE.Text;
                    if (scanf.Parse(line, "[ej] enable json mode %d [%s]") >= 1)
                        cnc.JsonMode.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[jv] ":
                    cnc.JsonVerbosity.Value = JSON_VERBOSITY.Linenum;
                    if (scanf.Parse(line, "[jv] json verbosity %d [%s]") >= 1)
                        cnc.JsonVerbosity.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[tv] ":
                    cnc.TextVerbosity.Value = TEXT_VERBOSITY.Verbose;
                    if (scanf.Parse(line, "[tv] text verbosity %d [%s]") >= 1)
                        cnc.TextVerbosity.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[qv] ":
                    cnc.QueueReportVerbosity.Value = REPORT_VERBOSITY.Filtered;
                    if (scanf.Parse(line, "[qv] queue report verbosity %d [%s]") >= 1)
                        cnc.QueueReportVerbosity.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[sv] ":
                    cnc.StatusReportVerbosity.Value = REPORT_VERBOSITY.Filtered;
                    if (scanf.Parse(line, "[sv] status report verbosity %d [%s]") >= 1)
                        cnc.StatusReportVerbosity.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[si] ":
                    cnc.StatusInterval = 100;
                    if (scanf.Parse(line, "[si] status interval %d ms") == 1)
                        cnc.StatusInterval = (int)scanf.Results[0];
                    break;
                case "[ic] ":
                    cnc.IgnoreCRLF.Value = IGNORE_CRLF.Off;
                    if (scanf.Parse(line, "[ic] ignore CR or LF on RX %d [%s]") >= 1)
                        cnc.IgnoreCRLF.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[ec] ":
                    cnc.ExpandLF.Value = ON_OFF.Off;
                    if (scanf.Parse(line, "[ec] expand LF to CRLF on TX %d [%s]") >= 1)
                        cnc.ExpandLF.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[ee] ":
                    cnc.EnableEcho.Value = ON_OFF.Off;
                    if (scanf.Parse(line, "[ee] enable echo %d [%s]") >= 1)
                        cnc.EnableEcho.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[ex] ":
                    cnc.EnableXON.Value = ON_OFF.Off;
                    if (scanf.Parse(line, "[ex] enable xon xoff %d [%s]") >= 1)
                        cnc.EnableXON.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[gpl]":
                    cnc.DefaultGcodePlane.Value = GCODE_PLANE.G17;
                    if (scanf.Parse(line, "[gpl] default gcode plane %d [%s]") >= 1)
                        cnc.DefaultGcodePlane.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[gun]":
                    cnc.DefaultGcodeUnits.Value = GCODE_UNIT.G21;
                    if (scanf.Parse(line, "[gun] default gcode units mode %d [%s]") >= 1)
                        cnc.DefaultGcodeUnits.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[gco]":
                    cnc.DefaultGcodeCoord.Value = GCODE_COORD.G54;
                    if (scanf.Parse(line, "[gco] default gcode coord system %d") == 1)
                        cnc.DefaultGcodeCoord.Set(scanf, false);
                    break;
                case "[gpa]":
                    cnc.DefaultGcodePath.Value = GCODE_PATH.G64;
                    if (scanf.Parse(line, "[gpa] default gcode path control %d [%s]") >= 1)
                        cnc.DefaultGcodePath.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[gdi]":
                    cnc.DefaultGcodeDistance.Value = GCODE_DISTANCE.G90;
                    if (scanf.Parse(line, "[gdi] default gcode distance mode %d [%s]") >= 1)
                        cnc.DefaultGcodeDistance.Set(scanf, UseResponseItems.Checked);
                    break;
                case "[baud":
                    cnc.UsbBaudRate.Value = USB_BAUDRATE.Speed_115200;
                    if (scanf.Parse(line, "[baud] USB baud rate %d [%s]") >= 1)
                        cnc.UsbBaudRate.Set(scanf, UseResponseItems.Checked);
                    break;
                default:
                    LogAppend("Unknown:" + line, Color.OrangeRed);
                    break;
            }
        }