OpenECHO
 All Classes Namespaces Files Functions Variables
EmergencyButton.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 EmergencyButton extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0003;
29 
30  public static final byte EPC_EMERGENCY_OCCURRENCE_STATUS = (byte)0xB1;
31  public static final byte EPC_EMERGENCY_OCCURRENCE_STATUS_RESETTING = (byte)0xBF;
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().onNewEmergencyButton(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();
131  protected abstract byte[] getEmergencyOccurrenceStatus();
158  protected boolean isValidEmergencyOccurrenceStatus(byte[] edt) {
159  if(edt == null || !(edt.length == 1)) return false;
160  return true;
161  }
184  protected boolean setEmergencyOccurrenceStatusResetting(byte[] edt) {return false;}
207  protected boolean isValidEmergencyOccurrenceStatusResetting(byte[] edt) {
208  if(edt == null || !(edt.length == 1)) return false;
209  return true;
210  }
211 
212  @Override
213  protected synchronized boolean setProperty(EchoProperty property) {
214  boolean success = super.setProperty(property);
215  if(success) return success;
216 
217  switch(property.epc) {
219  default : return false;
220  }
221  }
222 
223  @Override
224  protected synchronized byte[] getProperty(byte epc) {
225  byte[] edt = super.getProperty(epc);
226  if(edt != null) return edt;
227 
228  switch(epc) {
230  default : return null;
231  }
232  }
233 
234  @Override
235  protected synchronized boolean isValidProperty(EchoProperty property) {
236  boolean valid = super.isValidProperty(property);
237  if(valid) return valid;
238 
239  switch(property.epc) {
242  default : return false;
243  }
244  }
245 
246  @Override
247  public Setter set() {
248  return set(true);
249  }
250 
251  @Override
252  public Setter set(boolean responseRequired) {
253  return new Setter(getEchoClassCode(), getInstanceCode()
254  , getNode().getAddressStr(), responseRequired);
255  }
256 
257  @Override
258  public Getter get() {
259  return new Getter(getEchoClassCode(), getInstanceCode()
260  , getNode().getAddressStr());
261  }
262 
263  @Override
264  public Informer inform() {
265  return inform(isSelfObject());
266  }
267 
268  @Override
269  protected Informer inform(boolean multicast) {
270  String address;
271  if(multicast) {
273  } else {
274  address = getNode().getAddressStr();
275  }
276  return new Informer(getEchoClassCode(), getInstanceCode()
277  , address, isSelfObject());
278  }
279 
280  public static class Receiver extends DeviceObject.Receiver {
281 
282  @Override
283  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
284  EchoProperty property, boolean success) {
285  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
286  if(ret) return true;
287 
288  switch(property.epc) {
290  onSetEmergencyOccurrenceStatusResetting(eoj, tid, esv, property, success);
291  return true;
292  default :
293  return false;
294  }
295  }
296 
297  @Override
298  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
299  EchoProperty property, boolean success) {
300  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
301  if(ret) return true;
302 
303  switch(property.epc) {
305  onGetEmergencyOccurrenceStatus(eoj, tid, esv, property, success);
306  return true;
307  default :
308  return false;
309  }
310  }
311 
338  protected void onGetEmergencyOccurrenceStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
361  protected void onSetEmergencyOccurrenceStatusResetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
362  }
363 
364  public static class Setter extends DeviceObject.Setter {
365  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
366  , String dstEchoAddress, boolean responseRequired) {
367  super(dstEchoClassCode, dstEchoInstanceCode
368  , dstEchoAddress, responseRequired);
369  }
370 
371  @Override
372  public Setter reqSetProperty(byte epc, byte[] edt) {
373  return (Setter)super.reqSetProperty(epc, edt);
374  }
375 
376  @Override
377  public Setter reqSetOperationStatus(byte[] edt) {
378  return (Setter)super.reqSetOperationStatus(edt);
379  }
380  @Override
381  public Setter reqSetInstallationLocation(byte[] edt) {
382  return (Setter)super.reqSetInstallationLocation(edt);
383  }
384  @Override
385  public Setter reqSetCurrentLimitSetting(byte[] edt) {
386  return (Setter)super.reqSetCurrentLimitSetting(edt);
387  }
388  @Override
389  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
390  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
391  }
392  @Override
393  public Setter reqSetRemoteControlSetting(byte[] edt) {
394  return (Setter)super.reqSetRemoteControlSetting(edt);
395  }
396  @Override
397  public Setter reqSetCurrentTimeSetting(byte[] edt) {
398  return (Setter)super.reqSetCurrentTimeSetting(edt);
399  }
400  @Override
401  public Setter reqSetCurrentDateSetting(byte[] edt) {
402  return (Setter)super.reqSetCurrentDateSetting(edt);
403  }
404  @Override
405  public Setter reqSetPowerLimitSetting(byte[] edt) {
406  return (Setter)super.reqSetPowerLimitSetting(edt);
407  }
408 
431  public Setter reqSetEmergencyOccurrenceStatusResetting(byte[] edt) {
432  reqSetProperty(EPC_EMERGENCY_OCCURRENCE_STATUS_RESETTING, edt);
433  return this;
434  }
435  }
436 
437  public static class Getter extends DeviceObject.Getter {
438  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
439  , String dstEchoAddress) {
440  super(dstEchoClassCode, dstEchoInstanceCode
441  , dstEchoAddress);
442  }
443 
444  @Override
445  public Getter reqGetProperty(byte epc) {
446  return (Getter)super.reqGetProperty(epc);
447  }
448 
449  @Override
450  public Getter reqGetOperationStatus() {
451  return (Getter)super.reqGetOperationStatus();
452  }
453  @Override
454  public Getter reqGetInstallationLocation() {
455  return (Getter)super.reqGetInstallationLocation();
456  }
457  @Override
458  public Getter reqGetStandardVersionInformation() {
459  return (Getter)super.reqGetStandardVersionInformation();
460  }
461  @Override
462  public Getter reqGetIdentificationNumber() {
463  return (Getter)super.reqGetIdentificationNumber();
464  }
465  @Override
466  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
467  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
468  }
469  @Override
470  public Getter reqGetMeasuredCumulativePowerConsumption() {
471  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
472  }
473  @Override
474  public Getter reqGetManufacturersFaultCode() {
475  return (Getter)super.reqGetManufacturersFaultCode();
476  }
477  @Override
478  public Getter reqGetCurrentLimitSetting() {
479  return (Getter)super.reqGetCurrentLimitSetting();
480  }
481  @Override
482  public Getter reqGetFaultStatus() {
483  return (Getter)super.reqGetFaultStatus();
484  }
485  @Override
486  public Getter reqGetFaultDescription() {
487  return (Getter)super.reqGetFaultDescription();
488  }
489  @Override
490  public Getter reqGetManufacturerCode() {
491  return (Getter)super.reqGetManufacturerCode();
492  }
493  @Override
494  public Getter reqGetBusinessFacilityCode() {
495  return (Getter)super.reqGetBusinessFacilityCode();
496  }
497  @Override
498  public Getter reqGetProductCode() {
499  return (Getter)super.reqGetProductCode();
500  }
501  @Override
502  public Getter reqGetProductionNumber() {
503  return (Getter)super.reqGetProductionNumber();
504  }
505  @Override
506  public Getter reqGetProductionDate() {
507  return (Getter)super.reqGetProductionDate();
508  }
509  @Override
510  public Getter reqGetPowerSavingOperationSetting() {
511  return (Getter)super.reqGetPowerSavingOperationSetting();
512  }
513  @Override
514  public Getter reqGetRemoteControlSetting() {
515  return (Getter)super.reqGetRemoteControlSetting();
516  }
517  @Override
518  public Getter reqGetCurrentTimeSetting() {
519  return (Getter)super.reqGetCurrentTimeSetting();
520  }
521  @Override
522  public Getter reqGetCurrentDateSetting() {
523  return (Getter)super.reqGetCurrentDateSetting();
524  }
525  @Override
526  public Getter reqGetPowerLimitSetting() {
527  return (Getter)super.reqGetPowerLimitSetting();
528  }
529  @Override
530  public Getter reqGetCumulativeOperatingTime() {
531  return (Getter)super.reqGetCumulativeOperatingTime();
532  }
533  @Override
534  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
535  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
536  }
537  @Override
538  public Getter reqGetSetPropertyMap() {
539  return (Getter)super.reqGetSetPropertyMap();
540  }
541  @Override
542  public Getter reqGetGetPropertyMap() {
543  return (Getter)super.reqGetGetPropertyMap();
544  }
545 
572  public Getter reqGetEmergencyOccurrenceStatus() {
573  reqGetProperty(EPC_EMERGENCY_OCCURRENCE_STATUS);
574  return this;
575  }
576  }
577 
578  public static class Informer extends DeviceObject.Informer {
579  public Informer(short echoClassCode, byte echoInstanceCode
580  , String dstEchoAddress, boolean isSelfObject) {
581  super(echoClassCode, echoInstanceCode
582  , dstEchoAddress, isSelfObject);
583  }
584 
585  @Override
586  public Informer reqInformProperty(byte epc) {
587  return (Informer)super.reqInformProperty(epc);
588  }
589  @Override
590  public Informer reqInformOperationStatus() {
591  return (Informer)super.reqInformOperationStatus();
592  }
593  @Override
594  public Informer reqInformInstallationLocation() {
595  return (Informer)super.reqInformInstallationLocation();
596  }
597  @Override
598  public Informer reqInformStandardVersionInformation() {
599  return (Informer)super.reqInformStandardVersionInformation();
600  }
601  @Override
602  public Informer reqInformIdentificationNumber() {
603  return (Informer)super.reqInformIdentificationNumber();
604  }
605  @Override
606  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
607  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
608  }
609  @Override
610  public Informer reqInformMeasuredCumulativePowerConsumption() {
611  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
612  }
613  @Override
614  public Informer reqInformManufacturersFaultCode() {
615  return (Informer)super.reqInformManufacturersFaultCode();
616  }
617  @Override
618  public Informer reqInformCurrentLimitSetting() {
619  return (Informer)super.reqInformCurrentLimitSetting();
620  }
621  @Override
622  public Informer reqInformFaultStatus() {
623  return (Informer)super.reqInformFaultStatus();
624  }
625  @Override
626  public Informer reqInformFaultDescription() {
627  return (Informer)super.reqInformFaultDescription();
628  }
629  @Override
630  public Informer reqInformManufacturerCode() {
631  return (Informer)super.reqInformManufacturerCode();
632  }
633  @Override
634  public Informer reqInformBusinessFacilityCode() {
635  return (Informer)super.reqInformBusinessFacilityCode();
636  }
637  @Override
638  public Informer reqInformProductCode() {
639  return (Informer)super.reqInformProductCode();
640  }
641  @Override
642  public Informer reqInformProductionNumber() {
643  return (Informer)super.reqInformProductionNumber();
644  }
645  @Override
646  public Informer reqInformProductionDate() {
647  return (Informer)super.reqInformProductionDate();
648  }
649  @Override
650  public Informer reqInformPowerSavingOperationSetting() {
651  return (Informer)super.reqInformPowerSavingOperationSetting();
652  }
653  @Override
654  public Informer reqInformRemoteControlSetting() {
655  return (Informer)super.reqInformRemoteControlSetting();
656  }
657  @Override
658  public Informer reqInformCurrentTimeSetting() {
659  return (Informer)super.reqInformCurrentTimeSetting();
660  }
661  @Override
662  public Informer reqInformCurrentDateSetting() {
663  return (Informer)super.reqInformCurrentDateSetting();
664  }
665  @Override
666  public Informer reqInformPowerLimitSetting() {
667  return (Informer)super.reqInformPowerLimitSetting();
668  }
669  @Override
670  public Informer reqInformCumulativeOperatingTime() {
671  return (Informer)super.reqInformCumulativeOperatingTime();
672  }
673  @Override
674  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
675  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
676  }
677  @Override
678  public Informer reqInformSetPropertyMap() {
679  return (Informer)super.reqInformSetPropertyMap();
680  }
681  @Override
682  public Informer reqInformGetPropertyMap() {
683  return (Informer)super.reqInformGetPropertyMap();
684  }
685 
712  public Informer reqInformEmergencyOccurrenceStatus() {
713  reqInformProperty(EPC_EMERGENCY_OCCURRENCE_STATUS);
714  return this;
715  }
716  }
717 
718  public static class Proxy extends EmergencyButton {
719  public Proxy(byte instanceCode) {
720  super();
721  mEchoInstanceCode = instanceCode;
722  }
723  @Override
724  public byte getInstanceCode() {
725  return mEchoInstanceCode;
726  }
727  @Override
728  protected byte[] getOperationStatus() {return null;}
729  @Override
730  protected boolean setInstallationLocation(byte[] edt) {return false;}
731  @Override
732  protected byte[] getInstallationLocation() {return null;}
733  @Override
734  protected byte[] getStandardVersionInformation() {return null;}
735  @Override
736  protected byte[] getFaultStatus() {return null;}
737  @Override
738  protected byte[] getManufacturerCode() {return null;}
739  @Override
740  protected byte[] getEmergencyOccurrenceStatus() {return null;}
741  }
742 
743  public static Setter setG() {
744  return setG((byte)0);
745  }
746 
747  public static Setter setG(byte instanceCode) {
748  return setG(instanceCode, true);
749  }
750 
751  public static Setter setG(boolean responseRequired) {
752  return setG((byte)0, responseRequired);
753  }
754 
755  public static Setter setG(byte instanceCode, boolean responseRequired) {
756  return new Setter(ECHO_CLASS_CODE, instanceCode
757  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
758  }
759 
760  public static Getter getG() {
761  return getG((byte)0);
762  }
763 
764  public static Getter getG(byte instanceCode) {
765  return new Getter(ECHO_CLASS_CODE, instanceCode
767  }
768 
769  public static Informer informG() {
770  return informG((byte)0);
771  }
772 
773  public static Informer informG(byte instanceCode) {
774  return new Informer(ECHO_CLASS_CODE, instanceCode
775  , EchoSocket.MULTICAST_ADDRESS, false);
776  }
777 
778 }
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
synchronized boolean setProperty(EchoProperty property)
static Setter setG(byte instanceCode, boolean responseRequired)
synchronized boolean isValidProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
static Setter setG(boolean responseRequired)