equal
deleted
inserted
replaced
623 </xsl:text> |
623 </xsl:text> |
624 <xsl:text>var cache = hmitree_types.map(_ignored => undefined); |
624 <xsl:text>var cache = hmitree_types.map(_ignored => undefined); |
625 </xsl:text> |
625 </xsl:text> |
626 <xsl:text>var updates = {}; |
626 <xsl:text>var updates = {}; |
627 </xsl:text> |
627 </xsl:text> |
|
628 <xsl:text>var page_switch = null; |
|
629 </xsl:text> |
628 <xsl:text> |
630 <xsl:text> |
629 </xsl:text> |
631 </xsl:text> |
630 <xsl:text>function dispatch_value_to_widget(widget, index, value, oldval) { |
632 <xsl:text>function dispatch_value_to_widget(widget, index, value, oldval) { |
631 </xsl:text> |
633 </xsl:text> |
632 <xsl:text> try { |
634 <xsl:text> try { |
751 </xsl:text> |
753 </xsl:text> |
752 <xsl:text> |
754 <xsl:text> |
753 </xsl:text> |
755 </xsl:text> |
754 <xsl:text>// Apply updates recieved through ws.onmessage to subscribed widgets |
756 <xsl:text>// Apply updates recieved through ws.onmessage to subscribed widgets |
755 </xsl:text> |
757 </xsl:text> |
756 <xsl:text>// Called on requestAnimationFram, modifies DOM |
758 <xsl:text>// Do the page swith if any one pending |
757 </xsl:text> |
759 </xsl:text> |
758 <xsl:text>function apply_pending_updates() { |
760 <xsl:text>// Called on requestAnimationFrame, modifies DOM |
|
761 </xsl:text> |
|
762 <xsl:text>function animate() { |
|
763 </xsl:text> |
|
764 <xsl:text> if(page_switch != null){ |
|
765 </xsl:text> |
|
766 <xsl:text> do_switch_page(page_switch); |
|
767 </xsl:text> |
|
768 <xsl:text> page_switch=null; |
|
769 </xsl:text> |
|
770 <xsl:text> } |
|
771 </xsl:text> |
|
772 <xsl:text> |
759 </xsl:text> |
773 </xsl:text> |
760 <xsl:text> for(let index in updates){ |
774 <xsl:text> for(let index in updates){ |
761 </xsl:text> |
775 </xsl:text> |
762 <xsl:text> // serving as a key, index becomes a string |
776 <xsl:text> // serving as a key, index becomes a string |
763 </xsl:text> |
777 </xsl:text> |
771 </xsl:text> |
785 </xsl:text> |
772 <xsl:text>} |
786 <xsl:text>} |
773 </xsl:text> |
787 </xsl:text> |
774 <xsl:text> |
788 <xsl:text> |
775 </xsl:text> |
789 </xsl:text> |
|
790 <xsl:text>var requestAnimationFrameID = null; |
|
791 </xsl:text> |
|
792 <xsl:text>function requestHMIAnimation() { |
|
793 </xsl:text> |
|
794 <xsl:text> if(requestAnimationFrameID != null){ |
|
795 </xsl:text> |
|
796 <xsl:text> window.cancelAnimationFrame(requestAnimationFrameID); |
|
797 </xsl:text> |
|
798 <xsl:text> requestAnimationFrameID = null; |
|
799 </xsl:text> |
|
800 <xsl:text> } |
|
801 </xsl:text> |
|
802 <xsl:text> requestAnimationFrameID = window.requestAnimationFrame(animate); |
|
803 </xsl:text> |
|
804 <xsl:text>} |
|
805 </xsl:text> |
|
806 <xsl:text> |
|
807 </xsl:text> |
776 <xsl:text>// Message reception handler |
808 <xsl:text>// Message reception handler |
777 </xsl:text> |
809 </xsl:text> |
778 <xsl:text>// Hash is verified and HMI values updates resulting from binary parsing |
810 <xsl:text>// Hash is verified and HMI values updates resulting from binary parsing |
779 </xsl:text> |
811 </xsl:text> |
780 <xsl:text>// are stored until browser can compute next frame, DOM is left untouched |
812 <xsl:text>// are stored until browser can compute next frame, DOM is left untouched |
831 </xsl:text> |
863 </xsl:text> |
832 <xsl:text> }; |
864 <xsl:text> }; |
833 </xsl:text> |
865 </xsl:text> |
834 <xsl:text> // register for rendering on next frame, since there are updates |
866 <xsl:text> // register for rendering on next frame, since there are updates |
835 </xsl:text> |
867 </xsl:text> |
836 <xsl:text> window.requestAnimationFrame(apply_pending_updates); |
868 <xsl:text> window.requestAnimationFrame(animate); |
837 </xsl:text> |
869 </xsl:text> |
838 <xsl:text> } catch(err) { |
870 <xsl:text> } catch(err) { |
839 </xsl:text> |
871 </xsl:text> |
840 <xsl:text> // 1003 is for "Unsupported Data" |
872 <xsl:text> // 1003 is for "Unsupported Data" |
841 </xsl:text> |
873 </xsl:text> |
1101 </xsl:text> |
1133 </xsl:text> |
1102 <xsl:text> |
1134 <xsl:text> |
1103 </xsl:text> |
1135 </xsl:text> |
1104 <xsl:text>function switch_page(page_name) { |
1136 <xsl:text>function switch_page(page_name) { |
1105 </xsl:text> |
1137 </xsl:text> |
|
1138 <xsl:text> page_switch = page_name; |
|
1139 </xsl:text> |
|
1140 <xsl:text> window.requestAnimationFrame(animate); |
|
1141 </xsl:text> |
|
1142 <xsl:text>} |
|
1143 </xsl:text> |
|
1144 <xsl:text> |
|
1145 </xsl:text> |
|
1146 <xsl:text>function do_switch_page(page_name) { |
|
1147 </xsl:text> |
1106 <xsl:text> let old_desc = page_desc[current_page]; |
1148 <xsl:text> let old_desc = page_desc[current_page]; |
1107 </xsl:text> |
1149 </xsl:text> |
1108 <xsl:text> let new_desc = page_desc[page_name]; |
1150 <xsl:text> let new_desc = page_desc[page_name]; |
1109 </xsl:text> |
1151 </xsl:text> |
1110 <xsl:text> |
1152 <xsl:text> |
1193 </xsl:text> |
1235 </xsl:text> |
1194 <xsl:text> |
1236 <xsl:text> |
1195 </xsl:text> |
1237 </xsl:text> |
1196 <xsl:text> svg_root.setAttribute('viewBox',new_desc.bbox.join(" ")); |
1238 <xsl:text> svg_root.setAttribute('viewBox',new_desc.bbox.join(" ")); |
1197 </xsl:text> |
1239 </xsl:text> |
|
1240 <xsl:text> |
|
1241 </xsl:text> |
1198 <xsl:text> current_page = page_name; |
1242 <xsl:text> current_page = page_name; |
1199 </xsl:text> |
1243 </xsl:text> |
1200 <xsl:text> |
1244 <xsl:text> |
1201 </xsl:text> |
1245 </xsl:text> |
1202 <xsl:text> update_subscriptions(); |
1246 <xsl:text> window.setTimeout(update_subscriptions,0); |
1203 </xsl:text> |
1247 </xsl:text> |
1204 <xsl:text>}; |
1248 <xsl:text>}; |
1205 </xsl:text> |
1249 </xsl:text> |
1206 <xsl:text> |
1250 <xsl:text> |
1207 </xsl:text> |
1251 </xsl:text> |
1406 <xsl:text>value</xsl:text> |
1450 <xsl:text>value</xsl:text> |
1407 </xsl:with-param> |
1451 </xsl:with-param> |
1408 <xsl:with-param name="mandatory" select="'no'"/> |
1452 <xsl:with-param name="mandatory" select="'no'"/> |
1409 </xsl:call-template> |
1453 </xsl:call-template> |
1410 </xsl:variable> |
1454 </xsl:variable> |
|
1455 <xsl:variable name="have_value" select="string-length($value_elt)>0"/> |
1411 <xsl:value-of select="$value_elt"/> |
1456 <xsl:value-of select="$value_elt"/> |
1412 <xsl:if test="$value_elt"> |
1457 <xsl:if test="$have_value"> |
1413 <xsl:text> frequency: 5, |
1458 <xsl:text> frequency: 5, |
1414 </xsl:text> |
1459 </xsl:text> |
1415 </xsl:if> |
1460 </xsl:if> |
1416 <xsl:text> dispatch: function(value) { |
1461 <xsl:text> dispatch: function(value) { |
1417 </xsl:text> |
1462 </xsl:text> |
1418 <xsl:if test="$value_elt"> |
1463 <xsl:if test="$have_value"> |
1419 <xsl:text> this.value_elt.textContent = String(value); |
1464 <xsl:text> this.value_elt.textContent = String(value); |
1420 </xsl:text> |
1465 </xsl:text> |
1421 </xsl:if> |
1466 </xsl:if> |
1422 <xsl:text> }, |
1467 <xsl:text> }, |
1423 </xsl:text> |
1468 </xsl:text> |
1443 </xsl:text> |
1488 </xsl:text> |
1444 <xsl:text> evt => {let new_val = change_hmi_value(this.indexes[0], "</xsl:text> |
1489 <xsl:text> evt => {let new_val = change_hmi_value(this.indexes[0], "</xsl:text> |
1445 <xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
1490 <xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
1446 <xsl:text>"); |
1491 <xsl:text>"); |
1447 </xsl:text> |
1492 </xsl:text> |
1448 <xsl:text> this.value_elt.textContent = String(new_val);}); |
1493 <xsl:if test="$have_value"> |
|
1494 <xsl:text> this.value_elt.textContent = String(new_val); |
|
1495 </xsl:text> |
|
1496 </xsl:if> |
|
1497 <xsl:text> }); |
1449 </xsl:text> |
1498 </xsl:text> |
1450 </xsl:for-each> |
1499 </xsl:for-each> |
1451 <xsl:text> }, |
1500 <xsl:text> }, |
1452 </xsl:text> |
1501 </xsl:text> |
1453 </xsl:template> |
1502 </xsl:template> |