Merge remote-tracking branch 'origin/add-slider'
This commit is contained in:
		
						commit
						01c662b00f
					
				
							
								
								
									
										56
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										56
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1096,6 +1096,16 @@ | ||||
|         "to-fast-properties": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@blockly/block-plus-minus": { | ||||
|       "version": "2.0.8", | ||||
|       "resolved": "https://registry.npmjs.org/@blockly/block-plus-minus/-/block-plus-minus-2.0.8.tgz", | ||||
|       "integrity": "sha512-LRn+Js2rZ14XyrSoEf7wTz6/ESNW2MI5TkXJ2wWFJVA+/E4lTfBwXeZpRFYRP9DZwNEv9alZETyEcBbK+FCZKw==" | ||||
|     }, | ||||
|     "@blockly/field-slider": { | ||||
|       "version": "2.0.7", | ||||
|       "resolved": "https://registry.npmjs.org/@blockly/field-slider/-/field-slider-2.0.7.tgz", | ||||
|       "integrity": "sha512-kSFeeyfJboj2zOz55hgunFzRHQZUTWmKgw695GOwOGvt4wTG5SQ2/pNnd+C41vdjaOdjaI8tlwiyWg4oJ/MPeA==" | ||||
|     }, | ||||
|     "@cnakazawa/watch": { | ||||
|       "version": "1.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", | ||||
| @ -3694,6 +3704,17 @@ | ||||
|       "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", | ||||
|       "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" | ||||
|     }, | ||||
|     "clipboard": { | ||||
|       "version": "2.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", | ||||
|       "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", | ||||
|       "optional": true, | ||||
|       "requires": { | ||||
|         "good-listener": "^1.2.2", | ||||
|         "select": "^1.1.2", | ||||
|         "tiny-emitter": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "cliui": { | ||||
|       "version": "5.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", | ||||
| @ -4588,6 +4609,12 @@ | ||||
|       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||||
|       "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | ||||
|     }, | ||||
|     "delegate": { | ||||
|       "version": "3.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", | ||||
|       "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", | ||||
|       "optional": true | ||||
|     }, | ||||
|     "depd": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", | ||||
| @ -6350,6 +6377,15 @@ | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "good-listener": { | ||||
|       "version": "1.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", | ||||
|       "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", | ||||
|       "optional": true, | ||||
|       "requires": { | ||||
|         "delegate": "^3.1.2" | ||||
|       } | ||||
|     }, | ||||
|     "graceful-fs": { | ||||
|       "version": "4.2.4", | ||||
|       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", | ||||
| @ -10490,6 +10526,14 @@ | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "prismjs": { | ||||
|       "version": "1.21.0", | ||||
|       "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz", | ||||
|       "integrity": "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==", | ||||
|       "requires": { | ||||
|         "clipboard": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "process": { | ||||
|       "version": "0.11.10", | ||||
|       "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", | ||||
| @ -11659,6 +11703,12 @@ | ||||
|         "ajv-keywords": "^3.4.1" | ||||
|       } | ||||
|     }, | ||||
|     "select": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", | ||||
|       "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", | ||||
|       "optional": true | ||||
|     }, | ||||
|     "select-hose": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", | ||||
| @ -12827,6 +12877,12 @@ | ||||
|       "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", | ||||
|       "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" | ||||
|     }, | ||||
|     "tiny-emitter": { | ||||
|       "version": "2.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", | ||||
|       "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", | ||||
|       "optional": true | ||||
|     }, | ||||
|     "tiny-invariant": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", | ||||
|  | ||||
| @ -3,6 +3,8 @@ | ||||
|   "version": "0.1.0", | ||||
|   "private": true, | ||||
|   "dependencies": { | ||||
|     "@blockly/block-plus-minus": "^2.0.8", | ||||
|     "@blockly/field-slider": "^2.0.7", | ||||
|     "@fortawesome/fontawesome-svg-core": "^1.2.30", | ||||
|     "@fortawesome/free-solid-svg-icons": "^5.14.0", | ||||
|     "@fortawesome/react-fontawesome": "^0.1.11", | ||||
|  | ||||
| @ -7,6 +7,7 @@ import './sensebox-osem'; | ||||
| import './sensebox-web'; | ||||
| import './sensebox-display'; | ||||
| import './sensebox-lora'; | ||||
| import './sensebox-led'; | ||||
| import './io'; | ||||
| import './math'; | ||||
| import './map'; | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| import * as Blockly from 'blockly/core'; | ||||
| import { getColour } from '../helpers/colour'; | ||||
| import * as Types from '../helpers/types' | ||||
| import { FieldSlider } from '@blockly/field-slider'; | ||||
| import { Field } from '..'; | ||||
| 
 | ||||
| 
 | ||||
| Blockly.Blocks['sensebox_display_beginDisplay'] = { | ||||
| @ -35,12 +37,15 @@ Blockly.Blocks['sensebox_display_printDisplay'] = { | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.senseBox_display_color) | ||||
|             .appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_display_white, "WHITE,BLACK"], [Blockly.Msg.senseBox_display_black, "BLACK,WHITE"]]), "COLOR"); | ||||
|         this.appendValueInput("SIZE", 'Number') | ||||
|             .appendField(Blockly.Msg.senseBox_display_setSize); | ||||
|         this.appendValueInput("X", 'Number') | ||||
|             .appendField(Blockly.Msg.senseBox_display_printDisplay_x); | ||||
|         this.appendValueInput("Y", 'Number') | ||||
|             .appendField(Blockly.Msg.senseBox_display_printDisplay_y); | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.senseBox_display_setSize) | ||||
|             .appendField(new FieldSlider(1, 1, 4), "SIZE"); | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.senseBox_display_printDisplay_x) | ||||
|             .appendField(new FieldSlider(0, 0, 64), "X"); | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.senseBox_display_printDisplay_y) | ||||
|             .appendField(new FieldSlider(0, 0, 128), "Y"); | ||||
|         this.appendValueInput('printDisplay') | ||||
|             .appendField(Blockly.Msg.senseBox_display_printDisplay_value) | ||||
|             .setCheck(null); | ||||
|  | ||||
							
								
								
									
										28
									
								
								src/components/Blockly/blocks/sensebox-led.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/components/Blockly/blocks/sensebox-led.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| import * as Blockly from 'blockly'; | ||||
| import { FieldSlider } from '@blockly/field-slider'; | ||||
| import { getColour } from '../helpers/colour' | ||||
| import { selectedBoard } from '../helpers/board' | ||||
| 
 | ||||
| 
 | ||||
| Blockly.Blocks['sensebox_rgb_led'] = { | ||||
|     init: function () { | ||||
|         this.setColour(getColour().sensebox); | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.senseBox_rgb_led) | ||||
|             .appendField("Pin:") | ||||
|             .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "PIN") | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.COLOUR_RGB_RED)//Blockly.Msg.senseBox_basic_red
 | ||||
|             .appendField(new FieldSlider(255, 0, 255), "RED"); | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.COLOUR_RGB_GREEN)//Blockly.Msg.senseBox_basic_green
 | ||||
|             .appendField(new FieldSlider(255, 0, 255), "GREEN"); | ||||
|         this.appendDummyInput() | ||||
|             .appendField(Blockly.Msg.COLOUR_RGB_BLUE)//Blockly.Msg.senseBox_basic_green
 | ||||
|             .appendField(new FieldSlider(255, 0, 255), "BLUE"); | ||||
|         this.setPreviousStatement(true, null); | ||||
|         this.setNextStatement(true, null); | ||||
|         this.setTooltip(Blockly.Msg.senseBox_rgb_led_tip); | ||||
|         this.setHelpUrl('https://sensebox.de/books'); | ||||
|     } | ||||
| }; | ||||
| @ -6,6 +6,7 @@ import './sensebox-osem'; | ||||
| import './sensebox-web'; | ||||
| import './sensebox-display'; | ||||
| import './sensebox-lora'; | ||||
| import './sensebox-led'; | ||||
| import './logic'; | ||||
| import './math'; | ||||
| import './map'; | ||||
|  | ||||
							
								
								
									
										15
									
								
								src/components/Blockly/generator/sensebox-led.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/components/Blockly/generator/sensebox-led.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| import * as Blockly from 'blockly/core'; | ||||
| import { Block } from 'blockly'; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_rgb_led = function () { | ||||
|     var dropdown_pin = this.getFieldValue('PIN'); | ||||
|     var red = this.getFieldValue('RED') || '0' | ||||
|     var green = this.getFieldValue('GREEN') || '0' | ||||
|     var blue = this.getFieldValue('BLUE') || '0' | ||||
|     Blockly.Arduino.libraries_['define_rgb_led' + dropdown_pin] = '#include <Adafruit_NeoPixel.h>\n Adafruit_NeoPixel rgb_led_' + dropdown_pin + ' = Adafruit_NeoPixel(1,' + dropdown_pin + ',NEO_RGB + NEO_KHZ800);\n'; | ||||
|     Blockly.Arduino.setupCode_['setup_rgb_led' + dropdown_pin] = 'rgb_led_' + dropdown_pin + '.begin();'; | ||||
| 
 | ||||
|     var code = 'rgb_led_' + dropdown_pin + '.setPixelColor(0,rgb_led_' + dropdown_pin + '.Color(' + red + ',' + green + ',' + blue + '));\n'; | ||||
|     code += 'rgb_led_' + dropdown_pin + '.show();'; | ||||
|     return code; | ||||
| }; | ||||
| @ -1,6 +1,7 @@ | ||||
| import React from 'react'; | ||||
| import { Block, Value, Field, Shadow, Category } from '../'; | ||||
| import { getColour } from '../helpers/colour' | ||||
| import '@blockly/block-plus-minus'; | ||||
| 
 | ||||
| 
 | ||||
| class Toolbox extends React.Component { | ||||
| @ -23,6 +24,9 @@ class Toolbox extends React.Component { | ||||
|                         <Block type="sensebox_wifi" /> | ||||
|                         <Block type="sensebox_startap" /> | ||||
|                     </Category> | ||||
|                     <Category name="LED" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_rgb_led" /> | ||||
|                     </Category> | ||||
|                     <Category name="Display" colour={getColour().sensebox}> | ||||
|                         <Block type="sensebox_display_beginDisplay" /> | ||||
|                         <Block type="sensebox_display_show" /> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user