|
@@ -24,8 +24,13 @@ const initWasm = (url) => {
|
|
|
_Init()
|
|
|
while (true) {
|
|
|
_Loop()
|
|
|
+ let trustDO = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
|
for (let i = 0; i < 10; i++) {
|
|
|
- drawPlc('DO', i, _GetTrustDO(i))
|
|
|
+ trustDO[i] = _GetTrustDO(i)
|
|
|
+ }
|
|
|
+ doCom = trustDO[0] || trustDO[1] || trustDO[2] || trustDO[3] || trustDO[4] || trustDO[5] || trustDO[6] || trustDO[7] || trustDO[8] || trustDO[9]
|
|
|
+ for (let i = 0; i < 10; i++) {
|
|
|
+ drawPlc('DO', i, trustDO[i])
|
|
|
}
|
|
|
for (let i = 0; i < 2; i++) {
|
|
|
drawPlc('AO', i, Math.floor(_GetTrustAO(i) / 100))
|
|
@@ -121,7 +126,7 @@ const drawPlc = async (key, index, val, type) => {
|
|
|
|
|
|
// left com
|
|
|
ctx.beginPath()
|
|
|
- ctx.fillStyle = 'red'
|
|
|
+ ctx.fillStyle = (DIValMap[0] || DIValMap[1] || DIValMap[2] || DIValMap[3] || DIValMap[4] || DIValMap[5] || DIValMap[6] || DIValMap[7] || DIValMap[8] || DIValMap[9]) ? '#green' : 'red'
|
|
|
ctx.arc(l_r_dis, l_r_dis, r, 0, 2 * Math.PI)
|
|
|
ctx.fill()
|
|
|
const textInfo = ctx.measureText('COM')
|
|
@@ -286,6 +291,18 @@ const drawPlc = async (key, index, val, type) => {
|
|
|
switch (key) {
|
|
|
case 'DI':
|
|
|
case 'DO':
|
|
|
+ // left com
|
|
|
+ ctx.beginPath()
|
|
|
+ ctx.fillStyle = (DIValMap[0] || DIValMap[1] || DIValMap[2] || DIValMap[3] || DIValMap[4] || DIValMap[5] || DIValMap[6] || DIValMap[7] || DIValMap[8] || DIValMap[9]) ? 'green' : 'red'
|
|
|
+ ctx.arc(l_r_dis, l_r_dis, r, 0, 2 * Math.PI)
|
|
|
+ ctx.fill()
|
|
|
+
|
|
|
+ // right com
|
|
|
+ ctx.beginPath()
|
|
|
+ ctx.fillStyle = doCom ? 'green' : 'red'
|
|
|
+ ctx.arc(canvasMsg.width - l_r_dis, l_r_dis, r, 0, 2 * Math.PI)
|
|
|
+ ctx.fill()
|
|
|
+
|
|
|
ctx.clearRect(key === 'DI' ? l_r_dis - r : canvasMsg.width - l_r_dis - r, y - r, r * 2, r * 2)
|
|
|
ctx.beginPath()
|
|
|
ctx.fillStyle = val !== 0 ? 'green' : 'red'
|
|
@@ -402,7 +419,8 @@ const drawPlc = async (key, index, val, type) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-const DIValMap = {}
|
|
|
+const DIValMap = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
|
|
+let doCom = false
|
|
|
|
|
|
onmessage = (e) => {
|
|
|
const { type, url, ratio, canvas, position, val, i } = e.data
|