diff -r b4b69e85ed53 -r 1e5abecc3cde svghmi/gen_index_xhtml.xslt --- a/svghmi/gen_index_xhtml.xslt Tue Jan 14 11:04:18 2020 +0100 +++ b/svghmi/gen_index_xhtml.xslt Tue Jan 14 11:09:26 2020 +0100 @@ -444,11 +444,27 @@ const dvgetters = { - INT: [DataView.prototype.getInt16, 2], - - BOOL: [DataView.prototype.getInt8, 1] - - /* TODO */ + INT: (dv,offset) => [dv.getInt16(offset, true), 2], + + BOOL: (dv,offset) => [dv.getInt8(offset, true), 1], + + STRING: (dv, offset) => { + + size = dv.getInt8(offset); + + return [ + + String.fromCharCode.apply(null, new Uint8Array( + + dv.buffer, /* original buffer */ + + offset + 1, /* string starts after size*/ + + size /* size of string */ + + )), size + 1]; /* total increment */ + + } }; @@ -492,9 +508,9 @@ if(iectype != undefined){ - let [dvgetter, bytesize] = dvgetters[iectype]; - - let value = dvgetter.call(dv,i,true); + let dvgetter = dvgetters[iectype]; + + let [value, bytesize] = dvgetter(dv,i); dispatch_value(index, value);