OpenECHO
 All Classes Namespaces Files Functions Variables
CondensationSensor.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 CondensationSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x000A;
29 
30  public static final byte EPC_DETECTION_THRESHOLD_LEVEL = (byte)0xB0;
31  public static final byte EPC_CONDENSATION_DETECTION_STATUS = (byte)0xB1;
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().onNewCondensationSensor(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 boolean setDetectionThresholdLevel(byte[] edt) {return false;}
150  protected byte[] getDetectionThresholdLevel() {return null;}
173  protected boolean isValidDetectionThresholdLevel(byte[] edt) {
174  if(edt == null || !(edt.length == 1)) return false;
175  return true;
176  }
202  protected abstract byte[] getCondensationDetectionStatus();
228  protected boolean isValidCondensationDetectionStatus(byte[] edt) {
229  if(edt == null || !(edt.length == 1)) return false;
230  return true;
231  }
232 
233  @Override
234  protected synchronized boolean setProperty(EchoProperty property) {
235  boolean success = super.setProperty(property);
236  if(success) return success;
237 
238  switch(property.epc) {
240  default : return false;
241  }
242  }
243 
244  @Override
245  protected synchronized byte[] getProperty(byte epc) {
246  byte[] edt = super.getProperty(epc);
247  if(edt != null) return edt;
248 
249  switch(epc) {
252  default : return null;
253  }
254  }
255 
256  @Override
257  protected synchronized boolean isValidProperty(EchoProperty property) {
258  boolean valid = super.isValidProperty(property);
259  if(valid) return valid;
260 
261  switch(property.epc) {
264  default : return false;
265  }
266  }
267 
268  @Override
269  public Setter set() {
270  return set(true);
271  }
272 
273  @Override
274  public Setter set(boolean responseRequired) {
275  return new Setter(getEchoClassCode(), getInstanceCode()
276  , getNode().getAddressStr(), responseRequired);
277  }
278 
279  @Override
280  public Getter get() {
281  return new Getter(getEchoClassCode(), getInstanceCode()
282  , getNode().getAddressStr());
283  }
284 
285  @Override
286  public Informer inform() {
287  return inform(isSelfObject());
288  }
289 
290  @Override
291  protected Informer inform(boolean multicast) {
292  String address;
293  if(multicast) {
295  } else {
296  address = getNode().getAddressStr();
297  }
298  return new Informer(getEchoClassCode(), getInstanceCode()
299  , address, isSelfObject());
300  }
301 
302  public static class Receiver extends DeviceObject.Receiver {
303 
304  @Override
305  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
306  EchoProperty property, boolean success) {
307  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
308  if(ret) return true;
309 
310  switch(property.epc) {
312  onSetDetectionThresholdLevel(eoj, tid, esv, property, success);
313  return true;
314  default :
315  return false;
316  }
317  }
318 
319  @Override
320  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
321  EchoProperty property, boolean success) {
322  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
323  if(ret) return true;
324 
325  switch(property.epc) {
327  onGetDetectionThresholdLevel(eoj, tid, esv, property, success);
328  return true;
330  onGetCondensationDetectionStatus(eoj, tid, esv, property, success);
331  return true;
332  default :
333  return false;
334  }
335  }
336 
359  protected void onSetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
382  protected void onGetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
408  protected void onGetCondensationDetectionStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
409  }
410 
411  public static class Setter extends DeviceObject.Setter {
412  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
413  , String dstEchoAddress, boolean responseRequired) {
414  super(dstEchoClassCode, dstEchoInstanceCode
415  , dstEchoAddress, responseRequired);
416  }
417 
418  @Override
419  public Setter reqSetProperty(byte epc, byte[] edt) {
420  return (Setter)super.reqSetProperty(epc, edt);
421  }
422 
423  @Override
424  public Setter reqSetOperationStatus(byte[] edt) {
425  return (Setter)super.reqSetOperationStatus(edt);
426  }
427  @Override
428  public Setter reqSetInstallationLocation(byte[] edt) {
429  return (Setter)super.reqSetInstallationLocation(edt);
430  }
431  @Override
432  public Setter reqSetCurrentLimitSetting(byte[] edt) {
433  return (Setter)super.reqSetCurrentLimitSetting(edt);
434  }
435  @Override
436  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
437  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
438  }
439  @Override
440  public Setter reqSetRemoteControlSetting(byte[] edt) {
441  return (Setter)super.reqSetRemoteControlSetting(edt);
442  }
443  @Override
444  public Setter reqSetCurrentTimeSetting(byte[] edt) {
445  return (Setter)super.reqSetCurrentTimeSetting(edt);
446  }
447  @Override
448  public Setter reqSetCurrentDateSetting(byte[] edt) {
449  return (Setter)super.reqSetCurrentDateSetting(edt);
450  }
451  @Override
452  public Setter reqSetPowerLimitSetting(byte[] edt) {
453  return (Setter)super.reqSetPowerLimitSetting(edt);
454  }
455 
478  public Setter reqSetDetectionThresholdLevel(byte[] edt) {
479  reqSetProperty(EPC_DETECTION_THRESHOLD_LEVEL, edt);
480  return this;
481  }
482  }
483 
484  public static class Getter extends DeviceObject.Getter {
485  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
486  , String dstEchoAddress) {
487  super(dstEchoClassCode, dstEchoInstanceCode
488  , dstEchoAddress);
489  }
490 
491  @Override
492  public Getter reqGetProperty(byte epc) {
493  return (Getter)super.reqGetProperty(epc);
494  }
495 
496  @Override
497  public Getter reqGetOperationStatus() {
498  return (Getter)super.reqGetOperationStatus();
499  }
500  @Override
501  public Getter reqGetInstallationLocation() {
502  return (Getter)super.reqGetInstallationLocation();
503  }
504  @Override
505  public Getter reqGetStandardVersionInformation() {
506  return (Getter)super.reqGetStandardVersionInformation();
507  }
508  @Override
509  public Getter reqGetIdentificationNumber() {
510  return (Getter)super.reqGetIdentificationNumber();
511  }
512  @Override
513  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
514  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
515  }
516  @Override
517  public Getter reqGetMeasuredCumulativePowerConsumption() {
518  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
519  }
520  @Override
521  public Getter reqGetManufacturersFaultCode() {
522  return (Getter)super.reqGetManufacturersFaultCode();
523  }
524  @Override
525  public Getter reqGetCurrentLimitSetting() {
526  return (Getter)super.reqGetCurrentLimitSetting();
527  }
528  @Override
529  public Getter reqGetFaultStatus() {
530  return (Getter)super.reqGetFaultStatus();
531  }
532  @Override
533  public Getter reqGetFaultDescription() {
534  return (Getter)super.reqGetFaultDescription();
535  }
536  @Override
537  public Getter reqGetManufacturerCode() {
538  return (Getter)super.reqGetManufacturerCode();
539  }
540  @Override
541  public Getter reqGetBusinessFacilityCode() {
542  return (Getter)super.reqGetBusinessFacilityCode();
543  }
544  @Override
545  public Getter reqGetProductCode() {
546  return (Getter)super.reqGetProductCode();
547  }
548  @Override
549  public Getter reqGetProductionNumber() {
550  return (Getter)super.reqGetProductionNumber();
551  }
552  @Override
553  public Getter reqGetProductionDate() {
554  return (Getter)super.reqGetProductionDate();
555  }
556  @Override
557  public Getter reqGetPowerSavingOperationSetting() {
558  return (Getter)super.reqGetPowerSavingOperationSetting();
559  }
560  @Override
561  public Getter reqGetRemoteControlSetting() {
562  return (Getter)super.reqGetRemoteControlSetting();
563  }
564  @Override
565  public Getter reqGetCurrentTimeSetting() {
566  return (Getter)super.reqGetCurrentTimeSetting();
567  }
568  @Override
569  public Getter reqGetCurrentDateSetting() {
570  return (Getter)super.reqGetCurrentDateSetting();
571  }
572  @Override
573  public Getter reqGetPowerLimitSetting() {
574  return (Getter)super.reqGetPowerLimitSetting();
575  }
576  @Override
577  public Getter reqGetCumulativeOperatingTime() {
578  return (Getter)super.reqGetCumulativeOperatingTime();
579  }
580  @Override
581  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
582  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
583  }
584  @Override
585  public Getter reqGetSetPropertyMap() {
586  return (Getter)super.reqGetSetPropertyMap();
587  }
588  @Override
589  public Getter reqGetGetPropertyMap() {
590  return (Getter)super.reqGetGetPropertyMap();
591  }
592 
615  public Getter reqGetDetectionThresholdLevel() {
616  reqGetProperty(EPC_DETECTION_THRESHOLD_LEVEL);
617  return this;
618  }
644  public Getter reqGetCondensationDetectionStatus() {
645  reqGetProperty(EPC_CONDENSATION_DETECTION_STATUS);
646  return this;
647  }
648  }
649 
650  public static class Informer extends DeviceObject.Informer {
651  public Informer(short echoClassCode, byte echoInstanceCode
652  , String dstEchoAddress, boolean isSelfObject) {
653  super(echoClassCode, echoInstanceCode
654  , dstEchoAddress, isSelfObject);
655  }
656 
657  @Override
658  public Informer reqInformProperty(byte epc) {
659  return (Informer)super.reqInformProperty(epc);
660  }
661  @Override
662  public Informer reqInformOperationStatus() {
663  return (Informer)super.reqInformOperationStatus();
664  }
665  @Override
666  public Informer reqInformInstallationLocation() {
667  return (Informer)super.reqInformInstallationLocation();
668  }
669  @Override
670  public Informer reqInformStandardVersionInformation() {
671  return (Informer)super.reqInformStandardVersionInformation();
672  }
673  @Override
674  public Informer reqInformIdentificationNumber() {
675  return (Informer)super.reqInformIdentificationNumber();
676  }
677  @Override
678  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
679  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
680  }
681  @Override
682  public Informer reqInformMeasuredCumulativePowerConsumption() {
683  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
684  }
685  @Override
686  public Informer reqInformManufacturersFaultCode() {
687  return (Informer)super.reqInformManufacturersFaultCode();
688  }
689  @Override
690  public Informer reqInformCurrentLimitSetting() {
691  return (Informer)super.reqInformCurrentLimitSetting();
692  }
693  @Override
694  public Informer reqInformFaultStatus() {
695  return (Informer)super.reqInformFaultStatus();
696  }
697  @Override
698  public Informer reqInformFaultDescription() {
699  return (Informer)super.reqInformFaultDescription();
700  }
701  @Override
702  public Informer reqInformManufacturerCode() {
703  return (Informer)super.reqInformManufacturerCode();
704  }
705  @Override
706  public Informer reqInformBusinessFacilityCode() {
707  return (Informer)super.reqInformBusinessFacilityCode();
708  }
709  @Override
710  public Informer reqInformProductCode() {
711  return (Informer)super.reqInformProductCode();
712  }
713  @Override
714  public Informer reqInformProductionNumber() {
715  return (Informer)super.reqInformProductionNumber();
716  }
717  @Override
718  public Informer reqInformProductionDate() {
719  return (Informer)super.reqInformProductionDate();
720  }
721  @Override
722  public Informer reqInformPowerSavingOperationSetting() {
723  return (Informer)super.reqInformPowerSavingOperationSetting();
724  }
725  @Override
726  public Informer reqInformRemoteControlSetting() {
727  return (Informer)super.reqInformRemoteControlSetting();
728  }
729  @Override
730  public Informer reqInformCurrentTimeSetting() {
731  return (Informer)super.reqInformCurrentTimeSetting();
732  }
733  @Override
734  public Informer reqInformCurrentDateSetting() {
735  return (Informer)super.reqInformCurrentDateSetting();
736  }
737  @Override
738  public Informer reqInformPowerLimitSetting() {
739  return (Informer)super.reqInformPowerLimitSetting();
740  }
741  @Override
742  public Informer reqInformCumulativeOperatingTime() {
743  return (Informer)super.reqInformCumulativeOperatingTime();
744  }
745  @Override
746  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
747  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
748  }
749  @Override
750  public Informer reqInformSetPropertyMap() {
751  return (Informer)super.reqInformSetPropertyMap();
752  }
753  @Override
754  public Informer reqInformGetPropertyMap() {
755  return (Informer)super.reqInformGetPropertyMap();
756  }
757 
780  public Informer reqInformDetectionThresholdLevel() {
781  reqInformProperty(EPC_DETECTION_THRESHOLD_LEVEL);
782  return this;
783  }
809  public Informer reqInformCondensationDetectionStatus() {
810  reqInformProperty(EPC_CONDENSATION_DETECTION_STATUS);
811  return this;
812  }
813  }
814 
815  public static class Proxy extends CondensationSensor {
816  public Proxy(byte instanceCode) {
817  super();
818  mEchoInstanceCode = instanceCode;
819  }
820  @Override
821  public byte getInstanceCode() {
822  return mEchoInstanceCode;
823  }
824  @Override
825  protected byte[] getOperationStatus() {return null;}
826  @Override
827  protected boolean setInstallationLocation(byte[] edt) {return false;}
828  @Override
829  protected byte[] getInstallationLocation() {return null;}
830  @Override
831  protected byte[] getStandardVersionInformation() {return null;}
832  @Override
833  protected byte[] getFaultStatus() {return null;}
834  @Override
835  protected byte[] getManufacturerCode() {return null;}
836  @Override
837  protected byte[] getCondensationDetectionStatus() {return null;}
838  }
839 
840  public static Setter setG() {
841  return setG((byte)0);
842  }
843 
844  public static Setter setG(byte instanceCode) {
845  return setG(instanceCode, true);
846  }
847 
848  public static Setter setG(boolean responseRequired) {
849  return setG((byte)0, responseRequired);
850  }
851 
852  public static Setter setG(byte instanceCode, boolean responseRequired) {
853  return new Setter(ECHO_CLASS_CODE, instanceCode
854  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
855  }
856 
857  public static Getter getG() {
858  return getG((byte)0);
859  }
860 
861  public static Getter getG(byte instanceCode) {
862  return new Getter(ECHO_CLASS_CODE, instanceCode
864  }
865 
866  public static Informer informG() {
867  return informG((byte)0);
868  }
869 
870  public static Informer informG(byte instanceCode) {
871  return new Informer(ECHO_CLASS_CODE, instanceCode
872  , EchoSocket.MULTICAST_ADDRESS, false);
873  }
874 
875 }
static Setter setG(byte instanceCode, 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