1
La parte del while() no es problema, ya que el codigo se bloquea al enviar cada comando para esperar su
respuesta. Por lo tanto, el comando siguiente se realiza cuando termino el primero.
Como prueba, realize el siguiente codigo que envia 1000 veces 8 comandos para cerrar los
relays (sin delay), y no da problemas:
private void button1_Click(object sender, EventArgs e)
{
SendStat CmdStat = SendStat.Success;
MessageBox.Show("INICIO: Puede tardar unos segundos...");
for (int i = 0; i < 1000; i++)
{
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay1)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay2)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay3)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay4)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay5)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay6)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay7)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay8)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
MessageBox.Show("FIN");
}
}
Fijate desabilitando todo codigo que (excepto la parte de los reles) y comproba si continua el error.
Si podes, enviame el proyecto completo a mi email (solo el programa que da error), asi lo pruebo y
analizo mejor.
Saludos, Boris.-
respuesta. Por lo tanto, el comando siguiente se realiza cuando termino el primero.
Como prueba, realize el siguiente codigo que envia 1000 veces 8 comandos para cerrar los
relays (sin delay), y no da problemas:
private void button1_Click(object sender, EventArgs e)
{
SendStat CmdStat = SendStat.Success;
MessageBox.Show("INICIO: Puede tardar unos segundos...");
for (int i = 0; i < 1000; i++)
{
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay1)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay2)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay3)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay4)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay5)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay6)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay7)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
if ((CmdStat = PioBoard.Cmd.Relay.Close(Relays.Relay8)) != SendStat.Success)
{
MessageBox.Show(CmdStat.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
MessageBox.Show("FIN");
}
}
Fijate desabilitando todo codigo que (excepto la parte de los reles) y comproba si continua el error.
Si podes, enviame el proyecto completo a mi email (solo el programa que da error), asi lo pruebo y
analizo mejor.
Saludos, Boris.-