OpenECHO
 All Classes Namespaces Files Functions Variables
MailingSensor.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 MailingSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x000F;
29 
30  public static final byte EPC_DETECTION_THRESHOLD_LEVEL = (byte)0xB0;
31  public static final byte EPC_MAILING_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().onNewMailingSensor(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();
127  protected boolean setDetectionThresholdLevel(byte[] edt) {return false;}
150  protected byte[] getDetectionThresholdLevel() {return null;}
173  protected boolean isValidDetectionThresholdLevel(byte[] edt) {
174  if(edt == null || !(edt.length == 1)) return false;
175  return true;
176  }
204  protected abstract byte[] getMailingDetectionStatus();
232  protected boolean isValidMailingDetectionStatus(byte[] edt) {
233  if(edt == null || !(edt.length == 1)) return false;
234  return true;
235  }
236 
237  @Override
238  protected synchronized boolean setProperty(EchoProperty property) {
239  boolean success = super.setProperty(property);
240  if(success) return success;
241 
242  switch(property.epc) {
244  default : return false;
245  }
246  }
247 
248  @Override
249  protected synchronized byte[] getProperty(byte epc) {
250  byte[] edt = super.getProperty(epc);
251  if(edt != null) return edt;
252 
253  switch(epc) {
256  default : return null;
257  }
258  }
259 
260  @Override
261  protected synchronized boolean isValidProperty(EchoProperty property) {
262  boolean valid = super.isValidProperty(property);
263  if(valid) return valid;
264 
265  switch(property.epc) {
268  default : return false;
269  }
270  }
271 
272  @Override
273  public Setter set() {
274  return set(true);
275  }
276 
277  @Override
278  public Setter set(boolean responseRequired) {
279  return new Setter(getEchoClassCode(), getInstanceCode()
280  , getNode().getAddressStr(), responseRequired);
281  }
282 
283  @Override
284  public Getter get() {
285  return new Getter(getEchoClassCode(), getInstanceCode()
286  , getNode().getAddressStr());
287  }
288 
289  @Override
290  public Informer inform() {
291  return inform(isSelfObject());
292  }
293 
294  @Override
295  protected Informer inform(boolean multicast) {
296  String address;
297  if(multicast) {
299  } else {
300  address = getNode().getAddressStr();
301  }
302  return new Informer(getEchoClassCode(), getInstanceCode()
303  , address, isSelfObject());
304  }
305 
306  public static class Receiver extends DeviceObject.Receiver {
307 
308  @Override
309  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
310  EchoProperty property, boolean success) {
311  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
312  if(ret) return true;
313 
314  switch(property.epc) {
316  onSetDetectionThresholdLevel(eoj, tid, esv, property, success);
317  return true;
318  default :
319  return false;
320  }
321  }
322 
323  @Override
324  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
325  EchoProperty property, boolean success) {
326  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
327  if(ret) return true;
328 
329  switch(property.epc) {
331  onGetDetectionThresholdLevel(eoj, tid, esv, property, success);
332  return true;
334  onGetMailingDetectionStatus(eoj, tid, esv, property, success);
335  return true;
336  default :
337  return false;
338  }
339  }
340 
363  protected void onSetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
386  protected void onGetDetectionThresholdLevel(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
414  protected void onGetMailingDetectionStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
415  }
416 
417  public static class Setter extends DeviceObject.Setter {
418  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
419  , String dstEchoAddress, boolean responseRequired) {
420  super(dstEchoClassCode, dstEchoInstanceCode
421  , dstEchoAddress, responseRequired);
422  }
423 
424  @Override
425  public Setter reqSetProperty(byte epc, byte[] edt) {
426  return (Setter)super.reqSetProperty(epc, edt);
427  }
428 
429  @Override
430  public Setter reqSetOperationStatus(byte[] edt) {
431  return (Setter)super.reqSetOperationStatus(edt);
432  }
433  @Override
434  public Setter reqSetInstallationLocation(byte[] edt) {
435  return (Setter)super.reqSetInstallationLocation(edt);
436  }
437  @Override
438  public Setter reqSetCurrentLimitSetting(byte[] edt) {
439  return (Setter)super.reqSetCurrentLimitSetting(edt);
440  }
441  @Override
442  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
443  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
444  }
445  @Override
446  public Setter reqSetRemoteControlSetting(byte[] edt) {
447  return (Setter)super.reqSetRemoteControlSetting(edt);
448  }
449  @Override
450  public Setter reqSetCurrentTimeSetting(byte[] edt) {
451  return (Setter)super.reqSetCurrentTimeSetting(edt);
452  }
453  @Override
454  public Setter reqSetCurrentDateSetting(byte[] edt) {
455  return (Setter)super.reqSetCurrentDateSetting(edt);
456  }
457  @Override
458  public Setter reqSetPowerLimitSetting(byte[] edt) {
459  return (Setter)super.reqSetPowerLimitSetting(edt);
460  }
461 
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 
621  public Getter reqGetDetectionThresholdLevel() {
622  reqGetProperty(EPC_DETECTION_THRESHOLD_LEVEL);
623  return this;
624  }
652  public Getter reqGetMailingDetectionStatus() {
653  reqGetProperty(EPC_MAILING_DETECTION_STATUS);
654  return this;
655  }
656  }
657 
658  public static class Informer extends DeviceObject.Informer {
659  public Informer(short echoClassCode, byte echoInstanceCode
660  , String dstEchoAddress, boolean isSelfObject) {
661  super(echoClassCode, echoInstanceCode
662  , dstEchoAddress, isSelfObject);
663  }
664 
665  @Override
666  public Informer reqInformProperty(byte epc) {
667  return (Informer)super.reqInformProperty(epc);
668  }
669  @Override
670  public Informer reqInformOperationStatus() {
671  return (Informer)super.reqInformOperationStatus();
672  }
673  @Override
674  public Informer reqInformInstallationLocation() {
675  return (Informer)super.reqInformInstallationLocation();
676  }
677  @Override
678  public Informer reqInformStandardVersionInformation() {
679  return (Informer)super.reqInformStandardVersionInformation();
680  }
681  @Override
682  public Informer reqInformIdentificationNumber() {
683  return (Informer)super.reqInformIdentificationNumber();
684  }
685  @Override
686  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
687  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
688  }
689  @Override
690  public Informer reqInformMeasuredCumulativePowerConsumption() {
691  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
692  }
693  @Override
694  public Informer reqInformManufacturersFaultCode() {
695  return (Informer)super.reqInformManufacturersFaultCode();
696  }
697  @Override
698  public Informer reqInformCurrentLimitSetting() {
699  return (Informer)super.reqInformCurrentLimitSetting();
700  }
701  @Override
702  public Informer reqInformFaultStatus() {
703  return (Informer)super.reqInformFaultStatus();
704  }
705  @Override
706  public Informer reqInformFaultDescription() {
707  return (Informer)super.reqInformFaultDescription();
708  }
709  @Override
710  public Informer reqInformManufacturerCode() {
711  return (Informer)super.reqInformManufacturerCode();
712  }
713  @Override
714  public Informer reqInformBusinessFacilityCode() {
715  return (Informer)super.reqInformBusinessFacilityCode();
716  }
717  @Override
718  public Informer reqInformProductCode() {
719  return (Informer)super.reqInformProductCode();
720  }
721  @Override
722  public Informer reqInformProductionNumber() {
723  return (Informer)super.reqInformProductionNumber();
724  }
725  @Override
726  public Informer reqInformProductionDate() {
727  return (Informer)super.reqInformProductionDate();
728  }
729  @Override
730  public Informer reqInformPowerSavingOperationSetting() {
731  return (Informer)super.reqInformPowerSavingOperationSetting();
732  }
733  @Override
734  public Informer reqInformRemoteControlSetting() {
735  return (Informer)super.reqInformRemoteControlSetting();
736  }
737  @Override
738  public Informer reqInformCurrentTimeSetting() {
739  return (Informer)super.reqInformCurrentTimeSetting();
740  }
741  @Override
742  public Informer reqInformCurrentDateSetting() {
743  return (Informer)super.reqInformCurrentDateSetting();
744  }
745  @Override
746  public Informer reqInformPowerLimitSetting() {
747  return (Informer)super.reqInformPowerLimitSetting();
748  }
749  @Override
750  public Informer reqInformCumulativeOperatingTime() {
751  return (Informer)super.reqInformCumulativeOperatingTime();
752  }
753  @Override
754  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
755  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
756  }
757  @Override
758  public Informer reqInformSetPropertyMap() {
759  return (Informer)super.reqInformSetPropertyMap();
760  }
761  @Override
762  public Informer reqInformGetPropertyMap() {
763  return (Informer)super.reqInformGetPropertyMap();
764  }
765 
788  public Informer reqInformDetectionThresholdLevel() {
789  reqInformProperty(EPC_DETECTION_THRESHOLD_LEVEL);
790  return this;
791  }
819  public Informer reqInformMailingDetectionStatus() {
820  reqInformProperty(EPC_MAILING_DETECTION_STATUS);
821  return this;
822  }
823  }
824 
825  public static class Proxy extends MailingSensor {
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[] getMailingDetectionStatus() {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 }
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)
static Setter setG(byte instanceCode, boolean responseRequired)
synchronized boolean isValidProperty(EchoProperty property)
static Informer informG(byte instanceCode)
synchronized boolean setProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53