OpenECHO
 All Classes Namespaces Files Functions Variables
AirCleaner.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 AirCleaner extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0135;
29 
30  public static final byte EPC_FILTER_CHANGE_NOTICE = (byte)0xE1;
31  public static final byte EPC_AIR_FLOW_RATE_SETTING = (byte)0xA0;
32  public static final byte EPC_SMOKE_CIGARETTE_DETECTION_STATUS = (byte)0xC1;
33  public static final byte EPC_OPTICAL_CATALYST_OPERATION_SETTING = (byte)0xC2;
34  public static final byte EPC_AIR_POLLUTION_DETECTION_STATUS = (byte)0xC0;
35 
36  @Override
37  protected void setupPropertyMaps() {
38  super.setupPropertyMaps();
39 
43  }
44 
45  @Override
46  public void onNew() {
47  super.onNew();
48  Echo.getEventListener().onNewAirCleaner(this);
49  }
50 
51  @Override
52  public short getEchoClassCode() {
53  return ECHO_CLASS_CODE;
54  }
55 
80  protected abstract boolean setOperationStatus(byte[] edt);
105  protected abstract byte[] getOperationStatus();
128  protected byte[] getFilterChangeNotice() {return null;}
151  protected boolean isValidFilterChangeNotice(byte[] edt) {
152  if(edt == null || !(edt.length == 1)) return false;
153  return true;
154  }
180  protected boolean setAirFlowRateSetting(byte[] edt) {return false;}
206  protected byte[] getAirFlowRateSetting() {return null;}
232  protected boolean isValidAirFlowRateSetting(byte[] edt) {
233  if(edt == null || !(edt.length == 1)) return false;
234  return true;
235  }
259  protected byte[] getSmokeCigaretteDetectionStatus() {return null;}
283  protected boolean isValidSmokeCigaretteDetectionStatus(byte[] edt) {
284  if(edt == null || !(edt.length == 1)) return false;
285  return true;
286  }
309  protected boolean setOpticalCatalystOperationSetting(byte[] edt) {return false;}
332  protected byte[] getOpticalCatalystOperationSetting() {return null;}
355  protected boolean isValidOpticalCatalystOperationSetting(byte[] edt) {
356  if(edt == null || !(edt.length == 1)) return false;
357  return true;
358  }
382  protected byte[] getAirPollutionDetectionStatus() {return null;}
406  protected boolean isValidAirPollutionDetectionStatus(byte[] edt) {
407  if(edt == null || !(edt.length == 1)) return false;
408  return true;
409  }
410 
411  @Override
412  protected synchronized boolean setProperty(EchoProperty property) {
413  boolean success = super.setProperty(property);
414  if(success) return success;
415 
416  switch(property.epc) {
417  case EPC_AIR_FLOW_RATE_SETTING : return setAirFlowRateSetting(property.edt);
419  default : return false;
420  }
421  }
422 
423  @Override
424  protected synchronized byte[] getProperty(byte epc) {
425  byte[] edt = super.getProperty(epc);
426  if(edt != null) return edt;
427 
428  switch(epc) {
434  default : return null;
435  }
436  }
437 
438  @Override
439  protected synchronized boolean isValidProperty(EchoProperty property) {
440  boolean valid = super.isValidProperty(property);
441  if(valid) return valid;
442 
443  switch(property.epc) {
449  default : return false;
450  }
451  }
452 
453  @Override
454  public Setter set() {
455  return set(true);
456  }
457 
458  @Override
459  public Setter set(boolean responseRequired) {
460  return new Setter(getEchoClassCode(), getInstanceCode()
461  , getNode().getAddressStr(), responseRequired);
462  }
463 
464  @Override
465  public Getter get() {
466  return new Getter(getEchoClassCode(), getInstanceCode()
467  , getNode().getAddressStr());
468  }
469 
470  @Override
471  public Informer inform() {
472  return inform(isSelfObject());
473  }
474 
475  @Override
476  protected Informer inform(boolean multicast) {
477  String address;
478  if(multicast) {
480  } else {
481  address = getNode().getAddressStr();
482  }
483  return new Informer(getEchoClassCode(), getInstanceCode()
484  , address, isSelfObject());
485  }
486 
487  public static class Receiver extends DeviceObject.Receiver {
488 
489  @Override
490  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
491  EchoProperty property, boolean success) {
492  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
493  if(ret) return true;
494 
495  switch(property.epc) {
497  onSetAirFlowRateSetting(eoj, tid, esv, property, success);
498  return true;
500  onSetOpticalCatalystOperationSetting(eoj, tid, esv, property, success);
501  return true;
502  default :
503  return false;
504  }
505  }
506 
507  @Override
508  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
509  EchoProperty property, boolean success) {
510  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
511  if(ret) return true;
512 
513  switch(property.epc) {
515  onGetFilterChangeNotice(eoj, tid, esv, property, success);
516  return true;
518  onGetAirFlowRateSetting(eoj, tid, esv, property, success);
519  return true;
521  onGetSmokeCigaretteDetectionStatus(eoj, tid, esv, property, success);
522  return true;
524  onGetOpticalCatalystOperationSetting(eoj, tid, esv, property, success);
525  return true;
527  onGetAirPollutionDetectionStatus(eoj, tid, esv, property, success);
528  return true;
529  default :
530  return false;
531  }
532  }
533 
556  protected void onGetFilterChangeNotice(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
582  protected void onSetAirFlowRateSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
608  protected void onGetAirFlowRateSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
632  protected void onGetSmokeCigaretteDetectionStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
655  protected void onSetOpticalCatalystOperationSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
678  protected void onGetOpticalCatalystOperationSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
702  protected void onGetAirPollutionDetectionStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
703  }
704 
705  public static class Setter extends DeviceObject.Setter {
706  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
707  , String dstEchoAddress, boolean responseRequired) {
708  super(dstEchoClassCode, dstEchoInstanceCode
709  , dstEchoAddress, responseRequired);
710  }
711 
712  @Override
713  public Setter reqSetProperty(byte epc, byte[] edt) {
714  return (Setter)super.reqSetProperty(epc, edt);
715  }
716 
717  @Override
718  public Setter reqSetOperationStatus(byte[] edt) {
719  return (Setter)super.reqSetOperationStatus(edt);
720  }
721  @Override
722  public Setter reqSetInstallationLocation(byte[] edt) {
723  return (Setter)super.reqSetInstallationLocation(edt);
724  }
725  @Override
726  public Setter reqSetCurrentLimitSetting(byte[] edt) {
727  return (Setter)super.reqSetCurrentLimitSetting(edt);
728  }
729  @Override
730  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
731  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
732  }
733  @Override
734  public Setter reqSetRemoteControlSetting(byte[] edt) {
735  return (Setter)super.reqSetRemoteControlSetting(edt);
736  }
737  @Override
738  public Setter reqSetCurrentTimeSetting(byte[] edt) {
739  return (Setter)super.reqSetCurrentTimeSetting(edt);
740  }
741  @Override
742  public Setter reqSetCurrentDateSetting(byte[] edt) {
743  return (Setter)super.reqSetCurrentDateSetting(edt);
744  }
745  @Override
746  public Setter reqSetPowerLimitSetting(byte[] edt) {
747  return (Setter)super.reqSetPowerLimitSetting(edt);
748  }
749 
775  public Setter reqSetAirFlowRateSetting(byte[] edt) {
776  reqSetProperty(EPC_AIR_FLOW_RATE_SETTING, edt);
777  return this;
778  }
801  public Setter reqSetOpticalCatalystOperationSetting(byte[] edt) {
802  reqSetProperty(EPC_OPTICAL_CATALYST_OPERATION_SETTING, edt);
803  return this;
804  }
805  }
806 
807  public static class Getter extends DeviceObject.Getter {
808  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
809  , String dstEchoAddress) {
810  super(dstEchoClassCode, dstEchoInstanceCode
811  , dstEchoAddress);
812  }
813 
814  @Override
815  public Getter reqGetProperty(byte epc) {
816  return (Getter)super.reqGetProperty(epc);
817  }
818 
819  @Override
820  public Getter reqGetOperationStatus() {
821  return (Getter)super.reqGetOperationStatus();
822  }
823  @Override
824  public Getter reqGetInstallationLocation() {
825  return (Getter)super.reqGetInstallationLocation();
826  }
827  @Override
828  public Getter reqGetStandardVersionInformation() {
829  return (Getter)super.reqGetStandardVersionInformation();
830  }
831  @Override
832  public Getter reqGetIdentificationNumber() {
833  return (Getter)super.reqGetIdentificationNumber();
834  }
835  @Override
836  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
837  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
838  }
839  @Override
840  public Getter reqGetMeasuredCumulativePowerConsumption() {
841  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
842  }
843  @Override
844  public Getter reqGetManufacturersFaultCode() {
845  return (Getter)super.reqGetManufacturersFaultCode();
846  }
847  @Override
848  public Getter reqGetCurrentLimitSetting() {
849  return (Getter)super.reqGetCurrentLimitSetting();
850  }
851  @Override
852  public Getter reqGetFaultStatus() {
853  return (Getter)super.reqGetFaultStatus();
854  }
855  @Override
856  public Getter reqGetFaultDescription() {
857  return (Getter)super.reqGetFaultDescription();
858  }
859  @Override
860  public Getter reqGetManufacturerCode() {
861  return (Getter)super.reqGetManufacturerCode();
862  }
863  @Override
864  public Getter reqGetBusinessFacilityCode() {
865  return (Getter)super.reqGetBusinessFacilityCode();
866  }
867  @Override
868  public Getter reqGetProductCode() {
869  return (Getter)super.reqGetProductCode();
870  }
871  @Override
872  public Getter reqGetProductionNumber() {
873  return (Getter)super.reqGetProductionNumber();
874  }
875  @Override
876  public Getter reqGetProductionDate() {
877  return (Getter)super.reqGetProductionDate();
878  }
879  @Override
880  public Getter reqGetPowerSavingOperationSetting() {
881  return (Getter)super.reqGetPowerSavingOperationSetting();
882  }
883  @Override
884  public Getter reqGetRemoteControlSetting() {
885  return (Getter)super.reqGetRemoteControlSetting();
886  }
887  @Override
888  public Getter reqGetCurrentTimeSetting() {
889  return (Getter)super.reqGetCurrentTimeSetting();
890  }
891  @Override
892  public Getter reqGetCurrentDateSetting() {
893  return (Getter)super.reqGetCurrentDateSetting();
894  }
895  @Override
896  public Getter reqGetPowerLimitSetting() {
897  return (Getter)super.reqGetPowerLimitSetting();
898  }
899  @Override
900  public Getter reqGetCumulativeOperatingTime() {
901  return (Getter)super.reqGetCumulativeOperatingTime();
902  }
903  @Override
904  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
905  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
906  }
907  @Override
908  public Getter reqGetSetPropertyMap() {
909  return (Getter)super.reqGetSetPropertyMap();
910  }
911  @Override
912  public Getter reqGetGetPropertyMap() {
913  return (Getter)super.reqGetGetPropertyMap();
914  }
915 
938  public Getter reqGetFilterChangeNotice() {
939  reqGetProperty(EPC_FILTER_CHANGE_NOTICE);
940  return this;
941  }
967  public Getter reqGetAirFlowRateSetting() {
968  reqGetProperty(EPC_AIR_FLOW_RATE_SETTING);
969  return this;
970  }
994  public Getter reqGetSmokeCigaretteDetectionStatus() {
995  reqGetProperty(EPC_SMOKE_CIGARETTE_DETECTION_STATUS);
996  return this;
997  }
1020  public Getter reqGetOpticalCatalystOperationSetting() {
1022  return this;
1023  }
1047  public Getter reqGetAirPollutionDetectionStatus() {
1048  reqGetProperty(EPC_AIR_POLLUTION_DETECTION_STATUS);
1049  return this;
1050  }
1051  }
1052 
1053  public static class Informer extends DeviceObject.Informer {
1054  public Informer(short echoClassCode, byte echoInstanceCode
1055  , String dstEchoAddress, boolean isSelfObject) {
1056  super(echoClassCode, echoInstanceCode
1057  , dstEchoAddress, isSelfObject);
1058  }
1059 
1060  @Override
1061  public Informer reqInformProperty(byte epc) {
1062  return (Informer)super.reqInformProperty(epc);
1063  }
1064  @Override
1065  public Informer reqInformOperationStatus() {
1066  return (Informer)super.reqInformOperationStatus();
1067  }
1068  @Override
1069  public Informer reqInformInstallationLocation() {
1070  return (Informer)super.reqInformInstallationLocation();
1071  }
1072  @Override
1073  public Informer reqInformStandardVersionInformation() {
1074  return (Informer)super.reqInformStandardVersionInformation();
1075  }
1076  @Override
1077  public Informer reqInformIdentificationNumber() {
1078  return (Informer)super.reqInformIdentificationNumber();
1079  }
1080  @Override
1081  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
1082  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
1083  }
1084  @Override
1085  public Informer reqInformMeasuredCumulativePowerConsumption() {
1086  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
1087  }
1088  @Override
1089  public Informer reqInformManufacturersFaultCode() {
1090  return (Informer)super.reqInformManufacturersFaultCode();
1091  }
1092  @Override
1093  public Informer reqInformCurrentLimitSetting() {
1094  return (Informer)super.reqInformCurrentLimitSetting();
1095  }
1096  @Override
1097  public Informer reqInformFaultStatus() {
1098  return (Informer)super.reqInformFaultStatus();
1099  }
1100  @Override
1101  public Informer reqInformFaultDescription() {
1102  return (Informer)super.reqInformFaultDescription();
1103  }
1104  @Override
1105  public Informer reqInformManufacturerCode() {
1106  return (Informer)super.reqInformManufacturerCode();
1107  }
1108  @Override
1109  public Informer reqInformBusinessFacilityCode() {
1110  return (Informer)super.reqInformBusinessFacilityCode();
1111  }
1112  @Override
1113  public Informer reqInformProductCode() {
1114  return (Informer)super.reqInformProductCode();
1115  }
1116  @Override
1117  public Informer reqInformProductionNumber() {
1118  return (Informer)super.reqInformProductionNumber();
1119  }
1120  @Override
1121  public Informer reqInformProductionDate() {
1122  return (Informer)super.reqInformProductionDate();
1123  }
1124  @Override
1125  public Informer reqInformPowerSavingOperationSetting() {
1126  return (Informer)super.reqInformPowerSavingOperationSetting();
1127  }
1128  @Override
1129  public Informer reqInformRemoteControlSetting() {
1130  return (Informer)super.reqInformRemoteControlSetting();
1131  }
1132  @Override
1133  public Informer reqInformCurrentTimeSetting() {
1134  return (Informer)super.reqInformCurrentTimeSetting();
1135  }
1136  @Override
1137  public Informer reqInformCurrentDateSetting() {
1138  return (Informer)super.reqInformCurrentDateSetting();
1139  }
1140  @Override
1141  public Informer reqInformPowerLimitSetting() {
1142  return (Informer)super.reqInformPowerLimitSetting();
1143  }
1144  @Override
1145  public Informer reqInformCumulativeOperatingTime() {
1146  return (Informer)super.reqInformCumulativeOperatingTime();
1147  }
1148  @Override
1149  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
1150  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
1151  }
1152  @Override
1153  public Informer reqInformSetPropertyMap() {
1154  return (Informer)super.reqInformSetPropertyMap();
1155  }
1156  @Override
1157  public Informer reqInformGetPropertyMap() {
1158  return (Informer)super.reqInformGetPropertyMap();
1159  }
1160 
1183  public Informer reqInformFilterChangeNotice() {
1184  reqInformProperty(EPC_FILTER_CHANGE_NOTICE);
1185  return this;
1186  }
1212  public Informer reqInformAirFlowRateSetting() {
1213  reqInformProperty(EPC_AIR_FLOW_RATE_SETTING);
1214  return this;
1215  }
1239  public Informer reqInformSmokeCigaretteDetectionStatus() {
1240  reqInformProperty(EPC_SMOKE_CIGARETTE_DETECTION_STATUS);
1241  return this;
1242  }
1265  public Informer reqInformOpticalCatalystOperationSetting() {
1266  reqInformProperty(EPC_OPTICAL_CATALYST_OPERATION_SETTING);
1267  return this;
1268  }
1292  public Informer reqInformAirPollutionDetectionStatus() {
1293  reqInformProperty(EPC_AIR_POLLUTION_DETECTION_STATUS);
1294  return this;
1295  }
1296  }
1297 
1298  public static class Proxy extends AirCleaner {
1299  public Proxy(byte instanceCode) {
1300  super();
1301  mEchoInstanceCode = instanceCode;
1302  }
1303  @Override
1304  public byte getInstanceCode() {
1305  return mEchoInstanceCode;
1306  }
1307  @Override
1308  protected byte[] getOperationStatus() {return null;}
1309  @Override
1310  protected boolean setInstallationLocation(byte[] edt) {return false;}
1311  @Override
1312  protected byte[] getInstallationLocation() {return null;}
1313  @Override
1314  protected byte[] getStandardVersionInformation() {return null;}
1315  @Override
1316  protected byte[] getFaultStatus() {return null;}
1317  @Override
1318  protected byte[] getManufacturerCode() {return null;}
1319  @Override
1320  protected boolean setOperationStatus(byte[] edt) {return false;}
1321  }
1322 
1323  public static Setter setG() {
1324  return setG((byte)0);
1325  }
1326 
1327  public static Setter setG(byte instanceCode) {
1328  return setG(instanceCode, true);
1329  }
1330 
1331  public static Setter setG(boolean responseRequired) {
1332  return setG((byte)0, responseRequired);
1333  }
1334 
1335  public static Setter setG(byte instanceCode, boolean responseRequired) {
1336  return new Setter(ECHO_CLASS_CODE, instanceCode
1337  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
1338  }
1339 
1340  public static Getter getG() {
1341  return getG((byte)0);
1342  }
1343 
1344  public static Getter getG(byte instanceCode) {
1345  return new Getter(ECHO_CLASS_CODE, instanceCode
1347  }
1348 
1349  public static Informer informG() {
1350  return informG((byte)0);
1351  }
1352 
1353  public static Informer informG(byte instanceCode) {
1354  return new Informer(ECHO_CLASS_CODE, instanceCode
1355  , EchoSocket.MULTICAST_ADDRESS, false);
1356  }
1357 
1358 }
static Setter setG(byte instanceCode, boolean responseRequired)
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
static Informer informG(byte instanceCode)
final void addGetProperty(byte epc)
final void addSetProperty(byte epc)
Definition: EchoObject.java:93
synchronized boolean isValidProperty(EchoProperty property)
synchronized boolean setProperty(EchoProperty property)
static Setter setG(boolean responseRequired)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53