One other thing … I think we need to replace the getNumberOfElements/GetQuantity with something else. I’ve defined a new Type ArrayInfo, which contains a from and a to index of an array. In case of single values, the arrayinfo list would be empty. If we use a simple array, it would have the “from” set to 0 and the “to” to the array size, if a to and from is provided, these values would be used.
As there are multi-dimensional arrays, I would make this a list. List<ArrayInfo> getArrayInfo() Chris From: Christofer Dutz <[email protected]> Date: Saturday, 5. November 2022 at 15:35 To: [email protected] <[email protected]> Subject: [DISCUSS] Change PlcField interface Hi all, no matter if we’re going to rename the PlcField to PlcTag, I think now is the time to give the interface a little cleanup: We currently have: Java: Class<?> getDefaultJavaType() String getPlcDataType() int getNumberOfElements() Go: GetAddressString() string GetTypeName() string GetQuantity() uint16 I would like to: Java: Strin getAddressString() PlcValueType getPlcValueType() Int getQuantity() Go: GetAddressString() string GetValueType() values.PlcValueType GetQuantity() uint16 I think as we’e mapping all values returned to a fixed set of standard PlcValues, the getDefaultJavaType doesn’t really make much sense anymore. Also would I like to restrict the data-type to only the valid PlcValueType elements. Using anything else here doesn’t make much sense for me, as we don’t have any PlcValue implementations to wrap other types. A fieldHandler can continue to for example parse an “INT16” (which we don’t support) to it’s PLC4X representation “INT” and would simply set the field to PlcValueType.INT. This would make many areas in our code a lot more typesafe. What do you think? Chris
