svghmi/svghmi.js
changeset 3624 770c613c424f
parent 3603 f1a00aa8cb3b
child 3625 bb1eff4091ab
equal deleted inserted replaced
3623:0237c28cd172 3624:770c613c424f
    43                 offset + 1, /* string starts after size*/
    43                 offset + 1, /* string starts after size*/
    44                 size /* size of string */
    44                 size /* size of string */
    45             )), size + 1]; /* total increment */
    45             )), size + 1]; /* total increment */
    46     }
    46     }
    47 };
    47 };
    48 
       
    49 // Apply updates recieved through ws.onmessage to subscribed widgets
       
    50 function apply_updates() {
       
    51     updates.forEach((value, index) => {
       
    52         dispatch_value(index, value);
       
    53     });
       
    54     updates.clear();
       
    55 }
       
    56 
    48 
    57 // Called on requestAnimationFrame, modifies DOM
    49 // Called on requestAnimationFrame, modifies DOM
    58 var requestAnimationFrameID = null;
    50 var requestAnimationFrameID = null;
    59 function animate() {
    51 function animate() {
    60     let rearm = true;
    52     let rearm = true;
   124             i += 4;
   116             i += 4;
   125             let iectype = hmitree_types[index];
   117             let iectype = hmitree_types[index];
   126             if(iectype != undefined){
   118             if(iectype != undefined){
   127                 let dvgetter = dvgetters[iectype];
   119                 let dvgetter = dvgetters[iectype];
   128                 let [value, bytesize] = dvgetter(dv,i);
   120                 let [value, bytesize] = dvgetter(dv,i);
   129                 updates.set(index, value);
   121                 dispatch_value(index, value);
   130                 i += bytesize;
   122                 i += bytesize;
   131             } else {
   123             } else {
   132                 throw new Error("Unknown index "+index);
   124                 throw new Error("Unknown index "+index);
   133             }
   125             }
   134         };
   126         };
   135 
   127 
   136         apply_updates();
       
   137         // register for rendering on next frame, since there are updates
   128         // register for rendering on next frame, since there are updates
   138     } catch(err) {
   129     } catch(err) {
   139         // 1003 is for "Unsupported Data"
   130         // 1003 is for "Unsupported Data"
   140         // ws.close(1003, err.message);
   131         // ws.close(1003, err.message);
   141 
   132