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