diff --git a/blocks/leaphy_common.js b/blocks/leaphy_common.js index c68e84a..f032f99 100644 --- a/blocks/leaphy_common.js +++ b/blocks/leaphy_common.js @@ -431,6 +431,26 @@ function getBlocks(board) { tooltip: "", helpUrl: "", }, + { + type: "leaphy_gas_sensor", + message0: "%%{BKY_LEAPHY_CHOOSE_GAS}: %1", + args0: [ + { + type: "field_dropdown", + name: "GAS", + options: [ + ["TVOC", "TVOC"], + ["eCO2", "eCO2"], + ["Raw H2", "Raw H2"], + ["Raw Ethanol", "RAWETHANOL"], + ], + }, + ], + style: "leaphy_blocks", + output: "Number", + tooltip: "", + helpUrl: "", + }, ]; return blocks; } diff --git a/generators/arduino/leaphy_common.js b/generators/arduino/leaphy_common.js index 09e3daf..d249846 100644 --- a/generators/arduino/leaphy_common.js +++ b/generators/arduino/leaphy_common.js @@ -64,6 +64,29 @@ function getCodeGenerators(Arduino) { return [code, Arduino.ORDER_ATOMIC]; }; + Arduino.forBlock["leaphy_gas_sensor"] = function (block) { + Arduino.addInclude("leaphy_gas_sensor", "#include "); + Arduino.addDeclaration("leaphy_gas_sensor", "Adafruit_SGP30 sgp;"); + Arduino.addSetup( + "leaphy_gas_sensor", + "if (! sgp.begin()){\n" + "\treturn -1;\n" + "}", + ); + + var gasValue = block.getFieldValue("GAS"); + let code = ""; + if (gasValue == "TVOC") { + code = "sgp.TVOC"; + } else if (gasValue == "eCO2") { + code = "sgp.eCO2"; + } else if (gasValue == "Raw H2") { + code = "sgp.rawH2"; + } else if (gasValue == "Raw Ethanol") { + code = "sgp.rawEthanol"; + } + + return [code, Arduino.ORDER_ATOMIC]; + }; + Arduino.forBlock["leaphy_i2c_rgb_color"] = function (block) { const rgb_declaration = "int r = 0, g = 0, b = 0, a = 0;\n" + diff --git a/msg/js/en.js b/msg/js/en.js index 57c8c90..24910bf 100644 --- a/msg/js/en.js +++ b/msg/js/en.js @@ -98,6 +98,7 @@ Blockly.Msg["LEAPHY_BUZZ_MS"] = "ms"; Blockly.Msg["LEAPHY_CLICK_CATEGORY"] = "Leaphy Click"; Blockly.Msg["LEAPHY_COMPASS"] = "Read compass"; Blockly.Msg["LEAPHY_DIGITAL_READ"] = "Read digipin"; +Blockly.Msg["LEAPHY_CHOOSE_GAS"] = "Choose gas: "; Blockly.Msg["LEAPHY_DISPLAY_CLEAR"] = "Clear display"; Blockly.Msg["LEAPHY_DISPLAY_DISPLAY"] = "Show on display"; Blockly.Msg["LEAPHY_DISPLAY_PRINT"] = "Display - Set Ln."; diff --git a/msg/js/nl.js b/msg/js/nl.js index 3eee68c..553e5c4 100644 --- a/msg/js/nl.js +++ b/msg/js/nl.js @@ -96,6 +96,7 @@ Blockly.Msg["LEAPHY_BUZZ_MS"] = "ms"; // untranslated Blockly.Msg["LEAPHY_CLICK_CATEGORY"] = "Leaphy Click"; // untranslated Blockly.Msg["LEAPHY_COMPASS"] = "Lees kompas"; Blockly.Msg["LEAPHY_DIGITAL_READ"] = "Lees digipin"; +Blockly.Msg["LEAPHY_CHOOSE_GAS"] = "Kies gas: "; Blockly.Msg["LEAPHY_DISPLAY_CLEAR"] = "Maak display leeg"; Blockly.Msg["LEAPHY_DISPLAY_DISPLAY"] = "Toon op display"; Blockly.Msg["LEAPHY_DISPLAY_PRINT"] = "Stel display in - Rg."; diff --git a/msg/json/en.json b/msg/json/en.json index 518f529..5b40406 100644 --- a/msg/json/en.json +++ b/msg/json/en.json @@ -31,6 +31,7 @@ "LEAPHY_MOTOR_DIRECTION": "Direction", "LEAPHY_GET_DISTANCE": "Get distance", "LEAPHY_DIGITAL_READ": "Read digipin", + "LEAPHY_CHOOSE_GAS": "Choose gas: ", "LEAPHY_ANALOG_READ": "Read anapin", "LEAPHY_RGB_READ_SENSOR": "Read RGB sensor", "LEAPHY_RGB_COLOR_RED": "Color R-255", diff --git a/msg/json/nl.json b/msg/json/nl.json index 5f0e1bf..cb607da 100644 --- a/msg/json/nl.json +++ b/msg/json/nl.json @@ -33,6 +33,7 @@ "LEAPHY_MOTOR_DIRECTION": "Richting", "LEAPHY_GET_DISTANCE": "Lees afstand", "LEAPHY_DIGITAL_READ": "Lees digipin", + "LEAPHY_CHOOSE_GAS": "Kies gas: ", "LEAPHY_ANALOG_READ": "Lees anapin", "LEAPHY_RGB_READ_SENSOR": "Lees RGB Sensor", "LEAPHY_RGB_COLOR_RED": "R-255", diff --git a/package-lock.json b/package-lock.json index bd83bbd..dd55851 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@leaphy-robotics/leaphy-blocks", - "version": "1.4.0", + "version": "1.5.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@leaphy-robotics/leaphy-blocks", - "version": "1.4.0", + "version": "1.5.4", "dependencies": { "blockly": "^10.1.3", "typescript": "4.3.2" @@ -16,7 +16,7 @@ "@babel/preset-env": "^7.22.15", "babel-loader": "^9.1.3", "eslint": "^8.52.0", - "prettier": "^3.0.3" + "prettier": "3.1.1" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -3761,9 +3761,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/package.json b/package.json index 2ee28bf..726ba5f 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "@babel/preset-env": "^7.22.15", "babel-loader": "^9.1.3", "eslint": "^8.52.0", - "prettier": "^3.0.3" + "prettier": "3.1.1" }, "repository": { "type": "git",