sible

            arr = ws.rQshiftBytes(ws.rQlen());
            first = String.fromCharCode(arr.shift());
            last = String.fromCharCode(arr.pop());

            if (first != "^") {
                message("Error: packet missing start char '^'");
                disconnect();
                return;
            }
            if (last != "$") {
                message("Error: packet missing end char '$'");
                disconnect();
                return;
            }
            arr = arr.map