From dae327c1cb4a9e4abdf34d5d6a6e0ef163cf62b4 Mon Sep 17 00:00:00 2001 From: Jens Kerrinnes Date: Thu, 11 Aug 2016 12:11:18 +0200 Subject: [PATCH 1/3] Trigger source/Trigger level --- Servoterm/term.js | 99 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 91 insertions(+), 8 deletions(-) diff --git a/Servoterm/term.js b/Servoterm/term.js index 9e159a6..8937d91 100644 --- a/Servoterm/term.js +++ b/Servoterm/term.js @@ -3,7 +3,7 @@ var connected = false; var path; var addr = -1; var values = []; -var plotxpos = 0; +var plotxpos = 10; var plotypos = []; var histpos = 0; var cmdhistory = []; @@ -20,7 +20,7 @@ var trigger_zerocross = false; var trigger_enabled = false; var trigger_edge = true; //true = rising false = falling var trigger_buttonstate = 0; //0 disabled; 1 wait for trigger; 2 trigrd -var trigger_buttonstate_last = 0; +var trigger_buttonstate_last = -1; var uitime = setInterval(refresh_UI, 200); @@ -32,10 +32,10 @@ function refresh_UI(){ waitbtn.value = "Disabled"; waitbtn.style.backgroundColor = "grey"; }else if (trigger_buttonstate == 1){ - waitbtn.value = "Wait..."; + waitbtn.value = "Wait......."; waitbtn.style.backgroundColor = "green"; }else if (trigger_buttonstate == 2){ - waitbtn.value = "Trigrd"; + waitbtn.value = "Trigrd....."; waitbtn.style.backgroundColor = "red"; } @@ -294,6 +294,14 @@ function plot(value){ ctx.lineTo(plotxpos+1, y_res/2); ctx.stroke(); + //Triggerlevel + ctx.beginPath(); + ctx.lineWidth = pixel; + ctx.strokeStyle= "red"; + ctx.moveTo(0, (trigger_lvl*-1+1)*(y_res/2.0)); + ctx.lineTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); + ctx.stroke(); + plotxpos+=pixel; if(plotxpos>=x_res){ @@ -302,7 +310,7 @@ function plot(value){ trigger_wait = true; trigger_zerocross = false; } - plotxpos = 0; + plotxpos = 10; } } @@ -360,10 +368,31 @@ function resize(){ */ //centerline - ctx.moveTo(0, y_res/2); + ctx.moveTo(10, y_res/2); ctx.lineTo(x_res, y_res/2); ctx.stroke(); + + ctx.beginPath(); + ctx.lineWidth = pixel; + ctx.strokeStyle= "red"; + ctx.moveTo(0, (trigger_lvl*-1+1)*(y_res/2.0)); + ctx.lineTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); + ctx.moveTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); + if(trigger_lvl>0){ + ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)-2); + }else{ + ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)+2); + } + ctx.stroke(); + ctx.beginPath(); + ctx.lineWidth = pixel; + ctx.strokeStyle= "black"; + ctx.moveTo(11, 0); + ctx.lineTo(11, y_res); + ctx.stroke(); + + //levelline(); } function sendfile(file){ @@ -420,6 +449,39 @@ function ontrigger(e){ } +function ontrgwave0(e){ + trigger_wave = 0; +} +function ontrgwave1(e){ + trigger_wave = 1; +} +function ontrgwave2(e){ + trigger_wave = 2; +} +function ontrgwave3(e){ + trigger_wave = 3; +} +function ontrglevel(e){ + var canvas = document.getElementById('wavecanvas'); + var ctx = canvas.getContext('2d'); + var x_res = canvas.width; + var y_res = canvas.height; + trigger_lvl = document.getElementById("trglevel").value + ctx.clearRect(0, 0, 10, canvas.height); + ctx.beginPath(); + ctx.lineWidth = pixel; + ctx.strokeStyle= "red"; + ctx.moveTo(0, (trigger_lvl*-1+1)*(y_res/2.0)); + ctx.lineTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); + ctx.moveTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); + if(trigger_lvl>0){ + ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)-2); + }else{ + ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)+2); + } + ctx.stroke(); +} + function onkeydown(e){ if(!connected){ return; @@ -446,13 +508,27 @@ document.addEventListener('DOMContentLoaded', function () { $('#layout').w2layout({ name: 'layout', panels: [ - { type: 'top', size: 30, overflow: "hidden", resizable: false, style: pstyle, content: 'JogTrigger' }, - { type: 'main', style: pstyle, content: '' }, + { type: 'top', size: 50, overflow: "hidden", resizable: false, style: pstyle, content: + ''+ + ''+ + ''+ + ''+ + 'Jog'+ + 'Trigger'+ + '   Trigger wave: '+ + 'Wave 0'+ + 'Wave 1'+ + 'Wave 2'+ + 'Wave 3'+ + '   Trigger Level'+ + ''}, + { type: 'main', style: pstyle, content: '' }, { type: 'preview' , size: '50%', resizable: true, style: pstyle, content: '
' }, { type: 'bottom', size: 37, overflow: "hidden", resizable: false, style: pstyle, content: '' } ] }); + w2ui['layout'].on({ type : 'resize', execute : 'after'}, function (target, eventData) { resize(); }); @@ -469,4 +545,11 @@ document.addEventListener('DOMContentLoaded', function () { document.getElementById('layout').addEventListener("drop", ondrop); document.getElementById('layout').addEventListener("dragover", ondragover); document.getElementById('enabletrg').addEventListener("click", ontrigger); + document.getElementById('trgwave0').addEventListener("click", ontrgwave0); + document.getElementById('trgwave1').addEventListener("click", ontrgwave1); + document.getElementById('trgwave2').addEventListener("click", ontrgwave2); + document.getElementById('trgwave3').addEventListener("click", ontrgwave3); + document.getElementById('trglevel').addEventListener("input", ontrglevel); + + //document.getElementById('name').addEventListener("click", ontrgwave); }); From e47e7a7ad0ed82d744ca98bca5c21737ede40bcd Mon Sep 17 00:00:00 2001 From: Jens Kerrinnes Date: Fri, 12 Aug 2016 21:43:49 +0200 Subject: [PATCH 2/3] Scope-Screen/Trigger-Level/Trigger-Source/Fix Button Bug --- Servoterm/term.js | 227 ++++++++++++++++++++++++++++------------------ 1 file changed, 139 insertions(+), 88 deletions(-) diff --git a/Servoterm/term.js b/Servoterm/term.js index 8937d91..a58565a 100644 --- a/Servoterm/term.js +++ b/Servoterm/term.js @@ -7,11 +7,12 @@ var plotxpos = 10; var plotypos = []; var histpos = 0; var cmdhistory = []; -var wavecolor = ["black", "red", "blue", "green", "rgb(255, 128, 0)", "rgb(128, 128, 64)", "rgb(128, 64, 128)", "rgb(64, 128, 128)"]; +var wavecolor = ["white", "red", "blue", "green", "rgb(255, 128, 0)", "rgb(128, 128, 64)", "rgb(128, 64, 128)", "rgb(64, 128, 128)"]; var pixel = 1; var txqueue = []; var capture_active = false; var data = ""; +var grid = 50; var trigger_wait = true; var trigger_lvl = 0.01; var trigger_last = 0; @@ -21,8 +22,9 @@ var trigger_enabled = false; var trigger_edge = true; //true = rising false = falling var trigger_buttonstate = 0; //0 disabled; 1 wait for trigger; 2 trigrd var trigger_buttonstate_last = -1; +var trigger_singleshot = 0; -var uitime = setInterval(refresh_UI, 200); +var uitime = setInterval(refresh_UI, 100); function refresh_UI(){ if(trigger_buttonstate != trigger_buttonstate_last){ @@ -31,8 +33,12 @@ function refresh_UI(){ if(trigger_buttonstate == 0){ waitbtn.value = "Disabled"; waitbtn.style.backgroundColor = "grey"; - }else if (trigger_buttonstate == 1){ - waitbtn.value = "Wait......."; + }else if(trigger_buttonstate == 1){ + if(trigger_singleshot){ + waitbtn.value = "Singleshot"; + }else{ + waitbtn.value = "Wait......."; + } waitbtn.style.backgroundColor = "green"; }else if (trigger_buttonstate == 2){ waitbtn.value = "Trigrd....."; @@ -125,6 +131,7 @@ function receive(info){ //println("receive"); var buf = new Uint8Array(info.data); var txt = ''; + var triggrd = false; for (var i = 0; i < buf.length; i++) { if(addr >= 0){ values[addr++] = (buf[i]-128) / 128.0; @@ -135,13 +142,24 @@ function receive(info){ } trigger_last = values[trigger_wave]; + if(trigger_lvl<0){ + if(trigger_enabled && trigger_wait && (values[trigger_wave] <= trigger_lvl) && trigger_zerocross){ + triggrd = true; + } + }else{ + if(trigger_enabled && trigger_wait && (values[trigger_wave] >= trigger_lvl) && trigger_zerocross){ + triggrd = true; + } + } + //Only plot if triggrd - if((trigger_enabled && trigger_wait && (values[trigger_wave] >= trigger_lvl) && trigger_zerocross) || (trigger_enabled && !trigger_wait)){ + if(triggrd || (trigger_enabled && !trigger_wait)){ trigger_buttonstate = 2; trigger_wait = false; + triggrd = false; plot(values); - }else if (!trigger_enabled) { //rolling plot if trigger is disabled + }else if (!trigger_enabled && !trigger_singleshot) { //rolling plot if trigger is disabled plot(values); } @@ -286,31 +304,16 @@ function plot(value){ plotypos[i] = ypos;//save previous position } - //centerline - ctx.beginPath(); - ctx.lineWidth = pixel; - ctx.strokeStyle= "grey"; - ctx.moveTo(plotxpos, y_res/2); - ctx.lineTo(plotxpos+1, y_res/2); - ctx.stroke(); - - //Triggerlevel - ctx.beginPath(); - ctx.lineWidth = pixel; - ctx.strokeStyle= "red"; - ctx.moveTo(0, (trigger_lvl*-1+1)*(y_res/2.0)); - ctx.lineTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); - ctx.stroke(); - plotxpos+=pixel; if(plotxpos>=x_res){ - if(trigger_enabled){ + if(trigger_enabled && !trigger_singleshot){ trigger_buttonstate = 1; trigger_wait = true; trigger_zerocross = false; + } - plotxpos = 10; + plotxpos = 11; } } @@ -318,13 +321,17 @@ function resize(){ // console.log("resize"); //console.log(window.devicePixelRatio); - plotxpos = 0; + plotxpos = 11; var canvas = document.getElementById('wavecanvas'); + var canvasback = document.getElementById('waveback'); canvas.style.width='100%'; canvas.style.height='100%'; canvas.width = canvas.offsetWidth; canvas.height = canvas.offsetHeight; - + canvasback.style.width='100%'; + canvasback.style.height='100%'; + canvasback.width = canvas.offsetWidth; + canvasback.height = canvas.offsetHeight; //HiDPI display support if(window.devicePixelRatio){ pixel = window.devicePixelRatio; @@ -333,64 +340,54 @@ function resize(){ // reset the canvas width and height with window.devicePixelRatio applied canvas.setAttribute('width', Math.round(width * window.devicePixelRatio)); canvas.setAttribute('height', Math.round( height * window.devicePixelRatio)); + canvasback.setAttribute('width', Math.round(width * window.devicePixelRatio)); + canvasback.setAttribute('height', Math.round( height * window.devicePixelRatio)); // force the canvas back to the original size using css canvas.style.width = width+"px"; canvas.style.height = height+"px"; + canvasback.style.width = width+"px"; + canvasback.style.height = height+"px"; } var x_res = canvas.width; var y_res = canvas.height; - var ctx = canvas.getContext('2d'); - ctx.beginPath(); - ctx.strokeStyle= "grey"; - ctx.lineWidth = pixel; - - /* - //cross - ctx.moveTo(0,0); - ctx.lineTo(x_res, y_res); - ctx.moveTo(x_res,0); - ctx.lineTo(0, y_res); + //var ctx = canvas.getContext('2d'); + var ctxb = canvasback.getContext('2d'); + ctxb.beginPath(); + ctxb.strokeStyle= "yellow"; + ctxb.lineWidth = pixel; - //outline - ctx.moveTo(0,y_res); - ctx.lineTo(x_res, y_res); + //centerline + ctxb.moveTo(10, Math.floor(y_res/2)); + ctxb.lineTo(x_res, Math.floor(y_res/2)); + + ctxb.stroke(); + + ctxb.beginPath(); + ctxb.lineWidth = pixel; + ctxb.strokeStyle= "yellow"; + ctxb.moveTo(11, 0); + ctxb.lineTo(11, y_res); + ctxb.stroke(); + ctxb.beginPath(); + ctxb.lineWidth = pixel; + ctxb.strokeStyle= "grey"; + for(var i = 10+grid; i < x_res; i=i+grid){ + ctxb.moveTo(i, 0); + ctxb.lineTo(i, y_res); + } - ctx.moveTo(0,0); - ctx.lineTo(x_res, 0); + for(i = (y_res/2)+(y_res/10); i < y_res; i=i+(y_res/10)){ + ctxb.moveTo(10, i); + ctxb.lineTo(x_res, i); + ctxb.moveTo(10, y_res -i); + ctxb.lineTo(x_res, y_res -i); + } - ctx.moveTo(x_res, 0); - ctx.lineTo(x_res, y_res); + ctxb.stroke(); - ctx.moveTo(0, 0); - ctx.lineTo(0, y_res); - */ - - //centerline - ctx.moveTo(10, y_res/2); - ctx.lineTo(x_res, y_res/2); - - ctx.stroke(); - - ctx.beginPath(); - ctx.lineWidth = pixel; - ctx.strokeStyle= "red"; - ctx.moveTo(0, (trigger_lvl*-1+1)*(y_res/2.0)); - ctx.lineTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); - ctx.moveTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); - if(trigger_lvl>0){ - ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)-2); - }else{ - ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)+2); - } - ctx.stroke(); - ctx.beginPath(); - ctx.lineWidth = pixel; - ctx.strokeStyle= "black"; - ctx.moveTo(11, 0); - ctx.lineTo(11, y_res); - ctx.stroke(); + redrawTrigger(); //levelline(); } @@ -442,44 +439,96 @@ function ontrigger(e){ trigger_buttonstate = 1; trigger_enabled = true; trigger_wait = true; + trigger_singleshot = false; + trigger_buttonstate_last = -1; + redrawTrigger(); }else{ trigger_enabled = false; trigger_buttonstate = 0; + trigger_singleshot = false; + redrawTrigger(); } } function ontrgwave0(e){ trigger_wave = 0; + activateTrigger(); + redrawTrigger(); } function ontrgwave1(e){ trigger_wave = 1; + activateTrigger(); + redrawTrigger(); } function ontrgwave2(e){ trigger_wave = 2; + activateTrigger(); + redrawTrigger(); } function ontrgwave3(e){ trigger_wave = 3; + activateTrigger(); + redrawTrigger(); } function ontrglevel(e){ - var canvas = document.getElementById('wavecanvas'); + redrawTrigger(); +} + +function activateTrigger(){ + document.getElementById("enabletrg").checked = true; + trigger_buttonstate = 1; + trigger_enabled = true; + trigger_wait = true; + trigger_singleshot = false; + trigger_buttonstate_last = -1; +} + +function redrawTrigger(){ + var canvas = document.getElementById('waveback'); var ctx = canvas.getContext('2d'); var x_res = canvas.width; var y_res = canvas.height; + var ytrgpos = Math.floor((trigger_lvl*-1+1)*(y_res/2.0)); trigger_lvl = document.getElementById("trglevel").value ctx.clearRect(0, 0, 10, canvas.height); - ctx.beginPath(); - ctx.lineWidth = pixel; - ctx.strokeStyle= "red"; - ctx.moveTo(0, (trigger_lvl*-1+1)*(y_res/2.0)); - ctx.lineTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); - ctx.moveTo(10, (trigger_lvl*-1+1)*(y_res/2.0)); - if(trigger_lvl>0){ - ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)-2); + if(trigger_enabled){ + ctx.beginPath(); + ctx.lineWidth = pixel; + ctx.strokeStyle = wavecolor[trigger_wave]; + ctx.moveTo(0, ytrgpos); + ctx.lineTo(10, ytrgpos); + ctx.moveTo(10, ytrgpos); + if(trigger_lvl>0){ + ctx.lineTo(5, ytrgpos-2); + }else{ + ctx.lineTo(5, ytrgpos+2); + } + ctx.stroke(); + ctx.font = "12px Arial"; + ctx.textAlign = "center"; + ctx.fillStyle = wavecolor[trigger_wave]; + if(ytrgpos < 14){ + ctx.fillText(trigger_wave,4,ytrgpos+12); + }else{ + ctx.fillText(trigger_wave,4,ytrgpos-4); + } + } +} + +function onwaitbtn(e){ + if (trigger_buttonstate){ + trigger_buttonstate = 0; + trigger_singleshot = false + document.getElementById("enabletrg").checked = false; + trigger_enabled = false; + redrawTrigger(); }else{ - ctx.lineTo(5, (trigger_lvl*-1+1)*(y_res/2.0)+2); + trigger_buttonstate = 1; + trigger_singleshot = true; + trigger_enabled = true; + redrawTrigger(); } - ctx.stroke(); } function onkeydown(e){ @@ -522,7 +571,8 @@ document.addEventListener('DOMContentLoaded', function () { 'Wave 3'+ '   Trigger Level'+ ''}, - { type: 'main', style: pstyle, content: '' }, + //{ type: 'main', style: pstyle, content: '' }, + { type: 'main', style: pstyle, content: '' }, { type: 'preview' , size: '50%', resizable: true, style: pstyle, content: '
' }, { type: 'bottom', size: 37, overflow: "hidden", resizable: false, style: pstyle, content: '' } ] @@ -535,12 +585,12 @@ document.addEventListener('DOMContentLoaded', function () { document.addEventListener("keydown", onkeydown); document.addEventListener("keyup", onkeyup); - chrome.serial.onReceive.addListener(receive); - chrome.serial.onReceiveError.addListener(error); + chrome.serial.onReceive.addListener(receive); + chrome.serial.onReceiveError.addListener(error); document.getElementById('command').addEventListener("keydown", keypress); document.getElementById('connectbutton').addEventListener("click", onconnect); - document.getElementById('clearbutton').addEventListener("click", onclear); - document.getElementById('resetbutton').addEventListener("click", onreset); + document.getElementById('clearbutton').addEventListener("click", onclear); + document.getElementById('resetbutton').addEventListener("click", onreset); document.getElementById('exportbutton').addEventListener("click", onexport); document.getElementById('layout').addEventListener("drop", ondrop); document.getElementById('layout').addEventListener("dragover", ondragover); @@ -550,6 +600,7 @@ document.addEventListener('DOMContentLoaded', function () { document.getElementById('trgwave2').addEventListener("click", ontrgwave2); document.getElementById('trgwave3').addEventListener("click", ontrgwave3); document.getElementById('trglevel').addEventListener("input", ontrglevel); + document.getElementById('waitbutton').addEventListener("click", onwaitbtn); //document.getElementById('name').addEventListener("click", ontrgwave); }); From 3892a5fc93e025aa3a354644ece43fcd9e9a9626 Mon Sep 17 00:00:00 2001 From: Jens Kerrinnes Date: Tue, 16 Aug 2016 20:33:14 +0200 Subject: [PATCH 3/3] Realname wave info box/New trigger/Trigger 4-7/Clean/ --- Servoterm/term.js | 160 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 124 insertions(+), 36 deletions(-) diff --git a/Servoterm/term.js b/Servoterm/term.js index a58565a..b7ced45 100644 --- a/Servoterm/term.js +++ b/Servoterm/term.js @@ -8,6 +8,7 @@ var plotypos = []; var histpos = 0; var cmdhistory = []; var wavecolor = ["white", "red", "blue", "green", "rgb(255, 128, 0)", "rgb(128, 128, 64)", "rgb(128, 64, 128)", "rgb(64, 128, 128)"]; +var wavename = []; var pixel = 1; var txqueue = []; var capture_active = false; @@ -17,12 +18,16 @@ var trigger_wait = true; var trigger_lvl = 0.01; var trigger_last = 0; var trigger_wave = 0; -var trigger_zerocross = false; var trigger_enabled = false; var trigger_edge = true; //true = rising false = falling var trigger_buttonstate = 0; //0 disabled; 1 wait for trigger; 2 trigrd var trigger_buttonstate_last = -1; var trigger_singleshot = 0; +var trigger_space = 10; +var meas_space = 20; +var meas_position = 4; +var info_space = 150; +var decodebuffer = ""; var uitime = setInterval(refresh_UI, 100); @@ -137,20 +142,11 @@ function receive(info){ values[addr++] = (buf[i]-128) / 128.0; if(addr == 8){ //Zerocross detection - if(((trigger_last < 0.01 && values[trigger_wave] > 0) || (trigger_last < 0 && values[trigger_wave] > 0.01)) && !trigger_zerocross){ - trigger_zerocross = true; + if((trigger_lvl >= 0 && (values[trigger_wave] > trigger_last && values[trigger_wave] >= trigger_lvl)) || (trigger_lvl < 0 && (values[trigger_wave] < trigger_last && values[trigger_wave] <= trigger_lvl)) ){ + triggrd = true; } - trigger_last = values[trigger_wave]; - if(trigger_lvl<0){ - if(trigger_enabled && trigger_wait && (values[trigger_wave] <= trigger_lvl) && trigger_zerocross){ - triggrd = true; - } - }else{ - if(trigger_enabled && trigger_wait && (values[trigger_wave] >= trigger_lvl) && trigger_zerocross){ - triggrd = true; - } - } + trigger_last = values[trigger_wave]; //Only plot if triggrd if(triggrd || (trigger_enabled && !trigger_wait)){ @@ -171,9 +167,14 @@ function receive(info){ //TODO: is there a better way? var str = String.fromCharCode.apply(null, [buf[i]]); if(str == '\n'){ - txt = txt + "
"; + if(getwavename(decodebuffer)){ + redrawInfo(); + } + decodebuffer = ""; + txt = txt + "
"; }else{ txt = txt + str; + decodebuffer = decodebuffer + str; } } } @@ -187,6 +188,7 @@ function connected_cb(connectionInfo){ println("connected"); connid = connectionInfo.connectionId; connected = true; + chrome.serial.send(connid, convertStringToArrayBuffer("term0.wave" + '\n'), sendcb); // println(connectionInfo.connectionId); document.getElementById('connectbutton').value = "Disconnect"; } @@ -239,6 +241,19 @@ function onreset(e){ document.getElementById('command').focus(); } +function redrawMeas(){ + var canvas = document.getElementById('waveback'); + var ctx = canvas.getContext('2d'); + var x_res = canvas.width; + var y_res = canvas.height; + ctx.clearRect(trigger_space, y_res - meas_space, x_res - info_space, y_res); + + ctx.font = "12px Arial"; + ctx.textAlign = "left"; + ctx.fillStyle = "white" + ctx.fillText("Trg lvl: " + trigger_lvl ,trigger_space, y_res - meas_position); +} + function onexport(e){ if(capture_active){ capture_active = false; @@ -276,8 +291,8 @@ function onconnect(e){ function plot(value){ //TODO: multiple waves var canvas = document.getElementById('wavecanvas'); - var x_res = canvas.width; - var y_res = canvas.height; + var x_res = canvas.width-info_space; + var y_res = canvas.height-meas_space; var ctx = canvas.getContext('2d'); @@ -288,14 +303,14 @@ function plot(value){ data += "\n" } - ctx.clearRect(plotxpos, 0, pixel, canvas.height); + ctx.clearRect(plotxpos, 0, pixel, y_res); //var i = 0; for(var i = 0;i=x_res){ - if(trigger_enabled && !trigger_singleshot){ trigger_buttonstate = 1; trigger_wait = true; - trigger_zerocross = false; - + for(var i = 0;i'+ 'Jog'+ 'Trigger'+ - '   Trigger wave: '+ + '   Trigger: '+ 'Wave 0'+ 'Wave 1'+ 'Wave 2'+ 'Wave 3'+ + 'Wave 4'+ + 'Wave 5'+ + 'Wave 6'+ + 'Wave 7'+ '   Trigger Level'+ ''}, //{ type: 'main', style: pstyle, content: '' }, @@ -599,6 +683,10 @@ document.addEventListener('DOMContentLoaded', function () { document.getElementById('trgwave1').addEventListener("click", ontrgwave1); document.getElementById('trgwave2').addEventListener("click", ontrgwave2); document.getElementById('trgwave3').addEventListener("click", ontrgwave3); + document.getElementById('trgwave4').addEventListener("click", ontrgwave4); + document.getElementById('trgwave5').addEventListener("click", ontrgwave5); + document.getElementById('trgwave6').addEventListener("click", ontrgwave6); + document.getElementById('trgwave7').addEventListener("click", ontrgwave7); document.getElementById('trglevel').addEventListener("input", ontrglevel); document.getElementById('waitbutton').addEventListener("click", onwaitbtn);