OpenECHO
 All Classes Namespaces Files Functions Variables
VentilationFan.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.airconditioner;
17 
25 
26 public abstract class VentilationFan extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0133;
29 
30  public static final byte EPC_VENTILATION_AUTO_SETTING = (byte)0xBF;
31  public static final byte EPC_SET_VALUE_OF_VENTILATION_AIR_FLOW_RATE = (byte)0xA0;
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().onNewVentilationFan(this);
46  }
47 
48  @Override
49  public short getEchoClassCode() {
50  return ECHO_CLASS_CODE;
51  }
52 
77  protected abstract boolean setOperationStatus(byte[] edt);
102  protected abstract byte[] getOperationStatus();
125  protected boolean setVentilationAutoSetting(byte[] edt) {return false;}
148  protected byte[] getVentilationAutoSetting() {return null;}
171  protected boolean isValidVentilationAutoSetting(byte[] edt) {
172  if(edt == null || !(edt.length == 1)) return false;
173  return true;
174  }
200  protected boolean setSetValueOfVentilationAirFlowRate(byte[] edt) {return false;}
226  protected byte[] getSetValueOfVentilationAirFlowRate() {return null;}
252  protected boolean isValidSetValueOfVentilationAirFlowRate(byte[] edt) {
253  if(edt == null || !(edt.length == 1)) return false;
254  return true;
255  }
256 
257  @Override
258  protected synchronized boolean setProperty(EchoProperty property) {
259  boolean success = super.setProperty(property);
260  if(success) return success;
261 
262  switch(property.epc) {
265  default : return false;
266  }
267  }
268 
269  @Override
270  protected synchronized byte[] getProperty(byte epc) {
271  byte[] edt = super.getProperty(epc);
272  if(edt != null) return edt;
273 
274  switch(epc) {
277  default : return null;
278  }
279  }
280 
281  @Override
282  protected synchronized boolean isValidProperty(EchoProperty property) {
283  boolean valid = super.isValidProperty(property);
284  if(valid) return valid;
285 
286  switch(property.epc) {
289  default : return false;
290  }
291  }
292 
293  @Override
294  public Setter set() {
295  return set(true);
296  }
297 
298  @Override
299  public Setter set(boolean responseRequired) {
300  return new Setter(getEchoClassCode(), getInstanceCode()
301  , getNode().getAddressStr(), responseRequired);
302  }
303 
304  @Override
305  public Getter get() {
306  return new Getter(getEchoClassCode(), getInstanceCode()
307  , getNode().getAddressStr());
308  }
309 
310  @Override
311  public Informer inform() {
312  return inform(isSelfObject());
313  }
314 
315  @Override
316  protected Informer inform(boolean multicast) {
317  String address;
318  if(multicast) {
320  } else {
321  address = getNode().getAddressStr();
322  }
323  return new Informer(getEchoClassCode(), getInstanceCode()
324  , address, isSelfObject());
325  }
326 
327  public static class Receiver extends DeviceObject.Receiver {
328 
329  @Override
330  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
331  EchoProperty property, boolean success) {
332  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
333  if(ret) return true;
334 
335  switch(property.epc) {
337  onSetVentilationAutoSetting(eoj, tid, esv, property, success);
338  return true;
340  onSetSetValueOfVentilationAirFlowRate(eoj, tid, esv, property, success);
341  return true;
342  default :
343  return false;
344  }
345  }
346 
347  @Override
348  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
349  EchoProperty property, boolean success) {
350  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
351  if(ret) return true;
352 
353  switch(property.epc) {
355  onGetVentilationAutoSetting(eoj, tid, esv, property, success);
356  return true;
358  onGetSetValueOfVentilationAirFlowRate(eoj, tid, esv, property, success);
359  return true;
360  default :
361  return false;
362  }
363  }
364 
387  protected void onSetVentilationAutoSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
410  protected void onGetVentilationAutoSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
436  protected void onSetSetValueOfVentilationAirFlowRate(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
462  protected void onGetSetValueOfVentilationAirFlowRate(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
463  }
464 
465  public static class Setter extends DeviceObject.Setter {
466  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
467  , String dstEchoAddress, boolean responseRequired) {
468  super(dstEchoClassCode, dstEchoInstanceCode
469  , dstEchoAddress, responseRequired);
470  }
471 
472  @Override
473  public Setter reqSetProperty(byte epc, byte[] edt) {
474  return (Setter)super.reqSetProperty(epc, edt);
475  }
476 
477  @Override
478  public Setter reqSetOperationStatus(byte[] edt) {
479  return (Setter)super.reqSetOperationStatus(edt);
480  }
481  @Override
482  public Setter reqSetInstallationLocation(byte[] edt) {
483  return (Setter)super.reqSetInstallationLocation(edt);
484  }
485  @Override
486  public Setter reqSetCurrentLimitSetting(byte[] edt) {
487  return (Setter)super.reqSetCurrentLimitSetting(edt);
488  }
489  @Override
490  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
491  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
492  }
493  @Override
494  public Setter reqSetRemoteControlSetting(byte[] edt) {
495  return (Setter)super.reqSetRemoteControlSetting(edt);
496  }
497  @Override
498  public Setter reqSetCurrentTimeSetting(byte[] edt) {
499  return (Setter)super.reqSetCurrentTimeSetting(edt);
500  }
501  @Override
502  public Setter reqSetCurrentDateSetting(byte[] edt) {
503  return (Setter)super.reqSetCurrentDateSetting(edt);
504  }
505  @Override
506  public Setter reqSetPowerLimitSetting(byte[] edt) {
507  return (Setter)super.reqSetPowerLimitSetting(edt);
508  }
509 
532  public Setter reqSetVentilationAutoSetting(byte[] edt) {
533  reqSetProperty(EPC_VENTILATION_AUTO_SETTING, edt);
534  return this;
535  }
561  public Setter reqSetSetValueOfVentilationAirFlowRate(byte[] edt) {
562  reqSetProperty(EPC_SET_VALUE_OF_VENTILATION_AIR_FLOW_RATE, edt);
563  return this;
564  }
565  }
566 
567  public static class Getter extends DeviceObject.Getter {
568  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
569  , String dstEchoAddress) {
570  super(dstEchoClassCode, dstEchoInstanceCode
571  , dstEchoAddress);
572  }
573 
574  @Override
575  public Getter reqGetProperty(byte epc) {
576  return (Getter)super.reqGetProperty(epc);
577  }
578 
579  @Override
580  public Getter reqGetOperationStatus() {
581  return (Getter)super.reqGetOperationStatus();
582  }
583  @Override
584  public Getter reqGetInstallationLocation() {
585  return (Getter)super.reqGetInstallationLocation();
586  }
587  @Override
588  public Getter reqGetStandardVersionInformation() {
589  return (Getter)super.reqGetStandardVersionInformation();
590  }
591  @Override
592  public Getter reqGetIdentificationNumber() {
593  return (Getter)super.reqGetIdentificationNumber();
594  }
595  @Override
596  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
597  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
598  }
599  @Override
600  public Getter reqGetMeasuredCumulativePowerConsumption() {
601  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
602  }
603  @Override
604  public Getter reqGetManufacturersFaultCode() {
605  return (Getter)super.reqGetManufacturersFaultCode();
606  }
607  @Override
608  public Getter reqGetCurrentLimitSetting() {
609  return (Getter)super.reqGetCurrentLimitSetting();
610  }
611  @Override
612  public Getter reqGetFaultStatus() {
613  return (Getter)super.reqGetFaultStatus();
614  }
615  @Override
616  public Getter reqGetFaultDescription() {
617  return (Getter)super.reqGetFaultDescription();
618  }
619  @Override
620  public Getter reqGetManufacturerCode() {
621  return (Getter)super.reqGetManufacturerCode();
622  }
623  @Override
624  public Getter reqGetBusinessFacilityCode() {
625  return (Getter)super.reqGetBusinessFacilityCode();
626  }
627  @Override
628  public Getter reqGetProductCode() {
629  return (Getter)super.reqGetProductCode();
630  }
631  @Override
632  public Getter reqGetProductionNumber() {
633  return (Getter)super.reqGetProductionNumber();
634  }
635  @Override
636  public Getter reqGetProductionDate() {
637  return (Getter)super.reqGetProductionDate();
638  }
639  @Override
640  public Getter reqGetPowerSavingOperationSetting() {
641  return (Getter)super.reqGetPowerSavingOperationSetting();
642  }
643  @Override
644  public Getter reqGetRemoteControlSetting() {
645  return (Getter)super.reqGetRemoteControlSetting();
646  }
647  @Override
648  public Getter reqGetCurrentTimeSetting() {
649  return (Getter)super.reqGetCurrentTimeSetting();
650  }
651  @Override
652  public Getter reqGetCurrentDateSetting() {
653  return (Getter)super.reqGetCurrentDateSetting();
654  }
655  @Override
656  public Getter reqGetPowerLimitSetting() {
657  return (Getter)super.reqGetPowerLimitSetting();
658  }
659  @Override
660  public Getter reqGetCumulativeOperatingTime() {
661  return (Getter)super.reqGetCumulativeOperatingTime();
662  }
663  @Override
664  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
665  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
666  }
667  @Override
668  public Getter reqGetSetPropertyMap() {
669  return (Getter)super.reqGetSetPropertyMap();
670  }
671  @Override
672  public Getter reqGetGetPropertyMap() {
673  return (Getter)super.reqGetGetPropertyMap();
674  }
675 
698  public Getter reqGetVentilationAutoSetting() {
699  reqGetProperty(EPC_VENTILATION_AUTO_SETTING);
700  return this;
701  }
727  public Getter reqGetSetValueOfVentilationAirFlowRate() {
729  return this;
730  }
731  }
732 
733  public static class Informer extends DeviceObject.Informer {
734  public Informer(short echoClassCode, byte echoInstanceCode
735  , String dstEchoAddress, boolean isSelfObject) {
736  super(echoClassCode, echoInstanceCode
737  , dstEchoAddress, isSelfObject);
738  }
739 
740  @Override
741  public Informer reqInformProperty(byte epc) {
742  return (Informer)super.reqInformProperty(epc);
743  }
744  @Override
745  public Informer reqInformOperationStatus() {
746  return (Informer)super.reqInformOperationStatus();
747  }
748  @Override
749  public Informer reqInformInstallationLocation() {
750  return (Informer)super.reqInformInstallationLocation();
751  }
752  @Override
753  public Informer reqInformStandardVersionInformation() {
754  return (Informer)super.reqInformStandardVersionInformation();
755  }
756  @Override
757  public Informer reqInformIdentificationNumber() {
758  return (Informer)super.reqInformIdentificationNumber();
759  }
760  @Override
761  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
762  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
763  }
764  @Override
765  public Informer reqInformMeasuredCumulativePowerConsumption() {
766  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
767  }
768  @Override
769  public Informer reqInformManufacturersFaultCode() {
770  return (Informer)super.reqInformManufacturersFaultCode();
771  }
772  @Override
773  public Informer reqInformCurrentLimitSetting() {
774  return (Informer)super.reqInformCurrentLimitSetting();
775  }
776  @Override
777  public Informer reqInformFaultStatus() {
778  return (Informer)super.reqInformFaultStatus();
779  }
780  @Override
781  public Informer reqInformFaultDescription() {
782  return (Informer)super.reqInformFaultDescription();
783  }
784  @Override
785  public Informer reqInformManufacturerCode() {
786  return (Informer)super.reqInformManufacturerCode();
787  }
788  @Override
789  public Informer reqInformBusinessFacilityCode() {
790  return (Informer)super.reqInformBusinessFacilityCode();
791  }
792  @Override
793  public Informer reqInformProductCode() {
794  return (Informer)super.reqInformProductCode();
795  }
796  @Override
797  public Informer reqInformProductionNumber() {
798  return (Informer)super.reqInformProductionNumber();
799  }
800  @Override
801  public Informer reqInformProductionDate() {
802  return (Informer)super.reqInformProductionDate();
803  }
804  @Override
805  public Informer reqInformPowerSavingOperationSetting() {
806  return (Informer)super.reqInformPowerSavingOperationSetting();
807  }
808  @Override
809  public Informer reqInformRemoteControlSetting() {
810  return (Informer)super.reqInformRemoteControlSetting();
811  }
812  @Override
813  public Informer reqInformCurrentTimeSetting() {
814  return (Informer)super.reqInformCurrentTimeSetting();
815  }
816  @Override
817  public Informer reqInformCurrentDateSetting() {
818  return (Informer)super.reqInformCurrentDateSetting();
819  }
820  @Override
821  public Informer reqInformPowerLimitSetting() {
822  return (Informer)super.reqInformPowerLimitSetting();
823  }
824  @Override
825  public Informer reqInformCumulativeOperatingTime() {
826  return (Informer)super.reqInformCumulativeOperatingTime();
827  }
828  @Override
829  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
830  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
831  }
832  @Override
833  public Informer reqInformSetPropertyMap() {
834  return (Informer)super.reqInformSetPropertyMap();
835  }
836  @Override
837  public Informer reqInformGetPropertyMap() {
838  return (Informer)super.reqInformGetPropertyMap();
839  }
840 
863  public Informer reqInformVentilationAutoSetting() {
864  reqInformProperty(EPC_VENTILATION_AUTO_SETTING);
865  return this;
866  }
892  public Informer reqInformSetValueOfVentilationAirFlowRate() {
894  return this;
895  }
896  }
897 
898  public static class Proxy extends VentilationFan {
899  public Proxy(byte instanceCode) {
900  super();
901  mEchoInstanceCode = instanceCode;
902  }
903  @Override
904  public byte getInstanceCode() {
905  return mEchoInstanceCode;
906  }
907  @Override
908  protected byte[] getOperationStatus() {return null;}
909  @Override
910  protected boolean setInstallationLocation(byte[] edt) {return false;}
911  @Override
912  protected byte[] getInstallationLocation() {return null;}
913  @Override
914  protected byte[] getStandardVersionInformation() {return null;}
915  @Override
916  protected byte[] getFaultStatus() {return null;}
917  @Override
918  protected byte[] getManufacturerCode() {return null;}
919  @Override
920  protected boolean setOperationStatus(byte[] edt) {return false;}
921  }
922 
923  public static Setter setG() {
924  return setG((byte)0);
925  }
926 
927  public static Setter setG(byte instanceCode) {
928  return setG(instanceCode, true);
929  }
930 
931  public static Setter setG(boolean responseRequired) {
932  return setG((byte)0, responseRequired);
933  }
934 
935  public static Setter setG(byte instanceCode, boolean responseRequired) {
936  return new Setter(ECHO_CLASS_CODE, instanceCode
937  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
938  }
939 
940  public static Getter getG() {
941  return getG((byte)0);
942  }
943 
944  public static Getter getG(byte instanceCode) {
945  return new Getter(ECHO_CLASS_CODE, instanceCode
947  }
948 
949  public static Informer informG() {
950  return informG((byte)0);
951  }
952 
953  public static Informer informG(byte instanceCode) {
954  return new Informer(ECHO_CLASS_CODE, instanceCode
955  , EchoSocket.MULTICAST_ADDRESS, false);
956  }
957 
958 }
synchronized boolean setProperty(EchoProperty property)
synchronized boolean isValidProperty(EchoProperty property)
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
final void addSetProperty(byte epc)
Definition: EchoObject.java:93
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
static Setter setG(byte instanceCode, boolean responseRequired)