public override bool Connect()
        {
            con.isMarlin = con.isRepetier = con.isSprinter = false;
            connected    = true;
            virtualPrinter.open(int.Parse(baudRate));
            GCode gc = new GCode();

            gc.Parse("M105");
            virtualPrinter.receiveLine(gc);
            connected = true;
            if (transferProtocol < 2)
            {
                binaryVersion = 0;
            }
            else
            {
                binaryVersion = transferProtocol - 1;
            }
            con.binaryVersion = binaryVersion;
            readyForNextSend  = true;
            lock (nackLines)
            {
                nackLines.Clear();
            }
            linesSend = errorsReceived = bytesSend = 0;
            gc.Parse("N0 M110");
            virtualPrinter.receiveLine(gc);
            gc.Parse("M115");
            virtualPrinter.receiveLine(gc);
            gc.Parse("M105");
            virtualPrinter.receiveLine(gc);
            con.FireConnectionChange(Trans.T("L_CONNECTED") + ":" + con.printerName);
            Main.main.Invoke(Main.main.UpdateJobButtons);
            return(true);
        }