BC_Logger_control.Form1.button_getL_Click C# (CSharp) Method

button_getL_Click() private method

private button_getL_Click ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void button_getL_Click(object sender, EventArgs e)
        {
            string fname = "scanner" + textBox_setI.Text + "-" + getDateString().Replace(':', '_').Replace(' ', '_') + ".csv";
            String logRX = "", errLines = "";
            byte crc = 0;
            checkBox_portMon.Checked = false;

            serialPort1.WriteLine(textBox_getLcustom.Text);
            SetText(textBox_getLcustom.Text + "\r\n");

            serialPort1.ReadTimeout = 500;
            bool flag = false;
            int i = 0;
            logRX = serialPort1.ReadLine()+"\n";
            SetText(logRX);
            if (logRX != "Command received: GETL\r\n") SetText("Error\r\n");
            logRX = serialPort1.ReadLine() + "\n";
            SetText(logRX);
            logRX = serialPort1.ReadLine() + "\n";
            SetText(logRX);
            logRX = serialPort1.ReadLine() + "\n";
            SetText(logRX);
            if (logRX != "====\r\n") SetText("Error\r\n");
            while (flag == false)
            {
                try
                {
                    logRX = serialPort1.ReadLine() + "\n";
                    if (logRX != "====\r\n")
                    {
                        int strLen = logRX.LastIndexOf(",");
                        crc = crcCalc(logRX.Substring(0, strLen));
                        int getcrc = 0;
                        strLen += 7;
                        if (int.TryParse(logRX.Substring(strLen, logRX.Length - strLen - 2), out getcrc) != true)
                        {
                            SetText("CRC not recognized in line " + i.ToString() + ": " + logRX);
                            errLines += i.ToString() + ", ";
                        }
                        if (crc == getcrc)
                        {
                            SetText(logRX);
                            try
                            {
                                File.AppendAllText(fname, logRX, Encoding.GetEncoding(inputCodePage));
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("\r\nError write to file " + fname + ": " + ex.Message);
                            }
                        }
                        else
                        {
                            SetText("CRC error in line " + i.ToString() + ": " + logRX);
                        }
                        i++;
                    }
                    else
                    {
                        SetText(logRX);
                        flag = true;
                    }
                }
                catch (TimeoutException ex)
                {
                    SetText("Error reading string: timeout. " + ex.Message);
                    flag = true;
                }
            }
            SetText(i.ToString() + " strings received\r\n");
            SetText("Errors in strings: " + errLines + "\r\n");
            checkBox_portMon.Checked = true;

            i = 0;
            byte[] rx = new byte[5242880];
            while (serialPort1.BytesToRead > 0)
            {
                rx[i] = (byte)serialPort1.ReadByte();
                i++;
            }
            SetText(System.Text.Encoding.GetEncoding(inputCodePage).GetString(rx, 0, i));
        }