private void button_getD_Click(object sender, EventArgs e)
{
string fname = "scanner" + textBox_setI.Text + "-" + getDateString().Replace(':','_').Replace(' ','_') + "_DEBUG.csv";
String logRX = "", errLines="";
byte crc = 0;
checkBox_portMon.Checked = false;
serialPort1.WriteLine(textBox_getDcustom.Text);
SetText(textBox_getDcustom.Text + "\r\n");
serialPort1.ReadTimeout = 500;
bool flag = false;
int i = 0;
logRX = serialPort1.ReadLine() + "\n";
SetText(logRX);
if (logRX != "Command received: GETD\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);
errLines += i.ToString() + ", ";
}
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;
//serialPort1_DataReceived(,EventArgs.Empty);
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));
}