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