OpenECHO
 All Classes Namespaces Files Functions Variables
FirstAidSensor.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 FirstAidSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0004;
29 
30  public static final byte EPC_DETECTION_THRESHOLD_LEVEL = (byte)0xB0;
31  public static final byte EPC_FIRST_AID_OCCURRENCE_STATUS = (byte)0xB1;
32  public static final byte EPC_FIRST_AID_OCCURRENCE_STATUS_RESETTING = (byte)0xBF;
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().onNewFirstAidSensor(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 boolean setDetectionThresholdLevel(byte[] edt) {return false;}
151  protected byte[] getDetectionThresholdLevel() {return null;}
174  protected boolean isValidDetectionThresholdLevel(byte[] edt) {
175  if(edt == null || !(edt.length == 1)) return false;
176  return true;
177  }
204  protected abstract byte[] getFirstAidOccurrenceStatus();
231  protected boolean isValidFirstAidOccurrenceStatus(byte[] edt) {
232  if(edt == null || !(edt.length == 1)) return false;
233  return true;
234  }
257  protected boolean setFirstAidOccurrenceStatusResetting(byte[] edt) {return false;}
280  protected boolean isValidFirstAidOccurrenceStatusResetting(byte[] edt) {
281  if(edt == null || !(edt.length == 1)) return false;
282  return true;
283  }
284 
285  @Override
286  protected synchronized boolean setProperty(EchoProperty property) {
287  boolean success = super.setProperty(property);
288  if(success) return success;
289 
290  switch(property.epc) {
293  default : return false;
294  }
295  }
296 
297  @Override
298  protected synchronized byte[] getProperty(byte epc) {
299  byte[] edt = super.getProperty(epc);
300  if(edt != null) return edt;
301 
302  switch(epc) {
305  default : return null;
306  }
307  }
308 
309  @Override
310  protected synchronized boolean isValidProperty(EchoProperty property) {
311  boolean valid = super.isValidProperty(property);
312  if(valid) return valid;
313 
314  switch(property.epc) {
318  default : return false;
319  }
320  }
321 
322  @Override
323  public Setter set() {
324  return set(true);
325  }
326 
327  @Override
328  public Setter set(boolean responseRequired) {
329  return new Setter(getEchoClassCode(), getInstanceCode()
330  , getNode().getAddressStr(), responseRequired);
331  }
332 
333  @Override
334  public Getter get() {
335  return new Getter(getEchoClassCode(), getInstanceCode()
336  , getNode().getAddressStr());
337  }
338 
339  @Override
340  public Informer inform() {
341  return inform(isSelfObject());
342  }
343 
344  @Override
345  protected Informer inform(boolean multicast) {
346  String address;
347  if(multicast) {
349  } else {
350  address = getNode().getAddressStr();
351  }
352  return new Informer(getEchoClassCode(), getInstanceCode()
353  , address, isSelfObject());
354  }
355 
356  public static class Receiver extends DeviceObject.Receiver {
357 
358  @Override
359  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
360  EchoProperty property, boolean success) {
361  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
362  if(ret) return true;
363 
364  switch(property.epc) {
366  onSetDetectionThresholdLevel(eoj, tid, esv, property, success);
367  return true;
369  onSetFirstAidOccurrenceStatusResetting(eoj, tid, esv, property, success);
370  return true;
371  default :
372  return false;
373  }
374  }
375 
376  @Override
377  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
378  EchoProperty property, boolean success) {
379  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
380  if(ret) return true;
381 
382  switch(property.epc) {
384  onGetDetectionThresholdLevel(eoj, tid, esv, property, success);
385  return true;
387  onGetFirstAidOccurrenceStatus(eoj, tid, esv, property, success);
388  return true;
389  default :
390  return false;
391  }
392  }
393 
416  protected void onSetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
439  protected void onGetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
466  protected void onGetFirstAidOccurrenceStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
489  protected void onSetFirstAidOccurrenceStatusResetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
490  }
491 
492  public static class Setter extends DeviceObject.Setter {
493  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
494  , String dstEchoAddress, boolean responseRequired) {
495  super(dstEchoClassCode, dstEchoInstanceCode
496  , dstEchoAddress, responseRequired);
497  }
498 
499  @Override
500  public Setter reqSetProperty(byte epc, byte[] edt) {
501  return (Setter)super.reqSetProperty(epc, edt);
502  }
503 
504  @Override
505  public Setter reqSetOperationStatus(byte[] edt) {
506  return (Setter)super.reqSetOperationStatus(edt);
507  }
508  @Override
509  public Setter reqSetInstallationLocation(byte[] edt) {
510  return (Setter)super.reqSetInstallationLocation(edt);
511  }
512  @Override
513  public Setter reqSetCurrentLimitSetting(byte[] edt) {
514  return (Setter)super.reqSetCurrentLimitSetting(edt);
515  }
516  @Override
517  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
518  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
519  }
520  @Override
521  public Setter reqSetRemoteControlSetting(byte[] edt) {
522  return (Setter)super.reqSetRemoteControlSetting(edt);
523  }
524  @Override
525  public Setter reqSetCurrentTimeSetting(byte[] edt) {
526  return (Setter)super.reqSetCurrentTimeSetting(edt);
527  }
528  @Override
529  public Setter reqSetCurrentDateSetting(byte[] edt) {
530  return (Setter)super.reqSetCurrentDateSetting(edt);
531  }
532  @Override
533  public Setter reqSetPowerLimitSetting(byte[] edt) {
534  return (Setter)super.reqSetPowerLimitSetting(edt);
535  }
536 
559  public Setter reqSetDetectionThresholdLevel(byte[] edt) {
560  reqSetProperty(EPC_DETECTION_THRESHOLD_LEVEL, edt);
561  return this;
562  }
585  public Setter reqSetFirstAidOccurrenceStatusResetting(byte[] edt) {
586  reqSetProperty(EPC_FIRST_AID_OCCURRENCE_STATUS_RESETTING, edt);
587  return this;
588  }
589  }
590 
591  public static class Getter extends DeviceObject.Getter {
592  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
593  , String dstEchoAddress) {
594  super(dstEchoClassCode, dstEchoInstanceCode
595  , dstEchoAddress);
596  }
597 
598  @Override
599  public Getter reqGetProperty(byte epc) {
600  return (Getter)super.reqGetProperty(epc);
601  }
602 
603  @Override
604  public Getter reqGetOperationStatus() {
605  return (Getter)super.reqGetOperationStatus();
606  }
607  @Override
608  public Getter reqGetInstallationLocation() {
609  return (Getter)super.reqGetInstallationLocation();
610  }
611  @Override
612  public Getter reqGetStandardVersionInformation() {
613  return (Getter)super.reqGetStandardVersionInformation();
614  }
615  @Override
616  public Getter reqGetIdentificationNumber() {
617  return (Getter)super.reqGetIdentificationNumber();
618  }
619  @Override
620  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
621  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
622  }
623  @Override
624  public Getter reqGetMeasuredCumulativePowerConsumption() {
625  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
626  }
627  @Override
628  public Getter reqGetManufacturersFaultCode() {
629  return (Getter)super.reqGetManufacturersFaultCode();
630  }
631  @Override
632  public Getter reqGetCurrentLimitSetting() {
633  return (Getter)super.reqGetCurrentLimitSetting();
634  }
635  @Override
636  public Getter reqGetFaultStatus() {
637  return (Getter)super.reqGetFaultStatus();
638  }
639  @Override
640  public Getter reqGetFaultDescription() {
641  return (Getter)super.reqGetFaultDescription();
642  }
643  @Override
644  public Getter reqGetManufacturerCode() {
645  return (Getter)super.reqGetManufacturerCode();
646  }
647  @Override
648  public Getter reqGetBusinessFacilityCode() {
649  return (Getter)super.reqGetBusinessFacilityCode();
650  }
651  @Override
652  public Getter reqGetProductCode() {
653  return (Getter)super.reqGetProductCode();
654  }
655  @Override
656  public Getter reqGetProductionNumber() {
657  return (Getter)super.reqGetProductionNumber();
658  }
659  @Override
660  public Getter reqGetProductionDate() {
661  return (Getter)super.reqGetProductionDate();
662  }
663  @Override
664  public Getter reqGetPowerSavingOperationSetting() {
665  return (Getter)super.reqGetPowerSavingOperationSetting();
666  }
667  @Override
668  public Getter reqGetRemoteControlSetting() {
669  return (Getter)super.reqGetRemoteControlSetting();
670  }
671  @Override
672  public Getter reqGetCurrentTimeSetting() {
673  return (Getter)super.reqGetCurrentTimeSetting();
674  }
675  @Override
676  public Getter reqGetCurrentDateSetting() {
677  return (Getter)super.reqGetCurrentDateSetting();
678  }
679  @Override
680  public Getter reqGetPowerLimitSetting() {
681  return (Getter)super.reqGetPowerLimitSetting();
682  }
683  @Override
684  public Getter reqGetCumulativeOperatingTime() {
685  return (Getter)super.reqGetCumulativeOperatingTime();
686  }
687  @Override
688  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
689  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
690  }
691  @Override
692  public Getter reqGetSetPropertyMap() {
693  return (Getter)super.reqGetSetPropertyMap();
694  }
695  @Override
696  public Getter reqGetGetPropertyMap() {
697  return (Getter)super.reqGetGetPropertyMap();
698  }
699 
722  public Getter reqGetDetectionThresholdLevel() {
723  reqGetProperty(EPC_DETECTION_THRESHOLD_LEVEL);
724  return this;
725  }
752  public Getter reqGetFirstAidOccurrenceStatus() {
753  reqGetProperty(EPC_FIRST_AID_OCCURRENCE_STATUS);
754  return this;
755  }
756  }
757 
758  public static class Informer extends DeviceObject.Informer {
759  public Informer(short echoClassCode, byte echoInstanceCode
760  , String dstEchoAddress, boolean isSelfObject) {
761  super(echoClassCode, echoInstanceCode
762  , dstEchoAddress, isSelfObject);
763  }
764 
765  @Override
766  public Informer reqInformProperty(byte epc) {
767  return (Informer)super.reqInformProperty(epc);
768  }
769  @Override
770  public Informer reqInformOperationStatus() {
771  return (Informer)super.reqInformOperationStatus();
772  }
773  @Override
774  public Informer reqInformInstallationLocation() {
775  return (Informer)super.reqInformInstallationLocation();
776  }
777  @Override
778  public Informer reqInformStandardVersionInformation() {
779  return (Informer)super.reqInformStandardVersionInformation();
780  }
781  @Override
782  public Informer reqInformIdentificationNumber() {
783  return (Informer)super.reqInformIdentificationNumber();
784  }
785  @Override
786  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
787  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
788  }
789  @Override
790  public Informer reqInformMeasuredCumulativePowerConsumption() {
791  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
792  }
793  @Override
794  public Informer reqInformManufacturersFaultCode() {
795  return (Informer)super.reqInformManufacturersFaultCode();
796  }
797  @Override
798  public Informer reqInformCurrentLimitSetting() {
799  return (Informer)super.reqInformCurrentLimitSetting();
800  }
801  @Override
802  public Informer reqInformFaultStatus() {
803  return (Informer)super.reqInformFaultStatus();
804  }
805  @Override
806  public Informer reqInformFaultDescription() {
807  return (Informer)super.reqInformFaultDescription();
808  }
809  @Override
810  public Informer reqInformManufacturerCode() {
811  return (Informer)super.reqInformManufacturerCode();
812  }
813  @Override
814  public Informer reqInformBusinessFacilityCode() {
815  return (Informer)super.reqInformBusinessFacilityCode();
816  }
817  @Override
818  public Informer reqInformProductCode() {
819  return (Informer)super.reqInformProductCode();
820  }
821  @Override
822  public Informer reqInformProductionNumber() {
823  return (Informer)super.reqInformProductionNumber();
824  }
825  @Override
826  public Informer reqInformProductionDate() {
827  return (Informer)super.reqInformProductionDate();
828  }
829  @Override
830  public Informer reqInformPowerSavingOperationSetting() {
831  return (Informer)super.reqInformPowerSavingOperationSetting();
832  }
833  @Override
834  public Informer reqInformRemoteControlSetting() {
835  return (Informer)super.reqInformRemoteControlSetting();
836  }
837  @Override
838  public Informer reqInformCurrentTimeSetting() {
839  return (Informer)super.reqInformCurrentTimeSetting();
840  }
841  @Override
842  public Informer reqInformCurrentDateSetting() {
843  return (Informer)super.reqInformCurrentDateSetting();
844  }
845  @Override
846  public Informer reqInformPowerLimitSetting() {
847  return (Informer)super.reqInformPowerLimitSetting();
848  }
849  @Override
850  public Informer reqInformCumulativeOperatingTime() {
851  return (Informer)super.reqInformCumulativeOperatingTime();
852  }
853  @Override
854  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
855  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
856  }
857  @Override
858  public Informer reqInformSetPropertyMap() {
859  return (Informer)super.reqInformSetPropertyMap();
860  }
861  @Override
862  public Informer reqInformGetPropertyMap() {
863  return (Informer)super.reqInformGetPropertyMap();
864  }
865 
888  public Informer reqInformDetectionThresholdLevel() {
889  reqInformProperty(EPC_DETECTION_THRESHOLD_LEVEL);
890  return this;
891  }
918  public Informer reqInformFirstAidOccurrenceStatus() {
919  reqInformProperty(EPC_FIRST_AID_OCCURRENCE_STATUS);
920  return this;
921  }
922  }
923 
924  public static class Proxy extends FirstAidSensor {
925  public Proxy(byte instanceCode) {
926  super();
927  mEchoInstanceCode = instanceCode;
928  }
929  @Override
930  public byte getInstanceCode() {
931  return mEchoInstanceCode;
932  }
933  @Override
934  protected byte[] getOperationStatus() {return null;}
935  @Override
936  protected boolean setInstallationLocation(byte[] edt) {return false;}
937  @Override
938  protected byte[] getInstallationLocation() {return null;}
939  @Override
940  protected byte[] getStandardVersionInformation() {return null;}
941  @Override
942  protected byte[] getFaultStatus() {return null;}
943  @Override
944  protected byte[] getManufacturerCode() {return null;}
945  @Override
946  protected byte[] getFirstAidOccurrenceStatus() {return null;}
947  }
948 
949  public static Setter setG() {
950  return setG((byte)0);
951  }
952 
953  public static Setter setG(byte instanceCode) {
954  return setG(instanceCode, true);
955  }
956 
957  public static Setter setG(boolean responseRequired) {
958  return setG((byte)0, responseRequired);
959  }
960 
961  public static Setter setG(byte instanceCode, boolean responseRequired) {
962  return new Setter(ECHO_CLASS_CODE, instanceCode
963  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
964  }
965 
966  public static Getter getG() {
967  return getG((byte)0);
968  }
969 
970  public static Getter getG(byte instanceCode) {
971  return new Getter(ECHO_CLASS_CODE, instanceCode
973  }
974 
975  public static Informer informG() {
976  return informG((byte)0);
977  }
978 
979  public static Informer informG(byte instanceCode) {
980  return new Informer(ECHO_CLASS_CODE, instanceCode
981  , EchoSocket.MULTICAST_ADDRESS, false);
982  }
983 
984 }
static Informer informG(byte instanceCode)
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(boolean responseRequired)
synchronized boolean isValidProperty(EchoProperty property)
synchronized boolean setProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
static Setter setG(byte instanceCode, boolean responseRequired)