OpenECHO
 All Classes Namespaces Files Functions Variables
CigaretteSmokeSensor.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 CigaretteSmokeSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x001A;
29 
30  public static final byte EPC_DETECTION_THRESHOLD_LEVEL = (byte)0xB0;
31  public static final byte EPC_SMOKE_CIGARETTE_DETECTION_STATUS = (byte)0xB1;
32 
33  @Override
34  protected void setupPropertyMaps() {
35  super.setupPropertyMaps();
36 
42  }
43 
44  @Override
45  public void onNew() {
46  super.onNew();
47  Echo.getEventListener().onNewCigaretteSmokeSensor(this);
48  }
49 
50  @Override
51  public short getEchoClassCode() {
52  return ECHO_CLASS_CODE;
53  }
54 
79  protected boolean setOperationStatus(byte[] edt) {return false;}
104  protected abstract byte[] getOperationStatus();
128  protected boolean setDetectionThresholdLevel(byte[] edt) {return false;}
152  protected byte[] getDetectionThresholdLevel() {return null;}
176  protected boolean isValidDetectionThresholdLevel(byte[] edt) {
177  if(edt == null || !(edt.length == 1)) return false;
178  return true;
179  }
205  protected abstract byte[] getSmokeCigaretteDetectionStatus();
231  protected boolean isValidSmokeCigaretteDetectionStatus(byte[] edt) {
232  if(edt == null || !(edt.length == 1)) return false;
233  return true;
234  }
235 
236  @Override
237  protected synchronized boolean setProperty(EchoProperty property) {
238  boolean success = super.setProperty(property);
239  if(success) return success;
240 
241  switch(property.epc) {
243  default : return false;
244  }
245  }
246 
247  @Override
248  protected synchronized byte[] getProperty(byte epc) {
249  byte[] edt = super.getProperty(epc);
250  if(edt != null) return edt;
251 
252  switch(epc) {
255  default : return null;
256  }
257  }
258 
259  @Override
260  protected synchronized boolean isValidProperty(EchoProperty property) {
261  boolean valid = super.isValidProperty(property);
262  if(valid) return valid;
263 
264  switch(property.epc) {
267  default : return false;
268  }
269  }
270 
271  @Override
272  public Setter set() {
273  return set(true);
274  }
275 
276  @Override
277  public Setter set(boolean responseRequired) {
278  return new Setter(getEchoClassCode(), getInstanceCode()
279  , getNode().getAddressStr(), responseRequired);
280  }
281 
282  @Override
283  public Getter get() {
284  return new Getter(getEchoClassCode(), getInstanceCode()
285  , getNode().getAddressStr());
286  }
287 
288  @Override
289  public Informer inform() {
290  return inform(isSelfObject());
291  }
292 
293  @Override
294  protected Informer inform(boolean multicast) {
295  String address;
296  if(multicast) {
298  } else {
299  address = getNode().getAddressStr();
300  }
301  return new Informer(getEchoClassCode(), getInstanceCode()
302  , address, isSelfObject());
303  }
304 
305  public static class Receiver extends DeviceObject.Receiver {
306 
307  @Override
308  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
309  EchoProperty property, boolean success) {
310  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
311  if(ret) return true;
312 
313  switch(property.epc) {
315  onSetDetectionThresholdLevel(eoj, tid, esv, property, success);
316  return true;
317  default :
318  return false;
319  }
320  }
321 
322  @Override
323  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
324  EchoProperty property, boolean success) {
325  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
326  if(ret) return true;
327 
328  switch(property.epc) {
330  onGetDetectionThresholdLevel(eoj, tid, esv, property, success);
331  return true;
333  onGetSmokeCigaretteDetectionStatus(eoj, tid, esv, property, success);
334  return true;
335  default :
336  return false;
337  }
338  }
339 
363  protected void onSetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
387  protected void onGetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
413  protected void onGetSmokeCigaretteDetectionStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
414  }
415 
416  public static class Setter extends DeviceObject.Setter {
417  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
418  , String dstEchoAddress, boolean responseRequired) {
419  super(dstEchoClassCode, dstEchoInstanceCode
420  , dstEchoAddress, responseRequired);
421  }
422 
423  @Override
424  public Setter reqSetProperty(byte epc, byte[] edt) {
425  return (Setter)super.reqSetProperty(epc, edt);
426  }
427 
428  @Override
429  public Setter reqSetOperationStatus(byte[] edt) {
430  return (Setter)super.reqSetOperationStatus(edt);
431  }
432  @Override
433  public Setter reqSetInstallationLocation(byte[] edt) {
434  return (Setter)super.reqSetInstallationLocation(edt);
435  }
436  @Override
437  public Setter reqSetCurrentLimitSetting(byte[] edt) {
438  return (Setter)super.reqSetCurrentLimitSetting(edt);
439  }
440  @Override
441  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
442  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
443  }
444  @Override
445  public Setter reqSetRemoteControlSetting(byte[] edt) {
446  return (Setter)super.reqSetRemoteControlSetting(edt);
447  }
448  @Override
449  public Setter reqSetCurrentTimeSetting(byte[] edt) {
450  return (Setter)super.reqSetCurrentTimeSetting(edt);
451  }
452  @Override
453  public Setter reqSetCurrentDateSetting(byte[] edt) {
454  return (Setter)super.reqSetCurrentDateSetting(edt);
455  }
456  @Override
457  public Setter reqSetPowerLimitSetting(byte[] edt) {
458  return (Setter)super.reqSetPowerLimitSetting(edt);
459  }
460 
484  public Setter reqSetDetectionThresholdLevel(byte[] edt) {
485  reqSetProperty(EPC_DETECTION_THRESHOLD_LEVEL, edt);
486  return this;
487  }
488  }
489 
490  public static class Getter extends DeviceObject.Getter {
491  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
492  , String dstEchoAddress) {
493  super(dstEchoClassCode, dstEchoInstanceCode
494  , dstEchoAddress);
495  }
496 
497  @Override
498  public Getter reqGetProperty(byte epc) {
499  return (Getter)super.reqGetProperty(epc);
500  }
501 
502  @Override
503  public Getter reqGetOperationStatus() {
504  return (Getter)super.reqGetOperationStatus();
505  }
506  @Override
507  public Getter reqGetInstallationLocation() {
508  return (Getter)super.reqGetInstallationLocation();
509  }
510  @Override
511  public Getter reqGetStandardVersionInformation() {
512  return (Getter)super.reqGetStandardVersionInformation();
513  }
514  @Override
515  public Getter reqGetIdentificationNumber() {
516  return (Getter)super.reqGetIdentificationNumber();
517  }
518  @Override
519  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
520  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
521  }
522  @Override
523  public Getter reqGetMeasuredCumulativePowerConsumption() {
524  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
525  }
526  @Override
527  public Getter reqGetManufacturersFaultCode() {
528  return (Getter)super.reqGetManufacturersFaultCode();
529  }
530  @Override
531  public Getter reqGetCurrentLimitSetting() {
532  return (Getter)super.reqGetCurrentLimitSetting();
533  }
534  @Override
535  public Getter reqGetFaultStatus() {
536  return (Getter)super.reqGetFaultStatus();
537  }
538  @Override
539  public Getter reqGetFaultDescription() {
540  return (Getter)super.reqGetFaultDescription();
541  }
542  @Override
543  public Getter reqGetManufacturerCode() {
544  return (Getter)super.reqGetManufacturerCode();
545  }
546  @Override
547  public Getter reqGetBusinessFacilityCode() {
548  return (Getter)super.reqGetBusinessFacilityCode();
549  }
550  @Override
551  public Getter reqGetProductCode() {
552  return (Getter)super.reqGetProductCode();
553  }
554  @Override
555  public Getter reqGetProductionNumber() {
556  return (Getter)super.reqGetProductionNumber();
557  }
558  @Override
559  public Getter reqGetProductionDate() {
560  return (Getter)super.reqGetProductionDate();
561  }
562  @Override
563  public Getter reqGetPowerSavingOperationSetting() {
564  return (Getter)super.reqGetPowerSavingOperationSetting();
565  }
566  @Override
567  public Getter reqGetRemoteControlSetting() {
568  return (Getter)super.reqGetRemoteControlSetting();
569  }
570  @Override
571  public Getter reqGetCurrentTimeSetting() {
572  return (Getter)super.reqGetCurrentTimeSetting();
573  }
574  @Override
575  public Getter reqGetCurrentDateSetting() {
576  return (Getter)super.reqGetCurrentDateSetting();
577  }
578  @Override
579  public Getter reqGetPowerLimitSetting() {
580  return (Getter)super.reqGetPowerLimitSetting();
581  }
582  @Override
583  public Getter reqGetCumulativeOperatingTime() {
584  return (Getter)super.reqGetCumulativeOperatingTime();
585  }
586  @Override
587  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
588  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
589  }
590  @Override
591  public Getter reqGetSetPropertyMap() {
592  return (Getter)super.reqGetSetPropertyMap();
593  }
594  @Override
595  public Getter reqGetGetPropertyMap() {
596  return (Getter)super.reqGetGetPropertyMap();
597  }
598 
622  public Getter reqGetDetectionThresholdLevel() {
623  reqGetProperty(EPC_DETECTION_THRESHOLD_LEVEL);
624  return this;
625  }
651  public Getter reqGetSmokeCigaretteDetectionStatus() {
652  reqGetProperty(EPC_SMOKE_CIGARETTE_DETECTION_STATUS);
653  return this;
654  }
655  }
656 
657  public static class Informer extends DeviceObject.Informer {
658  public Informer(short echoClassCode, byte echoInstanceCode
659  , String dstEchoAddress, boolean isSelfObject) {
660  super(echoClassCode, echoInstanceCode
661  , dstEchoAddress, isSelfObject);
662  }
663 
664  @Override
665  public Informer reqInformProperty(byte epc) {
666  return (Informer)super.reqInformProperty(epc);
667  }
668  @Override
669  public Informer reqInformOperationStatus() {
670  return (Informer)super.reqInformOperationStatus();
671  }
672  @Override
673  public Informer reqInformInstallationLocation() {
674  return (Informer)super.reqInformInstallationLocation();
675  }
676  @Override
677  public Informer reqInformStandardVersionInformation() {
678  return (Informer)super.reqInformStandardVersionInformation();
679  }
680  @Override
681  public Informer reqInformIdentificationNumber() {
682  return (Informer)super.reqInformIdentificationNumber();
683  }
684  @Override
685  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
686  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
687  }
688  @Override
689  public Informer reqInformMeasuredCumulativePowerConsumption() {
690  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
691  }
692  @Override
693  public Informer reqInformManufacturersFaultCode() {
694  return (Informer)super.reqInformManufacturersFaultCode();
695  }
696  @Override
697  public Informer reqInformCurrentLimitSetting() {
698  return (Informer)super.reqInformCurrentLimitSetting();
699  }
700  @Override
701  public Informer reqInformFaultStatus() {
702  return (Informer)super.reqInformFaultStatus();
703  }
704  @Override
705  public Informer reqInformFaultDescription() {
706  return (Informer)super.reqInformFaultDescription();
707  }
708  @Override
709  public Informer reqInformManufacturerCode() {
710  return (Informer)super.reqInformManufacturerCode();
711  }
712  @Override
713  public Informer reqInformBusinessFacilityCode() {
714  return (Informer)super.reqInformBusinessFacilityCode();
715  }
716  @Override
717  public Informer reqInformProductCode() {
718  return (Informer)super.reqInformProductCode();
719  }
720  @Override
721  public Informer reqInformProductionNumber() {
722  return (Informer)super.reqInformProductionNumber();
723  }
724  @Override
725  public Informer reqInformProductionDate() {
726  return (Informer)super.reqInformProductionDate();
727  }
728  @Override
729  public Informer reqInformPowerSavingOperationSetting() {
730  return (Informer)super.reqInformPowerSavingOperationSetting();
731  }
732  @Override
733  public Informer reqInformRemoteControlSetting() {
734  return (Informer)super.reqInformRemoteControlSetting();
735  }
736  @Override
737  public Informer reqInformCurrentTimeSetting() {
738  return (Informer)super.reqInformCurrentTimeSetting();
739  }
740  @Override
741  public Informer reqInformCurrentDateSetting() {
742  return (Informer)super.reqInformCurrentDateSetting();
743  }
744  @Override
745  public Informer reqInformPowerLimitSetting() {
746  return (Informer)super.reqInformPowerLimitSetting();
747  }
748  @Override
749  public Informer reqInformCumulativeOperatingTime() {
750  return (Informer)super.reqInformCumulativeOperatingTime();
751  }
752  @Override
753  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
754  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
755  }
756  @Override
757  public Informer reqInformSetPropertyMap() {
758  return (Informer)super.reqInformSetPropertyMap();
759  }
760  @Override
761  public Informer reqInformGetPropertyMap() {
762  return (Informer)super.reqInformGetPropertyMap();
763  }
764 
788  public Informer reqInformDetectionThresholdLevel() {
789  reqInformProperty(EPC_DETECTION_THRESHOLD_LEVEL);
790  return this;
791  }
817  public Informer reqInformSmokeCigaretteDetectionStatus() {
818  reqInformProperty(EPC_SMOKE_CIGARETTE_DETECTION_STATUS);
819  return this;
820  }
821  }
822 
823  public static class Proxy extends CigaretteSmokeSensor {
824  public Proxy(byte instanceCode) {
825  super();
826  mEchoInstanceCode = instanceCode;
827  }
828  @Override
829  public byte getInstanceCode() {
830  return mEchoInstanceCode;
831  }
832  @Override
833  protected byte[] getOperationStatus() {return null;}
834  @Override
835  protected boolean setInstallationLocation(byte[] edt) {return false;}
836  @Override
837  protected byte[] getInstallationLocation() {return null;}
838  @Override
839  protected byte[] getStandardVersionInformation() {return null;}
840  @Override
841  protected byte[] getFaultStatus() {return null;}
842  @Override
843  protected byte[] getManufacturerCode() {return null;}
844  @Override
845  protected byte[] getSmokeCigaretteDetectionStatus() {return null;}
846  }
847 
848  public static Setter setG() {
849  return setG((byte)0);
850  }
851 
852  public static Setter setG(byte instanceCode) {
853  return setG(instanceCode, true);
854  }
855 
856  public static Setter setG(boolean responseRequired) {
857  return setG((byte)0, responseRequired);
858  }
859 
860  public static Setter setG(byte instanceCode, boolean responseRequired) {
861  return new Setter(ECHO_CLASS_CODE, instanceCode
862  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
863  }
864 
865  public static Getter getG() {
866  return getG((byte)0);
867  }
868 
869  public static Getter getG(byte instanceCode) {
870  return new Getter(ECHO_CLASS_CODE, instanceCode
872  }
873 
874  public static Informer informG() {
875  return informG((byte)0);
876  }
877 
878  public static Informer informG(byte instanceCode) {
879  return new Informer(ECHO_CLASS_CODE, instanceCode
880  , EchoSocket.MULTICAST_ADDRESS, false);
881  }
882 
883 }
synchronized boolean setProperty(EchoProperty property)
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
static Setter setG(byte instanceCode, boolean responseRequired)
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
synchronized boolean isValidProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53