From 66ed7fb0a5d7c1b62dc8d306d637b09b2085ff8e Mon Sep 17 00:00:00 2001 From: Jake Read <jake.read@cba.mit.edu> Date: Thu, 31 Oct 2019 17:15:08 -0400 Subject: [PATCH] close loop mseg -> cpp --- save/systems/dbg-l0.json | 275 ++++++++++++++++++++++++ save/systems/dbg-l1.json | 439 +++++++++++++++++++++++++++++++++++++++ typeset.js | 37 ++++ 3 files changed, 751 insertions(+) create mode 100644 save/systems/dbg-l0.json create mode 100644 save/systems/dbg-l1.json diff --git a/save/systems/dbg-l0.json b/save/systems/dbg-l0.json new file mode 100644 index 0000000..8950c35 --- /dev/null +++ b/save/systems/dbg-l0.json @@ -0,0 +1,275 @@ +{ + "interpreterName": "cuttlefish", + "interpreterVersion": "v0.1", + "hunks": [ + { + "type": "manager", + "name": "nrol", + "inputs": [ + { + "name": "msgs", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "msgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "1", + "inHunkInput": "0" + } + ] + } + ] + }, + { + "type": "view", + "name": "tlview", + "inputs": [ + { + "name": "msgs", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "msgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "0", + "inHunkInput": "0" + } + ] + } + ] + }, + { + "type": "link", + "name": "link_2", + "inputs": [ + { + "name": "data", + "type": "byteArray" + }, + { + "name": "mgrMsgs", + "type": "byteArray" + }, + { + "name": "segs", + "type": "MDmseg" + } + ], + "outputs": [ + { + "name": "data", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "3", + "inHunkInput": "0" + } + ] + }, + { + "name": "mgrMsgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "4", + "inHunkInput": "0" + } + ] + } + ], + "states": [ + { + "name": "isActive", + "type": "boolean", + "value": "false" + }, + { + "name": "otherLink", + "type": "uint16", + "value": "0" + }, + { + "name": "inputList", + "type": "string", + "value": "mgrMsgs (byteArray), segs (MDmseg)" + }, + { + "name": "outputList", + "type": "string", + "value": "mgrMsgs (byteArray)" + } + ] + }, + { + "type": "pipes/vfptc", + "name": "pipes/vfptc_3", + "inputs": [ + { + "name": "data", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "data", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "2", + "inHunkInput": "0" + } + ] + } + ], + "states": [ + { + "name": "pipe status", + "type": "string", + "value": "open" + }, + { + "name": "websocket port", + "type": "string", + "value": "2042" + }, + { + "name": "usb product id", + "type": "string", + "value": "8022" + }, + { + "name": "pipe reset", + "type": "boolean", + "value": "false" + }, + { + "name": "serialport status", + "type": "string", + "value": "open" + } + ] + }, + { + "type": "view", + "name": "view_4", + "inputs": [ + { + "name": "msgs", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "msgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "2", + "inHunkInput": "1" + } + ] + } + ] + }, + { + "type": "adhoc/tpath", + "name": "adhoc/tpath_5", + "outputs": [ + { + "name": "position", + "type": "array", + "connections": [ + { + "inHunkIndex": "6", + "inHunkInput": "0" + } + ] + } + ], + "states": [ + { + "name": "mm/pix", + "type": "number", + "value": "0.35277777777777775" + }, + { + "name": "longpath", + "type": "boolean", + "value": "false" + }, + { + "name": "shortpath", + "type": "boolean", + "value": "false" + }, + { + "name": "sl2path", + "type": "boolean", + "value": "false" + } + ] + }, + { + "type": "adhoc/saturn", + "name": "adhoc/saturn_6", + "inputs": [ + { + "name": "posn", + "type": "array" + } + ], + "outputs": [ + { + "name": "posn", + "type": "array", + "connections": [ + { + "inHunkIndex": "7", + "inHunkInput": "0" + } + ] + }, + { + "name": "motionSegment", + "type": "MDmseg", + "connections": [ + { + "inHunkIndex": "2", + "inHunkInput": "2" + } + ] + } + ] + }, + { + "type": "data/logger", + "name": "data/logger_7", + "inputs": [ + { + "name": "tolog", + "type": "reference" + } + ], + "states": [ + { + "name": "prefix", + "type": "string", + "value": "LOG:" + }, + { + "name": "console", + "type": "boolean", + "value": "false" + } + ] + } + ] +} \ No newline at end of file diff --git a/save/systems/dbg-l1.json b/save/systems/dbg-l1.json new file mode 100644 index 0000000..211a227 --- /dev/null +++ b/save/systems/dbg-l1.json @@ -0,0 +1,439 @@ +{ + "interpreterName": "cuttlefish", + "interpreterVersion": "v0.1", + "hunks": [ + { + "type": "manager", + "name": "nrol", + "inputs": [ + { + "name": "msgs", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "msgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "1", + "inHunkInput": "0" + } + ] + } + ] + }, + { + "type": "view", + "name": "tlview", + "inputs": [ + { + "name": "msgs", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "msgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "0", + "inHunkInput": "0" + } + ] + } + ] + }, + { + "type": "link", + "name": "link_2", + "inputs": [ + { + "name": "data", + "type": "byteArray" + }, + { + "name": "mgrMsgs", + "type": "byteArray" + }, + { + "name": "segs", + "type": "MDmseg" + } + ], + "outputs": [ + { + "name": "data", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "3", + "inHunkInput": "0" + } + ] + }, + { + "name": "mgrMsgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "4", + "inHunkInput": "0" + } + ] + } + ], + "states": [ + { + "name": "isActive", + "type": "boolean", + "value": "true" + }, + { + "name": "otherLink", + "type": "uint16", + "value": "1" + }, + { + "name": "inputList", + "type": "string", + "value": "mgrMsgs (byteArray), segs (MDmseg)" + }, + { + "name": "outputList", + "type": "string", + "value": "mgrMsgs (byteArray)" + } + ], + "contains": { + "interpreterName": "ponyo", + "interpreterVersion": "v0.1", + "hunks": [ + { + "type": "manager", + "name": "ponyo_one", + "inputs": [ + { + "name": "mgrMsgs_1024", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "mgrMsgs_1024", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "1", + "inHunkInput": "1" + } + ] + } + ] + }, + { + "type": "link", + "name": "link_1", + "inputs": [ + { + "name": "data_1024", + "type": "byteArray" + }, + { + "name": "mgrMsgs_1024", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "data_1024", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "2", + "inHunkInput": "0" + } + ] + }, + { + "name": "mgrMsgs_1024", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "0", + "inHunkInput": "0" + } + ] + }, + { + "name": "segs", + "type": "MDmseg", + "connections": [ + { + "inHunkIndex": "4", + "inHunkInput": "0" + } + ] + } + ], + "states": [ + { + "name": "isActive", + "type": "boolean", + "value": "true" + }, + { + "name": "otherLink", + "type": "uint16", + "value": "2" + }, + { + "name": "inputList", + "type": "string", + "value": "mgrMsgs (byteArray)" + }, + { + "name": "outputList", + "type": "string", + "value": "mgrMsgs (byteArray), segs (MDmseg)" + } + ] + }, + { + "type": "comm/COBS_USB", + "name": "comm/COBS_USB_2", + "inputs": [ + { + "name": "data_1024", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "data_1024", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "1", + "inHunkInput": "0" + } + ] + } + ] + }, + { + "type": "stepper", + "name": "step_driver", + "inputs": [ + { + "name": "increment", + "type": "int32" + }, + { + "name": "enable", + "type": "boolean" + } + ], + "outputs": [ + { + "name": "increment", + "type": "int32" + }, + { + "name": "stallGuard", + "type": "uint32" + } + ], + "states": [ + { + "name": "current (6-24)", + "type": "uint16", + "value": "16" + }, + { + "name": "enable", + "type": "boolean", + "value": "true" + } + ] + }, + { + "type": "control/MDtoDmseg", + "name": "control/MDtoDmseg_4", + "inputs": [ + { + "name": "motionSegment", + "type": "MDmseg" + } + ] + } + ] + } + }, + { + "type": "pipes/vfptc", + "name": "pipes/vfptc_3", + "inputs": [ + { + "name": "data", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "data", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "2", + "inHunkInput": "0" + } + ] + } + ], + "states": [ + { + "name": "pipe status", + "type": "string", + "value": "open" + }, + { + "name": "websocket port", + "type": "string", + "value": "2042" + }, + { + "name": "usb product id", + "type": "string", + "value": "8022" + }, + { + "name": "pipe reset", + "type": "boolean", + "value": "false" + }, + { + "name": "serialport status", + "type": "string", + "value": "open" + } + ] + }, + { + "type": "view", + "name": "view_4", + "inputs": [ + { + "name": "msgs", + "type": "byteArray" + } + ], + "outputs": [ + { + "name": "msgs", + "type": "byteArray", + "connections": [ + { + "inHunkIndex": "2", + "inHunkInput": "1" + } + ] + } + ] + }, + { + "type": "adhoc/tpath", + "name": "adhoc/tpath_5", + "outputs": [ + { + "name": "position", + "type": "array", + "connections": [ + { + "inHunkIndex": "6", + "inHunkInput": "0" + } + ] + } + ], + "states": [ + { + "name": "mm/pix", + "type": "number", + "value": "0.35277777777777775" + }, + { + "name": "longpath", + "type": "boolean", + "value": "false" + }, + { + "name": "shortpath", + "type": "boolean", + "value": "false" + }, + { + "name": "sl2path", + "type": "boolean", + "value": "false" + } + ] + }, + { + "type": "adhoc/saturn", + "name": "adhoc/saturn_6", + "inputs": [ + { + "name": "posn", + "type": "array" + } + ], + "outputs": [ + { + "name": "posn", + "type": "array", + "connections": [ + { + "inHunkIndex": "7", + "inHunkInput": "0" + } + ] + }, + { + "name": "motionSegment", + "type": "MDmseg", + "connections": [ + { + "inHunkIndex": "2", + "inHunkInput": "2" + } + ] + } + ] + }, + { + "type": "data/logger", + "name": "data/logger_7", + "inputs": [ + { + "name": "tolog", + "type": "reference" + } + ], + "states": [ + { + "name": "prefix", + "type": "string", + "value": "LOG:" + }, + { + "name": "console", + "type": "boolean", + "value": "false" + } + ] + } + ] +} \ No newline at end of file diff --git a/typeset.js b/typeset.js index 81608e5..0de90e6 100644 --- a/typeset.js +++ b/typeset.js @@ -523,6 +523,43 @@ const TSET = [ }, { name: 'MDmseg', + key: 88, + write: function(ms) { + // ok, bless up, we have: + /* + p0: 3-arr + p1: 3-arr + t: num + v0: num + a: num + // for simplicity, we should write one typedarray + */ + let f32arr = Float32Array.from([ + ms.p0[0], ms.p0[1], ms.p0[2], + ms.p1[0], ms.p1[1], ms.p1[2], + ms.t, ms.v0, ms.a] + ) + // ok, + let btarr = new Uint8Array(f32arr.buffer) + let rtarr = Array.from(btarr) + rtarr.unshift(this.key) + console.log('MDseg bytes', rtarr) + return rtarr + }, + read: function(arr, start) { + /* + if (arr[start] !== this.key) + throw new Error(`mismatched key on phy read: ${arr[start]}, ${this.key}`) + let rdarr = arr.slice(start + 1, start + 9) + let btarr = Uint8Array.from(rdarr) + if (tsdebug) + console.log('bts on read of float64', btarr) + let vlarr = new Float64Array(btarr.buffer) + if (tsdebug) + console.log('vlarr', vlarr) + return {item: vlarr[0], increment: 9} + */ + }, copy: { MDmseg: (mdmseg) => { return { -- GitLab