public static AlarmState transform(final Double decimalType) throws CouldNotTransformException { AlarmState.Builder alarmState = AlarmState.newBuilder(); try { if (decimalType.intValue() == 0) { alarmState.setValue(State.NO_ALARM); } else if (decimalType.intValue() == 1) { alarmState.setValue(State.ALARM); } return alarmState.build(); } catch (Exception ex) { throw new CouldNotTransformException("Could not transform " + Double.class.getName() + "! " + Double.class.getSimpleName() + "[" + decimalType + "] is unknown!", ex); } }
@Override public AlarmState getSmokeAlarmState(final UnitType unitType) throws NotAvailableException { AlarmState.State alarmValue = AlarmState.State.NO_ALARM; long timestamp = 0; for (SmokeAlarmStateProviderService service : getServices(unitType)) { if (!((UnitRemote) service).isDataAvailable()) { continue; } if (service.getSmokeAlarmState().getValue() == AlarmState.State.ALARM) { alarmValue = AlarmState.State.ALARM; } timestamp = Math.max(timestamp, service.getSmokeAlarmState().getTimestamp().getTime()); } return TimestampProcessor.updateTimestamp(timestamp, AlarmState.newBuilder().setValue(alarmValue), TimeUnit.MICROSECONDS, logger).build(); } }
private AlarmState getSimulatedAlarmState() { switch (simulatedAlarmState.getValue()) { case ALARM: simulatedAlarmState.setValue(AlarmState.State.NO_ALARM); break; case NO_ALARM: if (counter < NO_ALARM_ITERATIONS) { counter++; } else { counter = 0; simulatedAlarmState.setValue(AlarmState.State.ALARM); } break; default: simulatedAlarmState.setValue(AlarmState.State.NO_ALARM); break; } return simulatedAlarmState.build(); }
/** * Creates a new custom unit simulator. * * @param unitController the unit to simulate. * @param serviceType the service type, e.g SMOKE_ALARM_STATE */ public AlarmStateSimulator(UnitController unitController, ServiceType serviceType) { super(unitController, serviceType); this.simulatedAlarmState = AlarmState.newBuilder(); this.simulatedAlarmState.setValue(AlarmState.State.NO_ALARM); this.counter = 0; }