OpenECHO
 All Classes Namespaces Files Functions Variables
ActivityAmountSensor.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 ActivityAmountSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x002A;
29 
30  public static final byte EPC_ACTIVITY_AMOUNT_LEVEL1 = (byte)0xE0;
31  public static final byte EPC_MAXIMUM_NUMBER_OF_HUMAN_BODY_ID_S = (byte)0xE1;
32  public static final byte EPC_ACTIVITY_AMOUNT_LEVEL2 = (byte)0xE2;
33  public static final byte EPC_HUMAN_BODY_EXISTENCE_INFORMATION = (byte)0xE3;
34 
35  @Override
36  protected void setupPropertyMaps() {
37  super.setupPropertyMaps();
38 
44  }
45 
46  @Override
47  public void onNew() {
48  super.onNew();
49  Echo.getEventListener().onNewActivityAmountSensor(this);
50  }
51 
52  @Override
53  public short getEchoClassCode() {
54  return ECHO_CLASS_CODE;
55  }
56 
81  protected boolean setOperationStatus(byte[] edt) {return false;}
106  protected abstract byte[] getOperationStatus();
131  protected abstract byte[] getActivityAmountLevel1();
156  protected boolean isValidActivityAmountLevel1(byte[] edt) {
157  if(edt == null || !(edt.length <= 128)) return false;
158  return true;
159  }
182  protected byte[] getMaximumNumberOfHumanBodyIdS() {return null;}
205  protected boolean isValidMaximumNumberOfHumanBodyIdS(byte[] edt) {
206  if(edt == null || !(edt.length == 2)) return false;
207  return true;
208  }
231  protected abstract byte[] getActivityAmountLevel2();
254  protected boolean isValidActivityAmountLevel2(byte[] edt) {
255  if(edt == null || !(edt.length == 1)) return false;
256  return true;
257  }
281  protected byte[] getHumanBodyExistenceInformation() {return null;}
305  protected boolean isValidHumanBodyExistenceInformation(byte[] edt) {
306  if(edt == null || !(edt.length == 16)) return false;
307  return true;
308  }
309 
310  @Override
311  protected synchronized boolean setProperty(EchoProperty property) {
312  boolean success = super.setProperty(property);
313  if(success) return success;
314 
315  switch(property.epc) {
316  default : return false;
317  }
318  }
319 
320  @Override
321  protected synchronized byte[] getProperty(byte epc) {
322  byte[] edt = super.getProperty(epc);
323  if(edt != null) return edt;
324 
325  switch(epc) {
330  default : return null;
331  }
332  }
333 
334  @Override
335  protected synchronized boolean isValidProperty(EchoProperty property) {
336  boolean valid = super.isValidProperty(property);
337  if(valid) return valid;
338 
339  switch(property.epc) {
344  default : return false;
345  }
346  }
347 
348  @Override
349  public Setter set() {
350  return set(true);
351  }
352 
353  @Override
354  public Setter set(boolean responseRequired) {
355  return new Setter(getEchoClassCode(), getInstanceCode()
356  , getNode().getAddressStr(), responseRequired);
357  }
358 
359  @Override
360  public Getter get() {
361  return new Getter(getEchoClassCode(), getInstanceCode()
362  , getNode().getAddressStr());
363  }
364 
365  @Override
366  public Informer inform() {
367  return inform(isSelfObject());
368  }
369 
370  @Override
371  protected Informer inform(boolean multicast) {
372  String address;
373  if(multicast) {
375  } else {
376  address = getNode().getAddressStr();
377  }
378  return new Informer(getEchoClassCode(), getInstanceCode()
379  , address, isSelfObject());
380  }
381 
382  public static class Receiver extends DeviceObject.Receiver {
383 
384  @Override
385  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
386  EchoProperty property, boolean success) {
387  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
388  if(ret) return true;
389 
390  switch(property.epc) {
391  default :
392  return false;
393  }
394  }
395 
396  @Override
397  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
398  EchoProperty property, boolean success) {
399  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
400  if(ret) return true;
401 
402  switch(property.epc) {
404  onGetActivityAmountLevel1(eoj, tid, esv, property, success);
405  return true;
407  onGetMaximumNumberOfHumanBodyIdS(eoj, tid, esv, property, success);
408  return true;
410  onGetActivityAmountLevel2(eoj, tid, esv, property, success);
411  return true;
413  onGetHumanBodyExistenceInformation(eoj, tid, esv, property, success);
414  return true;
415  default :
416  return false;
417  }
418  }
419 
444  protected void onGetActivityAmountLevel1(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
467  protected void onGetMaximumNumberOfHumanBodyIdS(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
490  protected void onGetActivityAmountLevel2(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
514  protected void onGetHumanBodyExistenceInformation(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
515  }
516 
517  public static class Setter extends DeviceObject.Setter {
518  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
519  , String dstEchoAddress, boolean responseRequired) {
520  super(dstEchoClassCode, dstEchoInstanceCode
521  , dstEchoAddress, responseRequired);
522  }
523 
524  @Override
525  public Setter reqSetProperty(byte epc, byte[] edt) {
526  return (Setter)super.reqSetProperty(epc, edt);
527  }
528 
529  @Override
530  public Setter reqSetOperationStatus(byte[] edt) {
531  return (Setter)super.reqSetOperationStatus(edt);
532  }
533  @Override
534  public Setter reqSetInstallationLocation(byte[] edt) {
535  return (Setter)super.reqSetInstallationLocation(edt);
536  }
537  @Override
538  public Setter reqSetCurrentLimitSetting(byte[] edt) {
539  return (Setter)super.reqSetCurrentLimitSetting(edt);
540  }
541  @Override
542  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
543  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
544  }
545  @Override
546  public Setter reqSetRemoteControlSetting(byte[] edt) {
547  return (Setter)super.reqSetRemoteControlSetting(edt);
548  }
549  @Override
550  public Setter reqSetCurrentTimeSetting(byte[] edt) {
551  return (Setter)super.reqSetCurrentTimeSetting(edt);
552  }
553  @Override
554  public Setter reqSetCurrentDateSetting(byte[] edt) {
555  return (Setter)super.reqSetCurrentDateSetting(edt);
556  }
557  @Override
558  public Setter reqSetPowerLimitSetting(byte[] edt) {
559  return (Setter)super.reqSetPowerLimitSetting(edt);
560  }
561 
562  }
563 
564  public static class Getter extends DeviceObject.Getter {
565  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
566  , String dstEchoAddress) {
567  super(dstEchoClassCode, dstEchoInstanceCode
568  , dstEchoAddress);
569  }
570 
571  @Override
572  public Getter reqGetProperty(byte epc) {
573  return (Getter)super.reqGetProperty(epc);
574  }
575 
576  @Override
577  public Getter reqGetOperationStatus() {
578  return (Getter)super.reqGetOperationStatus();
579  }
580  @Override
581  public Getter reqGetInstallationLocation() {
582  return (Getter)super.reqGetInstallationLocation();
583  }
584  @Override
585  public Getter reqGetStandardVersionInformation() {
586  return (Getter)super.reqGetStandardVersionInformation();
587  }
588  @Override
589  public Getter reqGetIdentificationNumber() {
590  return (Getter)super.reqGetIdentificationNumber();
591  }
592  @Override
593  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
594  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
595  }
596  @Override
597  public Getter reqGetMeasuredCumulativePowerConsumption() {
598  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
599  }
600  @Override
601  public Getter reqGetManufacturersFaultCode() {
602  return (Getter)super.reqGetManufacturersFaultCode();
603  }
604  @Override
605  public Getter reqGetCurrentLimitSetting() {
606  return (Getter)super.reqGetCurrentLimitSetting();
607  }
608  @Override
609  public Getter reqGetFaultStatus() {
610  return (Getter)super.reqGetFaultStatus();
611  }
612  @Override
613  public Getter reqGetFaultDescription() {
614  return (Getter)super.reqGetFaultDescription();
615  }
616  @Override
617  public Getter reqGetManufacturerCode() {
618  return (Getter)super.reqGetManufacturerCode();
619  }
620  @Override
621  public Getter reqGetBusinessFacilityCode() {
622  return (Getter)super.reqGetBusinessFacilityCode();
623  }
624  @Override
625  public Getter reqGetProductCode() {
626  return (Getter)super.reqGetProductCode();
627  }
628  @Override
629  public Getter reqGetProductionNumber() {
630  return (Getter)super.reqGetProductionNumber();
631  }
632  @Override
633  public Getter reqGetProductionDate() {
634  return (Getter)super.reqGetProductionDate();
635  }
636  @Override
637  public Getter reqGetPowerSavingOperationSetting() {
638  return (Getter)super.reqGetPowerSavingOperationSetting();
639  }
640  @Override
641  public Getter reqGetRemoteControlSetting() {
642  return (Getter)super.reqGetRemoteControlSetting();
643  }
644  @Override
645  public Getter reqGetCurrentTimeSetting() {
646  return (Getter)super.reqGetCurrentTimeSetting();
647  }
648  @Override
649  public Getter reqGetCurrentDateSetting() {
650  return (Getter)super.reqGetCurrentDateSetting();
651  }
652  @Override
653  public Getter reqGetPowerLimitSetting() {
654  return (Getter)super.reqGetPowerLimitSetting();
655  }
656  @Override
657  public Getter reqGetCumulativeOperatingTime() {
658  return (Getter)super.reqGetCumulativeOperatingTime();
659  }
660  @Override
661  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
662  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
663  }
664  @Override
665  public Getter reqGetSetPropertyMap() {
666  return (Getter)super.reqGetSetPropertyMap();
667  }
668  @Override
669  public Getter reqGetGetPropertyMap() {
670  return (Getter)super.reqGetGetPropertyMap();
671  }
672 
697  public Getter reqGetActivityAmountLevel1() {
698  reqGetProperty(EPC_ACTIVITY_AMOUNT_LEVEL1);
699  return this;
700  }
723  public Getter reqGetMaximumNumberOfHumanBodyIdS() {
725  return this;
726  }
749  public Getter reqGetActivityAmountLevel2() {
750  reqGetProperty(EPC_ACTIVITY_AMOUNT_LEVEL2);
751  return this;
752  }
776  public Getter reqGetHumanBodyExistenceInformation() {
777  reqGetProperty(EPC_HUMAN_BODY_EXISTENCE_INFORMATION);
778  return this;
779  }
780  }
781 
782  public static class Informer extends DeviceObject.Informer {
783  public Informer(short echoClassCode, byte echoInstanceCode
784  , String dstEchoAddress, boolean isSelfObject) {
785  super(echoClassCode, echoInstanceCode
786  , dstEchoAddress, isSelfObject);
787  }
788 
789  @Override
790  public Informer reqInformProperty(byte epc) {
791  return (Informer)super.reqInformProperty(epc);
792  }
793  @Override
794  public Informer reqInformOperationStatus() {
795  return (Informer)super.reqInformOperationStatus();
796  }
797  @Override
798  public Informer reqInformInstallationLocation() {
799  return (Informer)super.reqInformInstallationLocation();
800  }
801  @Override
802  public Informer reqInformStandardVersionInformation() {
803  return (Informer)super.reqInformStandardVersionInformation();
804  }
805  @Override
806  public Informer reqInformIdentificationNumber() {
807  return (Informer)super.reqInformIdentificationNumber();
808  }
809  @Override
810  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
811  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
812  }
813  @Override
814  public Informer reqInformMeasuredCumulativePowerConsumption() {
815  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
816  }
817  @Override
818  public Informer reqInformManufacturersFaultCode() {
819  return (Informer)super.reqInformManufacturersFaultCode();
820  }
821  @Override
822  public Informer reqInformCurrentLimitSetting() {
823  return (Informer)super.reqInformCurrentLimitSetting();
824  }
825  @Override
826  public Informer reqInformFaultStatus() {
827  return (Informer)super.reqInformFaultStatus();
828  }
829  @Override
830  public Informer reqInformFaultDescription() {
831  return (Informer)super.reqInformFaultDescription();
832  }
833  @Override
834  public Informer reqInformManufacturerCode() {
835  return (Informer)super.reqInformManufacturerCode();
836  }
837  @Override
838  public Informer reqInformBusinessFacilityCode() {
839  return (Informer)super.reqInformBusinessFacilityCode();
840  }
841  @Override
842  public Informer reqInformProductCode() {
843  return (Informer)super.reqInformProductCode();
844  }
845  @Override
846  public Informer reqInformProductionNumber() {
847  return (Informer)super.reqInformProductionNumber();
848  }
849  @Override
850  public Informer reqInformProductionDate() {
851  return (Informer)super.reqInformProductionDate();
852  }
853  @Override
854  public Informer reqInformPowerSavingOperationSetting() {
855  return (Informer)super.reqInformPowerSavingOperationSetting();
856  }
857  @Override
858  public Informer reqInformRemoteControlSetting() {
859  return (Informer)super.reqInformRemoteControlSetting();
860  }
861  @Override
862  public Informer reqInformCurrentTimeSetting() {
863  return (Informer)super.reqInformCurrentTimeSetting();
864  }
865  @Override
866  public Informer reqInformCurrentDateSetting() {
867  return (Informer)super.reqInformCurrentDateSetting();
868  }
869  @Override
870  public Informer reqInformPowerLimitSetting() {
871  return (Informer)super.reqInformPowerLimitSetting();
872  }
873  @Override
874  public Informer reqInformCumulativeOperatingTime() {
875  return (Informer)super.reqInformCumulativeOperatingTime();
876  }
877  @Override
878  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
879  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
880  }
881  @Override
882  public Informer reqInformSetPropertyMap() {
883  return (Informer)super.reqInformSetPropertyMap();
884  }
885  @Override
886  public Informer reqInformGetPropertyMap() {
887  return (Informer)super.reqInformGetPropertyMap();
888  }
889 
914  public Informer reqInformActivityAmountLevel1() {
915  reqInformProperty(EPC_ACTIVITY_AMOUNT_LEVEL1);
916  return this;
917  }
940  public Informer reqInformMaximumNumberOfHumanBodyIdS() {
941  reqInformProperty(EPC_MAXIMUM_NUMBER_OF_HUMAN_BODY_ID_S);
942  return this;
943  }
966  public Informer reqInformActivityAmountLevel2() {
967  reqInformProperty(EPC_ACTIVITY_AMOUNT_LEVEL2);
968  return this;
969  }
993  public Informer reqInformHumanBodyExistenceInformation() {
994  reqInformProperty(EPC_HUMAN_BODY_EXISTENCE_INFORMATION);
995  return this;
996  }
997  }
998 
999  public static class Proxy extends ActivityAmountSensor {
1000  public Proxy(byte instanceCode) {
1001  super();
1002  mEchoInstanceCode = instanceCode;
1003  }
1004  @Override
1005  public byte getInstanceCode() {
1006  return mEchoInstanceCode;
1007  }
1008  @Override
1009  protected byte[] getOperationStatus() {return null;}
1010  @Override
1011  protected boolean setInstallationLocation(byte[] edt) {return false;}
1012  @Override
1013  protected byte[] getInstallationLocation() {return null;}
1014  @Override
1015  protected byte[] getStandardVersionInformation() {return null;}
1016  @Override
1017  protected byte[] getFaultStatus() {return null;}
1018  @Override
1019  protected byte[] getManufacturerCode() {return null;}
1020  @Override
1021  protected byte[] getActivityAmountLevel1() {return null;}
1022  @Override
1023  protected byte[] getActivityAmountLevel2() {return null;}
1024  }
1025 
1026  public static Setter setG() {
1027  return setG((byte)0);
1028  }
1029 
1030  public static Setter setG(byte instanceCode) {
1031  return setG(instanceCode, true);
1032  }
1033 
1034  public static Setter setG(boolean responseRequired) {
1035  return setG((byte)0, responseRequired);
1036  }
1037 
1038  public static Setter setG(byte instanceCode, boolean responseRequired) {
1039  return new Setter(ECHO_CLASS_CODE, instanceCode
1040  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
1041  }
1042 
1043  public static Getter getG() {
1044  return getG((byte)0);
1045  }
1046 
1047  public static Getter getG(byte instanceCode) {
1048  return new Getter(ECHO_CLASS_CODE, instanceCode
1050  }
1051 
1052  public static Informer informG() {
1053  return informG((byte)0);
1054  }
1055 
1056  public static Informer informG(byte instanceCode) {
1057  return new Informer(ECHO_CLASS_CODE, instanceCode
1058  , EchoSocket.MULTICAST_ADDRESS, false);
1059  }
1060 
1061 }
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 setProperty(EchoProperty property)
static Setter setG(byte instanceCode, boolean responseRequired)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
synchronized boolean isValidProperty(EchoProperty property)