Skip to content

Commit 82a2b68

Browse files
committed
added blocks for hardware
1 parent 7c86362 commit 82a2b68

File tree

1 file changed

+147
-2
lines changed

1 file changed

+147
-2
lines changed

src/niryo_one_python_generators.js

Lines changed: 147 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ Blockly.Blocks['niryo_one_clean_trajectory_memory'] = {
896896
}
897897
};
898898

899-
// I/O
899+
// I/O - Hardware
900900

901901
Blockly.Blocks['niryo_one_gpio_select'] = {
902902
init: function () {
@@ -979,6 +979,56 @@ Blockly.Blocks['niryo_one_digital_read'] = {
979979
}
980980
};
981981

982+
Blockly.Blocks['niryo_one_get_hardware_status'] = {
983+
init: function () {
984+
this.appendDummyInput().appendField('Get hardware status');
985+
this.setOutput(true, 'any');
986+
this.setColour(io_color);
987+
this.setTooltip(
988+
'Get hardware status : Temperature, Hardware version, motors names & types …'
989+
);
990+
this.setHelpUrl('');
991+
}
992+
};
993+
994+
Blockly.Blocks['niryo_one_get_digital_io_state'] = {
995+
init: function () {
996+
this.appendDummyInput().appendField('Get digital IO state');
997+
this.setOutput(true, 'any');
998+
this.setColour(io_color);
999+
this.setTooltip('Get Digital IO state : Names, modes, states.');
1000+
this.setHelpUrl('');
1001+
}
1002+
};
1003+
1004+
Blockly.Blocks['niryo_one_get_analog_io_state'] = {
1005+
init: function () {
1006+
this.appendDummyInput().appendField('Get analog IO state');
1007+
this.setOutput(true, 'any');
1008+
this.setColour(io_color);
1009+
this.setTooltip('Get Analog IO state : Names, modes, states.');
1010+
this.setHelpUrl('');
1011+
}
1012+
};
1013+
1014+
Blockly.Blocks['niryo_one_analog_write'] = {
1015+
init: function () {
1016+
this.appendValueInput('ANALOG_WRITE_PIN')
1017+
.setCheck('niryo_one_gpio_select')
1018+
.appendField('Set Pin');
1019+
this.appendDummyInput()
1020+
.appendField('to voltage')
1021+
.appendField('VOLTAGE_VALUE')
1022+
.setCheck('Number');
1023+
this.setInputsInline(true);
1024+
this.setPreviousStatement(true, null);
1025+
this.setNextStatement(true, null);
1026+
this.setColour(io_color);
1027+
this.setTooltip('Set and analog pin_id state to a value between 0 and 5V.');
1028+
this.setHelpUrl('');
1029+
}
1030+
};
1031+
9821032
Blockly.Blocks['niryo_one_gpio_state'] = {
9831033
init: function () {
9841034
this.appendDummyInput()
@@ -1035,6 +1085,41 @@ Blockly.Blocks['niryo_one_set_12v_switch'] = {
10351085
}
10361086
};
10371087

1088+
Blockly.Blocks['niryo_one_analog_write'] = {
1089+
init: function () {
1090+
this.appendValueInput('ANALOG_WRITE_PIN')
1091+
.setCheck('niryo_one_gpio_select')
1092+
.appendField('Set Pin');
1093+
this.appendDummyInput()
1094+
.appendField('to state')
1095+
.appendField(
1096+
new Blockly.FieldDropdown([
1097+
['HIGH', 'PIN_HIGH'],
1098+
['LOW', 'PIN_LOW']
1099+
]),
1100+
'PIN_WRITE_SELECT'
1101+
);
1102+
this.setInputsInline(true);
1103+
this.setPreviousStatement(true, null);
1104+
this.setNextStatement(true, null);
1105+
this.setColour(io_color);
1106+
this.setTooltip('');
1107+
this.setHelpUrl('');
1108+
}
1109+
};
1110+
1111+
Blockly.Blocks['niryo_one_analog_read'] = {
1112+
init: function () {
1113+
this.appendValueInput('ANALOG_READ_PIN')
1114+
.setCheck('niryo_one_gpio_select')
1115+
.appendField('Read analog value of pin');
1116+
this.setOutput(true, 'any');
1117+
this.setColour(io_color);
1118+
this.setTooltip('Read the analog pin value.');
1119+
this.setHelpUrl('');
1120+
}
1121+
};
1122+
10381123
// Tool
10391124

10401125
Blockly.Blocks['niryo_one_tool_select'] = {
@@ -2198,7 +2283,7 @@ BlocklyPy['niryo_one_clean_trajectory_memory'] = function (block) {
21982283
return code;
21992284
};
22002285

2201-
// I/O
2286+
// I/O - Hardware
22022287

22032288
BlocklyPy['niryo_one_gpio_state'] = function (block) {
22042289
var dropdown_gpio_state_select = block.getFieldValue('GPIO_STATE_SELECT');
@@ -2237,6 +2322,45 @@ BlocklyPy['niryo_one_digital_read'] = function (block) {
22372322
return [code, BlocklyPy.ORDER_NONE];
22382323
};
22392324

2325+
BlocklyPy['niryo_one_get_hardware_status'] = function (block) {
2326+
var code = 'n.get_hardware_status()\n';
2327+
return [code, BlocklyPy.ORDER_NONE];
2328+
};
2329+
2330+
BlocklyPy['niryo_one_get_digital_io_state'] = function (block) {
2331+
var code = 'n.get_digital_io_state()\n';
2332+
return [code, BlocklyPy.ORDER_NONE];
2333+
};
2334+
2335+
BlocklyPy['niryo_one_get_analog_io_state'] = function (block) {
2336+
var code = 'n.get_analog_io_state()\n';
2337+
return [code, BlocklyPy.ORDER_NONE];
2338+
};
2339+
2340+
BlocklyPy['niryo_one_analog_write'] = function (block) {
2341+
var value_pin =
2342+
BlocklyPy.valueToCode(block, 'ANALOG_WRITE_PIN', BlocklyPy.ORDER_ATOMIC) ||
2343+
'(0)';
2344+
value_pin = value_pin.replace('(', '').replace(')', '');
2345+
2346+
var voltage_value =
2347+
BlocklyPy.valueToCode(block, 'VOLTAGE_VALUE', BlocklyPy.ORDER_ATOMIC) ||
2348+
'0';
2349+
voltage_value = voltage_value.replace('(', '').replace(')', '');
2350+
2351+
var code = 'n.analog_write(' + value_pin + ', ' + voltage_value + ')\n';
2352+
return code;
2353+
};
2354+
2355+
BlocklyPy['niryo_one_analog_read'] = function (block) {
2356+
var value_pin =
2357+
BlocklyPy.valueToCode(block, 'ANALOG_READ_PIN', BlocklyPy.ORDER_ATOMIC) ||
2358+
'(0)';
2359+
value_pin = value_pin.replace('(', '').replace(')', '');
2360+
var code = 'n.analog_read(' + value_pin + ')';
2361+
return [code, BlocklyPy.ORDER_NONE];
2362+
};
2363+
22402364
BlocklyPy['niryo_one_gpio_select'] = function (block) {
22412365
var dropdown_gpio_select = block.getFieldValue('GPIO_SELECT');
22422366
var code = dropdown_gpio_select;
@@ -2581,6 +2705,7 @@ BlocklyPy['niryo_one_get_connected_conveyors_id'] = function (block) {
25812705
};
25822706

25832707
// Sound
2708+
25842709
BlocklyPy['niryo_one_get_sounds'] = function (block) {
25852710
var code = 'n.get_sounds()\n';
25862711
return [code, BlocklyPy.ORDER_NONE];
@@ -3178,6 +3303,18 @@ const TOOLBOX = {
31783303
kind: 'BLOCK',
31793304
type: 'niryo_one_digital_read'
31803305
},
3306+
{
3307+
kind: 'BLOCK',
3308+
type: 'niryo_one_get_hardware_status'
3309+
},
3310+
{
3311+
kind: 'BLOCK',
3312+
type: 'niryo_one_get_digital_io_state'
3313+
},
3314+
{
3315+
kind: 'BLOCK',
3316+
type: 'niryo_one_get_analog_io_state'
3317+
},
31813318
{
31823319
kind: 'BLOCK',
31833320
type: 'niryo_one_gpio_state'
@@ -3190,6 +3327,14 @@ const TOOLBOX = {
31903327
kind: 'BLOCK',
31913328
type: 'niryo_one_set_12v_switch'
31923329
},
3330+
{
3331+
kind: 'BLOCK',
3332+
type: 'niryo_one_analog_write'
3333+
},
3334+
{
3335+
kind: 'BLOCK',
3336+
type: 'niryo_one_analog_read'
3337+
},
31933338
{
31943339
kind: 'BLOCK',
31953340
type: 'niryo_one_tool_select'

0 commit comments

Comments
 (0)