Miscellany
public text v1 · immutable private string pumpBoxComando(string comando, string parametro)
{
string lectura,cmd,ack,stx, etx,checksum;
int intentos,bytesToRead;
byte[] buffer;
intentos = 0;
lectura = "";
stx = Convert.ToChar(2).ToString();
etx = Convert.ToChar(3).ToString();
ack = Convert.ToChar(6).ToString();
cmd = stx;
cmd += comando;
cmd += parametro;
cmd += etx;
checksum = CheckSum(cmd);
cmd += checksum;
try
{
while (intentos < 5)
{
puertoSerial.DiscardOutBuffer();
puertoSerial.DiscardInBuffer();
puertoSerial.Write(cmd);
switch (comando)
{
case "I":
{
Thread.Sleep(500);
break;
}
case "A":
{
Thread.Sleep(200);
break;
}
case "F":
{
if (checksum == "p")
Thread.Sleep(200);
else if (checksum == "5")
Thread.Sleep(100);
break;
}
default:
{
Thread.Sleep(250);
break;
}
}
bytesToRead = puertoSerial.BytesToRead;
buffer = new byte[bytesToRead];
puertoSerial.Read(buffer, 0, bytesToRead);
puertoSerial.DiscardInBuffer();
puertoSerial.DiscardOutBuffer();
lectura = "";
lectura = Encoding.UTF8.GetString(buffer);
if (lectura == ack || (lectura.Contains(stx) && lectura.Contains(etx)))
{
hayConexionPumpBox = true;
break;
}
intentos++;
Thread.Sleep(200);
}
return lectura;
}
catch (Exception e)
{
hayConexionPumpBox = false;
return "x";
}
}