From a463947babc596a5db339e3bacb19af1c82118bf Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Sun, 13 Feb 2022 15:52:26 +0100 Subject: [PATCH] Version 3.4-rc1 Code cleanup and minor bug fixes Updates for new DWC build script Replaced .gitignore --- .gitignore | 24 +- README.md | 5 +- dist/.gitignore | 1 - dist/dwc/.gitignore | 2 - dist/plugin.json => plugin.json | 5 +- plugin.zip | Bin 76815 -> 0 bytes src/Chart.vue | 51 +-- src/ClosedLoopTuning.vue | 14 +- src/FileSelector.vue | 195 ++++++------ src/Recorder.vue | 535 ++++++++++++++++---------------- src/VariableSelector.vue | 99 +++--- src/config.js | 2 +- src/index.js | 6 +- 13 files changed, 492 insertions(+), 447 deletions(-) delete mode 100644 dist/.gitignore delete mode 100644 dist/dwc/.gitignore rename dist/plugin.json => plugin.json (75%) delete mode 100644 plugin.zip diff --git a/.gitignore b/.gitignore index 63795a9..3bbebf1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,23 @@ -plugin.zip \ No newline at end of file +.DS_Store +node_modules +/.vs +/bin +/dist +/obj + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.sw* +*.user diff --git a/README.md b/README.md index b2cc80d..391a172 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ new DwcPlugin({ If you wish to develop on the plugin, run `npm run serve` in the DWC directory and open the resulting build in your browser. You can then navigate to Settings > General > Built-in Plugins and click 'start' to run the plugin. Any changes made in `/src/plugins/ClosedLoopTuning` will then be hot-reloaded and reflected live in the browser. -Once you have finished developing, or if you just wish to compile from source, run `npm run build` in the DWC directory. This will generate the `/dist` directory within DWC. Copy all the files that start `ClosedLoopTuning....js` from `/dist/js` in **DWC** into the `dist/dwc` folder in **this** repository. Repeat and copy all the files from DWC's `/dist/css` that start `ClosedLoopTuning....css` into this repositories `/dist/dwc` directory. +## Building as an external plugin -Finally, compress the contents of this repositories `dist` folder into a zip file (such that `plugin.json` is at the top level of the zip folder). The resulting zip folder is the compiled plugin that can be uploaded to DWC as described in 'Getting Started'. \ No newline at end of file +Once you have finished developing, or if you just wish to compile from source, run `npm run build-plugin ../Closed-Loop-Plugin` in the DWC directory where `../Closed-Loo-Plugin` points to this directory. +This will generate a ZIP file in the `dist` directory within DWC that can be uploaded as a plugin. diff --git a/dist/.gitignore b/dist/.gitignore deleted file mode 100644 index 6f66c74..0000000 --- a/dist/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.zip \ No newline at end of file diff --git a/dist/dwc/.gitignore b/dist/dwc/.gitignore deleted file mode 100644 index c96a04f..0000000 --- a/dist/dwc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore \ No newline at end of file diff --git a/dist/plugin.json b/plugin.json similarity index 75% rename from dist/plugin.json rename to plugin.json index 40c86f6..b72c52d 100644 --- a/dist/plugin.json +++ b/plugin.json @@ -2,7 +2,8 @@ "id": "ClosedLoopTuning", "name": "Closed Loop Tuning", "author": "Louis Irwin", - "version": "0.3-alpha", + "version": "auto", + "dwcVersion": "auto", "license": "MIT", "homepage": "https://duet3d.com" -} +} \ No newline at end of file diff --git a/plugin.zip b/plugin.zip deleted file mode 100644 index 058bfecdd05e4a6f653cec1eb21f58c585138bcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76815 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%0D`?7hOWY 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 z

`vuOxC`*0-tdunQm_VBI)M4TTy{us>g5G8jE`VbU|6E?BKpzCSy5k3QEN>enE` zz}TdYwqL#5kUs}8Tt&>HWl#0Kk!_VwsQnH-lW(G(Gh?ThlU?T17RzksH(exBKobZ3 zIjsrG9ue|e%+)YSxn^pamNS}Ix`7w)-H+#>CZ6pvaP z5G{r7Mwz@E6?xq(A5G*IxOT7#DOtW1OAl_73S9B>5Qczkhe+xelJc6_Ig z&7RS<2j88u+k05qII`KgIXV6o00x8X&3?Mr zn>{Z*yilN^;hwknJ=2;HMegT74cq!s%8|E9o4{&U`m%i&h7P~JH!UV$rSR&sTtlgR z=*;_*;>a{3k8RSoJ%J#-jDGzWHah9GNjK+idayrC4w6`hS6B==Mg_$ZiNz@CKovsn zJ6av49^Bz1szN;*`_0v9qHtaLjgx{!8ubY*sezHdc;Kt`@)hCi^I0W)Er4%YV`L^WLsUSVW^jj_MvZ6cp7z z^sP$1W5kj}lVUU(-`iE7Jd#_}?bQ@A?WMwf$-T;&48vF|53- zA%>*kK^o0Jr6~yf`?Nph{Rw+s{+qymC3G%9eg@RIKfQGF7KUHfSO8@`> diff --git a/src/Chart.vue b/src/Chart.vue index 2978fa2..714598b 100644 --- a/src/Chart.vue +++ b/src/Chart.vue @@ -1,33 +1,42 @@ + + + + @@ -36,13 +45,14 @@ 'use strict' import Chart from 'chart.js' + import { yAxes } from './config.js' export default { data() { return { chart: null, - rangeFilter: [0,0], + rangeFilter: [0,0] } }, props: { @@ -69,14 +79,19 @@ export default { yAxisID: variable.axis, label: variable.title, data: this.data[variable.title] ? - this.data[variable.title].map((val, idx) => ({x:this.data.Timestamp[idx], y:variable.filter ? variable.filter(val) : val})).slice(this.rangeFilter[0], this.rangeFilter[1]) + this.data[variable.title] + .map((val, idx) => ({ + x: this.data.Timestamp[idx], + y: variable.filter ? variable.filter(val) : val + })) + .slice(this.rangeFilter[0], this.rangeFilter[1]) : [], borderColor: variable.colour, fill: false, - tension: 0, + tension: 0 })); - let axesRequired = this.variables.map(x => x.axis); + const axesRequired = this.variables.map(x => x.axis); this.chart.options.scales.yAxes = yAxes.filter(yAxis => axesRequired.includes(yAxis.id)); } else { this.chart.data.datasets = []; @@ -106,16 +121,4 @@ export default { } } } - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/ClosedLoopTuning.vue b/src/ClosedLoopTuning.vue index 25673e0..a965420 100644 --- a/src/ClosedLoopTuning.vue +++ b/src/ClosedLoopTuning.vue @@ -4,7 +4,7 @@ @@ -67,18 +67,20 @@ export default { inputText = inputText.split("\n"); const header = inputText[0].split(","); let data = {}; - for (var variable of header) { + for (let variable of header) { data[variable] = []; } inputText.slice(1).forEach(row => { - if (row=="") {return;} + if (row === "") { + return; + } row = row.split(","); - for (var i=0; i x != "Sample"); + this.availableVariables = Object.keys(data).filter(x => x !== "Sample"); this.loadedData = data; } }, diff --git a/src/FileSelector.vue b/src/FileSelector.vue index 5043515..40a7521 100644 --- a/src/FileSelector.vue +++ b/src/FileSelector.vue @@ -1,81 +1,86 @@ \ No newline at end of file diff --git a/src/Recorder.vue b/src/Recorder.vue index c808fc6..666e1e4 100644 --- a/src/Recorder.vue +++ b/src/Recorder.vue @@ -1,283 +1,294 @@ + \ No newline at end of file diff --git a/src/VariableSelector.vue b/src/VariableSelector.vue index 2b94c19..89cce46 100644 --- a/src/VariableSelector.vue +++ b/src/VariableSelector.vue @@ -1,33 +1,32 @@ \ No newline at end of file diff --git a/src/config.js b/src/config.js index 1b9875f..4a150b4 100644 --- a/src/config.js +++ b/src/config.js @@ -18,7 +18,7 @@ export let yAxes = [ id: 'unitless', type: 'linear', position: 'right', - }, + } ]; export let variables = [ diff --git a/src/index.js b/src/index.js index ab9a076..c4e110b 100644 --- a/src/index.js +++ b/src/index.js @@ -1,13 +1,13 @@ 'use strict' -import { registerRoute } from '../../routes' +import { registerRoute } from '@/routes' import ClosedLoopTuning from './ClosedLoopTuning.vue' -// Register a route via Settings -> Object Model +// Register a route via Settings -> Closed Loop registerRoute(ClosedLoopTuning, { Settings: { - ObjectModel: { + ClosedLoopTuning: { icon: 'mdi-chart-bell-curve-cumulative', caption: 'Closed Loop', path: '/ClosedLoopTuning'