add multiplexer

closes #81
This commit is contained in:
Mario Pesch
2021-03-30 15:03:34 +02:00
parent 6b12c501a0
commit 21d282ee1b
10 changed files with 261 additions and 135 deletions
+23 -24
View File
@@ -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";
+37 -2
View File
@@ -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;
};