add map block
This commit is contained in:
@@ -4,8 +4,10 @@ import './sensebox-sensors';
|
||||
import './sensebox-telegram';
|
||||
import './sensebox-osem';
|
||||
import './sensebox-web';
|
||||
import './sensebox-display';
|
||||
import './logic';
|
||||
import './math';
|
||||
import './map';
|
||||
import './io';
|
||||
import './procedures';
|
||||
import './time';
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
|
||||
|
||||
/**
|
||||
* Code generator for the map block.
|
||||
* Arduino code: loop { map(x, 0, 1024, 0, y) }
|
||||
* @param {!Blockly.Block} block Block to generate the code from.
|
||||
* @return {array} Completed code with order of operation.
|
||||
*/
|
||||
Blockly.Arduino['base_map'] = function (block) {
|
||||
var valueNum = Blockly.Arduino.valueToCode(
|
||||
block, 'NUM', Blockly.Arduino.ORDER_NONE) || '0';
|
||||
var fromMin = Blockly.Arduino.valueToCode(
|
||||
block, 'FMIN', Blockly.Arduino.ORDER_ATOMIC) || '0';
|
||||
var fromMax = Blockly.Arduino.valueToCode(
|
||||
block, 'FMAX', Blockly.Arduino.ORDER_ATOMIC) || '0';
|
||||
var valueDmin = Blockly.Arduino.valueToCode(
|
||||
block, 'DMIN', Blockly.Arduino.ORDER_ATOMIC) || '0';
|
||||
var valueDmax = Blockly.Arduino.valueToCode(
|
||||
block, 'DMAX', Blockly.Arduino.ORDER_ATOMIC) || '0';
|
||||
|
||||
var code = 'map(' + valueNum + ',' + fromMin + ',' + fromMax + ',' + valueDmin + ',' + valueDmax + ')';
|
||||
return [code, Blockly.Arduino.ORDER_NONE];
|
||||
};
|
||||
@@ -61,30 +61,32 @@ Blockly.Arduino.sensebox_display_plotDisplay = function () {
|
||||
};
|
||||
|
||||
Blockly.Arduino.sensebox_display_fillCircle = function () {
|
||||
let code = '';
|
||||
var x = Blockly.Arduino.valueToCode(this, 'X', Blockly.Arduino.ORDER_ATOMIC) || '0'
|
||||
var y = Blockly.Arduino.valueToCode(this, 'Y', Blockly.Arduino.ORDER_ATOMIC) || '0'
|
||||
var radius = Blockly.Arduino.valueToCode(this, 'Radius', Blockly.Arduino.ORDER_ATOMIC) || '0'
|
||||
var fill = this.getFieldValue('FILL');
|
||||
if (fill == 'TRUE') {
|
||||
var code = 'display.fillCircle(' + x + ',' + y + ',' + radius + ',1);\n';
|
||||
if (fill === 'TRUE') {
|
||||
code = 'display.fillCircle(' + x + ',' + y + ',' + radius + ',1);\n';
|
||||
}
|
||||
else {
|
||||
var code = 'display.drawCircle(' + x + ',' + y + ',' + radius + ',1);\n';
|
||||
code = 'display.drawCircle(' + x + ',' + y + ',' + radius + ',1);\n';
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
Blockly.Arduino.sensebox_display_drawRectangle = function () {
|
||||
let code = '';
|
||||
var x = Blockly.Arduino.valueToCode(this, 'X', Blockly.Arduino.ORDER_ATOMIC) || '0'
|
||||
var y = Blockly.Arduino.valueToCode(this, 'Y', Blockly.Arduino.ORDER_ATOMIC) || '0'
|
||||
var width = Blockly.Arduino.valueToCode(this, 'width', Blockly.Arduino.ORDER_ATOMIC) || '0'
|
||||
var height = Blockly.Arduino.valueToCode(this, 'height', Blockly.Arduino.ORDER_ATOMIC) || '0'
|
||||
var fill = this.getFieldValue('FILL');
|
||||
if (fill == 'TRUE') {
|
||||
var code = 'display.fillRect(' + x + ',' + y + ',' + width + ',' + height + ',1);\n';
|
||||
if (fill === 'TRUE') {
|
||||
code = 'display.fillRect(' + x + ',' + y + ',' + width + ',' + height + ',1);\n';
|
||||
}
|
||||
else {
|
||||
var code = 'display.drawRect(' + x + ',' + y + ',' + width + ',' + height + ',1);\n';
|
||||
code = 'display.drawRect(' + x + ',' + y + ',' + width + ',' + height + ',1);\n';
|
||||
}
|
||||
return code;
|
||||
}
|
||||
Reference in New Issue
Block a user