From df5ae23749d97a9f334ce8fe627603f3d3f62ea0 Mon Sep 17 00:00:00 2001 From: Kirill Shumilov Date: Fri, 1 Feb 2019 17:34:17 +0300 Subject: [PATCH 1/2] refactor(workspace): copy `watch` and `console-log` into new `xod/debug` library, mark old ones as deprecated --- .../__lib__/xod/core/console-log/patch.xodp | 9 ++++++ workspace/__lib__/xod/core/watch/patch.xodp | 9 ++++++ .../__lib__/xod/debug/console-log/patch.cpp | 18 +++++++++++ .../__lib__/xod/debug/console-log/patch.xodp | 31 +++++++++++++++++++ workspace/__lib__/xod/debug/project.xod | 9 ++++++ workspace/__lib__/xod/debug/watch/patch.cpp | 23 ++++++++++++++ workspace/__lib__/xod/debug/watch/patch.xodp | 21 +++++++++++++ 7 files changed, 120 insertions(+) create mode 100644 workspace/__lib__/xod/debug/console-log/patch.cpp create mode 100644 workspace/__lib__/xod/debug/console-log/patch.xodp create mode 100644 workspace/__lib__/xod/debug/project.xod create mode 100644 workspace/__lib__/xod/debug/watch/patch.cpp create mode 100644 workspace/__lib__/xod/debug/watch/patch.xodp diff --git a/workspace/__lib__/xod/core/console-log/patch.xodp b/workspace/__lib__/xod/core/console-log/patch.xodp index 9ae0601d..c75e7d19 100644 --- a/workspace/__lib__/xod/core/console-log/patch.xodp +++ b/workspace/__lib__/xod/core/console-log/patch.xodp @@ -1,6 +1,15 @@ { "description": "Outputs a line of text to the board standard debug interface", "nodes": [ + { + "description": "Use `xod/debug/console-log` instead", + "id": "HJH0G0b44", + "position": { + "x": 170, + "y": 102 + }, + "type": "xod/patch-nodes/deprecated" + }, { "id": "HJdO9HwJ-", "label": "LINE", diff --git a/workspace/__lib__/xod/core/watch/patch.xodp b/workspace/__lib__/xod/core/watch/patch.xodp index 05d30014..1cc0367c 100644 --- a/workspace/__lib__/xod/core/watch/patch.xodp +++ b/workspace/__lib__/xod/core/watch/patch.xodp @@ -16,6 +16,15 @@ "y": 0 }, "type": "xod/patch-nodes/input-string" + }, + { + "description": "Use `xod/debug/watch` instead", + "id": "Sy5lXAWNN", + "position": { + "x": 102, + "y": 102 + }, + "type": "xod/patch-nodes/deprecated" } ] } diff --git a/workspace/__lib__/xod/debug/console-log/patch.cpp b/workspace/__lib__/xod/debug/console-log/patch.cpp new file mode 100644 index 00000000..4650e455 --- /dev/null +++ b/workspace/__lib__/xod/debug/console-log/patch.cpp @@ -0,0 +1,18 @@ +struct State { }; + +{{ GENERATED_CODE }} + +void evaluate(Context ctx) { + if (!isInputDirty(ctx)) + return; + + auto line = getValue(ctx); + + for (auto it = line->iterate(); it; ++it) + XOD_DEBUG_SERIAL.write((char)*it); + + XOD_DEBUG_SERIAL.write('\r'); + XOD_DEBUG_SERIAL.write('\n'); + + XOD_DEBUG_SERIAL.flush(); +} diff --git a/workspace/__lib__/xod/debug/console-log/patch.xodp b/workspace/__lib__/xod/debug/console-log/patch.xodp new file mode 100644 index 00000000..9ae0601d --- /dev/null +++ b/workspace/__lib__/xod/debug/console-log/patch.xodp @@ -0,0 +1,31 @@ +{ + "description": "Outputs a line of text to the board standard debug interface", + "nodes": [ + { + "id": "HJdO9HwJ-", + "label": "LINE", + "position": { + "x": 10, + "y": 16 + }, + "type": "xod/patch-nodes/input-string" + }, + { + "id": "S1n95SDJb", + "label": "DUMP", + "position": { + "x": 138, + "y": 16 + }, + "type": "xod/patch-nodes/input-pulse" + }, + { + "id": "noNativeImpl", + "position": { + "x": 100, + "y": 100 + }, + "type": "xod/patch-nodes/not-implemented-in-xod" + } + ] +} diff --git a/workspace/__lib__/xod/debug/project.xod b/workspace/__lib__/xod/debug/project.xod new file mode 100644 index 00000000..58e38f82 --- /dev/null +++ b/workspace/__lib__/xod/debug/project.xod @@ -0,0 +1,9 @@ +{ + "authors": [ + "XOD" + ], + "description": "Debug nodes for XOD", + "license": "AGPL-3.0", + "name": "core", + "version": "0.27.0" +} diff --git a/workspace/__lib__/xod/debug/watch/patch.cpp b/workspace/__lib__/xod/debug/watch/patch.cpp new file mode 100644 index 00000000..7f1902a1 --- /dev/null +++ b/workspace/__lib__/xod/debug/watch/patch.cpp @@ -0,0 +1,23 @@ +struct State { +}; + +{{ GENERATED_CODE }} + +void evaluate(Context ctx) { + if (!isInputDirty(ctx)) + return; + + auto line = getValue(ctx); + + TimeMs tNow = transactionTime(); + XOD_DEBUG_SERIAL.print(F("+XOD:")); + XOD_DEBUG_SERIAL.print(tNow); + XOD_DEBUG_SERIAL.print(':'); + XOD_DEBUG_SERIAL.print(getNodeId(ctx)); + XOD_DEBUG_SERIAL.print(':'); + for (auto it = line.iterate(); it; ++it) + XOD_DEBUG_SERIAL.print((char)*it); + XOD_DEBUG_SERIAL.print('\r'); + XOD_DEBUG_SERIAL.print('\n'); + XOD_DEBUG_SERIAL.flush(); +} diff --git a/workspace/__lib__/xod/debug/watch/patch.xodp b/workspace/__lib__/xod/debug/watch/patch.xodp new file mode 100644 index 00000000..05d30014 --- /dev/null +++ b/workspace/__lib__/xod/debug/watch/patch.xodp @@ -0,0 +1,21 @@ +{ + "description": "Shows incoming values in the realtime, when a debug session is active", + "nodes": [ + { + "id": "B1iYZOzoZ", + "position": { + "x": 34, + "y": 102 + }, + "type": "xod/patch-nodes/not-implemented-in-xod" + }, + { + "id": "HkXK-dGob", + "position": { + "x": 34, + "y": 0 + }, + "type": "xod/patch-nodes/input-string" + } + ] +} From 4a475c68ada04ce16024cec82b0a60f894500227 Mon Sep 17 00:00:00 2001 From: Kirill Shumilov Date: Fri, 1 Feb 2019 17:35:51 +0300 Subject: [PATCH 2/2] refactor(xod-project): make new `xod/debug` nodes works as old ones --- packages/xod-project/src/constants.js | 7 ++++++- packages/xod-project/src/internal/patchPathUtils.js | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/xod-project/src/constants.js b/packages/xod-project/src/constants.js index 751ddb00..f41ae63a 100644 --- a/packages/xod-project/src/constants.js +++ b/packages/xod-project/src/constants.js @@ -109,7 +109,12 @@ export const PULSE_CONST_NODETYPES = { // to debug xod programm, it should be omitted // from Project before transpilation without // turned on debug mode -export const DEBUG_NODETYPES = ['xod/core/watch', 'xod/core/console-log']; +export const DEBUG_NODETYPES = [ + 'xod/core/watch', + 'xod/core/console-log', + 'xod/debug/watch', + 'xod/debug/console-log', +]; /** * Enumeration of possible pin directions diff --git a/packages/xod-project/src/internal/patchPathUtils.js b/packages/xod-project/src/internal/patchPathUtils.js index d0cdfd1c..a1c1e4c0 100644 --- a/packages/xod-project/src/internal/patchPathUtils.js +++ b/packages/xod-project/src/internal/patchPathUtils.js @@ -118,7 +118,7 @@ export const terminalPatchPathRegExp = new RegExp( export const isTerminalPatchPath = R.test(terminalPatchPathRegExp); // :: String -> Boolean -export const isWatchPatchPath = R.test(/^xod\/core\/watch$/); +export const isWatchPatchPath = R.test(/^xod\/(core|debug)\/watch$/); // :: String -> Boolean export const isBusPatchPath = R.either(