예제 #1
0
  public void fire() throws IllegalActionException {
    ObjectToken obj = (ObjectToken) lsp_old.get(0);
    Short[] arg1 = (Short[]) obj.getValue();

    obj = (ObjectToken) lsp_mid.get(0);
    Short[] arg2 = (Short[]) obj.getValue();

    obj = (ObjectToken) lsp_new.get(0);
    Short[] arg3 = (Short[]) obj.getValue();

    Short[] arg4 = new Short[Cnst.MP1 * 4];

    _int_lpc2(arg1, arg2, arg3, arg4);

    obj = new ObjectToken(arg4);
    A.broadcast(obj);
  }
예제 #2
0
  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();
    }
  }