OpenECHO
 All Classes Namespaces Files Functions Variables
Buzzer.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.housingfacilities;
17 
25 
26 public abstract class Buzzer extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x02A0;
29 
30  public static final byte EPC_SOUND_GENERATION_SETTING = (byte)0xB1;
31  public static final byte EPC_BUZZER_SOUND_TYPE = (byte)0xE0;
32 
33  @Override
34  protected void setupPropertyMaps() {
35  super.setupPropertyMaps();
36 
40  }
41 
42  @Override
43  public void onNew() {
44  super.onNew();
45  Echo.getEventListener().onNewBuzzer(this);
46  }
47 
48  @Override
49  public short getEchoClassCode() {
50  return ECHO_CLASS_CODE;
51  }
52 
77  protected boolean setOperationStatus(byte[] edt) {return false;}
102  protected abstract byte[] getOperationStatus();
125  protected boolean setSoundGenerationSetting(byte[] edt) {return false;}
148  protected byte[] getSoundGenerationSetting() {return null;}
171  protected boolean isValidSoundGenerationSetting(byte[] edt) {
172  if(edt == null || !(edt.length == 1)) return false;
173  return true;
174  }
197  protected boolean setBuzzerSoundType(byte[] edt) {return false;}
220  protected byte[] getBuzzerSoundType() {return null;}
243  protected boolean isValidBuzzerSoundType(byte[] edt) {
244  if(edt == null || !(edt.length == 1)) return false;
245  return true;
246  }
247 
248  @Override
249  protected synchronized boolean setProperty(EchoProperty property) {
250  boolean success = super.setProperty(property);
251  if(success) return success;
252 
253  switch(property.epc) {
255  case EPC_BUZZER_SOUND_TYPE : return setBuzzerSoundType(property.edt);
256  default : return false;
257  }
258  }
259 
260  @Override
261  protected synchronized byte[] getProperty(byte epc) {
262  byte[] edt = super.getProperty(epc);
263  if(edt != null) return edt;
264 
265  switch(epc) {
268  default : return null;
269  }
270  }
271 
272  @Override
273  protected synchronized boolean isValidProperty(EchoProperty property) {
274  boolean valid = super.isValidProperty(property);
275  if(valid) return valid;
276 
277  switch(property.epc) {
279  case EPC_BUZZER_SOUND_TYPE : return isValidBuzzerSoundType(property.edt);
280  default : return false;
281  }
282  }
283 
284  @Override
285  public Setter set() {
286  return set(true);
287  }
288 
289  @Override
290  public Setter set(boolean responseRequired) {
291  return new Setter(getEchoClassCode(), getInstanceCode()
292  , getNode().getAddressStr(), responseRequired);
293  }
294 
295  @Override
296  public Getter get() {
297  return new Getter(getEchoClassCode(), getInstanceCode()
298  , getNode().getAddressStr());
299  }
300 
301  @Override
302  public Informer inform() {
303  return inform(isSelfObject());
304  }
305 
306  @Override
307  protected Informer inform(boolean multicast) {
308  String address;
309  if(multicast) {
311  } else {
312  address = getNode().getAddressStr();
313  }
314  return new Informer(getEchoClassCode(), getInstanceCode()
315  , address, isSelfObject());
316  }
317 
318  public static class Receiver extends DeviceObject.Receiver {
319 
320  @Override
321  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
322  EchoProperty property, boolean success) {
323  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
324  if(ret) return true;
325 
326  switch(property.epc) {
328  onSetSoundGenerationSetting(eoj, tid, esv, property, success);
329  return true;
330  case EPC_BUZZER_SOUND_TYPE :
331  onSetBuzzerSoundType(eoj, tid, esv, property, success);
332  return true;
333  default :
334  return false;
335  }
336  }
337 
338  @Override
339  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
340  EchoProperty property, boolean success) {
341  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
342  if(ret) return true;
343 
344  switch(property.epc) {
346  onGetSoundGenerationSetting(eoj, tid, esv, property, success);
347  return true;
348  case EPC_BUZZER_SOUND_TYPE :
349  onGetBuzzerSoundType(eoj, tid, esv, property, success);
350  return true;
351  default :
352  return false;
353  }
354  }
355 
378  protected void onSetSoundGenerationSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
401  protected void onGetSoundGenerationSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
424  protected void onSetBuzzerSoundType(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
447  protected void onGetBuzzerSoundType(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
448  }
449 
450  public static class Setter extends DeviceObject.Setter {
451  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
452  , String dstEchoAddress, boolean responseRequired) {
453  super(dstEchoClassCode, dstEchoInstanceCode
454  , dstEchoAddress, responseRequired);
455  }
456 
457  @Override
458  public Setter reqSetProperty(byte epc, byte[] edt) {
459  return (Setter)super.reqSetProperty(epc, edt);
460  }
461 
462  @Override
463  public Setter reqSetOperationStatus(byte[] edt) {
464  return (Setter)super.reqSetOperationStatus(edt);
465  }
466  @Override
467  public Setter reqSetInstallationLocation(byte[] edt) {
468  return (Setter)super.reqSetInstallationLocation(edt);
469  }
470  @Override
471  public Setter reqSetCurrentLimitSetting(byte[] edt) {
472  return (Setter)super.reqSetCurrentLimitSetting(edt);
473  }
474  @Override
475  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
476  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
477  }
478  @Override
479  public Setter reqSetRemoteControlSetting(byte[] edt) {
480  return (Setter)super.reqSetRemoteControlSetting(edt);
481  }
482  @Override
483  public Setter reqSetCurrentTimeSetting(byte[] edt) {
484  return (Setter)super.reqSetCurrentTimeSetting(edt);
485  }
486  @Override
487  public Setter reqSetCurrentDateSetting(byte[] edt) {
488  return (Setter)super.reqSetCurrentDateSetting(edt);
489  }
490  @Override
491  public Setter reqSetPowerLimitSetting(byte[] edt) {
492  return (Setter)super.reqSetPowerLimitSetting(edt);
493  }
494 
517  public Setter reqSetSoundGenerationSetting(byte[] edt) {
518  reqSetProperty(EPC_SOUND_GENERATION_SETTING, edt);
519  return this;
520  }
543  public Setter reqSetBuzzerSoundType(byte[] edt) {
544  reqSetProperty(EPC_BUZZER_SOUND_TYPE, edt);
545  return this;
546  }
547  }
548 
549  public static class Getter extends DeviceObject.Getter {
550  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
551  , String dstEchoAddress) {
552  super(dstEchoClassCode, dstEchoInstanceCode
553  , dstEchoAddress);
554  }
555 
556  @Override
557  public Getter reqGetProperty(byte epc) {
558  return (Getter)super.reqGetProperty(epc);
559  }
560 
561  @Override
562  public Getter reqGetOperationStatus() {
563  return (Getter)super.reqGetOperationStatus();
564  }
565  @Override
566  public Getter reqGetInstallationLocation() {
567  return (Getter)super.reqGetInstallationLocation();
568  }
569  @Override
570  public Getter reqGetStandardVersionInformation() {
571  return (Getter)super.reqGetStandardVersionInformation();
572  }
573  @Override
574  public Getter reqGetIdentificationNumber() {
575  return (Getter)super.reqGetIdentificationNumber();
576  }
577  @Override
578  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
579  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
580  }
581  @Override
582  public Getter reqGetMeasuredCumulativePowerConsumption() {
583  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
584  }
585  @Override
586  public Getter reqGetManufacturersFaultCode() {
587  return (Getter)super.reqGetManufacturersFaultCode();
588  }
589  @Override
590  public Getter reqGetCurrentLimitSetting() {
591  return (Getter)super.reqGetCurrentLimitSetting();
592  }
593  @Override
594  public Getter reqGetFaultStatus() {
595  return (Getter)super.reqGetFaultStatus();
596  }
597  @Override
598  public Getter reqGetFaultDescription() {
599  return (Getter)super.reqGetFaultDescription();
600  }
601  @Override
602  public Getter reqGetManufacturerCode() {
603  return (Getter)super.reqGetManufacturerCode();
604  }
605  @Override
606  public Getter reqGetBusinessFacilityCode() {
607  return (Getter)super.reqGetBusinessFacilityCode();
608  }
609  @Override
610  public Getter reqGetProductCode() {
611  return (Getter)super.reqGetProductCode();
612  }
613  @Override
614  public Getter reqGetProductionNumber() {
615  return (Getter)super.reqGetProductionNumber();
616  }
617  @Override
618  public Getter reqGetProductionDate() {
619  return (Getter)super.reqGetProductionDate();
620  }
621  @Override
622  public Getter reqGetPowerSavingOperationSetting() {
623  return (Getter)super.reqGetPowerSavingOperationSetting();
624  }
625  @Override
626  public Getter reqGetRemoteControlSetting() {
627  return (Getter)super.reqGetRemoteControlSetting();
628  }
629  @Override
630  public Getter reqGetCurrentTimeSetting() {
631  return (Getter)super.reqGetCurrentTimeSetting();
632  }
633  @Override
634  public Getter reqGetCurrentDateSetting() {
635  return (Getter)super.reqGetCurrentDateSetting();
636  }
637  @Override
638  public Getter reqGetPowerLimitSetting() {
639  return (Getter)super.reqGetPowerLimitSetting();
640  }
641  @Override
642  public Getter reqGetCumulativeOperatingTime() {
643  return (Getter)super.reqGetCumulativeOperatingTime();
644  }
645  @Override
646  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
647  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
648  }
649  @Override
650  public Getter reqGetSetPropertyMap() {
651  return (Getter)super.reqGetSetPropertyMap();
652  }
653  @Override
654  public Getter reqGetGetPropertyMap() {
655  return (Getter)super.reqGetGetPropertyMap();
656  }
657 
680  public Getter reqGetSoundGenerationSetting() {
681  reqGetProperty(EPC_SOUND_GENERATION_SETTING);
682  return this;
683  }
706  public Getter reqGetBuzzerSoundType() {
707  reqGetProperty(EPC_BUZZER_SOUND_TYPE);
708  return this;
709  }
710  }
711 
712  public static class Informer extends DeviceObject.Informer {
713  public Informer(short echoClassCode, byte echoInstanceCode
714  , String dstEchoAddress, boolean isSelfObject) {
715  super(echoClassCode, echoInstanceCode
716  , dstEchoAddress, isSelfObject);
717  }
718 
719  @Override
720  public Informer reqInformProperty(byte epc) {
721  return (Informer)super.reqInformProperty(epc);
722  }
723  @Override
724  public Informer reqInformOperationStatus() {
725  return (Informer)super.reqInformOperationStatus();
726  }
727  @Override
728  public Informer reqInformInstallationLocation() {
729  return (Informer)super.reqInformInstallationLocation();
730  }
731  @Override
732  public Informer reqInformStandardVersionInformation() {
733  return (Informer)super.reqInformStandardVersionInformation();
734  }
735  @Override
736  public Informer reqInformIdentificationNumber() {
737  return (Informer)super.reqInformIdentificationNumber();
738  }
739  @Override
740  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
741  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
742  }
743  @Override
744  public Informer reqInformMeasuredCumulativePowerConsumption() {
745  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
746  }
747  @Override
748  public Informer reqInformManufacturersFaultCode() {
749  return (Informer)super.reqInformManufacturersFaultCode();
750  }
751  @Override
752  public Informer reqInformCurrentLimitSetting() {
753  return (Informer)super.reqInformCurrentLimitSetting();
754  }
755  @Override
756  public Informer reqInformFaultStatus() {
757  return (Informer)super.reqInformFaultStatus();
758  }
759  @Override
760  public Informer reqInformFaultDescription() {
761  return (Informer)super.reqInformFaultDescription();
762  }
763  @Override
764  public Informer reqInformManufacturerCode() {
765  return (Informer)super.reqInformManufacturerCode();
766  }
767  @Override
768  public Informer reqInformBusinessFacilityCode() {
769  return (Informer)super.reqInformBusinessFacilityCode();
770  }
771  @Override
772  public Informer reqInformProductCode() {
773  return (Informer)super.reqInformProductCode();
774  }
775  @Override
776  public Informer reqInformProductionNumber() {
777  return (Informer)super.reqInformProductionNumber();
778  }
779  @Override
780  public Informer reqInformProductionDate() {
781  return (Informer)super.reqInformProductionDate();
782  }
783  @Override
784  public Informer reqInformPowerSavingOperationSetting() {
785  return (Informer)super.reqInformPowerSavingOperationSetting();
786  }
787  @Override
788  public Informer reqInformRemoteControlSetting() {
789  return (Informer)super.reqInformRemoteControlSetting();
790  }
791  @Override
792  public Informer reqInformCurrentTimeSetting() {
793  return (Informer)super.reqInformCurrentTimeSetting();
794  }
795  @Override
796  public Informer reqInformCurrentDateSetting() {
797  return (Informer)super.reqInformCurrentDateSetting();
798  }
799  @Override
800  public Informer reqInformPowerLimitSetting() {
801  return (Informer)super.reqInformPowerLimitSetting();
802  }
803  @Override
804  public Informer reqInformCumulativeOperatingTime() {
805  return (Informer)super.reqInformCumulativeOperatingTime();
806  }
807  @Override
808  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
809  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
810  }
811  @Override
812  public Informer reqInformSetPropertyMap() {
813  return (Informer)super.reqInformSetPropertyMap();
814  }
815  @Override
816  public Informer reqInformGetPropertyMap() {
817  return (Informer)super.reqInformGetPropertyMap();
818  }
819 
842  public Informer reqInformSoundGenerationSetting() {
843  reqInformProperty(EPC_SOUND_GENERATION_SETTING);
844  return this;
845  }
868  public Informer reqInformBuzzerSoundType() {
869  reqInformProperty(EPC_BUZZER_SOUND_TYPE);
870  return this;
871  }
872  }
873 
874  public static class Proxy extends Buzzer {
875  public Proxy(byte instanceCode) {
876  super();
877  mEchoInstanceCode = instanceCode;
878  }
879  @Override
880  public byte getInstanceCode() {
881  return mEchoInstanceCode;
882  }
883  @Override
884  protected byte[] getOperationStatus() {return null;}
885  @Override
886  protected boolean setInstallationLocation(byte[] edt) {return false;}
887  @Override
888  protected byte[] getInstallationLocation() {return null;}
889  @Override
890  protected byte[] getStandardVersionInformation() {return null;}
891  @Override
892  protected byte[] getFaultStatus() {return null;}
893  @Override
894  protected byte[] getManufacturerCode() {return null;}
895  }
896 
897  public static Setter setG() {
898  return setG((byte)0);
899  }
900 
901  public static Setter setG(byte instanceCode) {
902  return setG(instanceCode, true);
903  }
904 
905  public static Setter setG(boolean responseRequired) {
906  return setG((byte)0, responseRequired);
907  }
908 
909  public static Setter setG(byte instanceCode, boolean responseRequired) {
910  return new Setter(ECHO_CLASS_CODE, instanceCode
911  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
912  }
913 
914  public static Getter getG() {
915  return getG((byte)0);
916  }
917 
918  public static Getter getG(byte instanceCode) {
919  return new Getter(ECHO_CLASS_CODE, instanceCode
921  }
922 
923  public static Informer informG() {
924  return informG((byte)0);
925  }
926 
927  public static Informer informG(byte instanceCode) {
928  return new Informer(ECHO_CLASS_CODE, instanceCode
929  , EchoSocket.MULTICAST_ADDRESS, false);
930  }
931 
932 }
static Setter setG(byte instanceCode, boolean responseRequired)
Definition: Buzzer.java:909
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
synchronized boolean isValidProperty(EchoProperty property)
Definition: Buzzer.java:273
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
Setter set(boolean responseRequired)
Definition: Buzzer.java:290
synchronized boolean setProperty(EchoProperty property)
Definition: Buzzer.java:249
synchronized byte[] getProperty(byte epc)
Definition: Buzzer.java:261
static Getter getG(byte instanceCode)
Definition: Buzzer.java:918
static Setter setG(byte instanceCode)
Definition: Buzzer.java:901
static Setter setG(boolean responseRequired)
Definition: Buzzer.java:905
static Informer informG(byte instanceCode)
Definition: Buzzer.java:927
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53