OpenECHO
 All Classes Namespaces Files Functions Variables
OxygenSensor.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 OxygenSensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x000C;
29 
30  public static final byte EPC_MEASURED_VALUE_OF_OXYGEN_CONCENTRATION = (byte)0xE0;
31 
32  @Override
33  protected void setupPropertyMaps() {
34  super.setupPropertyMaps();
35 
40  }
41 
42  @Override
43  public void onNew() {
44  super.onNew();
45  Echo.getEventListener().onNewOxygenSensor(this);
46  }
47 
48  @Override
49  public short getEchoClassCode() {
50  return ECHO_CLASS_CODE;
51  }
52 
77  protected boolean setOperationStatus(byte[] edt) {return false;}
102  protected abstract byte[] getOperationStatus();
125  protected abstract byte[] getMeasuredValueOfOxygenConcentration();
148  protected boolean isValidMeasuredValueOfOxygenConcentration(byte[] edt) {
149  if(edt == null || !(edt.length == 2)) return false;
150  return true;
151  }
152 
153  @Override
154  protected synchronized boolean setProperty(EchoProperty property) {
155  boolean success = super.setProperty(property);
156  if(success) return success;
157 
158  switch(property.epc) {
159  default : return false;
160  }
161  }
162 
163  @Override
164  protected synchronized byte[] getProperty(byte epc) {
165  byte[] edt = super.getProperty(epc);
166  if(edt != null) return edt;
167 
168  switch(epc) {
170  default : return null;
171  }
172  }
173 
174  @Override
175  protected synchronized boolean isValidProperty(EchoProperty property) {
176  boolean valid = super.isValidProperty(property);
177  if(valid) return valid;
178 
179  switch(property.epc) {
181  default : return false;
182  }
183  }
184 
185  @Override
186  public Setter set() {
187  return set(true);
188  }
189 
190  @Override
191  public Setter set(boolean responseRequired) {
192  return new Setter(getEchoClassCode(), getInstanceCode()
193  , getNode().getAddressStr(), responseRequired);
194  }
195 
196  @Override
197  public Getter get() {
198  return new Getter(getEchoClassCode(), getInstanceCode()
199  , getNode().getAddressStr());
200  }
201 
202  @Override
203  public Informer inform() {
204  return inform(isSelfObject());
205  }
206 
207  @Override
208  protected Informer inform(boolean multicast) {
209  String address;
210  if(multicast) {
212  } else {
213  address = getNode().getAddressStr();
214  }
215  return new Informer(getEchoClassCode(), getInstanceCode()
216  , address, isSelfObject());
217  }
218 
219  public static class Receiver extends DeviceObject.Receiver {
220 
221  @Override
222  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
223  EchoProperty property, boolean success) {
224  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
225  if(ret) return true;
226 
227  switch(property.epc) {
228  default :
229  return false;
230  }
231  }
232 
233  @Override
234  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
235  EchoProperty property, boolean success) {
236  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
237  if(ret) return true;
238 
239  switch(property.epc) {
241  onGetMeasuredValueOfOxygenConcentration(eoj, tid, esv, property, success);
242  return true;
243  default :
244  return false;
245  }
246  }
247 
270  protected void onGetMeasuredValueOfOxygenConcentration(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
271  }
272 
273  public static class Setter extends DeviceObject.Setter {
274  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
275  , String dstEchoAddress, boolean responseRequired) {
276  super(dstEchoClassCode, dstEchoInstanceCode
277  , dstEchoAddress, responseRequired);
278  }
279 
280  @Override
281  public Setter reqSetProperty(byte epc, byte[] edt) {
282  return (Setter)super.reqSetProperty(epc, edt);
283  }
284 
285  @Override
286  public Setter reqSetOperationStatus(byte[] edt) {
287  return (Setter)super.reqSetOperationStatus(edt);
288  }
289  @Override
290  public Setter reqSetInstallationLocation(byte[] edt) {
291  return (Setter)super.reqSetInstallationLocation(edt);
292  }
293  @Override
294  public Setter reqSetCurrentLimitSetting(byte[] edt) {
295  return (Setter)super.reqSetCurrentLimitSetting(edt);
296  }
297  @Override
298  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
299  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
300  }
301  @Override
302  public Setter reqSetRemoteControlSetting(byte[] edt) {
303  return (Setter)super.reqSetRemoteControlSetting(edt);
304  }
305  @Override
306  public Setter reqSetCurrentTimeSetting(byte[] edt) {
307  return (Setter)super.reqSetCurrentTimeSetting(edt);
308  }
309  @Override
310  public Setter reqSetCurrentDateSetting(byte[] edt) {
311  return (Setter)super.reqSetCurrentDateSetting(edt);
312  }
313  @Override
314  public Setter reqSetPowerLimitSetting(byte[] edt) {
315  return (Setter)super.reqSetPowerLimitSetting(edt);
316  }
317 
318  }
319 
320  public static class Getter extends DeviceObject.Getter {
321  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
322  , String dstEchoAddress) {
323  super(dstEchoClassCode, dstEchoInstanceCode
324  , dstEchoAddress);
325  }
326 
327  @Override
328  public Getter reqGetProperty(byte epc) {
329  return (Getter)super.reqGetProperty(epc);
330  }
331 
332  @Override
333  public Getter reqGetOperationStatus() {
334  return (Getter)super.reqGetOperationStatus();
335  }
336  @Override
337  public Getter reqGetInstallationLocation() {
338  return (Getter)super.reqGetInstallationLocation();
339  }
340  @Override
341  public Getter reqGetStandardVersionInformation() {
342  return (Getter)super.reqGetStandardVersionInformation();
343  }
344  @Override
345  public Getter reqGetIdentificationNumber() {
346  return (Getter)super.reqGetIdentificationNumber();
347  }
348  @Override
349  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
350  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
351  }
352  @Override
353  public Getter reqGetMeasuredCumulativePowerConsumption() {
354  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
355  }
356  @Override
357  public Getter reqGetManufacturersFaultCode() {
358  return (Getter)super.reqGetManufacturersFaultCode();
359  }
360  @Override
361  public Getter reqGetCurrentLimitSetting() {
362  return (Getter)super.reqGetCurrentLimitSetting();
363  }
364  @Override
365  public Getter reqGetFaultStatus() {
366  return (Getter)super.reqGetFaultStatus();
367  }
368  @Override
369  public Getter reqGetFaultDescription() {
370  return (Getter)super.reqGetFaultDescription();
371  }
372  @Override
373  public Getter reqGetManufacturerCode() {
374  return (Getter)super.reqGetManufacturerCode();
375  }
376  @Override
377  public Getter reqGetBusinessFacilityCode() {
378  return (Getter)super.reqGetBusinessFacilityCode();
379  }
380  @Override
381  public Getter reqGetProductCode() {
382  return (Getter)super.reqGetProductCode();
383  }
384  @Override
385  public Getter reqGetProductionNumber() {
386  return (Getter)super.reqGetProductionNumber();
387  }
388  @Override
389  public Getter reqGetProductionDate() {
390  return (Getter)super.reqGetProductionDate();
391  }
392  @Override
393  public Getter reqGetPowerSavingOperationSetting() {
394  return (Getter)super.reqGetPowerSavingOperationSetting();
395  }
396  @Override
397  public Getter reqGetRemoteControlSetting() {
398  return (Getter)super.reqGetRemoteControlSetting();
399  }
400  @Override
401  public Getter reqGetCurrentTimeSetting() {
402  return (Getter)super.reqGetCurrentTimeSetting();
403  }
404  @Override
405  public Getter reqGetCurrentDateSetting() {
406  return (Getter)super.reqGetCurrentDateSetting();
407  }
408  @Override
409  public Getter reqGetPowerLimitSetting() {
410  return (Getter)super.reqGetPowerLimitSetting();
411  }
412  @Override
413  public Getter reqGetCumulativeOperatingTime() {
414  return (Getter)super.reqGetCumulativeOperatingTime();
415  }
416  @Override
417  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
418  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
419  }
420  @Override
421  public Getter reqGetSetPropertyMap() {
422  return (Getter)super.reqGetSetPropertyMap();
423  }
424  @Override
425  public Getter reqGetGetPropertyMap() {
426  return (Getter)super.reqGetGetPropertyMap();
427  }
428 
451  public Getter reqGetMeasuredValueOfOxygenConcentration() {
453  return this;
454  }
455  }
456 
457  public static class Informer extends DeviceObject.Informer {
458  public Informer(short echoClassCode, byte echoInstanceCode
459  , String dstEchoAddress, boolean isSelfObject) {
460  super(echoClassCode, echoInstanceCode
461  , dstEchoAddress, isSelfObject);
462  }
463 
464  @Override
465  public Informer reqInformProperty(byte epc) {
466  return (Informer)super.reqInformProperty(epc);
467  }
468  @Override
469  public Informer reqInformOperationStatus() {
470  return (Informer)super.reqInformOperationStatus();
471  }
472  @Override
473  public Informer reqInformInstallationLocation() {
474  return (Informer)super.reqInformInstallationLocation();
475  }
476  @Override
477  public Informer reqInformStandardVersionInformation() {
478  return (Informer)super.reqInformStandardVersionInformation();
479  }
480  @Override
481  public Informer reqInformIdentificationNumber() {
482  return (Informer)super.reqInformIdentificationNumber();
483  }
484  @Override
485  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
486  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
487  }
488  @Override
489  public Informer reqInformMeasuredCumulativePowerConsumption() {
490  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
491  }
492  @Override
493  public Informer reqInformManufacturersFaultCode() {
494  return (Informer)super.reqInformManufacturersFaultCode();
495  }
496  @Override
497  public Informer reqInformCurrentLimitSetting() {
498  return (Informer)super.reqInformCurrentLimitSetting();
499  }
500  @Override
501  public Informer reqInformFaultStatus() {
502  return (Informer)super.reqInformFaultStatus();
503  }
504  @Override
505  public Informer reqInformFaultDescription() {
506  return (Informer)super.reqInformFaultDescription();
507  }
508  @Override
509  public Informer reqInformManufacturerCode() {
510  return (Informer)super.reqInformManufacturerCode();
511  }
512  @Override
513  public Informer reqInformBusinessFacilityCode() {
514  return (Informer)super.reqInformBusinessFacilityCode();
515  }
516  @Override
517  public Informer reqInformProductCode() {
518  return (Informer)super.reqInformProductCode();
519  }
520  @Override
521  public Informer reqInformProductionNumber() {
522  return (Informer)super.reqInformProductionNumber();
523  }
524  @Override
525  public Informer reqInformProductionDate() {
526  return (Informer)super.reqInformProductionDate();
527  }
528  @Override
529  public Informer reqInformPowerSavingOperationSetting() {
530  return (Informer)super.reqInformPowerSavingOperationSetting();
531  }
532  @Override
533  public Informer reqInformRemoteControlSetting() {
534  return (Informer)super.reqInformRemoteControlSetting();
535  }
536  @Override
537  public Informer reqInformCurrentTimeSetting() {
538  return (Informer)super.reqInformCurrentTimeSetting();
539  }
540  @Override
541  public Informer reqInformCurrentDateSetting() {
542  return (Informer)super.reqInformCurrentDateSetting();
543  }
544  @Override
545  public Informer reqInformPowerLimitSetting() {
546  return (Informer)super.reqInformPowerLimitSetting();
547  }
548  @Override
549  public Informer reqInformCumulativeOperatingTime() {
550  return (Informer)super.reqInformCumulativeOperatingTime();
551  }
552  @Override
553  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
554  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
555  }
556  @Override
557  public Informer reqInformSetPropertyMap() {
558  return (Informer)super.reqInformSetPropertyMap();
559  }
560  @Override
561  public Informer reqInformGetPropertyMap() {
562  return (Informer)super.reqInformGetPropertyMap();
563  }
564 
587  public Informer reqInformMeasuredValueOfOxygenConcentration() {
589  return this;
590  }
591  }
592 
593  public static class Proxy extends OxygenSensor {
594  public Proxy(byte instanceCode) {
595  super();
596  mEchoInstanceCode = instanceCode;
597  }
598  @Override
599  public byte getInstanceCode() {
600  return mEchoInstanceCode;
601  }
602  @Override
603  protected byte[] getOperationStatus() {return null;}
604  @Override
605  protected boolean setInstallationLocation(byte[] edt) {return false;}
606  @Override
607  protected byte[] getInstallationLocation() {return null;}
608  @Override
609  protected byte[] getStandardVersionInformation() {return null;}
610  @Override
611  protected byte[] getFaultStatus() {return null;}
612  @Override
613  protected byte[] getManufacturerCode() {return null;}
614  @Override
615  protected byte[] getMeasuredValueOfOxygenConcentration() {return null;}
616  }
617 
618  public static Setter setG() {
619  return setG((byte)0);
620  }
621 
622  public static Setter setG(byte instanceCode) {
623  return setG(instanceCode, true);
624  }
625 
626  public static Setter setG(boolean responseRequired) {
627  return setG((byte)0, responseRequired);
628  }
629 
630  public static Setter setG(byte instanceCode, boolean responseRequired) {
631  return new Setter(ECHO_CLASS_CODE, instanceCode
632  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
633  }
634 
635  public static Getter getG() {
636  return getG((byte)0);
637  }
638 
639  public static Getter getG(byte instanceCode) {
640  return new Getter(ECHO_CLASS_CODE, instanceCode
642  }
643 
644  public static Informer informG() {
645  return informG((byte)0);
646  }
647 
648  public static Informer informG(byte instanceCode) {
649  return new Informer(ECHO_CLASS_CODE, instanceCode
650  , EchoSocket.MULTICAST_ADDRESS, false);
651  }
652 
653 }
synchronized boolean setProperty(EchoProperty property)
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
Setter set(boolean responseRequired)
static Getter getG(byte instanceCode)
static Setter setG(byte instanceCode)
static Setter setG(boolean responseRequired)
static Informer informG(byte instanceCode)
synchronized boolean isValidProperty(EchoProperty property)
static Setter setG(byte instanceCode, boolean responseRequired)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53