/* * Set value of given attribute. */ @Override public final void setValue(final GXDLMSSettings settings, final ValueEventArgs e) { if (e.getIndex() == 1) { super.setValue(settings, e); } else if (e.getIndex() == 2) { if (e.getValue() instanceof String) { phyReference = e.getValue().toString(); } else { phyReference = GXDLMSClient.changeType((byte[]) e.getValue(), DataType.OCTET_STRING).toString(); } } else if (e.getIndex() == 3) { java.util.ArrayList<GXDLMSPppSetupLcpOption> items = new java.util.ArrayList<GXDLMSPppSetupLcpOption>(); if (e.getValue() instanceof Object[]) { for (Object item : (Object[]) e.getValue()) { GXDLMSPppSetupLcpOption it = new GXDLMSPppSetupLcpOption(); it.setType( GXDLMSPppSetupLcpOptionType.forValue(((Number) ((Object[]) item)[0]).intValue())); it.setLength(((Number) ((Object[]) item)[1]).intValue()); it.setData(((Object[]) item)[2]); items.add(it); } } lcpOptions = items.toArray(new GXDLMSPppSetupLcpOption[items.size()]); } else if (e.getIndex() == 4) { java.util.ArrayList<GXDLMSPppSetupIPCPOption> items = new java.util.ArrayList<GXDLMSPppSetupIPCPOption>(); if (e.getValue() instanceof Object[]) { for (Object item : (Object[]) e.getValue()) { GXDLMSPppSetupIPCPOption it = new GXDLMSPppSetupIPCPOption(); it.setType( GXDLMSPppSetupIPCPOptionType.forValue(((Number) ((Object[]) item)[0]).intValue())); it.setLength(((Number) ((Object[]) item)[1]).intValue()); it.setData(((Object[]) item)[2]); items.add(it); } } ipcpOptions = items.toArray(new GXDLMSPppSetupIPCPOption[items.size()]); } else if (e.getIndex() == 5) { userName = (byte[]) ((Object[]) e.getValue())[0]; password = (byte[]) ((Object[]) e.getValue())[1]; } else { e.setError(ErrorCode.READ_WRITE_DENIED); } }
/* * Set value of given attribute. */ @Override public void setValue(int index, Object value) { if (index == 1) { super.setValue(index, value); } else if (index == 2) { PushObjectList.clear(); if (value instanceof Object[]) { for (Object it : (Object[]) value) { Object[] tmp = (Object[]) it; GXDLMSPushObject obj = new GXDLMSPushObject(); obj.setType(ObjectType.forValue(((Number) tmp[0]).intValue())); obj.setLogicalName( GXDLMSClient.changeType((byte[]) tmp[1], DataType.BITSTRING).toString()); obj.setAttributeIndex(((Number) tmp[2]).intValue()); obj.setDataIndex(((Number) tmp[3]).intValue()); PushObjectList.add(obj); } } } else if (index == 3) { Object[] tmp = (Object[]) value; if (tmp != null) { SendDestinationAndMethod.setService(ServiceType.forValue(((Number) tmp[0]).intValue())); SendDestinationAndMethod.setDestination(new String((byte[]) tmp[1])); SendDestinationAndMethod.setMessage(MessageType.forValue(((Number) tmp[2]).intValue())); } } else if (index == 4) { CommunicationWindow.clear(); if (value instanceof Object[]) { for (Object it : (Object[]) value) { Object[] tmp = (Object[]) it; GXDateTime start = (GXDateTime) GXDLMSClient.changeType((byte[]) tmp[0], DataType.DATETIME); GXDateTime end = (GXDateTime) GXDLMSClient.changeType((byte[]) tmp[1], DataType.DATETIME); CommunicationWindow.add(new SimpleEntry<GXDateTime, GXDateTime>(start, end)); } } } else if (index == 5) { RandomisationStartInterval = ((Number) value).intValue(); } else if (index == 6) { NumberOfRetries = ((Number) value).intValue(); } else if (index == 7) { RepetitionDelay = ((Number) value).intValue(); } else { throw new IllegalArgumentException("GetValue failed. Invalid attribute index."); } }