serializeValue function
Implementation
ByteBuffer serializeValue(int major, int minor, String val) {
// Remove everything that's not an hexadecimal character. These are not
// considered errors since the value was already validated and they might
// be number decimals or sign.
var value = val.replaceAll('r[^0-9a-fA-F]', "");
// Create the buffer from the value with left padding with 0.
final length = math.pow(2, minor - 24).toInt();
var temp = value
.substring(value.length <= length * 2 ? 0 : value.length - length * 2);
var prefix = "0" * (2 * length - temp.length);
value = prefix + temp;
var bytes = [(major << 5) + minor];
var arr = <int>[];
for (var i = 0; i < value.length; i += 2) {
arr.add(int.parse(value.substring(i, i + 2), radix: 16));
}
bytes.addAll(arr);
return Uint8List.fromList(bytes).buffer;
}