OpenECHO
 All Classes Namespaces Files Functions Variables
CurrentValueSensor.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 CurrentValueSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0023;
29 
30  public static final byte EPC_MEASURED_CURRENT_VALUE1 = (byte)0xE0;
31  public static final byte EPC_RATED_VOLTAGE_TO_BE_MEASURED = (byte)0xE1;
32  public static final byte EPC_MEASURED_CURRENT_VALUE2 = (byte)0xE2;
33 
34  @Override
35  protected void setupPropertyMaps() {
36  super.setupPropertyMaps();
37 
43  }
44 
45  @Override
46  public void onNew() {
47  super.onNew();
48  Echo.getEventListener().onNewCurrentValueSensor(this);
49  }
50 
51  @Override
52  public short getEchoClassCode() {
53  return ECHO_CLASS_CODE;
54  }
55 
80  protected boolean setOperationStatus(byte[] edt) {return false;}
105  protected abstract byte[] getOperationStatus();
129  protected abstract byte[] getMeasuredCurrentValue1();
153  protected boolean isValidMeasuredCurrentValue1(byte[] edt) {
154  if(edt == null || !(edt.length == 4)) return false;
155  return true;
156  }
179  protected byte[] getRatedVoltageToBeMeasured() {return null;}
202  protected boolean isValidRatedVoltageToBeMeasured(byte[] edt) {
203  if(edt == null || !(edt.length == 2)) return false;
204  return true;
205  }
229  protected abstract byte[] getMeasuredCurrentValue2();
253  protected boolean isValidMeasuredCurrentValue2(byte[] edt) {
254  if(edt == null || !(edt.length == 4)) return false;
255  return true;
256  }
257 
258  @Override
259  protected synchronized boolean setProperty(EchoProperty property) {
260  boolean success = super.setProperty(property);
261  if(success) return success;
262 
263  switch(property.epc) {
264  default : return false;
265  }
266  }
267 
268  @Override
269  protected synchronized byte[] getProperty(byte epc) {
270  byte[] edt = super.getProperty(epc);
271  if(edt != null) return edt;
272 
273  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) {
290  default : return false;
291  }
292  }
293 
294  @Override
295  public Setter set() {
296  return set(true);
297  }
298 
299  @Override
300  public Setter set(boolean responseRequired) {
301  return new Setter(getEchoClassCode(), getInstanceCode()
302  , getNode().getAddressStr(), responseRequired);
303  }
304 
305  @Override
306  public Getter get() {
307  return new Getter(getEchoClassCode(), getInstanceCode()
308  , getNode().getAddressStr());
309  }
310 
311  @Override
312  public Informer inform() {
313  return inform(isSelfObject());
314  }
315 
316  @Override
317  protected Informer inform(boolean multicast) {
318  String address;
319  if(multicast) {
321  } else {
322  address = getNode().getAddressStr();
323  }
324  return new Informer(getEchoClassCode(), getInstanceCode()
325  , address, isSelfObject());
326  }
327 
328  public static class Receiver extends DeviceObject.Receiver {
329 
330  @Override
331  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
332  EchoProperty property, boolean success) {
333  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
334  if(ret) return true;
335 
336  switch(property.epc) {
337  default :
338  return false;
339  }
340  }
341 
342  @Override
343  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
344  EchoProperty property, boolean success) {
345  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
346  if(ret) return true;
347 
348  switch(property.epc) {
350  onGetMeasuredCurrentValue1(eoj, tid, esv, property, success);
351  return true;
353  onGetRatedVoltageToBeMeasured(eoj, tid, esv, property, success);
354  return true;
356  onGetMeasuredCurrentValue2(eoj, tid, esv, property, success);
357  return true;
358  default :
359  return false;
360  }
361  }
362 
386  protected void onGetMeasuredCurrentValue1(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
409  protected void onGetRatedVoltageToBeMeasured(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
433  protected void onGetMeasuredCurrentValue2(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
434  }
435 
436  public static class Setter extends DeviceObject.Setter {
437  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
438  , String dstEchoAddress, boolean responseRequired) {
439  super(dstEchoClassCode, dstEchoInstanceCode
440  , dstEchoAddress, responseRequired);
441  }
442 
443  @Override
444  public Setter reqSetProperty(byte epc, byte[] edt) {
445  return (Setter)super.reqSetProperty(epc, edt);
446  }
447 
448  @Override
449  public Setter reqSetOperationStatus(byte[] edt) {
450  return (Setter)super.reqSetOperationStatus(edt);
451  }
452  @Override
453  public Setter reqSetInstallationLocation(byte[] edt) {
454  return (Setter)super.reqSetInstallationLocation(edt);
455  }
456  @Override
457  public Setter reqSetCurrentLimitSetting(byte[] edt) {
458  return (Setter)super.reqSetCurrentLimitSetting(edt);
459  }
460  @Override
461  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
462  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
463  }
464  @Override
465  public Setter reqSetRemoteControlSetting(byte[] edt) {
466  return (Setter)super.reqSetRemoteControlSetting(edt);
467  }
468  @Override
469  public Setter reqSetCurrentTimeSetting(byte[] edt) {
470  return (Setter)super.reqSetCurrentTimeSetting(edt);
471  }
472  @Override
473  public Setter reqSetCurrentDateSetting(byte[] edt) {
474  return (Setter)super.reqSetCurrentDateSetting(edt);
475  }
476  @Override
477  public Setter reqSetPowerLimitSetting(byte[] edt) {
478  return (Setter)super.reqSetPowerLimitSetting(edt);
479  }
480 
481  }
482 
483  public static class Getter extends DeviceObject.Getter {
484  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
485  , String dstEchoAddress) {
486  super(dstEchoClassCode, dstEchoInstanceCode
487  , dstEchoAddress);
488  }
489 
490  @Override
491  public Getter reqGetProperty(byte epc) {
492  return (Getter)super.reqGetProperty(epc);
493  }
494 
495  @Override
496  public Getter reqGetOperationStatus() {
497  return (Getter)super.reqGetOperationStatus();
498  }
499  @Override
500  public Getter reqGetInstallationLocation() {
501  return (Getter)super.reqGetInstallationLocation();
502  }
503  @Override
504  public Getter reqGetStandardVersionInformation() {
505  return (Getter)super.reqGetStandardVersionInformation();
506  }
507  @Override
508  public Getter reqGetIdentificationNumber() {
509  return (Getter)super.reqGetIdentificationNumber();
510  }
511  @Override
512  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
513  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
514  }
515  @Override
516  public Getter reqGetMeasuredCumulativePowerConsumption() {
517  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
518  }
519  @Override
520  public Getter reqGetManufacturersFaultCode() {
521  return (Getter)super.reqGetManufacturersFaultCode();
522  }
523  @Override
524  public Getter reqGetCurrentLimitSetting() {
525  return (Getter)super.reqGetCurrentLimitSetting();
526  }
527  @Override
528  public Getter reqGetFaultStatus() {
529  return (Getter)super.reqGetFaultStatus();
530  }
531  @Override
532  public Getter reqGetFaultDescription() {
533  return (Getter)super.reqGetFaultDescription();
534  }
535  @Override
536  public Getter reqGetManufacturerCode() {
537  return (Getter)super.reqGetManufacturerCode();
538  }
539  @Override
540  public Getter reqGetBusinessFacilityCode() {
541  return (Getter)super.reqGetBusinessFacilityCode();
542  }
543  @Override
544  public Getter reqGetProductCode() {
545  return (Getter)super.reqGetProductCode();
546  }
547  @Override
548  public Getter reqGetProductionNumber() {
549  return (Getter)super.reqGetProductionNumber();
550  }
551  @Override
552  public Getter reqGetProductionDate() {
553  return (Getter)super.reqGetProductionDate();
554  }
555  @Override
556  public Getter reqGetPowerSavingOperationSetting() {
557  return (Getter)super.reqGetPowerSavingOperationSetting();
558  }
559  @Override
560  public Getter reqGetRemoteControlSetting() {
561  return (Getter)super.reqGetRemoteControlSetting();
562  }
563  @Override
564  public Getter reqGetCurrentTimeSetting() {
565  return (Getter)super.reqGetCurrentTimeSetting();
566  }
567  @Override
568  public Getter reqGetCurrentDateSetting() {
569  return (Getter)super.reqGetCurrentDateSetting();
570  }
571  @Override
572  public Getter reqGetPowerLimitSetting() {
573  return (Getter)super.reqGetPowerLimitSetting();
574  }
575  @Override
576  public Getter reqGetCumulativeOperatingTime() {
577  return (Getter)super.reqGetCumulativeOperatingTime();
578  }
579  @Override
580  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
581  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
582  }
583  @Override
584  public Getter reqGetSetPropertyMap() {
585  return (Getter)super.reqGetSetPropertyMap();
586  }
587  @Override
588  public Getter reqGetGetPropertyMap() {
589  return (Getter)super.reqGetGetPropertyMap();
590  }
591 
615  public Getter reqGetMeasuredCurrentValue1() {
616  reqGetProperty(EPC_MEASURED_CURRENT_VALUE1);
617  return this;
618  }
641  public Getter reqGetRatedVoltageToBeMeasured() {
642  reqGetProperty(EPC_RATED_VOLTAGE_TO_BE_MEASURED);
643  return this;
644  }
668  public Getter reqGetMeasuredCurrentValue2() {
669  reqGetProperty(EPC_MEASURED_CURRENT_VALUE2);
670  return this;
671  }
672  }
673 
674  public static class Informer extends DeviceObject.Informer {
675  public Informer(short echoClassCode, byte echoInstanceCode
676  , String dstEchoAddress, boolean isSelfObject) {
677  super(echoClassCode, echoInstanceCode
678  , dstEchoAddress, isSelfObject);
679  }
680 
681  @Override
682  public Informer reqInformProperty(byte epc) {
683  return (Informer)super.reqInformProperty(epc);
684  }
685  @Override
686  public Informer reqInformOperationStatus() {
687  return (Informer)super.reqInformOperationStatus();
688  }
689  @Override
690  public Informer reqInformInstallationLocation() {
691  return (Informer)super.reqInformInstallationLocation();
692  }
693  @Override
694  public Informer reqInformStandardVersionInformation() {
695  return (Informer)super.reqInformStandardVersionInformation();
696  }
697  @Override
698  public Informer reqInformIdentificationNumber() {
699  return (Informer)super.reqInformIdentificationNumber();
700  }
701  @Override
702  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
703  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
704  }
705  @Override
706  public Informer reqInformMeasuredCumulativePowerConsumption() {
707  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
708  }
709  @Override
710  public Informer reqInformManufacturersFaultCode() {
711  return (Informer)super.reqInformManufacturersFaultCode();
712  }
713  @Override
714  public Informer reqInformCurrentLimitSetting() {
715  return (Informer)super.reqInformCurrentLimitSetting();
716  }
717  @Override
718  public Informer reqInformFaultStatus() {
719  return (Informer)super.reqInformFaultStatus();
720  }
721  @Override
722  public Informer reqInformFaultDescription() {
723  return (Informer)super.reqInformFaultDescription();
724  }
725  @Override
726  public Informer reqInformManufacturerCode() {
727  return (Informer)super.reqInformManufacturerCode();
728  }
729  @Override
730  public Informer reqInformBusinessFacilityCode() {
731  return (Informer)super.reqInformBusinessFacilityCode();
732  }
733  @Override
734  public Informer reqInformProductCode() {
735  return (Informer)super.reqInformProductCode();
736  }
737  @Override
738  public Informer reqInformProductionNumber() {
739  return (Informer)super.reqInformProductionNumber();
740  }
741  @Override
742  public Informer reqInformProductionDate() {
743  return (Informer)super.reqInformProductionDate();
744  }
745  @Override
746  public Informer reqInformPowerSavingOperationSetting() {
747  return (Informer)super.reqInformPowerSavingOperationSetting();
748  }
749  @Override
750  public Informer reqInformRemoteControlSetting() {
751  return (Informer)super.reqInformRemoteControlSetting();
752  }
753  @Override
754  public Informer reqInformCurrentTimeSetting() {
755  return (Informer)super.reqInformCurrentTimeSetting();
756  }
757  @Override
758  public Informer reqInformCurrentDateSetting() {
759  return (Informer)super.reqInformCurrentDateSetting();
760  }
761  @Override
762  public Informer reqInformPowerLimitSetting() {
763  return (Informer)super.reqInformPowerLimitSetting();
764  }
765  @Override
766  public Informer reqInformCumulativeOperatingTime() {
767  return (Informer)super.reqInformCumulativeOperatingTime();
768  }
769  @Override
770  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
771  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
772  }
773  @Override
774  public Informer reqInformSetPropertyMap() {
775  return (Informer)super.reqInformSetPropertyMap();
776  }
777  @Override
778  public Informer reqInformGetPropertyMap() {
779  return (Informer)super.reqInformGetPropertyMap();
780  }
781 
805  public Informer reqInformMeasuredCurrentValue1() {
806  reqInformProperty(EPC_MEASURED_CURRENT_VALUE1);
807  return this;
808  }
831  public Informer reqInformRatedVoltageToBeMeasured() {
832  reqInformProperty(EPC_RATED_VOLTAGE_TO_BE_MEASURED);
833  return this;
834  }
858  public Informer reqInformMeasuredCurrentValue2() {
859  reqInformProperty(EPC_MEASURED_CURRENT_VALUE2);
860  return this;
861  }
862  }
863 
864  public static class Proxy extends CurrentValueSensor {
865  public Proxy(byte instanceCode) {
866  super();
867  mEchoInstanceCode = instanceCode;
868  }
869  @Override
870  public byte getInstanceCode() {
871  return mEchoInstanceCode;
872  }
873  @Override
874  protected byte[] getOperationStatus() {return null;}
875  @Override
876  protected boolean setInstallationLocation(byte[] edt) {return false;}
877  @Override
878  protected byte[] getInstallationLocation() {return null;}
879  @Override
880  protected byte[] getStandardVersionInformation() {return null;}
881  @Override
882  protected byte[] getFaultStatus() {return null;}
883  @Override
884  protected byte[] getManufacturerCode() {return null;}
885  @Override
886  protected byte[] getMeasuredCurrentValue1() {return null;}
887  @Override
888  protected byte[] getMeasuredCurrentValue2() {return null;}
889  }
890 
891  public static Setter setG() {
892  return setG((byte)0);
893  }
894 
895  public static Setter setG(byte instanceCode) {
896  return setG(instanceCode, true);
897  }
898 
899  public static Setter setG(boolean responseRequired) {
900  return setG((byte)0, responseRequired);
901  }
902 
903  public static Setter setG(byte instanceCode, boolean responseRequired) {
904  return new Setter(ECHO_CLASS_CODE, instanceCode
905  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
906  }
907 
908  public static Getter getG() {
909  return getG((byte)0);
910  }
911 
912  public static Getter getG(byte instanceCode) {
913  return new Getter(ECHO_CLASS_CODE, instanceCode
915  }
916 
917  public static Informer informG() {
918  return informG((byte)0);
919  }
920 
921  public static Informer informG(byte instanceCode) {
922  return new Informer(ECHO_CLASS_CODE, instanceCode
923  , EchoSocket.MULTICAST_ADDRESS, false);
924  }
925 
926 }
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
static Setter setG(byte instanceCode, boolean responseRequired)
synchronized boolean setProperty(EchoProperty property)
synchronized boolean isValidProperty(EchoProperty property)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53