OpenECHO
 All Classes Namespaces Files Functions Variables
CO2Sensor.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 CO2Sensor extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x001B;
29 
30  public static final byte EPC_MEASURED_VALUE_OF_CO2_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().onNewCO2Sensor(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[] getMeasuredValueOfCo2Concentration();
148  protected boolean isValidMeasuredValueOfCo2Concentration(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  onGetMeasuredValueOfCo2Concentration(eoj, tid, esv, property, success);
242  return true;
243  default :
244  return false;
245  }
246  }
247 
270  protected void onGetMeasuredValueOfCo2Concentration(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 reqGetMeasuredValueOfCo2Concentration() {
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 reqInformMeasuredValueOfCo2Concentration() {
588  reqInformProperty(EPC_MEASURED_VALUE_OF_CO2_CONCENTRATION);
589  return this;
590  }
591  }
592 
593  public static class Proxy extends CO2Sensor {
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[] getMeasuredValueOfCo2Concentration() {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 }
Setter set(boolean responseRequired)
Definition: CO2Sensor.java:191
synchronized boolean setProperty(EchoProperty property)
Definition: CO2Sensor.java:154
synchronized boolean isValidProperty(EchoProperty property)
Definition: CO2Sensor.java:175
final void removeSetProperty(byte epc)
Definition: EchoObject.java:98
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
static Setter setG(byte instanceCode, boolean responseRequired)
Definition: CO2Sensor.java:630
synchronized byte[] getProperty(byte epc)
Definition: CO2Sensor.java:164
final void addGetProperty(byte epc)
static Setter setG(byte instanceCode)
Definition: CO2Sensor.java:622
static Setter setG(boolean responseRequired)
Definition: CO2Sensor.java:626
static final byte EPC_MEASURED_VALUE_OF_CO2_CONCENTRATION
Definition: CO2Sensor.java:30
Informer inform(boolean multicast)
Definition: CO2Sensor.java:208
boolean isValidMeasuredValueOfCo2Concentration(byte[] edt)
Definition: CO2Sensor.java:148
static Informer informG(byte instanceCode)
Definition: CO2Sensor.java:648
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
static Getter getG(byte instanceCode)
Definition: CO2Sensor.java:639