OpenECHO
 All Classes Namespaces Files Functions Variables
ElectricEnergySensor.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 ElectricEnergySensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0022;
29 
30  public static final byte EPC_INTEGRAL_ELECTRIC_ENERGY = (byte)0xE0;
31  public static final byte EPC_MEDIUM_CAPACITY_SENSOR_INSTANTANEOUS_ELECTRIC_ENERGY = (byte)0xE1;
32  public static final byte EPC_SMALL_CAPACITY_SENSOR_INSTANTANEOUS_ELECTRIC_ENERGY = (byte)0xE2;
33  public static final byte EPC_LARGE_CAPACITY_SENSOR_INSTANTANEOUS_ELECTRIC_ENERGY = (byte)0xE3;
34  public static final byte EPC_INTEGRAL_ELECTRIC_ENERGY_MEASUREMENT_LOG = (byte)0xE4;
35  public static final byte EPC_EFFECTIVE_VOLTAGE_VALUE = (byte)0xE5;
36 
37  @Override
38  protected void setupPropertyMaps() {
39  super.setupPropertyMaps();
40 
45  }
46 
47  @Override
48  public void onNew() {
49  super.onNew();
50  Echo.getEventListener().onNewElectricEnergySensor(this);
51  }
52 
53  @Override
54  public short getEchoClassCode() {
55  return ECHO_CLASS_CODE;
56  }
57 
82  protected boolean setOperationStatus(byte[] edt) {return false;}
107  protected abstract byte[] getOperationStatus();
131  protected abstract byte[] getIntegralElectricEnergy();
155  protected boolean isValidIntegralElectricEnergy(byte[] edt) {
156  if(edt == null || !(edt.length == 4)) return false;
157  return true;
158  }
181  protected byte[] getMediumCapacitySensorInstantaneousElectricEnergy() {return null;}
205  if(edt == null || !(edt.length == 4)) return false;
206  return true;
207  }
230  protected byte[] getSmallCapacitySensorInstantaneousElectricEnergy() {return null;}
254  if(edt == null || !(edt.length == 2)) return false;
255  return true;
256  }
279  protected byte[] getLargeCapacitySensorInstantaneousElectricEnergy() {return null;}
303  if(edt == null || !(edt.length == 2)) return false;
304  return true;
305  }
331  protected byte[] getIntegralElectricEnergyMeasurementLog() {return null;}
357  protected boolean isValidIntegralElectricEnergyMeasurementLog(byte[] edt) {
358  if(edt == null || !(edt.length == 192)) return false;
359  return true;
360  }
383  protected byte[] getEffectiveVoltageValue() {return null;}
406  protected boolean isValidEffectiveVoltageValue(byte[] edt) {
407  if(edt == null || !(edt.length == 2)) 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  default : return false;
418  }
419  }
420 
421  @Override
422  protected synchronized byte[] getProperty(byte epc) {
423  byte[] edt = super.getProperty(epc);
424  if(edt != null) return edt;
425 
426  switch(epc) {
433  default : return null;
434  }
435  }
436 
437  @Override
438  protected synchronized boolean isValidProperty(EchoProperty property) {
439  boolean valid = super.isValidProperty(property);
440  if(valid) return valid;
441 
442  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) {
496  default :
497  return false;
498  }
499  }
500 
501  @Override
502  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
503  EchoProperty property, boolean success) {
504  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
505  if(ret) return true;
506 
507  switch(property.epc) {
509  onGetIntegralElectricEnergy(eoj, tid, esv, property, success);
510  return true;
512  onGetMediumCapacitySensorInstantaneousElectricEnergy(eoj, tid, esv, property, success);
513  return true;
515  onGetSmallCapacitySensorInstantaneousElectricEnergy(eoj, tid, esv, property, success);
516  return true;
518  onGetLargeCapacitySensorInstantaneousElectricEnergy(eoj, tid, esv, property, success);
519  return true;
521  onGetIntegralElectricEnergyMeasurementLog(eoj, tid, esv, property, success);
522  return true;
524  onGetEffectiveVoltageValue(eoj, tid, esv, property, success);
525  return true;
526  default :
527  return false;
528  }
529  }
530 
554  protected void onGetIntegralElectricEnergy(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
577  protected void onGetMediumCapacitySensorInstantaneousElectricEnergy(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
600  protected void onGetSmallCapacitySensorInstantaneousElectricEnergy(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
623  protected void onGetLargeCapacitySensorInstantaneousElectricEnergy(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
649  protected void onGetIntegralElectricEnergyMeasurementLog(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
672  protected void onGetEffectiveVoltageValue(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
673  }
674 
675  public static class Setter extends DeviceObject.Setter {
676  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
677  , String dstEchoAddress, boolean responseRequired) {
678  super(dstEchoClassCode, dstEchoInstanceCode
679  , dstEchoAddress, responseRequired);
680  }
681 
682  @Override
683  public Setter reqSetProperty(byte epc, byte[] edt) {
684  return (Setter)super.reqSetProperty(epc, edt);
685  }
686 
687  @Override
688  public Setter reqSetOperationStatus(byte[] edt) {
689  return (Setter)super.reqSetOperationStatus(edt);
690  }
691  @Override
692  public Setter reqSetInstallationLocation(byte[] edt) {
693  return (Setter)super.reqSetInstallationLocation(edt);
694  }
695  @Override
696  public Setter reqSetCurrentLimitSetting(byte[] edt) {
697  return (Setter)super.reqSetCurrentLimitSetting(edt);
698  }
699  @Override
700  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
701  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
702  }
703  @Override
704  public Setter reqSetRemoteControlSetting(byte[] edt) {
705  return (Setter)super.reqSetRemoteControlSetting(edt);
706  }
707  @Override
708  public Setter reqSetCurrentTimeSetting(byte[] edt) {
709  return (Setter)super.reqSetCurrentTimeSetting(edt);
710  }
711  @Override
712  public Setter reqSetCurrentDateSetting(byte[] edt) {
713  return (Setter)super.reqSetCurrentDateSetting(edt);
714  }
715  @Override
716  public Setter reqSetPowerLimitSetting(byte[] edt) {
717  return (Setter)super.reqSetPowerLimitSetting(edt);
718  }
719 
720  }
721 
722  public static class Getter extends DeviceObject.Getter {
723  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
724  , String dstEchoAddress) {
725  super(dstEchoClassCode, dstEchoInstanceCode
726  , dstEchoAddress);
727  }
728 
729  @Override
730  public Getter reqGetProperty(byte epc) {
731  return (Getter)super.reqGetProperty(epc);
732  }
733 
734  @Override
735  public Getter reqGetOperationStatus() {
736  return (Getter)super.reqGetOperationStatus();
737  }
738  @Override
739  public Getter reqGetInstallationLocation() {
740  return (Getter)super.reqGetInstallationLocation();
741  }
742  @Override
743  public Getter reqGetStandardVersionInformation() {
744  return (Getter)super.reqGetStandardVersionInformation();
745  }
746  @Override
747  public Getter reqGetIdentificationNumber() {
748  return (Getter)super.reqGetIdentificationNumber();
749  }
750  @Override
751  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
752  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
753  }
754  @Override
755  public Getter reqGetMeasuredCumulativePowerConsumption() {
756  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
757  }
758  @Override
759  public Getter reqGetManufacturersFaultCode() {
760  return (Getter)super.reqGetManufacturersFaultCode();
761  }
762  @Override
763  public Getter reqGetCurrentLimitSetting() {
764  return (Getter)super.reqGetCurrentLimitSetting();
765  }
766  @Override
767  public Getter reqGetFaultStatus() {
768  return (Getter)super.reqGetFaultStatus();
769  }
770  @Override
771  public Getter reqGetFaultDescription() {
772  return (Getter)super.reqGetFaultDescription();
773  }
774  @Override
775  public Getter reqGetManufacturerCode() {
776  return (Getter)super.reqGetManufacturerCode();
777  }
778  @Override
779  public Getter reqGetBusinessFacilityCode() {
780  return (Getter)super.reqGetBusinessFacilityCode();
781  }
782  @Override
783  public Getter reqGetProductCode() {
784  return (Getter)super.reqGetProductCode();
785  }
786  @Override
787  public Getter reqGetProductionNumber() {
788  return (Getter)super.reqGetProductionNumber();
789  }
790  @Override
791  public Getter reqGetProductionDate() {
792  return (Getter)super.reqGetProductionDate();
793  }
794  @Override
795  public Getter reqGetPowerSavingOperationSetting() {
796  return (Getter)super.reqGetPowerSavingOperationSetting();
797  }
798  @Override
799  public Getter reqGetRemoteControlSetting() {
800  return (Getter)super.reqGetRemoteControlSetting();
801  }
802  @Override
803  public Getter reqGetCurrentTimeSetting() {
804  return (Getter)super.reqGetCurrentTimeSetting();
805  }
806  @Override
807  public Getter reqGetCurrentDateSetting() {
808  return (Getter)super.reqGetCurrentDateSetting();
809  }
810  @Override
811  public Getter reqGetPowerLimitSetting() {
812  return (Getter)super.reqGetPowerLimitSetting();
813  }
814  @Override
815  public Getter reqGetCumulativeOperatingTime() {
816  return (Getter)super.reqGetCumulativeOperatingTime();
817  }
818  @Override
819  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
820  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
821  }
822  @Override
823  public Getter reqGetSetPropertyMap() {
824  return (Getter)super.reqGetSetPropertyMap();
825  }
826  @Override
827  public Getter reqGetGetPropertyMap() {
828  return (Getter)super.reqGetGetPropertyMap();
829  }
830 
854  public Getter reqGetIntegralElectricEnergy() {
855  reqGetProperty(EPC_INTEGRAL_ELECTRIC_ENERGY);
856  return this;
857  }
880  public Getter reqGetMediumCapacitySensorInstantaneousElectricEnergy() {
882  return this;
883  }
906  public Getter reqGetSmallCapacitySensorInstantaneousElectricEnergy() {
908  return this;
909  }
932  public Getter reqGetLargeCapacitySensorInstantaneousElectricEnergy() {
934  return this;
935  }
961  public Getter reqGetIntegralElectricEnergyMeasurementLog() {
963  return this;
964  }
987  public Getter reqGetEffectiveVoltageValue() {
988  reqGetProperty(EPC_EFFECTIVE_VOLTAGE_VALUE);
989  return this;
990  }
991  }
992 
993  public static class Informer extends DeviceObject.Informer {
994  public Informer(short echoClassCode, byte echoInstanceCode
995  , String dstEchoAddress, boolean isSelfObject) {
996  super(echoClassCode, echoInstanceCode
997  , dstEchoAddress, isSelfObject);
998  }
999 
1000  @Override
1001  public Informer reqInformProperty(byte epc) {
1002  return (Informer)super.reqInformProperty(epc);
1003  }
1004  @Override
1005  public Informer reqInformOperationStatus() {
1006  return (Informer)super.reqInformOperationStatus();
1007  }
1008  @Override
1009  public Informer reqInformInstallationLocation() {
1010  return (Informer)super.reqInformInstallationLocation();
1011  }
1012  @Override
1013  public Informer reqInformStandardVersionInformation() {
1014  return (Informer)super.reqInformStandardVersionInformation();
1015  }
1016  @Override
1017  public Informer reqInformIdentificationNumber() {
1018  return (Informer)super.reqInformIdentificationNumber();
1019  }
1020  @Override
1021  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
1022  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
1023  }
1024  @Override
1025  public Informer reqInformMeasuredCumulativePowerConsumption() {
1026  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
1027  }
1028  @Override
1029  public Informer reqInformManufacturersFaultCode() {
1030  return (Informer)super.reqInformManufacturersFaultCode();
1031  }
1032  @Override
1033  public Informer reqInformCurrentLimitSetting() {
1034  return (Informer)super.reqInformCurrentLimitSetting();
1035  }
1036  @Override
1037  public Informer reqInformFaultStatus() {
1038  return (Informer)super.reqInformFaultStatus();
1039  }
1040  @Override
1041  public Informer reqInformFaultDescription() {
1042  return (Informer)super.reqInformFaultDescription();
1043  }
1044  @Override
1045  public Informer reqInformManufacturerCode() {
1046  return (Informer)super.reqInformManufacturerCode();
1047  }
1048  @Override
1049  public Informer reqInformBusinessFacilityCode() {
1050  return (Informer)super.reqInformBusinessFacilityCode();
1051  }
1052  @Override
1053  public Informer reqInformProductCode() {
1054  return (Informer)super.reqInformProductCode();
1055  }
1056  @Override
1057  public Informer reqInformProductionNumber() {
1058  return (Informer)super.reqInformProductionNumber();
1059  }
1060  @Override
1061  public Informer reqInformProductionDate() {
1062  return (Informer)super.reqInformProductionDate();
1063  }
1064  @Override
1065  public Informer reqInformPowerSavingOperationSetting() {
1066  return (Informer)super.reqInformPowerSavingOperationSetting();
1067  }
1068  @Override
1069  public Informer reqInformRemoteControlSetting() {
1070  return (Informer)super.reqInformRemoteControlSetting();
1071  }
1072  @Override
1073  public Informer reqInformCurrentTimeSetting() {
1074  return (Informer)super.reqInformCurrentTimeSetting();
1075  }
1076  @Override
1077  public Informer reqInformCurrentDateSetting() {
1078  return (Informer)super.reqInformCurrentDateSetting();
1079  }
1080  @Override
1081  public Informer reqInformPowerLimitSetting() {
1082  return (Informer)super.reqInformPowerLimitSetting();
1083  }
1084  @Override
1085  public Informer reqInformCumulativeOperatingTime() {
1086  return (Informer)super.reqInformCumulativeOperatingTime();
1087  }
1088  @Override
1089  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
1090  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
1091  }
1092  @Override
1093  public Informer reqInformSetPropertyMap() {
1094  return (Informer)super.reqInformSetPropertyMap();
1095  }
1096  @Override
1097  public Informer reqInformGetPropertyMap() {
1098  return (Informer)super.reqInformGetPropertyMap();
1099  }
1100 
1124  public Informer reqInformIntegralElectricEnergy() {
1125  reqInformProperty(EPC_INTEGRAL_ELECTRIC_ENERGY);
1126  return this;
1127  }
1150  public Informer reqInformMediumCapacitySensorInstantaneousElectricEnergy() {
1152  return this;
1153  }
1176  public Informer reqInformSmallCapacitySensorInstantaneousElectricEnergy() {
1178  return this;
1179  }
1202  public Informer reqInformLargeCapacitySensorInstantaneousElectricEnergy() {
1204  return this;
1205  }
1231  public Informer reqInformIntegralElectricEnergyMeasurementLog() {
1233  return this;
1234  }
1257  public Informer reqInformEffectiveVoltageValue() {
1258  reqInformProperty(EPC_EFFECTIVE_VOLTAGE_VALUE);
1259  return this;
1260  }
1261  }
1262 
1263  public static class Proxy extends ElectricEnergySensor {
1264  public Proxy(byte instanceCode) {
1265  super();
1266  mEchoInstanceCode = instanceCode;
1267  }
1268  @Override
1269  public byte getInstanceCode() {
1270  return mEchoInstanceCode;
1271  }
1272  @Override
1273  protected byte[] getOperationStatus() {return null;}
1274  @Override
1275  protected boolean setInstallationLocation(byte[] edt) {return false;}
1276  @Override
1277  protected byte[] getInstallationLocation() {return null;}
1278  @Override
1279  protected byte[] getStandardVersionInformation() {return null;}
1280  @Override
1281  protected byte[] getFaultStatus() {return null;}
1282  @Override
1283  protected byte[] getManufacturerCode() {return null;}
1284  @Override
1285  protected byte[] getIntegralElectricEnergy() {return null;}
1286  }
1287 
1288  public static Setter setG() {
1289  return setG((byte)0);
1290  }
1291 
1292  public static Setter setG(byte instanceCode) {
1293  return setG(instanceCode, true);
1294  }
1295 
1296  public static Setter setG(boolean responseRequired) {
1297  return setG((byte)0, responseRequired);
1298  }
1299 
1300  public static Setter setG(byte instanceCode, boolean responseRequired) {
1301  return new Setter(ECHO_CLASS_CODE, instanceCode
1302  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
1303  }
1304 
1305  public static Getter getG() {
1306  return getG((byte)0);
1307  }
1308 
1309  public static Getter getG(byte instanceCode) {
1310  return new Getter(ECHO_CLASS_CODE, instanceCode
1312  }
1313 
1314  public static Informer informG() {
1315  return informG((byte)0);
1316  }
1317 
1318  public static Informer informG(byte instanceCode) {
1319  return new Informer(ECHO_CLASS_CODE, instanceCode
1320  , EchoSocket.MULTICAST_ADDRESS, false);
1321  }
1322 
1323 }
static Setter setG(byte instanceCode, boolean responseRequired)
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 isValidProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
synchronized boolean setProperty(EchoProperty property)