OpenECHO
 All Classes Namespaces Files Functions Variables
IlluminanceSensor.java
Go to the documentation of this file.
1 /*
2  * Copyright 2012 Sony Computer Science Laboratories, Inc. <info@kadecot.net>
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.sonycsl.echo.eoj.device.sensor;
17 
25 
26 public abstract class IlluminanceSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x000D;
29 
30  public static final byte EPC_MEASURED_ILLUMINANCE_VALUE1 = (byte)0xE0;
31  public static final byte EPC_MEASURED_ILLUMINANCE_VALUE2 = (byte)0xE1;
32 
33  @Override
34  protected void setupPropertyMaps() {
35  super.setupPropertyMaps();
36 
42  }
43 
44  @Override
45  public void onNew() {
46  super.onNew();
47  Echo.getEventListener().onNewIlluminanceSensor(this);
48  }
49 
50  @Override
51  public short getEchoClassCode() {
52  return ECHO_CLASS_CODE;
53  }
54 
79  protected boolean setOperationStatus(byte[] edt) {return false;}
104  protected abstract byte[] getOperationStatus();
127  protected abstract byte[] getMeasuredIlluminanceValue1();
150  protected boolean isValidMeasuredIlluminanceValue1(byte[] edt) {
151  if(edt == null || !(edt.length == 2)) return false;
152  return true;
153  }
177  protected abstract byte[] getMeasuredIlluminanceValue2();
201  protected boolean isValidMeasuredIlluminanceValue2(byte[] edt) {
202  if(edt == null || !(edt.length == 2)) return false;
203  return true;
204  }
205 
206  @Override
207  protected synchronized boolean setProperty(EchoProperty property) {
208  boolean success = super.setProperty(property);
209  if(success) return success;
210 
211  switch(property.epc) {
212  default : return false;
213  }
214  }
215 
216  @Override
217  protected synchronized byte[] getProperty(byte epc) {
218  byte[] edt = super.getProperty(epc);
219  if(edt != null) return edt;
220 
221  switch(epc) {
224  default : return null;
225  }
226  }
227 
228  @Override
229  protected synchronized boolean isValidProperty(EchoProperty property) {
230  boolean valid = super.isValidProperty(property);
231  if(valid) return valid;
232 
233  switch(property.epc) {
236  default : return false;
237  }
238  }
239 
240  @Override
241  public Setter set() {
242  return set(true);
243  }
244 
245  @Override
246  public Setter set(boolean responseRequired) {
247  return new Setter(getEchoClassCode(), getInstanceCode()
248  , getNode().getAddressStr(), responseRequired);
249  }
250 
251  @Override
252  public Getter get() {
253  return new Getter(getEchoClassCode(), getInstanceCode()
254  , getNode().getAddressStr());
255  }
256 
257  @Override
258  public Informer inform() {
259  return inform(isSelfObject());
260  }
261 
262  @Override
263  protected Informer inform(boolean multicast) {
264  String address;
265  if(multicast) {
267  } else {
268  address = getNode().getAddressStr();
269  }
270  return new Informer(getEchoClassCode(), getInstanceCode()
271  , address, isSelfObject());
272  }
273 
274  public static class Receiver extends DeviceObject.Receiver {
275 
276  @Override
277  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
278  EchoProperty property, boolean success) {
279  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
280  if(ret) return true;
281 
282  switch(property.epc) {
283  default :
284  return false;
285  }
286  }
287 
288  @Override
289  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
290  EchoProperty property, boolean success) {
291  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
292  if(ret) return true;
293 
294  switch(property.epc) {
296  onGetMeasuredIlluminanceValue1(eoj, tid, esv, property, success);
297  return true;
299  onGetMeasuredIlluminanceValue2(eoj, tid, esv, property, success);
300  return true;
301  default :
302  return false;
303  }
304  }
305 
328  protected void onGetMeasuredIlluminanceValue1(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
352  protected void onGetMeasuredIlluminanceValue2(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
353  }
354 
355  public static class Setter extends DeviceObject.Setter {
356  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
357  , String dstEchoAddress, boolean responseRequired) {
358  super(dstEchoClassCode, dstEchoInstanceCode
359  , dstEchoAddress, responseRequired);
360  }
361 
362  @Override
363  public Setter reqSetProperty(byte epc, byte[] edt) {
364  return (Setter)super.reqSetProperty(epc, edt);
365  }
366 
367  @Override
368  public Setter reqSetOperationStatus(byte[] edt) {
369  return (Setter)super.reqSetOperationStatus(edt);
370  }
371  @Override
372  public Setter reqSetInstallationLocation(byte[] edt) {
373  return (Setter)super.reqSetInstallationLocation(edt);
374  }
375  @Override
376  public Setter reqSetCurrentLimitSetting(byte[] edt) {
377  return (Setter)super.reqSetCurrentLimitSetting(edt);
378  }
379  @Override
380  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
381  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
382  }
383  @Override
384  public Setter reqSetRemoteControlSetting(byte[] edt) {
385  return (Setter)super.reqSetRemoteControlSetting(edt);
386  }
387  @Override
388  public Setter reqSetCurrentTimeSetting(byte[] edt) {
389  return (Setter)super.reqSetCurrentTimeSetting(edt);
390  }
391  @Override
392  public Setter reqSetCurrentDateSetting(byte[] edt) {
393  return (Setter)super.reqSetCurrentDateSetting(edt);
394  }
395  @Override
396  public Setter reqSetPowerLimitSetting(byte[] edt) {
397  return (Setter)super.reqSetPowerLimitSetting(edt);
398  }
399 
400  }
401 
402  public static class Getter extends DeviceObject.Getter {
403  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
404  , String dstEchoAddress) {
405  super(dstEchoClassCode, dstEchoInstanceCode
406  , dstEchoAddress);
407  }
408 
409  @Override
410  public Getter reqGetProperty(byte epc) {
411  return (Getter)super.reqGetProperty(epc);
412  }
413 
414  @Override
415  public Getter reqGetOperationStatus() {
416  return (Getter)super.reqGetOperationStatus();
417  }
418  @Override
419  public Getter reqGetInstallationLocation() {
420  return (Getter)super.reqGetInstallationLocation();
421  }
422  @Override
423  public Getter reqGetStandardVersionInformation() {
424  return (Getter)super.reqGetStandardVersionInformation();
425  }
426  @Override
427  public Getter reqGetIdentificationNumber() {
428  return (Getter)super.reqGetIdentificationNumber();
429  }
430  @Override
431  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
432  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
433  }
434  @Override
435  public Getter reqGetMeasuredCumulativePowerConsumption() {
436  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
437  }
438  @Override
439  public Getter reqGetManufacturersFaultCode() {
440  return (Getter)super.reqGetManufacturersFaultCode();
441  }
442  @Override
443  public Getter reqGetCurrentLimitSetting() {
444  return (Getter)super.reqGetCurrentLimitSetting();
445  }
446  @Override
447  public Getter reqGetFaultStatus() {
448  return (Getter)super.reqGetFaultStatus();
449  }
450  @Override
451  public Getter reqGetFaultDescription() {
452  return (Getter)super.reqGetFaultDescription();
453  }
454  @Override
455  public Getter reqGetManufacturerCode() {
456  return (Getter)super.reqGetManufacturerCode();
457  }
458  @Override
459  public Getter reqGetBusinessFacilityCode() {
460  return (Getter)super.reqGetBusinessFacilityCode();
461  }
462  @Override
463  public Getter reqGetProductCode() {
464  return (Getter)super.reqGetProductCode();
465  }
466  @Override
467  public Getter reqGetProductionNumber() {
468  return (Getter)super.reqGetProductionNumber();
469  }
470  @Override
471  public Getter reqGetProductionDate() {
472  return (Getter)super.reqGetProductionDate();
473  }
474  @Override
475  public Getter reqGetPowerSavingOperationSetting() {
476  return (Getter)super.reqGetPowerSavingOperationSetting();
477  }
478  @Override
479  public Getter reqGetRemoteControlSetting() {
480  return (Getter)super.reqGetRemoteControlSetting();
481  }
482  @Override
483  public Getter reqGetCurrentTimeSetting() {
484  return (Getter)super.reqGetCurrentTimeSetting();
485  }
486  @Override
487  public Getter reqGetCurrentDateSetting() {
488  return (Getter)super.reqGetCurrentDateSetting();
489  }
490  @Override
491  public Getter reqGetPowerLimitSetting() {
492  return (Getter)super.reqGetPowerLimitSetting();
493  }
494  @Override
495  public Getter reqGetCumulativeOperatingTime() {
496  return (Getter)super.reqGetCumulativeOperatingTime();
497  }
498  @Override
499  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
500  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
501  }
502  @Override
503  public Getter reqGetSetPropertyMap() {
504  return (Getter)super.reqGetSetPropertyMap();
505  }
506  @Override
507  public Getter reqGetGetPropertyMap() {
508  return (Getter)super.reqGetGetPropertyMap();
509  }
510 
533  public Getter reqGetMeasuredIlluminanceValue1() {
534  reqGetProperty(EPC_MEASURED_ILLUMINANCE_VALUE1);
535  return this;
536  }
560  public Getter reqGetMeasuredIlluminanceValue2() {
561  reqGetProperty(EPC_MEASURED_ILLUMINANCE_VALUE2);
562  return this;
563  }
564  }
565 
566  public static class Informer extends DeviceObject.Informer {
567  public Informer(short echoClassCode, byte echoInstanceCode
568  , String dstEchoAddress, boolean isSelfObject) {
569  super(echoClassCode, echoInstanceCode
570  , dstEchoAddress, isSelfObject);
571  }
572 
573  @Override
574  public Informer reqInformProperty(byte epc) {
575  return (Informer)super.reqInformProperty(epc);
576  }
577  @Override
578  public Informer reqInformOperationStatus() {
579  return (Informer)super.reqInformOperationStatus();
580  }
581  @Override
582  public Informer reqInformInstallationLocation() {
583  return (Informer)super.reqInformInstallationLocation();
584  }
585  @Override
586  public Informer reqInformStandardVersionInformation() {
587  return (Informer)super.reqInformStandardVersionInformation();
588  }
589  @Override
590  public Informer reqInformIdentificationNumber() {
591  return (Informer)super.reqInformIdentificationNumber();
592  }
593  @Override
594  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
595  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
596  }
597  @Override
598  public Informer reqInformMeasuredCumulativePowerConsumption() {
599  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
600  }
601  @Override
602  public Informer reqInformManufacturersFaultCode() {
603  return (Informer)super.reqInformManufacturersFaultCode();
604  }
605  @Override
606  public Informer reqInformCurrentLimitSetting() {
607  return (Informer)super.reqInformCurrentLimitSetting();
608  }
609  @Override
610  public Informer reqInformFaultStatus() {
611  return (Informer)super.reqInformFaultStatus();
612  }
613  @Override
614  public Informer reqInformFaultDescription() {
615  return (Informer)super.reqInformFaultDescription();
616  }
617  @Override
618  public Informer reqInformManufacturerCode() {
619  return (Informer)super.reqInformManufacturerCode();
620  }
621  @Override
622  public Informer reqInformBusinessFacilityCode() {
623  return (Informer)super.reqInformBusinessFacilityCode();
624  }
625  @Override
626  public Informer reqInformProductCode() {
627  return (Informer)super.reqInformProductCode();
628  }
629  @Override
630  public Informer reqInformProductionNumber() {
631  return (Informer)super.reqInformProductionNumber();
632  }
633  @Override
634  public Informer reqInformProductionDate() {
635  return (Informer)super.reqInformProductionDate();
636  }
637  @Override
638  public Informer reqInformPowerSavingOperationSetting() {
639  return (Informer)super.reqInformPowerSavingOperationSetting();
640  }
641  @Override
642  public Informer reqInformRemoteControlSetting() {
643  return (Informer)super.reqInformRemoteControlSetting();
644  }
645  @Override
646  public Informer reqInformCurrentTimeSetting() {
647  return (Informer)super.reqInformCurrentTimeSetting();
648  }
649  @Override
650  public Informer reqInformCurrentDateSetting() {
651  return (Informer)super.reqInformCurrentDateSetting();
652  }
653  @Override
654  public Informer reqInformPowerLimitSetting() {
655  return (Informer)super.reqInformPowerLimitSetting();
656  }
657  @Override
658  public Informer reqInformCumulativeOperatingTime() {
659  return (Informer)super.reqInformCumulativeOperatingTime();
660  }
661  @Override
662  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
663  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
664  }
665  @Override
666  public Informer reqInformSetPropertyMap() {
667  return (Informer)super.reqInformSetPropertyMap();
668  }
669  @Override
670  public Informer reqInformGetPropertyMap() {
671  return (Informer)super.reqInformGetPropertyMap();
672  }
673 
696  public Informer reqInformMeasuredIlluminanceValue1() {
697  reqInformProperty(EPC_MEASURED_ILLUMINANCE_VALUE1);
698  return this;
699  }
723  public Informer reqInformMeasuredIlluminanceValue2() {
724  reqInformProperty(EPC_MEASURED_ILLUMINANCE_VALUE2);
725  return this;
726  }
727  }
728 
729  public static class Proxy extends IlluminanceSensor {
730  public Proxy(byte instanceCode) {
731  super();
732  mEchoInstanceCode = instanceCode;
733  }
734  @Override
735  public byte getInstanceCode() {
736  return mEchoInstanceCode;
737  }
738  @Override
739  protected byte[] getOperationStatus() {return null;}
740  @Override
741  protected boolean setInstallationLocation(byte[] edt) {return false;}
742  @Override
743  protected byte[] getInstallationLocation() {return null;}
744  @Override
745  protected byte[] getStandardVersionInformation() {return null;}
746  @Override
747  protected byte[] getFaultStatus() {return null;}
748  @Override
749  protected byte[] getManufacturerCode() {return null;}
750  @Override
751  protected byte[] getMeasuredIlluminanceValue1() {return null;}
752  @Override
753  protected byte[] getMeasuredIlluminanceValue2() {return null;}
754  }
755 
756  public static Setter setG() {
757  return setG((byte)0);
758  }
759 
760  public static Setter setG(byte instanceCode) {
761  return setG(instanceCode, true);
762  }
763 
764  public static Setter setG(boolean responseRequired) {
765  return setG((byte)0, responseRequired);
766  }
767 
768  public static Setter setG(byte instanceCode, boolean responseRequired) {
769  return new Setter(ECHO_CLASS_CODE, instanceCode
770  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
771  }
772 
773  public static Getter getG() {
774  return getG((byte)0);
775  }
776 
777  public static Getter getG(byte instanceCode) {
778  return new Getter(ECHO_CLASS_CODE, instanceCode
780  }
781 
782  public static Informer informG() {
783  return informG((byte)0);
784  }
785 
786  public static Informer informG(byte instanceCode) {
787  return new Informer(ECHO_CLASS_CODE, instanceCode
788  , EchoSocket.MULTICAST_ADDRESS, false);
789  }
790 
791 }
static Setter setG(byte instanceCode, boolean responseRequired)
static Setter setG(boolean responseRequired)
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
synchronized boolean isValidProperty(EchoProperty property)
synchronized boolean setProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53