Skip to content

Commit b667be8

Browse files
committed
fix encoder blocks
1 parent 86b0477 commit b667be8

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

src/assets/js/blockly/blocks.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,71 @@ Blockly.Python.coderbot_basic_turnRight = function (block) {
148148
return `${sbsPrefix}get_bot().right(speed=${Blockly.Blocks.CoderBotSettings.CODERBOT_MOV_TR_DEF_SPEED}, elapse=${Blockly.Blocks.CoderBotSettings.CODERBOT_MOV_TR_DEF_ELAPSE})\n`;
149149
};
150150

151+
Blockly.Blocks['coderbot_adv_move_enc'] = {
152+
// Block for moving forward.
153+
init: function() {
154+
this.setHelpUrl('http://code.google.com/p/blockly/wiki/Motor');
155+
this.setColour(40);
156+
157+
this.appendValueInput('SPEED')
158+
.setCheck('Number')
159+
.appendField(Blockly.Msg.CODERBOT_MOVE_ADV_MOTOR + " " + Blockly.Msg.CODERBOT_MOVE_ADV_MOTOR_SPEED);
160+
this.appendValueInput('DISTANCE')
161+
.setCheck('Number')
162+
.appendField(Blockly.Msg.CODERBOT_MOVE_ADV_MOTOR_DISTANCE);
163+
this.setInputsInline(true);
164+
// Assign 'this' to a variable for use in the tooltip closure below.
165+
var thisBlock = this;
166+
this.setTooltip(function() {
167+
var mode = thisBlock.getFieldValue('ACTION');
168+
return TOOLTIPS[mode] + Blockly.Msg.CODERBOT_MOVE_ADV_TIP_TAIL;
169+
});
170+
this.setPreviousStatement(true);
171+
this.setNextStatement(true);
172+
}
173+
};
174+
175+
Blockly.Python['coderbot_adv_move_enc'] = function(block) {
176+
// Generate Python for moving forward.
177+
var speed = Blockly.Python.valueToCode(block, 'SPEED', Blockly.Python.ORDER_NONE);
178+
var distance = Blockly.Python.valueToCode(block, 'DISTANCE', Blockly.Python.ORDER_NONE);
179+
var code = "get_bot().move(speed=" + speed + ", distance=" + distance + ")\n";
180+
return code;
181+
};
182+
183+
// servo
184+
Blockly.Blocks['coderbot_move_servo'] = {
185+
// Block for moving forward.
186+
init: function() {
187+
this.setHelpUrl('http://code.google.com/p/blockly/wiki/Motor');
188+
this.setColour(40);
189+
190+
this.appendDummyInput()
191+
.appendField(Blockly.Msg.CODERBOT_MOVE_SERVO)
192+
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.CODERBOT_MOVE_SERVO_1, "0"],
193+
[Blockly.Msg.CODERBOT_MOVE_SERVO_2, "1"]]), 'SERVO');
194+
this.appendValueInput('ANGLE')
195+
.setCheck('Number')
196+
.appendField(Blockly.Msg.CODERBOT_MOVE_SERVO_ANGLE);
197+
this.setInputsInline(true);
198+
// Assign 'this' to a variable for use in the tooltip closure below.
199+
var thisBlock = this;
200+
this.setTooltip(function() {
201+
var mode = thisBlock.getFieldValue('ACTION');
202+
return TOOLTIPS[mode] + Blockly.Msg.CODERBOT_MOVE_SERVO_TIP_TAIL;
203+
});
204+
this.setPreviousStatement(true);
205+
this.setNextStatement(true);
206+
}
207+
};
208+
209+
Blockly.Python['coderbot_move_servo'] = function(block) {
210+
// Generate Python for servo control.
211+
var servo = block.getFieldValue('SERVO');
212+
var angle = Blockly.Python.valueToCode(block, 'ANGLE', Blockly.Python.ORDER_NONE);
213+
var code = "get_bot().servo(servo=" + servo + ", angle=" + angle + ")\n";
214+
return code;
215+
};
151216
Blockly.Blocks.coderbot_basic_audio_say = {
152217
// Block for text to speech.
153218
init() {

src/assets/toolbox_adv.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,45 @@
641641
}
642642
]
643643
},
644+
{
645+
"kind": "block",
646+
"type": "coderbot_adv_move_enc",
647+
"value": [{
648+
"name": "SPEED",
649+
"contents": {
650+
"kind": "block",
651+
"type": "math_number",
652+
"field": {
653+
"name": "NUM",
654+
"#text": "100"
655+
}
656+
}
657+
},
658+
{
659+
"name": "DISTANCE",
660+
"contents": {
661+
"kind": "block",
662+
"type": "math_number",
663+
"field": {
664+
"name": "NUM",
665+
"#text": "1000"
666+
}
667+
}
668+
}
669+
]
670+
},
671+
{
672+
"kind": "block",
673+
"type": "coderbot_move_servo",
674+
"value": [{
675+
"name": "ANGLE",
676+
"contents": {
677+
"kind": "block",
678+
"type": "math_number"
679+
}
680+
}
681+
]
682+
},
644683
{
645684
"kind": "block",
646685
"type": "coderbot_adv_stop"

src/components/Control.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ export default {
278278
axios.post(`${CB}/move`, {
279279
speed: 100,
280280
elapse: -1,
281+
distance: 0,
281282
}).catch((error) => {
282283
console.log(`move error: ${error}`);
283284
});
@@ -302,6 +303,7 @@ export default {
302303
axios.post(`${CB}/move`, {
303304
speed: -100,
304305
elapse: -1,
306+
distance: 0,
305307
}).catch((error) => {
306308
console.log(`move error: ${error}`);
307309
});

0 commit comments

Comments
 (0)