OpenECHO
 All Classes Namespaces Files Functions Variables
Display.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.audiovisual;
17 
25 
26 public abstract class Display extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x0601;
29 
30  public static final byte EPC_DISPLAY_CONTROL_SETTING = (byte)0xB0;
31  public static final byte EPC_CHARACTER_STRING_SETTING_ACCEPTANCE_STATUS = (byte)0xB1;
32  public static final byte EPC_SUPPORTED_CHARACTER_CODES = (byte)0xB2;
33  public static final byte EPC_CHARACTER_STRING_TO_PRESENT_TO_THE_USER = (byte)0xB3;
34  public static final byte EPC_LENGTH_OF_CHARACTER_STRING_ACCEPTED = (byte)0xB4;
35 
36  @Override
37  protected void setupPropertyMaps() {
38  super.setupPropertyMaps();
39 
48  }
49 
50  @Override
51  public void onNew() {
52  super.onNew();
53  Echo.getEventListener().onNewDisplay(this);
54  }
55 
56  @Override
57  public short getEchoClassCode() {
58  return ECHO_CLASS_CODE;
59  }
60 
85  protected abstract boolean setOperationStatus(byte[] edt);
110  protected abstract byte[] getOperationStatus();
133  protected boolean setDisplayControlSetting(byte[] edt) {return false;}
156  protected byte[] getDisplayControlSetting() {return null;}
179  protected boolean isValidDisplayControlSetting(byte[] edt) {
180  if(edt == null || !(edt.length == 1)) return false;
181  return true;
182  }
207  protected abstract byte[] getCharacterStringSettingAcceptanceStatus();
232  protected boolean isValidCharacterStringSettingAcceptanceStatus(byte[] edt) {
233  if(edt == null || !(edt.length == 1)) return false;
234  return true;
235  }
281  protected abstract byte[] getSupportedCharacterCodes();
327  protected boolean isValidSupportedCharacterCodes(byte[] edt) {
328  if(edt == null || !(edt.length == 2)) return false;
329  return true;
330  }
367  protected abstract boolean setCharacterStringToPresentToTheUser(byte[] edt);
404  protected byte[] getCharacterStringToPresentToTheUser() {return null;}
441  protected boolean isValidCharacterStringToPresentToTheUser(byte[] edt) {
442  if(edt == null || !(edt.length <= 247)) return false;
443  return true;
444  }
468  protected abstract byte[] getLengthOfCharacterStringAccepted();
492  protected boolean isValidLengthOfCharacterStringAccepted(byte[] edt) {
493  if(edt == null || !(edt.length == 2)) return false;
494  return true;
495  }
496 
497  @Override
498  protected synchronized boolean setProperty(EchoProperty property) {
499  boolean success = super.setProperty(property);
500  if(success) return success;
501 
502  switch(property.epc) {
505  default : return false;
506  }
507  }
508 
509  @Override
510  protected synchronized byte[] getProperty(byte epc) {
511  byte[] edt = super.getProperty(epc);
512  if(edt != null) return edt;
513 
514  switch(epc) {
520  default : return null;
521  }
522  }
523 
524  @Override
525  protected synchronized boolean isValidProperty(EchoProperty property) {
526  boolean valid = super.isValidProperty(property);
527  if(valid) return valid;
528 
529  switch(property.epc) {
535  default : return false;
536  }
537  }
538 
539  @Override
540  public Setter set() {
541  return set(true);
542  }
543 
544  @Override
545  public Setter set(boolean responseRequired) {
546  return new Setter(getEchoClassCode(), getInstanceCode()
547  , getNode().getAddressStr(), responseRequired);
548  }
549 
550  @Override
551  public Getter get() {
552  return new Getter(getEchoClassCode(), getInstanceCode()
553  , getNode().getAddressStr());
554  }
555 
556  @Override
557  public Informer inform() {
558  return inform(isSelfObject());
559  }
560 
561  @Override
562  protected Informer inform(boolean multicast) {
563  String address;
564  if(multicast) {
566  } else {
567  address = getNode().getAddressStr();
568  }
569  return new Informer(getEchoClassCode(), getInstanceCode()
570  , address, isSelfObject());
571  }
572 
573  public static class Receiver extends DeviceObject.Receiver {
574 
575  @Override
576  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
577  EchoProperty property, boolean success) {
578  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
579  if(ret) return true;
580 
581  switch(property.epc) {
583  onSetDisplayControlSetting(eoj, tid, esv, property, success);
584  return true;
586  onSetCharacterStringToPresentToTheUser(eoj, tid, esv, property, success);
587  return true;
588  default :
589  return false;
590  }
591  }
592 
593  @Override
594  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
595  EchoProperty property, boolean success) {
596  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
597  if(ret) return true;
598 
599  switch(property.epc) {
601  onGetDisplayControlSetting(eoj, tid, esv, property, success);
602  return true;
604  onGetCharacterStringSettingAcceptanceStatus(eoj, tid, esv, property, success);
605  return true;
607  onGetSupportedCharacterCodes(eoj, tid, esv, property, success);
608  return true;
610  onGetCharacterStringToPresentToTheUser(eoj, tid, esv, property, success);
611  return true;
613  onGetLengthOfCharacterStringAccepted(eoj, tid, esv, property, success);
614  return true;
615  default :
616  return false;
617  }
618  }
619 
642  protected void onSetDisplayControlSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
665  protected void onGetDisplayControlSetting(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
690  protected void onGetCharacterStringSettingAcceptanceStatus(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
736  protected void onGetSupportedCharacterCodes(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
773  protected void onSetCharacterStringToPresentToTheUser(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
810  protected void onGetCharacterStringToPresentToTheUser(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
834  protected void onGetLengthOfCharacterStringAccepted(EchoObject eoj, short tid, byte esv, EchoProperty property, boolean success) {}
835  }
836 
837  public static class Setter extends DeviceObject.Setter {
838  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
839  , String dstEchoAddress, boolean responseRequired) {
840  super(dstEchoClassCode, dstEchoInstanceCode
841  , dstEchoAddress, responseRequired);
842  }
843 
844  @Override
845  public Setter reqSetProperty(byte epc, byte[] edt) {
846  return (Setter)super.reqSetProperty(epc, edt);
847  }
848 
849  @Override
850  public Setter reqSetOperationStatus(byte[] edt) {
851  return (Setter)super.reqSetOperationStatus(edt);
852  }
853  @Override
854  public Setter reqSetInstallationLocation(byte[] edt) {
855  return (Setter)super.reqSetInstallationLocation(edt);
856  }
857  @Override
858  public Setter reqSetCurrentLimitSetting(byte[] edt) {
859  return (Setter)super.reqSetCurrentLimitSetting(edt);
860  }
861  @Override
862  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
863  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
864  }
865  @Override
866  public Setter reqSetRemoteControlSetting(byte[] edt) {
867  return (Setter)super.reqSetRemoteControlSetting(edt);
868  }
869  @Override
870  public Setter reqSetCurrentTimeSetting(byte[] edt) {
871  return (Setter)super.reqSetCurrentTimeSetting(edt);
872  }
873  @Override
874  public Setter reqSetCurrentDateSetting(byte[] edt) {
875  return (Setter)super.reqSetCurrentDateSetting(edt);
876  }
877  @Override
878  public Setter reqSetPowerLimitSetting(byte[] edt) {
879  return (Setter)super.reqSetPowerLimitSetting(edt);
880  }
881 
904  public Setter reqSetDisplayControlSetting(byte[] edt) {
905  reqSetProperty(EPC_DISPLAY_CONTROL_SETTING, edt);
906  return this;
907  }
944  public Setter reqSetCharacterStringToPresentToTheUser(byte[] edt) {
945  reqSetProperty(EPC_CHARACTER_STRING_TO_PRESENT_TO_THE_USER, edt);
946  return this;
947  }
948  }
949 
950  public static class Getter extends DeviceObject.Getter {
951  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
952  , String dstEchoAddress) {
953  super(dstEchoClassCode, dstEchoInstanceCode
954  , dstEchoAddress);
955  }
956 
957  @Override
958  public Getter reqGetProperty(byte epc) {
959  return (Getter)super.reqGetProperty(epc);
960  }
961 
962  @Override
963  public Getter reqGetOperationStatus() {
964  return (Getter)super.reqGetOperationStatus();
965  }
966  @Override
967  public Getter reqGetInstallationLocation() {
968  return (Getter)super.reqGetInstallationLocation();
969  }
970  @Override
971  public Getter reqGetStandardVersionInformation() {
972  return (Getter)super.reqGetStandardVersionInformation();
973  }
974  @Override
975  public Getter reqGetIdentificationNumber() {
976  return (Getter)super.reqGetIdentificationNumber();
977  }
978  @Override
979  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
980  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
981  }
982  @Override
983  public Getter reqGetMeasuredCumulativePowerConsumption() {
984  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
985  }
986  @Override
987  public Getter reqGetManufacturersFaultCode() {
988  return (Getter)super.reqGetManufacturersFaultCode();
989  }
990  @Override
991  public Getter reqGetCurrentLimitSetting() {
992  return (Getter)super.reqGetCurrentLimitSetting();
993  }
994  @Override
995  public Getter reqGetFaultStatus() {
996  return (Getter)super.reqGetFaultStatus();
997  }
998  @Override
999  public Getter reqGetFaultDescription() {
1000  return (Getter)super.reqGetFaultDescription();
1001  }
1002  @Override
1003  public Getter reqGetManufacturerCode() {
1004  return (Getter)super.reqGetManufacturerCode();
1005  }
1006  @Override
1007  public Getter reqGetBusinessFacilityCode() {
1008  return (Getter)super.reqGetBusinessFacilityCode();
1009  }
1010  @Override
1011  public Getter reqGetProductCode() {
1012  return (Getter)super.reqGetProductCode();
1013  }
1014  @Override
1015  public Getter reqGetProductionNumber() {
1016  return (Getter)super.reqGetProductionNumber();
1017  }
1018  @Override
1019  public Getter reqGetProductionDate() {
1020  return (Getter)super.reqGetProductionDate();
1021  }
1022  @Override
1023  public Getter reqGetPowerSavingOperationSetting() {
1024  return (Getter)super.reqGetPowerSavingOperationSetting();
1025  }
1026  @Override
1027  public Getter reqGetRemoteControlSetting() {
1028  return (Getter)super.reqGetRemoteControlSetting();
1029  }
1030  @Override
1031  public Getter reqGetCurrentTimeSetting() {
1032  return (Getter)super.reqGetCurrentTimeSetting();
1033  }
1034  @Override
1035  public Getter reqGetCurrentDateSetting() {
1036  return (Getter)super.reqGetCurrentDateSetting();
1037  }
1038  @Override
1039  public Getter reqGetPowerLimitSetting() {
1040  return (Getter)super.reqGetPowerLimitSetting();
1041  }
1042  @Override
1043  public Getter reqGetCumulativeOperatingTime() {
1044  return (Getter)super.reqGetCumulativeOperatingTime();
1045  }
1046  @Override
1047  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
1048  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
1049  }
1050  @Override
1051  public Getter reqGetSetPropertyMap() {
1052  return (Getter)super.reqGetSetPropertyMap();
1053  }
1054  @Override
1055  public Getter reqGetGetPropertyMap() {
1056  return (Getter)super.reqGetGetPropertyMap();
1057  }
1058 
1081  public Getter reqGetDisplayControlSetting() {
1082  reqGetProperty(EPC_DISPLAY_CONTROL_SETTING);
1083  return this;
1084  }
1109  public Getter reqGetCharacterStringSettingAcceptanceStatus() {
1111  return this;
1112  }
1158  public Getter reqGetSupportedCharacterCodes() {
1159  reqGetProperty(EPC_SUPPORTED_CHARACTER_CODES);
1160  return this;
1161  }
1198  public Getter reqGetCharacterStringToPresentToTheUser() {
1200  return this;
1201  }
1225  public Getter reqGetLengthOfCharacterStringAccepted() {
1227  return this;
1228  }
1229  }
1230 
1231  public static class Informer extends DeviceObject.Informer {
1232  public Informer(short echoClassCode, byte echoInstanceCode
1233  , String dstEchoAddress, boolean isSelfObject) {
1234  super(echoClassCode, echoInstanceCode
1235  , dstEchoAddress, isSelfObject);
1236  }
1237 
1238  @Override
1239  public Informer reqInformProperty(byte epc) {
1240  return (Informer)super.reqInformProperty(epc);
1241  }
1242  @Override
1243  public Informer reqInformOperationStatus() {
1244  return (Informer)super.reqInformOperationStatus();
1245  }
1246  @Override
1247  public Informer reqInformInstallationLocation() {
1248  return (Informer)super.reqInformInstallationLocation();
1249  }
1250  @Override
1251  public Informer reqInformStandardVersionInformation() {
1252  return (Informer)super.reqInformStandardVersionInformation();
1253  }
1254  @Override
1255  public Informer reqInformIdentificationNumber() {
1256  return (Informer)super.reqInformIdentificationNumber();
1257  }
1258  @Override
1259  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
1260  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
1261  }
1262  @Override
1263  public Informer reqInformMeasuredCumulativePowerConsumption() {
1264  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
1265  }
1266  @Override
1267  public Informer reqInformManufacturersFaultCode() {
1268  return (Informer)super.reqInformManufacturersFaultCode();
1269  }
1270  @Override
1271  public Informer reqInformCurrentLimitSetting() {
1272  return (Informer)super.reqInformCurrentLimitSetting();
1273  }
1274  @Override
1275  public Informer reqInformFaultStatus() {
1276  return (Informer)super.reqInformFaultStatus();
1277  }
1278  @Override
1279  public Informer reqInformFaultDescription() {
1280  return (Informer)super.reqInformFaultDescription();
1281  }
1282  @Override
1283  public Informer reqInformManufacturerCode() {
1284  return (Informer)super.reqInformManufacturerCode();
1285  }
1286  @Override
1287  public Informer reqInformBusinessFacilityCode() {
1288  return (Informer)super.reqInformBusinessFacilityCode();
1289  }
1290  @Override
1291  public Informer reqInformProductCode() {
1292  return (Informer)super.reqInformProductCode();
1293  }
1294  @Override
1295  public Informer reqInformProductionNumber() {
1296  return (Informer)super.reqInformProductionNumber();
1297  }
1298  @Override
1299  public Informer reqInformProductionDate() {
1300  return (Informer)super.reqInformProductionDate();
1301  }
1302  @Override
1303  public Informer reqInformPowerSavingOperationSetting() {
1304  return (Informer)super.reqInformPowerSavingOperationSetting();
1305  }
1306  @Override
1307  public Informer reqInformRemoteControlSetting() {
1308  return (Informer)super.reqInformRemoteControlSetting();
1309  }
1310  @Override
1311  public Informer reqInformCurrentTimeSetting() {
1312  return (Informer)super.reqInformCurrentTimeSetting();
1313  }
1314  @Override
1315  public Informer reqInformCurrentDateSetting() {
1316  return (Informer)super.reqInformCurrentDateSetting();
1317  }
1318  @Override
1319  public Informer reqInformPowerLimitSetting() {
1320  return (Informer)super.reqInformPowerLimitSetting();
1321  }
1322  @Override
1323  public Informer reqInformCumulativeOperatingTime() {
1324  return (Informer)super.reqInformCumulativeOperatingTime();
1325  }
1326  @Override
1327  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
1328  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
1329  }
1330  @Override
1331  public Informer reqInformSetPropertyMap() {
1332  return (Informer)super.reqInformSetPropertyMap();
1333  }
1334  @Override
1335  public Informer reqInformGetPropertyMap() {
1336  return (Informer)super.reqInformGetPropertyMap();
1337  }
1338 
1361  public Informer reqInformDisplayControlSetting() {
1362  reqInformProperty(EPC_DISPLAY_CONTROL_SETTING);
1363  return this;
1364  }
1389  public Informer reqInformCharacterStringSettingAcceptanceStatus() {
1391  return this;
1392  }
1438  public Informer reqInformSupportedCharacterCodes() {
1439  reqInformProperty(EPC_SUPPORTED_CHARACTER_CODES);
1440  return this;
1441  }
1478  public Informer reqInformCharacterStringToPresentToTheUser() {
1480  return this;
1481  }
1505  public Informer reqInformLengthOfCharacterStringAccepted() {
1506  reqInformProperty(EPC_LENGTH_OF_CHARACTER_STRING_ACCEPTED);
1507  return this;
1508  }
1509  }
1510 
1511  public static class Proxy extends Display {
1512  public Proxy(byte instanceCode) {
1513  super();
1514  mEchoInstanceCode = instanceCode;
1515  }
1516  @Override
1517  public byte getInstanceCode() {
1518  return mEchoInstanceCode;
1519  }
1520  @Override
1521  protected byte[] getOperationStatus() {return null;}
1522  @Override
1523  protected boolean setInstallationLocation(byte[] edt) {return false;}
1524  @Override
1525  protected byte[] getInstallationLocation() {return null;}
1526  @Override
1527  protected byte[] getStandardVersionInformation() {return null;}
1528  @Override
1529  protected byte[] getFaultStatus() {return null;}
1530  @Override
1531  protected byte[] getManufacturerCode() {return null;}
1532  @Override
1533  protected boolean setOperationStatus(byte[] edt) {return false;}
1534  @Override
1535  protected byte[] getCharacterStringSettingAcceptanceStatus() {return null;}
1536  @Override
1537  protected byte[] getSupportedCharacterCodes() {return null;}
1538  @Override
1539  protected boolean setCharacterStringToPresentToTheUser(byte[] edt) {return false;}
1540  @Override
1541  protected byte[] getLengthOfCharacterStringAccepted() {return null;}
1542  }
1543 
1544  public static Setter setG() {
1545  return setG((byte)0);
1546  }
1547 
1548  public static Setter setG(byte instanceCode) {
1549  return setG(instanceCode, true);
1550  }
1551 
1552  public static Setter setG(boolean responseRequired) {
1553  return setG((byte)0, responseRequired);
1554  }
1555 
1556  public static Setter setG(byte instanceCode, boolean responseRequired) {
1557  return new Setter(ECHO_CLASS_CODE, instanceCode
1558  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
1559  }
1560 
1561  public static Getter getG() {
1562  return getG((byte)0);
1563  }
1564 
1565  public static Getter getG(byte instanceCode) {
1566  return new Getter(ECHO_CLASS_CODE, instanceCode
1568  }
1569 
1570  public static Informer informG() {
1571  return informG((byte)0);
1572  }
1573 
1574  public static Informer informG(byte instanceCode) {
1575  return new Informer(ECHO_CLASS_CODE, instanceCode
1576  , EchoSocket.MULTICAST_ADDRESS, false);
1577  }
1578 
1579 }
boolean isValidCharacterStringSettingAcceptanceStatus(byte[] edt)
Definition: Display.java:232
abstract boolean setOperationStatus(byte[] edt)
static Getter getG(byte instanceCode)
Definition: Display.java:1565
static final byte EPC_LENGTH_OF_CHARACTER_STRING_ACCEPTED
Definition: Display.java:34
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
static Setter setG(boolean responseRequired)
Definition: Display.java:1552
final void addGetProperty(byte epc)
synchronized byte[] getProperty(byte epc)
Definition: Display.java:510
static Informer informG(byte instanceCode)
Definition: Display.java:1574
Setter set(boolean responseRequired)
Definition: Display.java:545
final void addSetProperty(byte epc)
Definition: EchoObject.java:93
static Setter setG(byte instanceCode, boolean responseRequired)
Definition: Display.java:1556
synchronized boolean isValidProperty(EchoProperty property)
Definition: Display.java:525
static final byte EPC_CHARACTER_STRING_TO_PRESENT_TO_THE_USER
Definition: Display.java:33
static Setter setG(byte instanceCode)
Definition: Display.java:1548
static final byte EPC_CHARACTER_STRING_SETTING_ACCEPTANCE_STATUS
Definition: Display.java:31
boolean isValidCharacterStringToPresentToTheUser(byte[] edt)
Definition: Display.java:441
boolean isValidLengthOfCharacterStringAccepted(byte[] edt)
Definition: Display.java:492
abstract boolean setCharacterStringToPresentToTheUser(byte[] edt)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
synchronized boolean setProperty(EchoProperty property)
Definition: Display.java:498