Пример #1
0
/** Flanco en secuencia_On*/
void In2GestorMaquina::_sltOPCSecuenciaOn(){
    //Comienza la impresion
    if (m_memoryMap->m_mapa.m_maquina.secuencia_on){

        emit SendDebugInfo(LOGGER_WARNING,"_sltOPCSecuenciaOn 1");
        m_gestorMaquina->sltHabilitarFreno(true);
        m_memoryMap->m_mapa.m_maquina.InicioSecuenciaAutomatico=0x01;
        m_memoryMap->m_mapa.m_maquina.EstadoSecuenciaAutomatico=0x01;
        m_memoryMap->m_mapa.m_maquina.ParadaDiametro=false;
        bool condiciones=ComprobacionesPreviasImpresion();
        if (condiciones){
            //Tiene que haber imagen enviada
            if (m_memoryMap->m_ImagenEnviada==false) {
                int respuesta=QMessageBox::question(0,"ATENCION","No hay imagen enviada\n¿Está seguro que desea continuar?","Si","No",QString::null, 0, 1 );
                if (respuesta==0){
                    //En eset caso obviamos el filtro de maculas
                    //m_memoryMap->m_mapa.m_impresion.m_fltrMacula.bMonitorMacula=false;
                    sltLaunchPrint();
                }
                else{
                    //Tiramos de nuevo las condiciones de movimiento
                    m_gestorMaquina->sltEnableCondicionesMovimiento();
                }
            }
            else{
                sltLaunchPrint();
            }
        }
        else{ //No se dan las condiciones de impresion
            //Tiramos de nuevo las condiciones de movimiento
            m_gestorMaquina->sltEnableCondicionesMovimiento();
        }

    }
    else{ //Paramos
        //emit sgnInitImpresion(false);
        emit SendDebugInfo(LOGGER_WARNING,"_sltOPCSecuenciaOn 0");
        m_memoryMap->m_ImagenEnviada=false;
        m_startDelayed=false;
        //Es un softstop
        if (m_memoryMap->m_mapa.m_maquina.codigo_parada==0){
            //Aqui softstopear
            SoftStop();
        }
        else{ //Es una parada de emergencia
            //QString valor_codigo_parada=QString("%1").arg(m_memoryMap->m_mapa.m_maquina.codigo_parada);
            //emit SendDebugInfo(LOGGER_WARNING,QString("Realizando parada %1").arg(valor_codigo_parada));
            //Insertar_Evento(ERROR_MAQUINA,valor_codigo_parada);            
            EmergencyStop(FIN_EMERGENCIA);
            //Se quitan los jogs por si acasol
            GestorMaquina *gM= GestorMaquina::request(this);
            if (gM){
                gM->sltJogMenosOff();
                gM->sltJogMenosOff();
            }
        }
    }
}
Пример #2
0
void cmdError() {
    int i;
    EmergencyStop();
    for(i= 0; i < 10; i++) {
        LED_1 ^= 1;
        delay_ms(200);
        LED_2 ^= 1;
        delay_ms(200);
        LED_3 ^= 1;
        delay_ms(200);
    }
}