readCharString static method
Implementation
static List readCharString(Uint8List data, int offset, int length) {
int end = offset + length;
List arr = [];
int _len = data.length;
while (offset < end) {
int? b0 = null;
if (offset < _len) {
b0 = data[offset];
}
int _offset1 = offset + 1;
int? b1 = null;
if (_offset1 < _len) {
b1 = data[_offset1];
}
int vs = 1;
var op = null, val = null;
// operand
if (b0 != null && b0 <= 20) {
op = b0;
vs = 1;
}
if (b0 != null && b0 == 12) {
op = b0 * 100 + b1!;
vs = 2;
}
if (b0 != null && b0 == 19 || b0 == 20) {
op = b0 /*+" "+b1*/;
vs = 2;
}
if (b0 != null && 21 <= b0 && b0 <= 27) {
op = b0;
vs = 1;
}
if (b0 != null && b0 == 28) {
val = TyprBin.readShort(data, offset + 1);
vs = 3;
}
if (b0 != null && 29 <= b0 && b0 <= 31) {
op = b0;
vs = 1;
}
if (b0 != null && 32 <= b0 && b0 <= 246) {
val = b0 - 139;
vs = 1;
}
if (b0 != null && 247 <= b0 && b0 <= 250) {
val = (b0 - 247) * 256 + b1! + 108;
vs = 2;
}
if (b0 != null && 251 <= b0 && b0 <= 254) {
val = -(b0 - 251) * 256 - b1! - 108;
vs = 2;
}
if (b0 != null && b0 == 255) {
val = TyprBin.readInt(data, offset + 1) / 0xffff;
vs = 5;
}
arr.add(val != null ? val : "o$op");
offset += vs;
}
return arr;
}