| /******************************************************************************* |
| * Copyright (c) 2014-2018 Orange. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * Contributors: |
| * BAREAU Cyrille <cyrille.bareau@orange.com> |
| * BONNARDEL Gregory <gbonnardel.ext@orange.com> |
| *******************************************************************************/ |
| package org.eclipse.om2m.hue.api.types; |
| |
| /** |
| * State of a Hue Light device |
| */ |
| public class LightState { |
| |
| /** |
| * state of the light on/off |
| */ |
| private boolean on; |
| |
| /** |
| * brightness from 0 to 255 |
| */ |
| private int bri; |
| |
| /** |
| * saturation from 0 to 255 <p> |
| * 0 : white <p> |
| * 255 : most saturated, colored <p> |
| */ |
| private int sat; |
| |
| /** |
| * hue value of the light from 0 to 65535 <p> |
| * 0 : red <p> |
| * 12750 : yellow <p> |
| * 25500 : light green <p> |
| * 36210 : dark green <p> |
| * 46920 : blue <p> |
| * 56100 : violet <p> |
| * 65280 : red <p> |
| */ |
| private int hue; |
| |
| /** |
| * dynamic effect of the light <p> |
| * use {@link LightEffect} class for effect parameters <p> |
| */ |
| private int effect; |
| |
| /** |
| * alert effect of the light <p> |
| * use {@link AlarmMode} class for alarm parameters <p> |
| */ |
| private int alert; |
| |
| // ==================================================================================== |
| |
| /** |
| * |
| */ |
| public LightState(final boolean on) { |
| this.on = on; |
| bri = -1; |
| sat = -1; |
| hue = -1; |
| effect = -1; |
| alert = -1; |
| } |
| |
| /** |
| * |
| */ |
| public LightState() { |
| this(false); |
| } |
| |
| // ==================================================================================== |
| |
| /** |
| * @return state of the light on/off |
| */ |
| public boolean isOn() { |
| return on; |
| } |
| |
| /** |
| * @param pon state of the light on/off |
| */ |
| public void setOn(final boolean on) { |
| this.on = on; |
| } |
| |
| /** |
| * @return brightness from 0 to 255, -1 means not set |
| */ |
| public int getBri() { |
| return bri; |
| } |
| |
| /** |
| * @param index brightness from 0 to 255 |
| */ |
| public void setBri(final int index) { |
| if ((index >= 0) && (index <= 255)) |
| this.bri = index; |
| } |
| |
| /** |
| * 0 : white <p> |
| * 255 : most saturated, colored <p> |
| * -1 : not set <p> |
| * @return saturation from 0 to 255 |
| */ |
| public int getSat() { |
| return sat; |
| } |
| |
| /** |
| * 0 : white <p> |
| * 255 : most saturated, colored <p> |
| * @param index saturation from 0 to 255 |
| */ |
| public void setSat(final int index) { |
| if ((index >= 0) && (index <= 255)) |
| this.sat = index; |
| } |
| |
| /** |
| * 0 : red <p> |
| * 12750 : yellow <p> |
| * 25500 : light green <p> |
| * 36210 : dark green <p> |
| * 46920 : blue <p> |
| * 56100 : violet <p> |
| * 65280 : red <p> |
| * -1 : not set <p> |
| * @return the hue value of the light from 0 to 65535 |
| */ |
| public int getHue() { |
| return hue; |
| } |
| |
| /** |
| * 0 : red <p> |
| * 12750 : yellow <p> |
| * 25500 : light green <p> |
| * 36210 : dark green <p> |
| * 46920 : blue <p> |
| * 56100 : violet <p> |
| * 65280 : red <p> |
| * @param index hue value of the light from 0 to 65535 |
| */ |
| public void setHue(final int index) { |
| if ((index >= 0) && (index <= 65535)) |
| this.hue = index; |
| } |
| |
| /** |
| * @return {@link LightEffect} dynamic effect of the light |
| */ |
| public int getEffect() { |
| return effect; |
| } |
| |
| /** |
| * @param pEffect {@link LightEffect} dynamic effect of the light |
| */ |
| public void setEffect(final int effect) { |
| this.effect = effect; |
| } |
| |
| /** |
| * @return {@link AlarmMode} alert effect of the light |
| */ |
| public int getAlert() { |
| return alert; |
| } |
| |
| /** |
| * @param pAlert {@link AlarmMode} alert effect of the light |
| */ |
| public void setAlert(final int alert) { |
| this.alert = alert; |
| } |
| |
| // ==================================================================================== |
| |
| /** |
| * here compares all attributes except 'alert' (because of "lselect" that turns into "select" after one cycle) <p> |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| public boolean equals(final Object obj){ |
| if (this == obj) |
| return true; |
| if ((obj == null) || (obj.getClass() != this.getClass())) |
| return false; |
| LightState l = (LightState) obj; |
| return (on == l.on) && (bri == l.bri) && (hue == l.hue) |
| && (sat == l.sat) && (effect == l.effect); |
| } |
| |
| public String toString() { |
| return "<LightState on=" + on + " bri=" + bri + " sat=" + sat + " hue=" + hue + "/>"; |
| } |
| |
| } |