Skip to content

Commit

Permalink
feat(bacnet): added helper for string data types
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Apr 20, 2022
1 parent 368940d commit b34ce11
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 10 deletions.
20 changes: 20 additions & 0 deletions plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,26 @@ func CreateBACnetContextTagDouble(tagNumber uint8, value float64) *BACnetContext
return NewBACnetContextTagDouble(NewBACnetTagPayloadDouble(value), header, tagNumber, true)
}

func CreateBACnetApplicationTagOctetString(value string) *BACnetApplicationTagOctetString {
header := CreateBACnetTagHeaderBalanced(false, uint8(BACnetDataType_OCTET_STRING), uint32(len(value)))
return NewBACnetApplicationTagOctetString(NewBACnetTagPayloadOctetString(value, uint32(len(value))), header)
}

func CreateBACnetContextTagOctetString(tagNumber uint8, value string) *BACnetContextTagOctetString {
header := CreateBACnetTagHeaderBalanced(true, tagNumber, uint32(len(value)))
return NewBACnetContextTagOctetString(NewBACnetTagPayloadOctetString(value, uint32(len(value))), header, tagNumber, true)
}

func CreateBACnetApplicationTagCharacterString(baCnetCharacterEncoding BACnetCharacterEncoding, value string) *BACnetApplicationTagCharacterString {
header := CreateBACnetTagHeaderBalanced(false, uint8(BACnetDataType_CHARACTER_STRING), uint32(len(value)))
return NewBACnetApplicationTagCharacterString(NewBACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, uint32(len(value))), header)
}

func CreateBACnetContextTagCharacterString(tagNumber uint8, baCnetCharacterEncoding BACnetCharacterEncoding, value string) *BACnetContextTagCharacterString {
header := CreateBACnetTagHeaderBalanced(true, tagNumber, uint32(len(value)))
return NewBACnetContextTagCharacterString(NewBACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, uint32(len(value))), header, tagNumber, true)
}

func requiredLength(value uint) uint32 {
var length uint32
switch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,16 @@ public static Pair<Long, BACnetTagPayloadEnumerated> CreateEnumeratedPayload(lon
return Pair.of(length, payload);
}

public static BACnetApplicationTagBoolean createBACnetApplicationTagBoolean(boolean value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.BOOLEAN.getValue(), value ? 1L : 0L);
return new BACnetApplicationTagBoolean(header, new BACnetTagPayloadBoolean(value ? 1L : 0L));
}

public static BACnetContextTagBoolean createBACnetContextTagBoolean(byte tagNumber, boolean value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 1);
return new BACnetContextTagBoolean(header, (short) (value ? 1 : 0), new BACnetTagPayloadBoolean(value ? 1L : 0L), (short) tagNumber, true);
}

public static BACnetApplicationTagUnsignedInteger createBACnetApplicationTagUnsignedInteger(long value) {
Pair<Long, BACnetTagPayloadUnsignedInteger> lengthPayload = createUnsignedPayload(value);
BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.UNSIGNED_INTEGER.getValue(), lengthPayload.getLeft());
Expand Down Expand Up @@ -542,16 +552,6 @@ public static Pair<Long, BACnetTagPayloadSignedInteger> createSignedPayload(long
return Pair.of(length, payload);
}

public static BACnetApplicationTagBoolean createBACnetApplicationTagBoolean(boolean value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.BOOLEAN.getValue(), value ? 1L : 0L);
return new BACnetApplicationTagBoolean(header, new BACnetTagPayloadBoolean(value ? 1L : 0L));
}

public static BACnetContextTagBoolean createBACnetContextTagBoolean(byte tagNumber, boolean value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 1);
return new BACnetContextTagBoolean(header, (short) (value ? 1 : 0), new BACnetTagPayloadBoolean(value ? 1L : 0L), (short) tagNumber, true);
}

public static BACnetApplicationTagReal createBACnetApplicationTagReal(float value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.REAL.getValue(), 4);
return new BACnetApplicationTagReal(header, new BACnetTagPayloadReal(value));
Expand All @@ -572,6 +572,26 @@ public static BACnetContextTagDouble createBACnetContextTagDouble(byte tagNumber
return new BACnetContextTagDouble(header, new BACnetTagPayloadDouble(value), (short) tagNumber, true);
}

public static BACnetApplicationTagOctetString createBACnetApplicationTagOctetString(String value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.OCTET_STRING.getValue(), value.length());
return new BACnetApplicationTagOctetString(header, new BACnetTagPayloadOctetString(value, (long) value.length()));
}

public static BACnetContextTagOctetString createBACnetContextTagOctetString(byte tagNumber, String value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, value.length());
return new BACnetContextTagOctetString(header, new BACnetTagPayloadOctetString(value, (long) value.length()), (short) tagNumber, true);
}

public static BACnetApplicationTagCharacterString createBACnetApplicationTagCharacterString(BACnetCharacterEncoding baCnetCharacterEncoding, String value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(false, BACnetDataType.CHARACTER_STRING.getValue(), value.length());
return new BACnetApplicationTagCharacterString(header, new BACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, (long) value.length()));
}

public static BACnetContextTagCharacterString createBACnetContextTagCharacterString(byte tagNumber, BACnetCharacterEncoding baCnetCharacterEncoding, String value) {
BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, value.length());
return new BACnetContextTagCharacterString(header, new BACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, (long) value.length()), (short) tagNumber, true);
}

private static long requiredLength(long value) {
long length;
if (value < 0x100)
Expand Down

0 comments on commit b34ce11

Please sign in to comment.