OpenECHO
 All Classes Namespaces Files Functions Variables
GasMeter.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 GasMeter extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0282;
29 
30  public static final byte EPC_INTEGRAL_GAS_CONSUMPTION_MEASUREMENT_VALUE = (byte)0xE0;
31  public static final byte EPC_INTEGRAL_GAS_CONSUMPTION_MEASUREMENT_LOG = (byte)0xE2;
32 
33  @Override
34  protected void setupPropertyMaps() {
35  super.setupPropertyMaps();
36 
41  }
42 
43  @Override
44  public void onNew() {
45  super.onNew();
46  Echo.getEventListener().onNewGasMeter(this);
47  }
48 
49  @Override
50  public short getEchoClassCode() {
51  return ECHO_CLASS_CODE;
52  }
53 
78  protected boolean setOperationStatus(byte[] edt) {return false;}
103  protected abstract byte[] getOperationStatus();
126  protected abstract byte[] getIntegralGasConsumptionMeasurementValue();
149  protected boolean isValidIntegralGasConsumptionMeasurementValue(byte[] edt) {
150  if(edt == null || !(edt.length == 4)) return false;
151  return true;
152  }
176  protected byte[] getIntegralGasConsumptionMeasurementLog() {return null;}
200  protected boolean isValidIntegralGasConsumptionMeasurementLog(byte[] edt) {
201  if(edt == null || !(edt.length == 192)) return false;
202  return true;
203  }
204 
205  @Override
206  protected synchronized boolean setProperty(EchoProperty property) {
207  boolean success = super.setProperty(property);
208  if(success) return success;
209 
210  switch(property.epc) {
211  default : return false;
212  }
213  }
214 
215  @Override
216  protected synchronized byte[] getProperty(byte epc) {
217  byte[] edt = super.getProperty(epc);
218  if(edt != null) return edt;
219 
220  switch(epc) {
223  default : return null;
224  }
225  }
226 
227  @Override
228  protected synchronized boolean isValidProperty(EchoProperty property) {
229  boolean valid = super.isValidProperty(property);
230  if(valid) return valid;
231 
232  switch(property.epc) {
235  default : return false;
236  }
237  }
238 
239  @Override
240  public Setter set() {
241  return set(true);
242  }
243 
244  @Override
245  public Setter set(boolean responseRequired) {
246  return new Setter(getEchoClassCode(), getInstanceCode()
247  , getNode().getAddressStr(), responseRequired);
248  }
249 
250  @Override
251  public Getter get() {
252  return new Getter(getEchoClassCode(), getInstanceCode()
253  , getNode().getAddressStr());
254  }
255 
256  @Override
257  public Informer inform() {
258  return inform(isSelfObject());
259  }
260 
261  @Override
262  protected Informer inform(boolean multicast) {
263  String address;
264  if(multicast) {
266  } else {
267  address = getNode().getAddressStr();
268  }
269  return new Informer(getEchoClassCode(), getInstanceCode()
270  , address, isSelfObject());
271  }
272 
273  public static class Receiver extends DeviceObject.Receiver {
274 
275  @Override
276  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
277  EchoProperty property, boolean success) {
278  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
279  if(ret) return true;
280 
281  switch(property.epc) {
282  default :
283  return false;
284  }
285  }
286 
287  @Override
288  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
289  EchoProperty property, boolean success) {
290  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
291  if(ret) return true;
292 
293  switch(property.epc) {
295  onGetIntegralGasConsumptionMeasurementValue(eoj, tid, esv, property, success);
296  return true;
298  onGetIntegralGasConsumptionMeasurementLog(eoj, tid, esv, property, success);
299  return true;
300  default :
301  return false;
302  }
303  }
304 
327  protected void onGetIntegralGasConsumptionMeasurementValue(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
351  protected void onGetIntegralGasConsumptionMeasurementLog(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
352  }
353 
354  public static class Setter extends DeviceObject.Setter {
355  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
356  , String dstEchoAddress, boolean responseRequired) {
357  super(dstEchoClassCode, dstEchoInstanceCode
358  , dstEchoAddress, responseRequired);
359  }
360 
361  @Override
362  public Setter reqSetProperty(byte epc, byte[] edt) {
363  return (Setter)super.reqSetProperty(epc, edt);
364  }
365 
366  @Override
367  public Setter reqSetOperationStatus(byte[] edt) {
368  return (Setter)super.reqSetOperationStatus(edt);
369  }
370  @Override
371  public Setter reqSetInstallationLocation(byte[] edt) {
372  return (Setter)super.reqSetInstallationLocation(edt);
373  }
374  @Override
375  public Setter reqSetCurrentLimitSetting(byte[] edt) {
376  return (Setter)super.reqSetCurrentLimitSetting(edt);
377  }
378  @Override
379  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
380  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
381  }
382  @Override
383  public Setter reqSetRemoteControlSetting(byte[] edt) {
384  return (Setter)super.reqSetRemoteControlSetting(edt);
385  }
386  @Override
387  public Setter reqSetCurrentTimeSetting(byte[] edt) {
388  return (Setter)super.reqSetCurrentTimeSetting(edt);
389  }
390  @Override
391  public Setter reqSetCurrentDateSetting(byte[] edt) {
392  return (Setter)super.reqSetCurrentDateSetting(edt);
393  }
394  @Override
395  public Setter reqSetPowerLimitSetting(byte[] edt) {
396  return (Setter)super.reqSetPowerLimitSetting(edt);
397  }
398 
399  }
400 
401  public static class Getter extends DeviceObject.Getter {
402  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
403  , String dstEchoAddress) {
404  super(dstEchoClassCode, dstEchoInstanceCode
405  , dstEchoAddress);
406  }
407 
408  @Override
409  public Getter reqGetProperty(byte epc) {
410  return (Getter)super.reqGetProperty(epc);
411  }
412 
413  @Override
414  public Getter reqGetOperationStatus() {
415  return (Getter)super.reqGetOperationStatus();
416  }
417  @Override
418  public Getter reqGetInstallationLocation() {
419  return (Getter)super.reqGetInstallationLocation();
420  }
421  @Override
422  public Getter reqGetStandardVersionInformation() {
423  return (Getter)super.reqGetStandardVersionInformation();
424  }
425  @Override
426  public Getter reqGetIdentificationNumber() {
427  return (Getter)super.reqGetIdentificationNumber();
428  }
429  @Override
430  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
431  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
432  }
433  @Override
434  public Getter reqGetMeasuredCumulativePowerConsumption() {
435  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
436  }
437  @Override
438  public Getter reqGetManufacturersFaultCode() {
439  return (Getter)super.reqGetManufacturersFaultCode();
440  }
441  @Override
442  public Getter reqGetCurrentLimitSetting() {
443  return (Getter)super.reqGetCurrentLimitSetting();
444  }
445  @Override
446  public Getter reqGetFaultStatus() {
447  return (Getter)super.reqGetFaultStatus();
448  }
449  @Override
450  public Getter reqGetFaultDescription() {
451  return (Getter)super.reqGetFaultDescription();
452  }
453  @Override
454  public Getter reqGetManufacturerCode() {
455  return (Getter)super.reqGetManufacturerCode();
456  }
457  @Override
458  public Getter reqGetBusinessFacilityCode() {
459  return (Getter)super.reqGetBusinessFacilityCode();
460  }
461  @Override
462  public Getter reqGetProductCode() {
463  return (Getter)super.reqGetProductCode();
464  }
465  @Override
466  public Getter reqGetProductionNumber() {
467  return (Getter)super.reqGetProductionNumber();
468  }
469  @Override
470  public Getter reqGetProductionDate() {
471  return (Getter)super.reqGetProductionDate();
472  }
473  @Override
474  public Getter reqGetPowerSavingOperationSetting() {
475  return (Getter)super.reqGetPowerSavingOperationSetting();
476  }
477  @Override
478  public Getter reqGetRemoteControlSetting() {
479  return (Getter)super.reqGetRemoteControlSetting();
480  }
481  @Override
482  public Getter reqGetCurrentTimeSetting() {
483  return (Getter)super.reqGetCurrentTimeSetting();
484  }
485  @Override
486  public Getter reqGetCurrentDateSetting() {
487  return (Getter)super.reqGetCurrentDateSetting();
488  }
489  @Override
490  public Getter reqGetPowerLimitSetting() {
491  return (Getter)super.reqGetPowerLimitSetting();
492  }
493  @Override
494  public Getter reqGetCumulativeOperatingTime() {
495  return (Getter)super.reqGetCumulativeOperatingTime();
496  }
497  @Override
498  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
499  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
500  }
501  @Override
502  public Getter reqGetSetPropertyMap() {
503  return (Getter)super.reqGetSetPropertyMap();
504  }
505  @Override
506  public Getter reqGetGetPropertyMap() {
507  return (Getter)super.reqGetGetPropertyMap();
508  }
509 
532  public Getter reqGetIntegralGasConsumptionMeasurementValue() {
534  return this;
535  }
559  public Getter reqGetIntegralGasConsumptionMeasurementLog() {
561  return this;
562  }
563  }
564 
565  public static class Informer extends DeviceObject.Informer {
566  public Informer(short echoClassCode, byte echoInstanceCode
567  , String dstEchoAddress, boolean isSelfObject) {
568  super(echoClassCode, echoInstanceCode
569  , dstEchoAddress, isSelfObject);
570  }
571 
572  @Override
573  public Informer reqInformProperty(byte epc) {
574  return (Informer)super.reqInformProperty(epc);
575  }
576  @Override
577  public Informer reqInformOperationStatus() {
578  return (Informer)super.reqInformOperationStatus();
579  }
580  @Override
581  public Informer reqInformInstallationLocation() {
582  return (Informer)super.reqInformInstallationLocation();
583  }
584  @Override
585  public Informer reqInformStandardVersionInformation() {
586  return (Informer)super.reqInformStandardVersionInformation();
587  }
588  @Override
589  public Informer reqInformIdentificationNumber() {
590  return (Informer)super.reqInformIdentificationNumber();
591  }
592  @Override
593  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
594  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
595  }
596  @Override
597  public Informer reqInformMeasuredCumulativePowerConsumption() {
598  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
599  }
600  @Override
601  public Informer reqInformManufacturersFaultCode() {
602  return (Informer)super.reqInformManufacturersFaultCode();
603  }
604  @Override
605  public Informer reqInformCurrentLimitSetting() {
606  return (Informer)super.reqInformCurrentLimitSetting();
607  }
608  @Override
609  public Informer reqInformFaultStatus() {
610  return (Informer)super.reqInformFaultStatus();
611  }
612  @Override
613  public Informer reqInformFaultDescription() {
614  return (Informer)super.reqInformFaultDescription();
615  }
616  @Override
617  public Informer reqInformManufacturerCode() {
618  return (Informer)super.reqInformManufacturerCode();
619  }
620  @Override
621  public Informer reqInformBusinessFacilityCode() {
622  return (Informer)super.reqInformBusinessFacilityCode();
623  }
624  @Override
625  public Informer reqInformProductCode() {
626  return (Informer)super.reqInformProductCode();
627  }
628  @Override
629  public Informer reqInformProductionNumber() {
630  return (Informer)super.reqInformProductionNumber();
631  }
632  @Override
633  public Informer reqInformProductionDate() {
634  return (Informer)super.reqInformProductionDate();
635  }
636  @Override
637  public Informer reqInformPowerSavingOperationSetting() {
638  return (Informer)super.reqInformPowerSavingOperationSetting();
639  }
640  @Override
641  public Informer reqInformRemoteControlSetting() {
642  return (Informer)super.reqInformRemoteControlSetting();
643  }
644  @Override
645  public Informer reqInformCurrentTimeSetting() {
646  return (Informer)super.reqInformCurrentTimeSetting();
647  }
648  @Override
649  public Informer reqInformCurrentDateSetting() {
650  return (Informer)super.reqInformCurrentDateSetting();
651  }
652  @Override
653  public Informer reqInformPowerLimitSetting() {
654  return (Informer)super.reqInformPowerLimitSetting();
655  }
656  @Override
657  public Informer reqInformCumulativeOperatingTime() {
658  return (Informer)super.reqInformCumulativeOperatingTime();
659  }
660  @Override
661  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
662  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
663  }
664  @Override
665  public Informer reqInformSetPropertyMap() {
666  return (Informer)super.reqInformSetPropertyMap();
667  }
668  @Override
669  public Informer reqInformGetPropertyMap() {
670  return (Informer)super.reqInformGetPropertyMap();
671  }
672 
695  public Informer reqInformIntegralGasConsumptionMeasurementValue() {
697  return this;
698  }
722  public Informer reqInformIntegralGasConsumptionMeasurementLog() {
724  return this;
725  }
726  }
727 
728  public static class Proxy extends GasMeter {
729  public Proxy(byte instanceCode) {
730  super();
731  mEchoInstanceCode = instanceCode;
732  }
733  @Override
734  public byte getInstanceCode() {
735  return mEchoInstanceCode;
736  }
737  @Override
738  protected byte[] getOperationStatus() {return null;}
739  @Override
740  protected boolean setInstallationLocation(byte[] edt) {return false;}
741  @Override
742  protected byte[] getInstallationLocation() {return null;}
743  @Override
744  protected byte[] getStandardVersionInformation() {return null;}
745  @Override
746  protected byte[] getFaultStatus() {return null;}
747  @Override
748  protected byte[] getManufacturerCode() {return null;}
749  @Override
750  protected byte[] getIntegralGasConsumptionMeasurementValue() {return null;}
751  }
752 
753  public static Setter setG() {
754  return setG((byte)0);
755  }
756 
757  public static Setter setG(byte instanceCode) {
758  return setG(instanceCode, true);
759  }
760 
761  public static Setter setG(boolean responseRequired) {
762  return setG((byte)0, responseRequired);
763  }
764 
765  public static Setter setG(byte instanceCode, boolean responseRequired) {
766  return new Setter(ECHO_CLASS_CODE, instanceCode
767  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
768  }
769 
770  public static Getter getG() {
771  return getG((byte)0);
772  }
773 
774  public static Getter getG(byte instanceCode) {
775  return new Getter(ECHO_CLASS_CODE, instanceCode
777  }
778 
779  public static Informer informG() {
780  return informG((byte)0);
781  }
782 
783  public static Informer informG(byte instanceCode) {
784  return new Informer(ECHO_CLASS_CODE, instanceCode
785  , EchoSocket.MULTICAST_ADDRESS, false);
786  }
787 
788 }
synchronized boolean isValidProperty(EchoProperty property)
Definition: GasMeter.java:228
static Setter setG(boolean responseRequired)
Definition: GasMeter.java:761
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
static Setter setG(byte instanceCode, boolean responseRequired)
Definition: GasMeter.java:765
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
static Informer informG(byte instanceCode)
Definition: GasMeter.java:783
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
synchronized boolean setProperty(EchoProperty property)
Definition: GasMeter.java:206