diff -r f5da343b9b63 -r 68cee1366b9c svghmi/gen_index_xhtml.xslt
--- a/svghmi/gen_index_xhtml.xslt Thu Oct 17 15:48:09 2019 +0200
+++ b/svghmi/gen_index_xhtml.xslt Sat Oct 19 01:23:30 2019 +0200
@@ -198,10 +198,6 @@
",
- frequency:
-
- ,
-
args: [
@@ -236,8 +232,15 @@
- ]
-
+ ],
+
+ element: document.getElementById("
+
+ "),
+
+
+
+
}
,
@@ -319,7 +322,43 @@
function dispatch_value(index, value) {
- console.log("dispatch_value("+index+", "+value+")");
+ let widgets = subscribers[index];
+
+
+
+ if(widgets.size > 0) {
+
+ for(let widget of widgets){
+
+ let idxidx = widget.indexes.indexOf(index);
+
+ if(idxidx == -1){
+
+ throw new Error("Dispatching to widget not interested, should not happen.");
+
+ }
+
+ let d = widget.dispatch;
+
+ if(typeof(d) == "function" && idxidx == 0){
+
+ return d.call(widget,value);
+
+ }else if(typeof(d) == "object" && d.length >= idxidx){
+
+ d[idxidx].call(widget,value);
+
+ }/* else dispatch_0, ..., dispatch_n ? */
+
+ /*else {
+
+ throw new Error("Dunno how to dispatch to widget at index = " + index);
+
+ }*/
+
+ }
+
+ }
};
@@ -357,7 +396,7 @@
let i = 0;
- console.log("Recv something.");
+ //console.log("Recv something.");
try {
@@ -365,7 +404,7 @@
if(hash_int != dv.getUint8(i)){
- throw new Error("Hash doesn't match")
+ throw new Error("Hash doesn't match");
};
@@ -375,7 +414,7 @@
- console.log("Recv something GOOD.");
+ //console.log("Recv something GOOD.");
@@ -383,7 +422,7 @@
let index = dv.getUint32(i, true);
- console.log("Recv something index is "+index);
+ //console.log("Recv something index is "+index);
i += 4;
@@ -722,16 +761,30 @@
-
- 10
-
-
- 10
-
-
- 5
-
-
- 5
+
+
+ frequency: 5,
+
+ dispatch: function(value) {
+
+
+
+ this.element.textContent = String(value);
+
+
+
+ Display widget as a group not implemented
+
+
+ },
+
+
+
+ frequency: 10,
+
+
+
+ frequency: 5,
+