예제 #1
0
  public boolean evaluate(byte[] event) {
    /*Selecciona del arreglo el byte del tipo de item*/

    byte itemType = event[0];

    if (itemType == SMOKETYPE) {
      /*Selecciona del arreglo el byte relacionado al status*/
      return smokeProcess(event[5]);

    } else if (itemType == SENSORTYPE) {
      /*Procesar evento*/
      byte[] codebytes = Arrays.copyOfRange(event, 1, 5);
      int code = Util.convertArraytoInt(codebytes);
      return sensorProcess(event[5], code);
    } else if (itemType == RFIDTYPE) {
      /*Procesar evento*/
      // System.out.println("RFID");
      byte[] codebytes = Arrays.copyOfRange(event, 1, 5);
      int code = Util.convertArraytoInt(codebytes);
      return sensorProcess(event[5], code);
    } else {
      /*No contiene un tipo de item definido*/
      return false;
    }
  }
예제 #2
0
  public byte processEvent(byte[] event) {
    /*Selecciona del arreglo el byte del tipo de item*/

    byte outcome = HM_STATUS_NORMAL;
    byte itemType = event[0];

    if (itemType == SMOKETYPE) {
      /*Selecciona del arreglo el byte relacionado al status*/
      if (smokeProcess(event[5])) {
        /*Evento de fuego*/
        byte[] codebytes =
            new byte[] {event[1], event[2], event[3], event[4]}; // Arrays.copyOfRange(event, 1, 5);
        int code = Util.convertArraytoInt(codebytes);
        ContactInfo contactInfo = CacheContactInfo.getInfoContact(String.valueOf(code));
        NotificatorManager.notificateClient(contactInfo.email, contactInfo.name, SMOKE);
        outcome = HM_STATUS_NOTIFY;
      }

    } else if (itemType == SENSORTYPE) {
      /*Procesar evento*/
      byte[] codebytes =
          new byte[] {event[1], event[2], event[3], event[4]}; // Arrays.copyOfRange(event, 1, 5);
      int code = Util.convertArraytoInt(codebytes);
      if (sensorProcess(event[5], code)) {
        /*Evento de apertura de puerta o ventana*/
        ContactInfo contactInfo = CacheContactInfo.getInfoContact(String.valueOf(code));
        NotificatorManager.notificateClient(contactInfo.email, contactInfo.name, SENSOR);
        outcome = HM_STATUS_NOTIFY;
      }
    } else if (itemType == RFIDTYPE) {
      /*Procesar evento*/
      byte[] codebytes = Arrays.copyOfRange(event, 1, 5);
      int code = Util.convertArraytoInt(codebytes);
      if (sensorProcess(event[5], code)) {
        /*RFID en lugar no autorizado*/
        ContactInfo contactInfo = CacheContactInfo.getInfoContact(String.valueOf(code));
        NotificatorManager.notificateClient(contactInfo.email, contactInfo.name, RFID);
        outcome = HM_STATUS_NOTIFY;
      }
    } else {
      /*No contiene un tipo de item definido*/
    }

    return outcome;
  }