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