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