OpenECHO
 All Classes Namespaces Files Functions Variables
FireSensor.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 FireSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0019;
29 
30  public static final byte EPC_DETECTION_THRESHOLD_LEVEL = (byte)0xB0;
31  public static final byte EPC_FIRE_OCCURRENCE_DETECTION_STATUS = (byte)0xB1;
32  public static final byte EPC_FIRE_OCCURRENCE_DETECTION_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().onNewFireSensor(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();
129  protected boolean setDetectionThresholdLevel(byte[] edt) {return false;}
153  protected byte[] getDetectionThresholdLevel() {return null;}
177  protected boolean isValidDetectionThresholdLevel(byte[] edt) {
178  if(edt == null || !(edt.length == 1)) return false;
179  return true;
180  }
207  protected abstract byte[] getFireOccurrenceDetectionStatus();
234  protected boolean isValidFireOccurrenceDetectionStatus(byte[] edt) {
235  if(edt == null || !(edt.length == 1)) return false;
236  return true;
237  }
260  protected boolean setFireOccurrenceDetectionStatusResetting(byte[] edt) {return false;}
283  protected boolean isValidFireOccurrenceDetectionStatusResetting(byte[] edt) {
284  if(edt == null || !(edt.length == 1)) return false;
285  return true;
286  }
287 
288  @Override
289  protected synchronized boolean setProperty(EchoProperty property) {
290  boolean success = super.setProperty(property);
291  if(success) return success;
292 
293  switch(property.epc) {
296  default : return false;
297  }
298  }
299 
300  @Override
301  protected synchronized byte[] getProperty(byte epc) {
302  byte[] edt = super.getProperty(epc);
303  if(edt != null) return edt;
304 
305  switch(epc) {
308  default : return null;
309  }
310  }
311 
312  @Override
313  protected synchronized boolean isValidProperty(EchoProperty property) {
314  boolean valid = super.isValidProperty(property);
315  if(valid) return valid;
316 
317  switch(property.epc) {
321  default : return false;
322  }
323  }
324 
325  @Override
326  public Setter set() {
327  return set(true);
328  }
329 
330  @Override
331  public Setter set(boolean responseRequired) {
332  return new Setter(getEchoClassCode(), getInstanceCode()
333  , getNode().getAddressStr(), responseRequired);
334  }
335 
336  @Override
337  public Getter get() {
338  return new Getter(getEchoClassCode(), getInstanceCode()
339  , getNode().getAddressStr());
340  }
341 
342  @Override
343  public Informer inform() {
344  return inform(isSelfObject());
345  }
346 
347  @Override
348  protected Informer inform(boolean multicast) {
349  String address;
350  if(multicast) {
352  } else {
353  address = getNode().getAddressStr();
354  }
355  return new Informer(getEchoClassCode(), getInstanceCode()
356  , address, isSelfObject());
357  }
358 
359  public static class Receiver extends DeviceObject.Receiver {
360 
361  @Override
362  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
363  EchoProperty property, boolean success) {
364  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
365  if(ret) return true;
366 
367  switch(property.epc) {
369  onSetDetectionThresholdLevel(eoj, tid, esv, property, success);
370  return true;
372  onSetFireOccurrenceDetectionStatusResetting(eoj, tid, esv, property, success);
373  return true;
374  default :
375  return false;
376  }
377  }
378 
379  @Override
380  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
381  EchoProperty property, boolean success) {
382  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
383  if(ret) return true;
384 
385  switch(property.epc) {
387  onGetDetectionThresholdLevel(eoj, tid, esv, property, success);
388  return true;
390  onGetFireOccurrenceDetectionStatus(eoj, tid, esv, property, success);
391  return true;
392  default :
393  return false;
394  }
395  }
396 
420  protected void onSetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
444  protected void onGetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
471  protected void onGetFireOccurrenceDetectionStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
494  protected void onSetFireOccurrenceDetectionStatusResetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
495  }
496 
497  public static class Setter extends DeviceObject.Setter {
498  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
499  , String dstEchoAddress, boolean responseRequired) {
500  super(dstEchoClassCode, dstEchoInstanceCode
501  , dstEchoAddress, responseRequired);
502  }
503 
504  @Override
505  public Setter reqSetProperty(byte epc, byte[] edt) {
506  return (Setter)super.reqSetProperty(epc, edt);
507  }
508 
509  @Override
510  public Setter reqSetOperationStatus(byte[] edt) {
511  return (Setter)super.reqSetOperationStatus(edt);
512  }
513  @Override
514  public Setter reqSetInstallationLocation(byte[] edt) {
515  return (Setter)super.reqSetInstallationLocation(edt);
516  }
517  @Override
518  public Setter reqSetCurrentLimitSetting(byte[] edt) {
519  return (Setter)super.reqSetCurrentLimitSetting(edt);
520  }
521  @Override
522  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
523  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
524  }
525  @Override
526  public Setter reqSetRemoteControlSetting(byte[] edt) {
527  return (Setter)super.reqSetRemoteControlSetting(edt);
528  }
529  @Override
530  public Setter reqSetCurrentTimeSetting(byte[] edt) {
531  return (Setter)super.reqSetCurrentTimeSetting(edt);
532  }
533  @Override
534  public Setter reqSetCurrentDateSetting(byte[] edt) {
535  return (Setter)super.reqSetCurrentDateSetting(edt);
536  }
537  @Override
538  public Setter reqSetPowerLimitSetting(byte[] edt) {
539  return (Setter)super.reqSetPowerLimitSetting(edt);
540  }
541 
565  public Setter reqSetDetectionThresholdLevel(byte[] edt) {
566  reqSetProperty(EPC_DETECTION_THRESHOLD_LEVEL, edt);
567  return this;
568  }
591  public Setter reqSetFireOccurrenceDetectionStatusResetting(byte[] edt) {
593  return this;
594  }
595  }
596 
597  public static class Getter extends DeviceObject.Getter {
598  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
599  , String dstEchoAddress) {
600  super(dstEchoClassCode, dstEchoInstanceCode
601  , dstEchoAddress);
602  }
603 
604  @Override
605  public Getter reqGetProperty(byte epc) {
606  return (Getter)super.reqGetProperty(epc);
607  }
608 
609  @Override
610  public Getter reqGetOperationStatus() {
611  return (Getter)super.reqGetOperationStatus();
612  }
613  @Override
614  public Getter reqGetInstallationLocation() {
615  return (Getter)super.reqGetInstallationLocation();
616  }
617  @Override
618  public Getter reqGetStandardVersionInformation() {
619  return (Getter)super.reqGetStandardVersionInformation();
620  }
621  @Override
622  public Getter reqGetIdentificationNumber() {
623  return (Getter)super.reqGetIdentificationNumber();
624  }
625  @Override
626  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
627  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
628  }
629  @Override
630  public Getter reqGetMeasuredCumulativePowerConsumption() {
631  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
632  }
633  @Override
634  public Getter reqGetManufacturersFaultCode() {
635  return (Getter)super.reqGetManufacturersFaultCode();
636  }
637  @Override
638  public Getter reqGetCurrentLimitSetting() {
639  return (Getter)super.reqGetCurrentLimitSetting();
640  }
641  @Override
642  public Getter reqGetFaultStatus() {
643  return (Getter)super.reqGetFaultStatus();
644  }
645  @Override
646  public Getter reqGetFaultDescription() {
647  return (Getter)super.reqGetFaultDescription();
648  }
649  @Override
650  public Getter reqGetManufacturerCode() {
651  return (Getter)super.reqGetManufacturerCode();
652  }
653  @Override
654  public Getter reqGetBusinessFacilityCode() {
655  return (Getter)super.reqGetBusinessFacilityCode();
656  }
657  @Override
658  public Getter reqGetProductCode() {
659  return (Getter)super.reqGetProductCode();
660  }
661  @Override
662  public Getter reqGetProductionNumber() {
663  return (Getter)super.reqGetProductionNumber();
664  }
665  @Override
666  public Getter reqGetProductionDate() {
667  return (Getter)super.reqGetProductionDate();
668  }
669  @Override
670  public Getter reqGetPowerSavingOperationSetting() {
671  return (Getter)super.reqGetPowerSavingOperationSetting();
672  }
673  @Override
674  public Getter reqGetRemoteControlSetting() {
675  return (Getter)super.reqGetRemoteControlSetting();
676  }
677  @Override
678  public Getter reqGetCurrentTimeSetting() {
679  return (Getter)super.reqGetCurrentTimeSetting();
680  }
681  @Override
682  public Getter reqGetCurrentDateSetting() {
683  return (Getter)super.reqGetCurrentDateSetting();
684  }
685  @Override
686  public Getter reqGetPowerLimitSetting() {
687  return (Getter)super.reqGetPowerLimitSetting();
688  }
689  @Override
690  public Getter reqGetCumulativeOperatingTime() {
691  return (Getter)super.reqGetCumulativeOperatingTime();
692  }
693  @Override
694  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
695  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
696  }
697  @Override
698  public Getter reqGetSetPropertyMap() {
699  return (Getter)super.reqGetSetPropertyMap();
700  }
701  @Override
702  public Getter reqGetGetPropertyMap() {
703  return (Getter)super.reqGetGetPropertyMap();
704  }
705 
729  public Getter reqGetDetectionThresholdLevel() {
730  reqGetProperty(EPC_DETECTION_THRESHOLD_LEVEL);
731  return this;
732  }
759  public Getter reqGetFireOccurrenceDetectionStatus() {
760  reqGetProperty(EPC_FIRE_OCCURRENCE_DETECTION_STATUS);
761  return this;
762  }
763  }
764 
765  public static class Informer extends DeviceObject.Informer {
766  public Informer(short echoClassCode, byte echoInstanceCode
767  , String dstEchoAddress, boolean isSelfObject) {
768  super(echoClassCode, echoInstanceCode
769  , dstEchoAddress, isSelfObject);
770  }
771 
772  @Override
773  public Informer reqInformProperty(byte epc) {
774  return (Informer)super.reqInformProperty(epc);
775  }
776  @Override
777  public Informer reqInformOperationStatus() {
778  return (Informer)super.reqInformOperationStatus();
779  }
780  @Override
781  public Informer reqInformInstallationLocation() {
782  return (Informer)super.reqInformInstallationLocation();
783  }
784  @Override
785  public Informer reqInformStandardVersionInformation() {
786  return (Informer)super.reqInformStandardVersionInformation();
787  }
788  @Override
789  public Informer reqInformIdentificationNumber() {
790  return (Informer)super.reqInformIdentificationNumber();
791  }
792  @Override
793  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
794  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
795  }
796  @Override
797  public Informer reqInformMeasuredCumulativePowerConsumption() {
798  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
799  }
800  @Override
801  public Informer reqInformManufacturersFaultCode() {
802  return (Informer)super.reqInformManufacturersFaultCode();
803  }
804  @Override
805  public Informer reqInformCurrentLimitSetting() {
806  return (Informer)super.reqInformCurrentLimitSetting();
807  }
808  @Override
809  public Informer reqInformFaultStatus() {
810  return (Informer)super.reqInformFaultStatus();
811  }
812  @Override
813  public Informer reqInformFaultDescription() {
814  return (Informer)super.reqInformFaultDescription();
815  }
816  @Override
817  public Informer reqInformManufacturerCode() {
818  return (Informer)super.reqInformManufacturerCode();
819  }
820  @Override
821  public Informer reqInformBusinessFacilityCode() {
822  return (Informer)super.reqInformBusinessFacilityCode();
823  }
824  @Override
825  public Informer reqInformProductCode() {
826  return (Informer)super.reqInformProductCode();
827  }
828  @Override
829  public Informer reqInformProductionNumber() {
830  return (Informer)super.reqInformProductionNumber();
831  }
832  @Override
833  public Informer reqInformProductionDate() {
834  return (Informer)super.reqInformProductionDate();
835  }
836  @Override
837  public Informer reqInformPowerSavingOperationSetting() {
838  return (Informer)super.reqInformPowerSavingOperationSetting();
839  }
840  @Override
841  public Informer reqInformRemoteControlSetting() {
842  return (Informer)super.reqInformRemoteControlSetting();
843  }
844  @Override
845  public Informer reqInformCurrentTimeSetting() {
846  return (Informer)super.reqInformCurrentTimeSetting();
847  }
848  @Override
849  public Informer reqInformCurrentDateSetting() {
850  return (Informer)super.reqInformCurrentDateSetting();
851  }
852  @Override
853  public Informer reqInformPowerLimitSetting() {
854  return (Informer)super.reqInformPowerLimitSetting();
855  }
856  @Override
857  public Informer reqInformCumulativeOperatingTime() {
858  return (Informer)super.reqInformCumulativeOperatingTime();
859  }
860  @Override
861  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
862  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
863  }
864  @Override
865  public Informer reqInformSetPropertyMap() {
866  return (Informer)super.reqInformSetPropertyMap();
867  }
868  @Override
869  public Informer reqInformGetPropertyMap() {
870  return (Informer)super.reqInformGetPropertyMap();
871  }
872 
896  public Informer reqInformDetectionThresholdLevel() {
897  reqInformProperty(EPC_DETECTION_THRESHOLD_LEVEL);
898  return this;
899  }
926  public Informer reqInformFireOccurrenceDetectionStatus() {
927  reqInformProperty(EPC_FIRE_OCCURRENCE_DETECTION_STATUS);
928  return this;
929  }
930  }
931 
932  public static class Proxy extends FireSensor {
933  public Proxy(byte instanceCode) {
934  super();
935  mEchoInstanceCode = instanceCode;
936  }
937  @Override
938  public byte getInstanceCode() {
939  return mEchoInstanceCode;
940  }
941  @Override
942  protected byte[] getOperationStatus() {return null;}
943  @Override
944  protected boolean setInstallationLocation(byte[] edt) {return false;}
945  @Override
946  protected byte[] getInstallationLocation() {return null;}
947  @Override
948  protected byte[] getStandardVersionInformation() {return null;}
949  @Override
950  protected byte[] getFaultStatus() {return null;}
951  @Override
952  protected byte[] getManufacturerCode() {return null;}
953  @Override
954  protected byte[] getFireOccurrenceDetectionStatus() {return null;}
955  }
956 
957  public static Setter setG() {
958  return setG((byte)0);
959  }
960 
961  public static Setter setG(byte instanceCode) {
962  return setG(instanceCode, true);
963  }
964 
965  public static Setter setG(boolean responseRequired) {
966  return setG((byte)0, responseRequired);
967  }
968 
969  public static Setter setG(byte instanceCode, boolean responseRequired) {
970  return new Setter(ECHO_CLASS_CODE, instanceCode
971  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
972  }
973 
974  public static Getter getG() {
975  return getG((byte)0);
976  }
977 
978  public static Getter getG(byte instanceCode) {
979  return new Getter(ECHO_CLASS_CODE, instanceCode
981  }
982 
983  public static Informer informG() {
984  return informG((byte)0);
985  }
986 
987  public static Informer informG(byte instanceCode) {
988  return new Informer(ECHO_CLASS_CODE, instanceCode
989  , EchoSocket.MULTICAST_ADDRESS, false);
990  }
991 
992 }
boolean isValidFireOccurrenceDetectionStatusResetting(byte[] edt)
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)
static final byte EPC_FIRE_OCCURRENCE_DETECTION_STATUS_RESETTING
Definition: FireSensor.java:32
static Getter getG(byte instanceCode)
boolean isValidFireOccurrenceDetectionStatus(byte[] edt)
static Setter setG(byte instanceCode, boolean responseRequired)
Setter set(boolean responseRequired)
synchronized boolean isValidProperty(EchoProperty property)
boolean setFireOccurrenceDetectionStatusResetting(byte[] edt)
static Setter setG(boolean responseRequired)
synchronized boolean setProperty(EchoProperty property)
static Informer informG(byte instanceCode)
synchronized byte[] getProperty(byte epc)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53