Skip to content

Commit d5c5c92

Browse files
committed
Load image assets from static/. Fetch and use settings from backend to configurate Blocks
1 parent 7cedb1d commit d5c5c92

File tree

1 file changed

+36
-34
lines changed

1 file changed

+36
-34
lines changed

src/components/Blockly.vue

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ export default {
211211
},
212212
data() {
213213
return {
214+
settings: null,
214215
snackText: null,
215216
snackbar: false,
216217
drawer: false,
@@ -257,15 +258,16 @@ export default {
257258
258259
axios.get(this.$data.CBv1 + '/config')
259260
.then(function(response) {
260-
let toolbox = response.data.prog_level
261-
this.initBlockly(toolbox)
261+
var settings = response.data
262+
this.$data.settings = settings
263+
this.initBlockly(settings)
262264
}.bind(this))
263265
264266
},
265267
methods: {
266-
initBlockly: function(toolboxLevel) {
268+
initBlockly: function(settings) {
269+
let toolboxLevel = settings.prog_level
267270
const blocklyDiv = this.$refs.blocklyDiv
268-
//console.log(toolboxLevel)
269271
var toolbox = require('../assets/toolbox_' + toolboxLevel + '.xml')
270272
271273
// Clean the base64 encoding of the resource, removing meta infos
@@ -300,9 +302,7 @@ export default {
300302
this.resizeWorkspace()
301303
Blockly.svgResize(this.$data.workspace);
302304
303-
304-
305-
this.blocksExtensions();
305+
this.blocksExtensions(settings);
306306
},
307307
toggleSidebar: function() {
308308
let currentStatus = this.$store.getters.drawerStatus
@@ -332,7 +332,6 @@ export default {
332332
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':');
333333
e.initEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
334334
a.dispatchEvent(e);
335-
336335
},
337336
pickFile() {
338337
// Manually trigger the file dialog for the hidden file input form
@@ -385,7 +384,6 @@ export default {
385384
} else {
386385
this.$data.unvalidName = true
387386
}
388-
389387
},
390388
loadProgramList() {
391389
let axios = this.$axios
@@ -475,7 +473,7 @@ export default {
475473
getProgramCode() {
476474
if (this.$data.experimental) {
477475
this.$data.experimental = false;
478-
this.blocksExtensions();
476+
this.blocksExtensions(this.$data.settings);
479477
this.$data.experimental = true;
480478
}
481479
@@ -487,7 +485,7 @@ export default {
487485
this.$data.dialogCode = true
488486
489487
if (this.$data.experimental) {
490-
this.blocksExtensions();
488+
this.blocksExtensions(this.$data.settings)
491489
}
492490
},
493491
runProgramExperimental() {
@@ -536,24 +534,27 @@ export default {
536534
this.$data.generalDialogText = 'Il coderbot risulta offline, non puoi eseguire il programma.'
537535
}
538536
},
539-
blocksExtensions() {
540-
537+
blocksExtensions(settings) {
538+
var settings = this.$data.settings
541539
var cfg = Object();
540+
542541
// coderbot.cfg data (temp workaround, must be fetched from backend)
543-
var CODERBOT_MOV_FW_DEF_SPEED = 100;
544-
var CODERBOT_MOV_FW_DEF_ELAPSE = 1; // to check
545-
var CODERBOT_MOV_TR_DEF_SPEED = 85;
546-
var CODERBOT_MOV_TR_DEF_ELAPSE = -1; // to check
542+
var CODERBOT_MOV_FW_DEF_SPEED = settings.move_fw_elapse;
543+
var CODERBOT_MOV_FW_DEF_ELAPSE = settings.move_fw_speed; // to check
544+
var CODERBOT_MOV_TR_DEF_SPEED = settings.move_tr_speed;
545+
var CODERBOT_MOV_TR_DEF_ELAPSE = settings.move_tr_elapse; // to check
547546
var CODERBOT_PROG_MOVE_MOTION = true; // to check
548547
var CODERBOT_PROG_MOVE_MPU = true; // to check
549-
var CODERBOT_PROG_LEVEL = "adv";
548+
549+
var CODERBOT_PROG_LEVEL = settings.prog_level;
550+
550551
var CODERBOT_PROG_SCROLLBARS = true; // to check
551552
var CODERBOT_PROG_MAXBLOCKS = -1;
552553
var CODERBOT_PROG_SAVEONRUN = true; // to check
553-
var CODERBOT_CTRL_FW_SPEED = 100;
554-
var CODERBOT_CTRL_FW_ELAPSE = 1;
555-
var CODERBOT_CTRL_TR_SPEED = 80;
556-
var CODERBOT_CTRL_TR_ELAPSE = 0.5; // to check
554+
var CODERBOT_CTRL_FW_SPEED = settings.ctrl_fw_speed;
555+
var CODERBOT_CTRL_FW_ELAPSE = settings.ctrl_fw_elapse;
556+
var CODERBOT_CTRL_TR_SPEED = settings.ctrl_tr_speed;
557+
var CODERBOT_CTRL_TR_ELAPSE = settings.ctrl_tr_elapse; // to check
557558
var CODERBOT_CTRL_COUNTER = true; // to check
558559
var CODERBOT_CTRL_MOVE_MOTION = true; //t o check
559560
var CODERBOT_CTRL_MOVE_MPU = true; // to check
@@ -576,6 +577,7 @@ export default {
576577
BotMessages.ColorAtPoint = "Color at point: ";
577578
BotMessages.ModelTraining = "Model is training, check model lists to monitor training status.";
578579
580+
579581
// blocks.js
580582
// Extensions to Blockly's language and Python generator.
581583
@@ -585,7 +587,7 @@ export default {
585587
*/
586588
587589
588-
'use strict';
590+
589591
590592
Blockly.HSV_SATURATION = .99;
591593
Blockly.HSV_VALUE = .99;
@@ -607,12 +609,12 @@ export default {
607609
* @this Blockly.Block
608610
*/
609611
init: function(self) {
610-
console.log('test')
612+
611613
this.setHelpUrl(Blockly.Msg.CONTROLS_REPEAT_HELPURL);
612614
this.setColour(120);
613615
var di = this.appendDummyInput();
614616
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
615-
di.appendField(new Blockly.FieldImage('/images/blocks/loop_repeat.png', 32, 32, '*'));
617+
di.appendField(new Blockly.FieldImage('/static/images/blocks/loop_repeat.png', 32, 32, '*'));
616618
} else {
617619
di.appendField(Blockly.Msg.CONTROLS_REPEAT_TITLE_REPEAT)
618620
}
@@ -658,7 +660,7 @@ export default {
658660
this.setColour(40);
659661
var di = this.appendDummyInput()
660662
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
661-
di.appendField(new Blockly.FieldImage('/images/blocks/move_forward.png', 32, 32, '*'));
663+
di.appendField(new Blockly.FieldImage('/static/images/blocks/move_forward.png', 32, 32, '*'));
662664
} else {
663665
di.appendField("Hello, World!")
664666
}
@@ -686,7 +688,7 @@ export default {
686688
this.setColour(40);
687689
var di = this.appendDummyInput()
688690
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
689-
di.appendField(new Blockly.FieldImage('/images/blocks/move_backward.png', 32, 32, '*'));
691+
di.appendField(new Blockly.FieldImage('/static/images/blocks/move_backward.png', 32, 32, '*'));
690692
} else {
691693
di.appendField(Blockly.Msg.CODERBOT_MOVE_BACKWARD)
692694
}
@@ -713,7 +715,7 @@ export default {
713715
this.setColour(40);
714716
var di = this.appendDummyInput()
715717
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
716-
di.appendField(new Blockly.FieldImage('/images/blocks/move_left.png', 32, 32, '*'));
718+
di.appendField(new Blockly.FieldImage('/static/images/blocks/move_left.png', 32, 32, '*'));
717719
} else {
718720
di.appendField(Blockly.Msg.CODERBOT_MOVE_LEFT);
719721
}
@@ -741,7 +743,7 @@ export default {
741743
this.setColour(40);
742744
var di = this.appendDummyInput()
743745
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
744-
di.appendField(new Blockly.FieldImage('/images/blocks/move_right.png', 32, 32, '*'));
746+
di.appendField(new Blockly.FieldImage('/static/images/blocks/move_right.png', 32, 32, '*'));
745747
} else {
746748
di.appendField(Blockly.Msg.CODERBOT_MOVE_RIGHT)
747749
}
@@ -770,7 +772,7 @@ export default {
770772
var vi = this.appendValueInput('TEXT');
771773
vi.setCheck(["String", "Number", "Date"]);
772774
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
773-
vi.appendField(new Blockly.FieldImage('/images/blocks/say.png', 32, 32, '*'));
775+
vi.appendField(new Blockly.FieldImage('/static/images/blocks/say.png', 32, 32, '*'));
774776
} else {
775777
vi.appendField(Blockly.Msg.CODERBOT_SAY);
776778
}
@@ -995,7 +997,7 @@ export default {
995997
this.setColour(120);
996998
var di = this.appendDummyInput()
997999
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
998-
di.appendField(new Blockly.FieldImage('/images/blocks/photo_take.png', 32, 32, '*'));
1000+
di.appendField(new Blockly.FieldImage('/static/images/blocks/photo_take.png', 32, 32, '*'));
9991001
} else {
10001002
di.appendField(Blockly.Msg.CODERBOT_PHOTO_TAKE)
10011003
}
@@ -1018,7 +1020,7 @@ export default {
10181020
10191021
var di = this.appendDummyInput()
10201022
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
1021-
di.appendField(new Blockly.FieldImage('/images/blocks/video_rec.png', 32, 32, '*'));
1023+
di.appendField(new Blockly.FieldImage('/static/images/blocks/video_rec.png', 32, 32, '*'));
10221024
} else {
10231025
di.appendField(Blockly.Msg.CODERBOT_VIDEO_REC)
10241026
}
@@ -1041,7 +1043,7 @@ export default {
10411043
10421044
var di = this.appendDummyInput()
10431045
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
1044-
di.appendField(new Blockly.FieldImage('/images/blocks/video_stop.png', 32, 32, '*'));
1046+
di.appendField(new Blockly.FieldImage('/static/images/blocks/video_stop.png', 32, 32, '*'));
10451047
} else {
10461048
di.appendField(Blockly.Msg.CODERBOT_VIDEO_STOP)
10471049
}
@@ -1545,7 +1547,7 @@ export default {
15451547
var vi = this.appendValueInput('FILENAME');
15461548
vi.setCheck("String");
15471549
if (CODERBOT_PROG_LEVEL.indexOf("basic") >= 0) {
1548-
vi.appendField(new Blockly.FieldImage('/images/blocks/play.png', 32, 32, '*'));
1550+
vi.appendField(new Blockly.FieldImage('/static/images/blocks/play.png', 32, 32, '*'));
15491551
} else {
15501552
vi.appendField(Blockly.Msg.CODERBOT_AUDIO_PLAY_FILE);
15511553
}

0 commit comments

Comments
 (0)