Pondre esa parte del codigo primero:
Código:
QList<QString> puertos;
puertos << "COM2" << "COM3" << "COM4" << "COM5" << "COM6" << "COM7" << "COM8" << "COM9"<< "COM10" << "COM11" << "COM12" <<"COM13" << "COM14" << "COM15 "<< "COM16";
QString COM;
while(!conexion){ //conexion es una varible qe declare arriba. Mientras NO haya conexion:
foreach(COM, puertos){
port->setPortName(COM); //Seteo el nombre del puerto ej: COM7
if(port->open(QextSerialPort::ReadWrite)){// si conecta:
conexion = true;
emit Connection_Ready(conexion, COM);
}
}//sino seguira sin conexion e intentara de nuevo con el siguiente COM del array.
if (!conexion){
emit Connection_Fail("[X]TODOS LOS PUERTOS CERRADOS!");
}//la idea es que si los 16 COM estan cerrados imprima esto.
}
Ahora bien, si por ejemplo tengo el COM7 abierto, el programa arranca prueba hasta ese COM y como esta abierto ahi queda y funciona perfecto. El problema es cuando TODOS LOS COM ESTAN CERRADOS. Ya que al parecer entra en uN bucle infinito y el programa se cuelga Como puedo hacer para que esto deje de pasar? y en lugar de colgarse ejecute el ultimo bloque y mande al form que "TODOS LOS PUERTOS ESTAN CERRADOS" como quiero? :/
Gracias de antemano! se que tengo varios errores ahi ojala me puedan ayudar!