Description | On the wire a ByteArray always becomes a ByteString. Therefore the recipient of the telegram can’t gain the information if it was a ByteArray or ByteString directly from the message. But both sides do have the opportunity to get the information in an additional step. The client needs to read additional attributes like the DataType Attribute of the Node. With this additional information the client does know that it is receive a ByteString which initially was a ByteArray and can transform it back. The server on the other side needs to check its own address space whether the desired node is a ByteArray or a ByteString and then transform the value to match the expected Datatype. This is the mandated behavior by the spec for the handling of ByteArrays and ByteString.
Unfortunately in the case of the Gateway like you are using it, it is exactly this step that can’t be done. Because the Gateway is only transmitting the request from UA to Classic and the Gateway doesn’t have the information of the actual Datatype that is going to be written, it can only transmit it to a ByteString in classic and sending the write call which then will be answered with the Bad_TypeMismatch. Therefore this OperationResult makes sense and is acceptable from a compliance point of view. |
---|