@@ -1,4 +1,36 @@
|
||||
import * as Blockly from "blockly/core";
|
||||
import { getColour } from "../helpers/colour";
|
||||
import * as Types from "../helpers/types";
|
||||
|
||||
Blockly.Blocks["sensebox_multiplexer_init"] = {
|
||||
init: function () {
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_multiplexer_init);
|
||||
this.appendValueInput("nrChannels").setCheck(
|
||||
Types.getCompatibleTypes("int")
|
||||
);
|
||||
this.appendDummyInput().appendField(
|
||||
Blockly.Msg.senseBox_multplexer_nchannels
|
||||
);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setInputsInline("true");
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_multiplexer_init_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_multiplexer_init_helpurl);
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
|
||||
Blockly.Blocks["sensebox_multiplexer_changeChannel"] = {
|
||||
init: function () {
|
||||
this.appendDummyInput().appendField(
|
||||
Blockly.Msg.senseBox_multiplexer_changeChannel
|
||||
);
|
||||
this.appendValueInput("Channel").setCheck(Types.getCompatibleTypes("int"));
|
||||
this.setInputsInline("true");
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.sensebox_multiplexer_changeChannel_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.sensebox_multiplexer_changeChannel_helpurl);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,24 +1,23 @@
|
||||
import './generator';
|
||||
import './loops';
|
||||
import './sensebox-sensors';
|
||||
import './sensebox-telegram';
|
||||
import './sensebox-osem';
|
||||
import './sensebox-web';
|
||||
import './sensebox-display';
|
||||
import './sensebox-lora';
|
||||
import './sensebox-led';
|
||||
import './sensebox-sd';
|
||||
import './mqtt';
|
||||
import './logic';
|
||||
import './text';
|
||||
import './math';
|
||||
import './map';
|
||||
import './io';
|
||||
import './audio';
|
||||
import './procedures';
|
||||
import './time';
|
||||
import './variables';
|
||||
import './lists';
|
||||
import './webserver';
|
||||
|
||||
|
||||
import "./generator";
|
||||
import "./loops";
|
||||
import "./sensebox-sensors";
|
||||
import "./sensebox-telegram";
|
||||
import "./sensebox-osem";
|
||||
import "./sensebox-web";
|
||||
import "./sensebox-display";
|
||||
import "./sensebox-lora";
|
||||
import "./sensebox-led";
|
||||
import "./sensebox-sd";
|
||||
import "./sensebox";
|
||||
import "./mqtt";
|
||||
import "./logic";
|
||||
import "./text";
|
||||
import "./math";
|
||||
import "./map";
|
||||
import "./io";
|
||||
import "./audio";
|
||||
import "./procedures";
|
||||
import "./time";
|
||||
import "./variables";
|
||||
import "./lists";
|
||||
import "./webserver";
|
||||
|
||||
@@ -1,3 +1,38 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
import { Block } from 'blockly';
|
||||
import * as Blockly from "blockly/core";
|
||||
|
||||
/*
|
||||
* Multiplexer
|
||||
*/
|
||||
Blockly.Arduino.sensebox_multiplexer_init = function () {
|
||||
// Blockly.Arduino.libraries_['library_spi'] = '#include <SPI.h>';
|
||||
var nrChannels =
|
||||
Blockly.Arduino.valueToCode(
|
||||
this,
|
||||
"nrChannels",
|
||||
Blockly.Arduino.ORDER_ATOMIC
|
||||
) | 0;
|
||||
var array = [];
|
||||
for (var i = 0; i < nrChannels; i++) {
|
||||
array.push(i);
|
||||
}
|
||||
Blockly.Arduino.libraries_["library_wire"] = "#include <Wire.h>";
|
||||
Blockly.Arduino.definitions_[
|
||||
"define_multiplexer"
|
||||
] = `byte multiplexAddress = 0x77;
|
||||
byte channels[] = {${array}};`;
|
||||
// Blockly.Arduino.setupCode_['sensebox_display_begin'] = 'senseBoxIO.powerI2C(true);\ndelay(2000);\ndisplay.begin(SSD1306_SWITCHCAPVCC, 0x3D);\ndisplay.display();\ndelay(100);\ndisplay.clearDisplay();';
|
||||
var code = "";
|
||||
return code;
|
||||
};
|
||||
|
||||
Blockly.Arduino.sensebox_multiplexer_changeChannel = function () {
|
||||
var channel = Blockly.Arduino.valueToCode(
|
||||
this,
|
||||
"Channel",
|
||||
Blockly.Arduino.ORDER_ATOMIC
|
||||
);
|
||||
var code = `Wire.beginTransmission(0x77);
|
||||
Wire.write(1 << channels[${channel - 1}]);
|
||||
Wire.endTransmission();`;
|
||||
return code;
|
||||
};
|
||||
|
||||
@@ -1,48 +1,49 @@
|
||||
|
||||
import { AUDIO } from './de/audio';
|
||||
import { FAQ } from './de/faq';
|
||||
import { IO } from './de/io';
|
||||
import { LOGIC } from './de/logic';
|
||||
import { LOOPS } from './de/loops';
|
||||
import { MATH } from './de/math';
|
||||
import { MQTT } from './de/mqtt';
|
||||
import { DISPLAY } from './de/sensebox-display';
|
||||
import { LED } from './de/sensebox-led';
|
||||
import { LORA } from './de/sensebox-lora';
|
||||
import { OSEM } from './de/sensebox-osem';
|
||||
import { SD } from './de/sensebox-sd';
|
||||
import { SENSORS } from './de/sensebox-sensors';
|
||||
import { TELEGRAM } from './de/sensebox-telegram';
|
||||
import { WEB } from './de/sensebox-web';
|
||||
import { TEXT } from './de/text';
|
||||
import { TIME } from './de/time';
|
||||
import { TOURS } from './de/tours';
|
||||
import { TRANSLATIONS } from './de/translations';
|
||||
import { UI } from './de/ui';
|
||||
import { VARIABLES } from './de/variables';
|
||||
import { WEBSERVER } from './de/webserver';
|
||||
import { AUDIO } from "./de/audio";
|
||||
import { FAQ } from "./de/faq";
|
||||
import { IO } from "./de/io";
|
||||
import { LOGIC } from "./de/logic";
|
||||
import { LOOPS } from "./de/loops";
|
||||
import { MATH } from "./de/math";
|
||||
import { MQTT } from "./de/mqtt";
|
||||
import { DISPLAY } from "./de/sensebox-display";
|
||||
import { LED } from "./de/sensebox-led";
|
||||
import { LORA } from "./de/sensebox-lora";
|
||||
import { OSEM } from "./de/sensebox-osem";
|
||||
import { SD } from "./de/sensebox-sd";
|
||||
import { SENSORS } from "./de/sensebox-sensors";
|
||||
import { SENSEBOX } from "./de/sensebox";
|
||||
import { TELEGRAM } from "./de/sensebox-telegram";
|
||||
import { WEB } from "./de/sensebox-web";
|
||||
import { TEXT } from "./de/text";
|
||||
import { TIME } from "./de/time";
|
||||
import { TOURS } from "./de/tours";
|
||||
import { TRANSLATIONS } from "./de/translations";
|
||||
import { UI } from "./de/ui";
|
||||
import { VARIABLES } from "./de/variables";
|
||||
import { WEBSERVER } from "./de/webserver";
|
||||
|
||||
export const De = {
|
||||
...AUDIO,
|
||||
...FAQ,
|
||||
...IO,
|
||||
...LOGIC,
|
||||
...LOOPS,
|
||||
...MATH,
|
||||
...MQTT,
|
||||
...DISPLAY,
|
||||
...LED,
|
||||
...LORA,
|
||||
...OSEM,
|
||||
...SD,
|
||||
...SENSORS,
|
||||
...TELEGRAM,
|
||||
...WEB,
|
||||
...TEXT,
|
||||
...TIME,
|
||||
...TOURS,
|
||||
...TRANSLATIONS,
|
||||
...UI,
|
||||
...VARIABLES,
|
||||
...WEBSERVER
|
||||
}
|
||||
...AUDIO,
|
||||
...FAQ,
|
||||
...IO,
|
||||
...LOGIC,
|
||||
...LOOPS,
|
||||
...MATH,
|
||||
...MQTT,
|
||||
...DISPLAY,
|
||||
...LED,
|
||||
...LORA,
|
||||
...OSEM,
|
||||
...SD,
|
||||
...SENSORS,
|
||||
...SENSEBOX,
|
||||
...TELEGRAM,
|
||||
...WEB,
|
||||
...TEXT,
|
||||
...TIME,
|
||||
...TOURS,
|
||||
...TRANSLATIONS,
|
||||
...UI,
|
||||
...VARIABLES,
|
||||
...WEBSERVER,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
export const SENSEBOX = {
|
||||
/**
|
||||
* Multiplexer
|
||||
*/
|
||||
senseBox_multiplexer_init: "Initialisiere Multiplexer mit ",
|
||||
senseBox_multiplexer_init_tooltip:
|
||||
"Schließe den Multiplexer mit einem JST-JST Kabel an einen der 5 I2C-Ports an. Nun kannst du bis zu 8 gleiche Sensoren verwenden über die entsprechenden Kanäle ansprechen. Gib im Block die Anzahl der verwendeten Kanäle an",
|
||||
senseBox_multiplexer_init_helpurl:
|
||||
"https://docs.sensebox.de/hardware/zubehoer-multiplexer/",
|
||||
senseBox_multplexer_nchannels: "Kanälen",
|
||||
senseBox_multiplexer_changeChannel: "Wechsel Kanal auf:",
|
||||
sensebox_multiplexer_changeChannel_tooltip:
|
||||
"Wähle den entsprechenden Kanal aus",
|
||||
sensebox_multiplexer_changeChannel_helpurl:
|
||||
"https://docs.sensebox.de/hardware/zubehoer-multiplexer/",
|
||||
};
|
||||
@@ -1,47 +1,49 @@
|
||||
import { AUDIO } from './en/audio';
|
||||
import { FAQ } from './en/faq';
|
||||
import { IO } from './en/io';
|
||||
import { LOGIC } from './en/logic';
|
||||
import { LOOPS } from './en/loops';
|
||||
import { MATH } from './en/math';
|
||||
import { MQTT } from './en/mqtt';
|
||||
import { DISPLAY } from './en/sensebox-display';
|
||||
import { LED } from './en/sensebox-led';
|
||||
import { LORA } from './en/sensebox-lora';
|
||||
import { OSEM } from './en/sensebox-osem';
|
||||
import { SD } from './en/sensebox-sd';
|
||||
import { SENSORS } from './en/sensebox-sensors';
|
||||
import { TELEGRAM } from './en/sensebox-telegram';
|
||||
import { WEB } from './en/sensebox-web';
|
||||
import { TEXT } from './en/text';
|
||||
import { TIME } from './en/time';
|
||||
import { TOURS } from './en/tours';
|
||||
import { TRANSLATIONS } from './en/translations';
|
||||
import { UI } from './en/ui';
|
||||
import { VARIABLES } from './en/variables';
|
||||
import { WEBSERVER } from './en/webserver';
|
||||
import { AUDIO } from "./en/audio";
|
||||
import { FAQ } from "./en/faq";
|
||||
import { IO } from "./en/io";
|
||||
import { LOGIC } from "./en/logic";
|
||||
import { LOOPS } from "./en/loops";
|
||||
import { MATH } from "./en/math";
|
||||
import { MQTT } from "./en/mqtt";
|
||||
import { SENSEBOX } from "./en/sensebox";
|
||||
import { DISPLAY } from "./en/sensebox-display";
|
||||
import { LED } from "./en/sensebox-led";
|
||||
import { LORA } from "./en/sensebox-lora";
|
||||
import { OSEM } from "./en/sensebox-osem";
|
||||
import { SD } from "./en/sensebox-sd";
|
||||
import { SENSORS } from "./en/sensebox-sensors";
|
||||
import { TELEGRAM } from "./en/sensebox-telegram";
|
||||
import { WEB } from "./en/sensebox-web";
|
||||
import { TEXT } from "./en/text";
|
||||
import { TIME } from "./en/time";
|
||||
import { TOURS } from "./en/tours";
|
||||
import { TRANSLATIONS } from "./en/translations";
|
||||
import { UI } from "./en/ui";
|
||||
import { VARIABLES } from "./en/variables";
|
||||
import { WEBSERVER } from "./en/webserver";
|
||||
|
||||
export const En = {
|
||||
...AUDIO,
|
||||
...FAQ,
|
||||
...IO,
|
||||
...LOGIC,
|
||||
...LOOPS,
|
||||
...MATH,
|
||||
...MQTT,
|
||||
...DISPLAY,
|
||||
...LED,
|
||||
...LORA,
|
||||
...OSEM,
|
||||
...SD,
|
||||
...SENSORS,
|
||||
...TELEGRAM,
|
||||
...WEB,
|
||||
...TEXT,
|
||||
...TIME,
|
||||
...TOURS,
|
||||
...TRANSLATIONS,
|
||||
...UI,
|
||||
...VARIABLES,
|
||||
...WEBSERVER
|
||||
}
|
||||
...AUDIO,
|
||||
...FAQ,
|
||||
...IO,
|
||||
...LOGIC,
|
||||
...LOOPS,
|
||||
...MATH,
|
||||
...MQTT,
|
||||
...DISPLAY,
|
||||
...LED,
|
||||
...LORA,
|
||||
...OSEM,
|
||||
...SD,
|
||||
...SENSORS,
|
||||
...SENSEBOX,
|
||||
...TELEGRAM,
|
||||
...WEB,
|
||||
...TEXT,
|
||||
...TIME,
|
||||
...TOURS,
|
||||
...TRANSLATIONS,
|
||||
...UI,
|
||||
...VARIABLES,
|
||||
...WEBSERVER,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
export const SENSEBOX = {
|
||||
/**
|
||||
* Multiplexer
|
||||
*/
|
||||
senseBox_multiplexer_init: "Initialise Multiplexer with ",
|
||||
senseBox_multiplexer_init_tooltip:
|
||||
"Connect the multiplexer with a JST-JST cable to one of the 5 I2C ports. Now you can use up to 8 sensors of the same type and address them via the corresponding channels. Enter the number of used channels in the block",
|
||||
senseBox_multiplexer_init_helpurl:
|
||||
"https://en.docs.sensebox.de/hardware/zubehoer-multiplexer/",
|
||||
senseBox_multplexer_nchannels: "Channels",
|
||||
senseBox_multiplexer_changeChannel: "Change active channel to:",
|
||||
sensebox_multiplexer_changeChannel_tooltip:
|
||||
"Changes the active channel to the selected number",
|
||||
sensebox_multiplexer_changeChannel_helpurl:
|
||||
"https://en.docs.sensebox.de/hardware/zubehoer-multiplexer/",
|
||||
};
|
||||
@@ -75,6 +75,20 @@ class Toolbox extends React.Component {
|
||||
<Block type="sensebox_sensor_watertemperature" />
|
||||
{/* <Block type="sensebox_windspeed" /> */}
|
||||
<Block type="sensebox_soundsensor_dfrobot" />
|
||||
<Block type="sensebox_multiplexer_init">
|
||||
<Value name="nrChannels">
|
||||
<Block type="math_number">
|
||||
<Field name="NUM">1</Field>
|
||||
</Block>
|
||||
</Value>
|
||||
</Block>
|
||||
<Block type="sensebox_multiplexer_changeChannel">
|
||||
<Value name="Channel">
|
||||
<Block type="math_number">
|
||||
<Field name="NUM">1</Field>
|
||||
</Block>
|
||||
</Value>
|
||||
</Block>
|
||||
</Category>
|
||||
<Category name="WIFI" colour={getColour().sensebox}>
|
||||
<Block type="sensebox_wifi" />
|
||||
|
||||
Reference in New Issue
Block a user