public boolean postfire() throws IllegalActionException { switch (_state) { case READY: { if (trigger.hasToken(0) && !shutdown.hasToken(0)) { _state = RUNNING; } } break; case RUNNING: { if (shutdown.isKnown()) { if (shutdown.hasToken(0)) { _reset(); break; } } if (emstop_input.isKnown()) { if (emstop_input.hasToken(0)) { _reset(); break; } } } break; } return true; }
public void fire() throws IllegalActionException { if (_state == RUNNING) { if (alfa.isKnown() && !emmode.isKnown()) { // if(alfa.isKnown()) { if (alfa.hasToken(0)) { double _alfa = ((DoubleToken) alfa.get(0)).doubleValue(); /* if(_count > 0) { // so atualiza se um evento true deu inicio _count++; }*/ if (Math.abs(_alfa) >= 0.10) { // tem um evento // _sensorCount++; // if(_count == 0) { // _count = 1; // } _count++; } else { _count = 0; } if (_count == 25) { emmode.broadcast(new Token()); System.out.println("Entering Emergency Mode"); _reset(); // uma vez setado o emmode, so na proxima.... } /* if(_count == 50) { // deu os 100ms if(_maxSensorCount >= 25 || _sensorCount >= 25) { emmode.broadcast(new Token()); System.out.println("Entering Emergency Mode"); _reset(); // uma vez setado o emmode, so na proxima.... } else { _count = 0; _sensorCount = 0; _maxSensorCount = 0; } } else { if(Math.abs(_alfa) >= 0.10) { // tem um evento _sensorCount++; if(_count == 0) { _count = 1; } } if((Math.abs(_alfa) < 0.1) && _count > 0) { // nao tem mais , e estava contando if(_sensorCount > _maxSensorCount) { _maxSensorCount = _sensorCount; } _sensorCount = 0; } } */ } } } if (alfa.isKnown() && !emmode.isKnown()) { emmode.broadcastClear(); } }