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; } }
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; }