diff --git a/modules/path/machines/CBA/PPA.js b/modules/path/machines/CBA/PPA.js index afe47047bdfffa15fd8ec4da02209744251a7f6c..a711b41bd940818e2e5bfc5d635d9f2c57737a30 100644 --- a/modules/path/machines/CBA/PPA.js +++ b/modules/path/machines/CBA/PPA.js @@ -229,18 +229,18 @@ function make_path() { var path = mod.path; - ctx.beginPath(); - ctx.setLineDash([]) - ctx.moveTo(path[0][0] * mod.scale + mod.drawOffsetX, path[0][1] * mod.scale); - for (var i = 1; i < path.length; i++) { - if (path[i][2] == 0) { - ctx.lineTo(path[i][0] * mod.scale + mod.drawOffsetX, path[i][1] * mod.scale); - } else { - ctx.moveTo(path[i][0] * mod.scale + mod.drawOffsetX, path[i][1] * mod.scale); - } - } - ctx.strokeStyle = "red"; - ctx.stroke(); + // ctx.beginPath(); + // ctx.setLineDash([]) + // ctx.moveTo(path[0][0] * mod.scale + mod.drawOffsetX, path[0][1] * mod.scale); + // for (var i = 1; i < path.length; i++) { + // if (path[i][2] == 0) { + // ctx.lineTo(path[i][0] * mod.scale + mod.drawOffsetX, path[i][1] * mod.scale); + // } else { + // ctx.moveTo(path[i][0] * mod.scale + mod.drawOffsetX, path[i][1] * mod.scale); + // } + // } + // ctx.strokeStyle = "red"; + // ctx.stroke(); // construct path @@ -253,12 +253,15 @@ function make_path() { var l1 = mh; var l2 = mh; var z = 1; + var count = 1; - str += "L1,"+l1.toFixed(4).toString()+",L2,"+l2.toFixed(4).toString()+",Z,"+z.toString()+"\n"; + //str += "L1,"+l1.toFixed(4).toString()+",L2,"+l2.toFixed(4).toString()+",Z,"+z.toString()+"\n"; var x = bl / 2; var y = Math.sqrt(Math.pow(mh, 2) - Math.pow(x, 2)); + str += x.toFixed(4).toString()+","+y.toFixed(4).toString()+"\n"; + console.log("Start x,y", x, y); ctx.beginPath(); @@ -284,7 +287,9 @@ function make_path() { l1 = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); l2 = Math.sqrt(Math.pow(bl - x, 2) + Math.pow(y, 2)); - str += "L1,"+l1.toFixed(4).toString()+",L2,"+l2.toFixed(4).toString()+",Z,"+z.toString()+"\n"; + //str += "L1,"+l1.toFixed(4).toString()+",L2,"+l2.toFixed(4).toString()+",Z,"+z.toString()+"\n"; + str += x.toFixed(4).toString()+","+y.toFixed(4).toString()+"\n"; + count+=1; ctx.lineTo(x * mod.scale + mod.drawOffsetX, y * mod.scale); } @@ -295,13 +300,19 @@ function make_path() { z = new_z; l1 = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); l2 = Math.sqrt(Math.pow(bl - x, 2) + Math.pow(y, 2)); - str += "L1,"+l1.toFixed(4).toString()+",L2,"+l2.toFixed(4).toString()+",Z,"+z.toString()+"\n"; + //str += "L1,"+l1.toFixed(4).toString()+",L2,"+l2.toFixed(4).toString()+",Z,"+z.toString()+"\n"; + str += x.toFixed(4).toString()+","+y.toFixed(4).toString()+"\n"; + count+=1; ctx.lineTo(x * mod.scale + mod.drawOffsetX, y * mod.scale); } console.log(str); ctx.strokeStyle = "blue"; ctx.stroke(); - //outputs.file.event(str) + + console.log("Number of lines:", count); + + + outputs.file.event(str); } // diff --git a/modules/socket/server/serialpy b/modules/socket/server/serialpy index 7f6fe2f97f8a3d237a6ed94456dfba425bb14893..26bd7bb7fe31b617ab51f7aa57cc031fe0f46625 100644 --- a/modules/socket/server/serialpy +++ b/modules/socket/server/serialpy @@ -1,13 +1,13 @@ // // Python serial server module // -// Neil Gershenfeld +// Neil Gershenfeld // 1/17/20 -// -// This work may be reproduced, modified, distributed, performed, and +// +// This work may be reproduced, modified, distributed, performed, and // displayed for any purpose, but must acknowledge the mods -// project. Copyright is retained and must be preserved. The work is -// provided as is; no warranty is provided, and users accept all +// project. Copyright is retained and must be preserved. The work is +// provided as is; no warranty is provided, and users accept all // liability. // // closure @@ -157,23 +157,23 @@ var interface = function(div){ input.size = 10 div.appendChild(input) mod.device = input - div.appendChild(document.createElement('br')) + div.appendChild(document.createElement('br')) // // baud rate // div.appendChild(document.createTextNode('baud rate:')) - div.appendChild(document.createElement('br')) + div.appendChild(document.createElement('br')) var input = document.createElement('input') input.type = 'text' input.size = 10 div.appendChild(input) mod.baud = input - div.appendChild(document.createElement('br')) + div.appendChild(document.createElement('br')) // // flow control // div.appendChild(document.createTextNode('flow control:')) - div.appendChild(document.createElement('br')) + div.appendChild(document.createElement('br')) var input = document.createElement('input') input.type = 'radio' input.name = mod.div.id+'flow' @@ -181,7 +181,7 @@ var interface = function(div){ div.appendChild(input) mod.flow_none = input div.appendChild(document.createTextNode('none\u00A0\u00A0\u00A0\u00A0')) - div.appendChild(document.createElement('br')) + div.appendChild(document.createElement('br')) var input = document.createElement('input') input.type = 'radio' input.name = mod.div.id+'flow' @@ -189,7 +189,7 @@ var interface = function(div){ div.appendChild(input) mod.flow_rtscts = input div.appendChild(document.createTextNode('RTSCTS')) - div.appendChild(document.createElement('br')) + div.appendChild(document.createElement('br')) var input = document.createElement('input') input.type = 'radio' input.name = mod.div.id+'flow' @@ -197,7 +197,15 @@ var interface = function(div){ div.appendChild(input) mod.flow_dsrdtr = input div.appendChild(document.createTextNode('DSRDTR')) - div.appendChild(document.createElement('br')) + div.appendChild(document.createElement('br')) + var input = document.createElement('input') + input.type = 'radio' + input.name = mod.div.id+'flow' + input.id = mod.div.id+'flow_ppa' + div.appendChild(input) + mod.flow_ppa = input + div.appendChild(document.createTextNode('PPA')) + div.appendChild(document.createElement('br')) // // file button // @@ -279,6 +287,8 @@ function serial_open() { msg.flow = 'rtscts' else if (mod.flow_dsrdtr.checked) msg.flow = 'dsrdtr' + else if (mod.flow_ppa.checked) + msg.flow = 'ppa' mod.socket.send(JSON.stringify(msg)) } } diff --git a/py/serialserver.py b/py/serialserver.py index 7ecd07da0d56b93dd2508c3674eddd69db39cb97..e0f486c9504d0e3f7b233f8b20616f6d39353e1e 100644 --- a/py/serialserver.py +++ b/py/serialserver.py @@ -9,7 +9,7 @@ # performed, and displayed for any purpose, but must # acknowledge the mods project. Copyright is # retained and must be preserved. The work is provided -# as is; no warranty is provided, and users accept all +# as is; no warranty is provided, and users accept all # liability. # # imports @@ -49,7 +49,8 @@ async def receive(websocket,path): # device = vars['device'] speed = int(vars['baud']) - flow = vars['flow'] + flow = "ppa" #vars['flow'] + print("Flow", flow); try: if (flow == "xonxoff"): s = serial.Serial( @@ -60,6 +61,9 @@ async def receive(websocket,path): elif (flow == "dsrdtr"): s = serial.Serial( device,baudrate=speed,dsrdtr=True, timeout=0) + elif (flow == "ppa"): + s = serial.Serial( + device,baudrate=speed, timeout=None) elif (flow == "none"): s = serial.Serial( device,baudrate=speed,timeout=0) @@ -93,7 +97,7 @@ async def receive(websocket,path): # # send file # - data = vars['contents'] + data = vars['contents'].splitlines() n = 0 for c in data: if (flow == "dsrdtr"): @@ -104,6 +108,9 @@ async def receive(websocket,path): time.sleep(0.001) s.write(c.encode('ascii')) s.flush() + if (flow == "ppa"): + receive_string = s.readline() + #print("Got response", receive_string) n += 1 percent = (100.0*n)/len(data) await websocket.send(str(round(percent))+'%') @@ -111,6 +118,6 @@ async def receive(websocket,path): # # start server # -start_server = websockets.serve(receive,'localhost',port) +start_server = websockets.serve(receive,'localhost',port,max_size=2**32) asyncio.get_event_loop().run_until_complete(start_server) asyncio.get_event_loop().run_forever()