OpenECHO
 All Classes Namespaces Files Functions Variables
BathWaterLevelSensor.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 BathWaterLevelSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0015;
29 
30  public static final byte EPC_BATH_WATER_LEVEL_OVER_DETECTION_THRESHOLD_LEVEL = (byte)0xB0;
31  public static final byte EPC_BATH_WATER_LEVEL_OVER_DETECTION_STATUS = (byte)0xB1;
32  public static final byte EPC_MEASURED_VALUE_OF_BATH_WATER_LEVEL = (byte)0xE0;
33 
34  @Override
35  protected void setupPropertyMaps() {
36  super.setupPropertyMaps();
37 
43  }
44 
45  @Override
46  public void onNew() {
47  super.onNew();
48  Echo.getEventListener().onNewBathWaterLevelSensor(this);
49  }
50 
51  @Override
52  public short getEchoClassCode() {
53  return ECHO_CLASS_CODE;
54  }
55 
80  protected boolean setOperationStatus(byte[] edt) {return false;}
105  protected abstract byte[] getOperationStatus();
128  protected byte[] getBathWaterLevelOverDetectionThresholdLevel() {return null;}
151  protected boolean isValidBathWaterLevelOverDetectionThresholdLevel(byte[] edt) {
152  if(edt == null || !(edt.length == 1)) return false;
153  return true;
154  }
181  protected byte[] getBathWaterLevelOverDetectionStatus() {return null;}
208  protected boolean isValidBathWaterLevelOverDetectionStatus(byte[] edt) {
209  if(edt == null || !(edt.length == 1)) return false;
210  return true;
211  }
234  protected abstract byte[] getMeasuredValueOfBathWaterLevel();
257  protected boolean isValidMeasuredValueOfBathWaterLevel(byte[] edt) {
258  if(edt == null || !(edt.length == 1)) return false;
259  return true;
260  }
261 
262  @Override
263  protected synchronized boolean setProperty(EchoProperty property) {
264  boolean success = super.setProperty(property);
265  if(success) return success;
266 
267  switch(property.epc) {
268  default : return false;
269  }
270  }
271 
272  @Override
273  protected synchronized byte[] getProperty(byte epc) {
274  byte[] edt = super.getProperty(epc);
275  if(edt != null) return edt;
276 
277  switch(epc) {
281  default : return null;
282  }
283  }
284 
285  @Override
286  protected synchronized boolean isValidProperty(EchoProperty property) {
287  boolean valid = super.isValidProperty(property);
288  if(valid) return valid;
289 
290  switch(property.epc) {
294  default : return false;
295  }
296  }
297 
298  @Override
299  public Setter set() {
300  return set(true);
301  }
302 
303  @Override
304  public Setter set(boolean responseRequired) {
305  return new Setter(getEchoClassCode(), getInstanceCode()
306  , getNode().getAddressStr(), responseRequired);
307  }
308 
309  @Override
310  public Getter get() {
311  return new Getter(getEchoClassCode(), getInstanceCode()
312  , getNode().getAddressStr());
313  }
314 
315  @Override
316  public Informer inform() {
317  return inform(isSelfObject());
318  }
319 
320  @Override
321  protected Informer inform(boolean multicast) {
322  String address;
323  if(multicast) {
325  } else {
326  address = getNode().getAddressStr();
327  }
328  return new Informer(getEchoClassCode(), getInstanceCode()
329  , address, isSelfObject());
330  }
331 
332  public static class Receiver extends DeviceObject.Receiver {
333 
334  @Override
335  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
336  EchoProperty property, boolean success) {
337  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
338  if(ret) return true;
339 
340  switch(property.epc) {
341  default :
342  return false;
343  }
344  }
345 
346  @Override
347  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
348  EchoProperty property, boolean success) {
349  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
350  if(ret) return true;
351 
352  switch(property.epc) {
354  onGetBathWaterLevelOverDetectionThresholdLevel(eoj, tid, esv, property, success);
355  return true;
357  onGetBathWaterLevelOverDetectionStatus(eoj, tid, esv, property, success);
358  return true;
360  onGetMeasuredValueOfBathWaterLevel(eoj, tid, esv, property, success);
361  return true;
362  default :
363  return false;
364  }
365  }
366 
389  protected void onGetBathWaterLevelOverDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
416  protected void onGetBathWaterLevelOverDetectionStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
439  protected void onGetMeasuredValueOfBathWaterLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
440  }
441 
442  public static class Setter extends DeviceObject.Setter {
443  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
444  , String dstEchoAddress, boolean responseRequired) {
445  super(dstEchoClassCode, dstEchoInstanceCode
446  , dstEchoAddress, responseRequired);
447  }
448 
449  @Override
450  public Setter reqSetProperty(byte epc, byte[] edt) {
451  return (Setter)super.reqSetProperty(epc, edt);
452  }
453 
454  @Override
455  public Setter reqSetOperationStatus(byte[] edt) {
456  return (Setter)super.reqSetOperationStatus(edt);
457  }
458  @Override
459  public Setter reqSetInstallationLocation(byte[] edt) {
460  return (Setter)super.reqSetInstallationLocation(edt);
461  }
462  @Override
463  public Setter reqSetCurrentLimitSetting(byte[] edt) {
464  return (Setter)super.reqSetCurrentLimitSetting(edt);
465  }
466  @Override
467  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
468  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
469  }
470  @Override
471  public Setter reqSetRemoteControlSetting(byte[] edt) {
472  return (Setter)super.reqSetRemoteControlSetting(edt);
473  }
474  @Override
475  public Setter reqSetCurrentTimeSetting(byte[] edt) {
476  return (Setter)super.reqSetCurrentTimeSetting(edt);
477  }
478  @Override
479  public Setter reqSetCurrentDateSetting(byte[] edt) {
480  return (Setter)super.reqSetCurrentDateSetting(edt);
481  }
482  @Override
483  public Setter reqSetPowerLimitSetting(byte[] edt) {
484  return (Setter)super.reqSetPowerLimitSetting(edt);
485  }
486 
487  }
488 
489  public static class Getter extends DeviceObject.Getter {
490  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
491  , String dstEchoAddress) {
492  super(dstEchoClassCode, dstEchoInstanceCode
493  , dstEchoAddress);
494  }
495 
496  @Override
497  public Getter reqGetProperty(byte epc) {
498  return (Getter)super.reqGetProperty(epc);
499  }
500 
501  @Override
502  public Getter reqGetOperationStatus() {
503  return (Getter)super.reqGetOperationStatus();
504  }
505  @Override
506  public Getter reqGetInstallationLocation() {
507  return (Getter)super.reqGetInstallationLocation();
508  }
509  @Override
510  public Getter reqGetStandardVersionInformation() {
511  return (Getter)super.reqGetStandardVersionInformation();
512  }
513  @Override
514  public Getter reqGetIdentificationNumber() {
515  return (Getter)super.reqGetIdentificationNumber();
516  }
517  @Override
518  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
519  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
520  }
521  @Override
522  public Getter reqGetMeasuredCumulativePowerConsumption() {
523  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
524  }
525  @Override
526  public Getter reqGetManufacturersFaultCode() {
527  return (Getter)super.reqGetManufacturersFaultCode();
528  }
529  @Override
530  public Getter reqGetCurrentLimitSetting() {
531  return (Getter)super.reqGetCurrentLimitSetting();
532  }
533  @Override
534  public Getter reqGetFaultStatus() {
535  return (Getter)super.reqGetFaultStatus();
536  }
537  @Override
538  public Getter reqGetFaultDescription() {
539  return (Getter)super.reqGetFaultDescription();
540  }
541  @Override
542  public Getter reqGetManufacturerCode() {
543  return (Getter)super.reqGetManufacturerCode();
544  }
545  @Override
546  public Getter reqGetBusinessFacilityCode() {
547  return (Getter)super.reqGetBusinessFacilityCode();
548  }
549  @Override
550  public Getter reqGetProductCode() {
551  return (Getter)super.reqGetProductCode();
552  }
553  @Override
554  public Getter reqGetProductionNumber() {
555  return (Getter)super.reqGetProductionNumber();
556  }
557  @Override
558  public Getter reqGetProductionDate() {
559  return (Getter)super.reqGetProductionDate();
560  }
561  @Override
562  public Getter reqGetPowerSavingOperationSetting() {
563  return (Getter)super.reqGetPowerSavingOperationSetting();
564  }
565  @Override
566  public Getter reqGetRemoteControlSetting() {
567  return (Getter)super.reqGetRemoteControlSetting();
568  }
569  @Override
570  public Getter reqGetCurrentTimeSetting() {
571  return (Getter)super.reqGetCurrentTimeSetting();
572  }
573  @Override
574  public Getter reqGetCurrentDateSetting() {
575  return (Getter)super.reqGetCurrentDateSetting();
576  }
577  @Override
578  public Getter reqGetPowerLimitSetting() {
579  return (Getter)super.reqGetPowerLimitSetting();
580  }
581  @Override
582  public Getter reqGetCumulativeOperatingTime() {
583  return (Getter)super.reqGetCumulativeOperatingTime();
584  }
585  @Override
586  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
587  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
588  }
589  @Override
590  public Getter reqGetSetPropertyMap() {
591  return (Getter)super.reqGetSetPropertyMap();
592  }
593  @Override
594  public Getter reqGetGetPropertyMap() {
595  return (Getter)super.reqGetGetPropertyMap();
596  }
597 
620  public Getter reqGetBathWaterLevelOverDetectionThresholdLevel() {
622  return this;
623  }
650  public Getter reqGetBathWaterLevelOverDetectionStatus() {
652  return this;
653  }
676  public Getter reqGetMeasuredValueOfBathWaterLevel() {
678  return this;
679  }
680  }
681 
682  public static class Informer extends DeviceObject.Informer {
683  public Informer(short echoClassCode, byte echoInstanceCode
684  , String dstEchoAddress, boolean isSelfObject) {
685  super(echoClassCode, echoInstanceCode
686  , dstEchoAddress, isSelfObject);
687  }
688 
689  @Override
690  public Informer reqInformProperty(byte epc) {
691  return (Informer)super.reqInformProperty(epc);
692  }
693  @Override
694  public Informer reqInformOperationStatus() {
695  return (Informer)super.reqInformOperationStatus();
696  }
697  @Override
698  public Informer reqInformInstallationLocation() {
699  return (Informer)super.reqInformInstallationLocation();
700  }
701  @Override
702  public Informer reqInformStandardVersionInformation() {
703  return (Informer)super.reqInformStandardVersionInformation();
704  }
705  @Override
706  public Informer reqInformIdentificationNumber() {
707  return (Informer)super.reqInformIdentificationNumber();
708  }
709  @Override
710  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
711  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
712  }
713  @Override
714  public Informer reqInformMeasuredCumulativePowerConsumption() {
715  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
716  }
717  @Override
718  public Informer reqInformManufacturersFaultCode() {
719  return (Informer)super.reqInformManufacturersFaultCode();
720  }
721  @Override
722  public Informer reqInformCurrentLimitSetting() {
723  return (Informer)super.reqInformCurrentLimitSetting();
724  }
725  @Override
726  public Informer reqInformFaultStatus() {
727  return (Informer)super.reqInformFaultStatus();
728  }
729  @Override
730  public Informer reqInformFaultDescription() {
731  return (Informer)super.reqInformFaultDescription();
732  }
733  @Override
734  public Informer reqInformManufacturerCode() {
735  return (Informer)super.reqInformManufacturerCode();
736  }
737  @Override
738  public Informer reqInformBusinessFacilityCode() {
739  return (Informer)super.reqInformBusinessFacilityCode();
740  }
741  @Override
742  public Informer reqInformProductCode() {
743  return (Informer)super.reqInformProductCode();
744  }
745  @Override
746  public Informer reqInformProductionNumber() {
747  return (Informer)super.reqInformProductionNumber();
748  }
749  @Override
750  public Informer reqInformProductionDate() {
751  return (Informer)super.reqInformProductionDate();
752  }
753  @Override
754  public Informer reqInformPowerSavingOperationSetting() {
755  return (Informer)super.reqInformPowerSavingOperationSetting();
756  }
757  @Override
758  public Informer reqInformRemoteControlSetting() {
759  return (Informer)super.reqInformRemoteControlSetting();
760  }
761  @Override
762  public Informer reqInformCurrentTimeSetting() {
763  return (Informer)super.reqInformCurrentTimeSetting();
764  }
765  @Override
766  public Informer reqInformCurrentDateSetting() {
767  return (Informer)super.reqInformCurrentDateSetting();
768  }
769  @Override
770  public Informer reqInformPowerLimitSetting() {
771  return (Informer)super.reqInformPowerLimitSetting();
772  }
773  @Override
774  public Informer reqInformCumulativeOperatingTime() {
775  return (Informer)super.reqInformCumulativeOperatingTime();
776  }
777  @Override
778  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
779  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
780  }
781  @Override
782  public Informer reqInformSetPropertyMap() {
783  return (Informer)super.reqInformSetPropertyMap();
784  }
785  @Override
786  public Informer reqInformGetPropertyMap() {
787  return (Informer)super.reqInformGetPropertyMap();
788  }
789 
812  public Informer reqInformBathWaterLevelOverDetectionThresholdLevel() {
814  return this;
815  }
842  public Informer reqInformBathWaterLevelOverDetectionStatus() {
844  return this;
845  }
868  public Informer reqInformMeasuredValueOfBathWaterLevel() {
869  reqInformProperty(EPC_MEASURED_VALUE_OF_BATH_WATER_LEVEL);
870  return this;
871  }
872  }
873 
874  public static class Proxy extends BathWaterLevelSensor {
875  public Proxy(byte instanceCode) {
876  super();
877  mEchoInstanceCode = instanceCode;
878  }
879  @Override
880  public byte getInstanceCode() {
881  return mEchoInstanceCode;
882  }
883  @Override
884  protected byte[] getOperationStatus() {return null;}
885  @Override
886  protected boolean setInstallationLocation(byte[] edt) {return false;}
887  @Override
888  protected byte[] getInstallationLocation() {return null;}
889  @Override
890  protected byte[] getStandardVersionInformation() {return null;}
891  @Override
892  protected byte[] getFaultStatus() {return null;}
893  @Override
894  protected byte[] getManufacturerCode() {return null;}
895  @Override
896  protected byte[] getMeasuredValueOfBathWaterLevel() {return null;}
897  }
898 
899  public static Setter setG() {
900  return setG((byte)0);
901  }
902 
903  public static Setter setG(byte instanceCode) {
904  return setG(instanceCode, true);
905  }
906 
907  public static Setter setG(boolean responseRequired) {
908  return setG((byte)0, responseRequired);
909  }
910 
911  public static Setter setG(byte instanceCode, boolean responseRequired) {
912  return new Setter(ECHO_CLASS_CODE, instanceCode
913  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
914  }
915 
916  public static Getter getG() {
917  return getG((byte)0);
918  }
919 
920  public static Getter getG(byte instanceCode) {
921  return new Getter(ECHO_CLASS_CODE, instanceCode
923  }
924 
925  public static Informer informG() {
926  return informG((byte)0);
927  }
928 
929  public static Informer informG(byte instanceCode) {
930  return new Informer(ECHO_CLASS_CODE, instanceCode
931  , EchoSocket.MULTICAST_ADDRESS, false);
932  }
933 
934 }
synchronized boolean setProperty(EchoProperty property)
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
static Setter setG(byte instanceCode, boolean responseRequired)
synchronized boolean isValidProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53