123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683 |
- Blockly.Blocks["iot_lcd_screeninit"] = {
- init: function () {
- this.appendDummyInput()
- .appendField(new Blockly.FieldImage("blockly/media/screen_init_header.png", 45, 45, { alt: "*", flipRtl: "FALSE" }));
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_lcd_init);
- this.setInputsInline(false);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour("#5cb2d6");
- this.setTooltip(Blockly.Msg.Iot_Lcd_Screeninit_TOOLTIP);
- this.setHelpUrl('');
- }
- }
- Blockly.Python.iot_lcd_screeninit = function (block) {
- var checkbox_name = block.getFieldValue('DEGREE');
- //var dropdown_name = block.getFieldValue('TextCheckBox') == 'TRUE' ? "True" : "False";
- Blockly.Python.definitions_.import_lcd = "import machine, time";
- Blockly.Python.definitions_.import_image = "import st7789";
- var _code = "spi = machine.SPI(2, baudrate=20000000, polarity=1, sck=machine.Pin(18), mosi=machine.Pin(23))\n";
- _code += "tft = st7789.ST7789(spi, 240, 240, reset=machine.Pin(5, machine.Pin.OUT), dc=machine.Pin(19, machine.Pin.OUT))\n";
- _code += "tft.init()\n";
- return _code;;
- }
- Blockly.Blocks['iot_lcd_screen'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_set_filled_screen_color)
- .appendField(new Blockly.FieldDropdown([
- [Blockly.Msg.image_process_set_filled_screen_color_black, "BLACK"],
- [Blockly.Msg.image_process_set_filled_screen_color_red, "RED"],
- [Blockly.Msg.image_process_set_filled_screen_color_blue, "BLUE"],
- [Blockly.Msg.image_process_set_filled_screen_color_cyan, "CYAN"],
- [Blockly.Msg.image_process_set_filled_screen_color_yellow, "YELLOW"],
- [Blockly.Msg.image_process_set_filled_screen_color_white, "WHITE"]
- ]), "COLOR");
- this.setInputsInline(true);
- this.setPreviousStatement(true, null);
- this.setNextStatement(true, null);
- this.setColour("#5bb2d6");
- // this.setTooltip('');
- this.setHelpUrl('');
- var thisBlock = this;
- this.setTooltip(function () {
- var mode = thisBlock.getFieldValue('COLOR');
- var TOOLTIPS = {
- 'BLACK': Blockly.Msg.Iot_Lcd_Screen_TOOLTIP.replace('%1', Blockly.Msg.image_process_set_filled_screen_color_black),
- 'RED': Blockly.Msg.Iot_Lcd_Screen_TOOLTIP.replace('%1', Blockly.Msg.image_process_set_filled_screen_color_red),
- 'BLUE': Blockly.Msg.Iot_Lcd_Screen_TOOLTIP.replace('%1', Blockly.Msg.image_process_set_filled_screen_color_blue),
- 'CYAN': Blockly.Msg.Iot_Lcd_Screen_TOOLTIP.replace('%1', Blockly.Msg.image_process_set_filled_screen_color_cyan),
- 'YELLOW': Blockly.Msg.Iot_Lcd_Screen_TOOLTIP.replace('%1', Blockly.Msg.image_process_set_filled_screen_color_yellow),
- 'WHITE': Blockly.Msg.Iot_Lcd_Screen_TOOLTIP.replace('%1', Blockly.Msg.image_process_set_filled_screen_color_white)
- };
- return TOOLTIPS[mode];
- });
- }
- };
- Blockly.Python.iot_lcd_screen = function (block) {
- var colour_name = block.getFieldValue('COLOR');
- var _code = "tft.fill(st7789." + colour_name + ")\n";
- return _code;
- }
- Blockly.Blocks['iot_lcd_set_color'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(Blockly.Msg.COLOR)
- .appendField(new Blockly.FieldColour("#ff0000"), "COLOR");
- this.setOutput(true, "String");
- this.setColour("#5bb2d6");
- this.setTooltip(Blockly.Msg.Iot_Lcd_Set_Color_TOOLTIP);
- this.setHelpUrl("");
- }
- };
- Blockly.Python['iot_lcd_set_color'] = function (block) {
- var color = block.getFieldValue('COLOR');
- var d = 0,
- e = 0,
- f = 0;
- try {
- 7 == color.length && (d = parseInt(color.substring(1, 3), 16),
- e = parseInt(color.substring(3, 5), 16),
- f = parseInt(color.substring(5, 7), 16))
- } catch (g) { }
- var code = "st7789.color565(" + d + "," + e + "," + f + ")";
- // TODO: Assemble Python into code variable.
- return [code, Blockly.Python.ORDER_NONE];
- };
- Blockly.Blocks['iot_lcd_fill_screen_with_rgb'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_set_filled_screen_color);
- this.appendValueInput("COLOR")
- .setCheck(null)
- .appendField("");
- this.setInputsInline(true);
- this.setPreviousStatement(true, null);
- this.setNextStatement(true, null);
- this.setColour("#5bb2d6");
- this.setTooltip(Blockly.Msg.Iot_Lcd_Fill_Screen_With_Rgb_TOOLTIP);
- this.setHelpUrl("");
- }
- };
- Blockly.Python['iot_lcd_fill_screen_with_rgb'] = function (block) {
- var color = Blockly.Python.valueToCode(block, 'COLOR', Blockly.Python.ORDER_ATOMIC);
- var code = 'tft.fill' + color + '\n';
- // TODO: Assemble Python into code variable.
- return code;
- };
- Blockly.Blocks['iot_lcd_rgb_value_input'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_rgb_r);
- this.appendValueInput("rgb_value_r")
- .setCheck(null)
- .appendField("");
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_rgb_g);
- this.appendValueInput("rgb_value_g")
- .setCheck(null)
- .appendField("");
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_rgb_b);
- this.appendValueInput("rgb_value_b")
- .setCheck(null)
- .appendField("");
- this.setInputsInline(true);
- this.setOutput(true, null);
- this.setColour("#5bb2d6");
- this.setTooltip(Blockly.Msg.Iot_Lcd_Rgb_Value_Input_TOOLTIP);
- this.setHelpUrl("");
- }
- };
- Blockly.Python['iot_lcd_rgb_value_input'] = function (block) {
- var value_rgb_value_r = Blockly.Python.valueToCode(block, 'rgb_value_r', Blockly.Python.ORDER_ATOMIC);
- var value_rgb_value_g = Blockly.Python.valueToCode(block, 'rgb_value_g', Blockly.Python.ORDER_ATOMIC);
- var value_rgb_value_b = Blockly.Python.valueToCode(block, 'rgb_value_b', Blockly.Python.ORDER_ATOMIC);
- // TODO: Assemble Python into code variable.
- var code = 'st7789.color565(' + value_rgb_value_r + ',' + value_rgb_value_g + ',' + value_rgb_value_b + ')';
- // TODO: Change ORDER_NONE to the correct strength.
- return [code, Blockly.Python.ORDER_NONE];
- };
- Blockly.Blocks['iot_lcd_drawpixel'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(
- new Blockly.FieldImage("./../blockly/media/pixel.png", 25, 25, "15"));
- this.appendDummyInput()
- .appendField(Blockly.Msg.LED_DRAW + Blockly.Msg.LED_PIXEL);
- this.appendValueInput("COLOR")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_color);
- this.appendValueInput("POSA")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_start_coord);
- this.setInputsInline(false);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour("#5bb2d6");
- this.setTooltip(Blockly.Msg.Iot_Lcd_Drawpixel_TOOLTIP);
- this.setHelpUrl('');
- }
- };
- Blockly.Python.iot_lcd_drawpixel = function (block) {
- var color = Blockly.Python.valueToCode(block, 'COLOR', Blockly.Python.ORDER_ATOMIC);
- var xy = Blockly.Python.valueToCode(block, 'POSA', Blockly.Python.ORDER_ATOMIC);
- var _code = "tft.pixel(" + xy + ", " + color.replace("(", "").replace(")", "") + ")\n";
- return _code;
- }
- Blockly.Blocks['iot_lcd_linecarvas'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(new Blockly.FieldImage("blockly/media/lcd_draw_line.png", 45, 45, { alt: "*", flipRtl: "FALSE" }));
- this.appendDummyInput()
- // .appendField(Blockly.Msg.image_process_text_on_canvas)
- // .appendField(new Blockly.FieldVariable("canvas"), "varitem")
- .appendField(Blockly.Msg.image_text_on_draw + Blockly.Msg.image_process_draw_line);
- this.appendValueInput("POSA")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_start_coord);
- this.appendValueInput("POSB")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_end_coord);
- this.appendValueInput("COLOR")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_color);
- // this.appendValueInput("Scale")
- // .setCheck("Number")
- // .appendField(Blockly.Msg.image_process_text_thick);
- this.setInputsInline(false);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour("#5bb2d6");
- this.setTooltip(Blockly.Msg.Iot_Lcd_Linecarvas_TOOLTIP);
- this.setHelpUrl('');
- }
- };
- Blockly.Python.iot_lcd_linecarvas = function (block) {
- var color = Blockly.Python.valueToCode(block, 'COLOR', Blockly.Python.ORDER_ATOMIC);
- var xy = Blockly.Python.valueToCode(block, 'POSA', Blockly.Python.ORDER_ATOMIC);
- var xy2 = Blockly.Python.valueToCode(block, 'POSB', Blockly.Python.ORDER_ATOMIC);
- var _code = "tft.line(" + xy + ", " + xy2 + ", " + color.replace("(", "").replace(")", "") + ")\n";
- return _code;
- }
- Blockly.Blocks['iot_lcd_ractanglecarvas'] = {
- init: function () {
- // this.appendDummyInput()
- // .appendField(
- // new Blockly.FieldImage("./../blockly/media/line.png", 25, 25, "15"));
- this.appendDummyInput()
- .appendField(new Blockly.FieldImage("blockly/media/lcd_draw_rectangle.png", 45, 45, { alt: "*", flipRtl: "FALSE" }));
- this.appendDummyInput()
- // .appendField(Blockly.Msg.image_process_text_on_canvas)
- // .appendField(new Blockly.FieldVariable("canvas"), "varitem")
- .appendField(Blockly.Msg.image_text_on_draw)
- .appendField(new Blockly.FieldDropdown([
- [Blockly.Msg.image_process_text_filled, "fill_rect"],
- [Blockly.Msg.image_process_text_stroked, "rect"]
- ]), "rect_type")
- .appendField(Blockly.Msg.image_process_draw_rectangle_text);
- this.appendValueInput("POSA")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_start_coord);
- this.appendValueInput("POSB")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_size);
- this.appendValueInput("COLOR")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_color);
- // this.appendValueInput("Scale")
- // .setCheck("Number")
- // .appendField(Blockly.Msg.image_process_text_thick);
- this.setInputsInline(false);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour("#5bb2d6");
- // this.setTooltip('');
- this.setHelpUrl('');
- var thisBlock = this;
- this.setTooltip(function () {
- var mode = thisBlock.getFieldValue('rect_type');
- var TOOLTIPS = {
- 'fill_rect': Blockly.Msg.Iot_Lcd_Ractanglecarvas_TOOLTIP.replace('%1', Blockly.Msg.image_process_text_filled),
- 'rect': Blockly.Msg.Iot_Lcd_Ractanglecarvas_TOOLTIP.replace('%1', Blockly.Msg.image_process_text_stroked)
- };
- return TOOLTIPS[mode];
- });
- }
- };
- Blockly.Python.iot_lcd_ractanglecarvas = function (block) {
- var type = block.getFieldValue('rect_type');
- var color = Blockly.Python.valueToCode(block, 'COLOR', Blockly.Python.ORDER_ATOMIC);
- var xy = Blockly.Python.valueToCode(block, 'POSA', Blockly.Python.ORDER_ATOMIC);
- var size = Blockly.Python.valueToCode(block, 'POSB', Blockly.Python.ORDER_ATOMIC);
- var _code = "tft." + type + "(" + xy + ", " + size + "," + color.replace("(", "").replace(")", "") + ")\n";
- return _code;
- }
- Blockly.Blocks['iot_lcd_textcarvas'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(new Blockly.FieldImage("blockly/media/lcd_draw_text.png", 45, 45, { alt: "*", flipRtl: "FALSE" }));
- this.appendDummyInput()
- // .appendField(Blockly.Msg.image_process_text_on_canvas)
- // .appendField(new Blockly.FieldVariable("canvas"), "varitem")
- .appendField(Blockly.Msg.image_text_on_draw + Blockly.Msg.image_process_draw_text);
- this.appendDummyInput()
- .appendField(Blockly.Msg.LCD_FONT)
- .appendField(new Blockly.FieldDropdown([
- [Blockly.Msg.SUPER_LARGE, "vga1_16x32"],
- [Blockly.Msg.LARGE, "vga1_16x16"],
- [Blockly.Msg.MIDDLE, "vga1_8x16"],
- [Blockly.Msg.SMALL, "vga1_8x8"],
- ]), "FONT");
- this.appendValueInput("POSA")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_start_coord);
- this.appendValueInput("CONTENT")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_content);
- this.appendValueInput("COLOR")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_text_color);
- this.appendValueInput("BACKGROUNDCOLOR")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_background_color);
- // this.appendValueInput("Scale")
- // .setCheck("Number")
- // .appendField(Blockly.Msg.image_process_draw_text_font_size);
- // this.appendDummyInput()
- // .appendField(Blockly.Msg.image_process_draw_text_if_monospace)
- // .appendField(new Blockly.FieldCheckbox("FALSE"), "bool");
- this.setInputsInline(false);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour("#5bb2d6");
- this.setTooltip(Blockly.Msg.Iot_Lcd_Textcarvas_TOOLTIP);
- this.setHelpUrl('');
- }
- };
- Blockly.Python.iot_lcd_textcarvas = function (block) {
- var fonts = block.getFieldValue('FONT');
- var color = Blockly.Python.valueToCode(block, 'COLOR', Blockly.Python.ORDER_ATOMIC);
- var backgroundColor = Blockly.Python.valueToCode(block, 'BACKGROUNDCOLOR', Blockly.Python.ORDER_ATOMIC);
- var content = Blockly.Python.valueToCode(block, 'CONTENT', Blockly.Python.ORDER_ATOMIC);
- var xy = Blockly.Python.valueToCode(block, 'POSA', Blockly.Python.ORDER_ATOMIC);
- // Blockly.Python.definitions_.import_font = "import fonts." + fonts + " as font";
- Blockly.Python.definitions_.import_font_set_all = ""+
- "import fonts.vga1_8x8 as vga1_8x8\n"+
- "import fonts.vga1_8x16 as vga1_8x16\n"+
- "import fonts.vga1_16x16 as vga1_16x16\n"+
- "import fonts.vga1_16x32 as vga1_16x32\n"+
- "";
- var _code = "tft.text("+fonts+"," + content + "," + xy + "," + color.replace("(", "").replace(")", "") + "," + backgroundColor.replace("(", "").replace(")", "") + ")\n";
- return _code;
- }
- Blockly.Blocks['iot_lcd_draw_zedGraph'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(new Blockly.FieldImage("blockly/media/lcd_draw_coordinate.png", 60, 60, { alt: "*", flipRtl: "FALSE" }));
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_text_on_draw)
- .appendField(new Blockly.FieldDropdown([
- [Blockly.Msg.image_process_statistical_chart_bar, "bar"],
- [Blockly.Msg.image_process_statistical_chart_broken_line, "broken_line"]
- // [Blockly.Msg.image_process_statistical_chart_sector, "sector"]
- ]), "statistical_chart")
- .appendField(Blockly.Msg.image_process_draw_statistical_chart);
- this.appendValueInput("CONTENT")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_statistical_chart_content);
- this.appendValueInput("PROPERTY")
- .setCheck("String")
- .appendField(Blockly.Msg.image_process_statistical_chart_y_property);
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_sensor)
- .appendField(new Blockly.FieldDropdown([
- [Blockly.Msg.image_process_temperature, "Temperature"],
- [Blockly.Msg.image_process_humidity, "Humidity"],
- [Blockly.Msg.image_process_Ray_value, "Ray Value"]
- ]), "sensor")
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_temperature_range)
- .appendField(new Blockly.FieldDropdown([
- ['-80~100(' + Blockly.Msg.image_process_temperature + ')', "a"],
- ['-20~50(' + Blockly.Msg.image_process_temperature + ')', "b"],
- [Blockly.Msg.image_process_nothing, "c"]
- ]), "temperature_range")
- this.setInputsInline(false);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setColour("#5bb2d6");
- var thisBlock = this;
- this.setTooltip(function () {
- var mode = thisBlock.getFieldValue('statistical_chart');
- var TOOLTIPS = {
- 'bar': Blockly.Msg.Iot_Lcd_Draw_ZedGraph_TOOLTIP.replace('%1', Blockly.Msg.image_process_statistical_chart_bar),
- 'broken_line': Blockly.Msg.Iot_Lcd_Draw_ZedGraph_TOOLTIP.replace('%1', Blockly.Msg.image_process_statistical_chart_broken_line),
- 'sector': Blockly.Msg.Iot_Lcd_Draw_ZedGraph_TOOLTIP.replace('%1', Blockly.Msg.image_process_statistical_chart_sector)
- };
- return TOOLTIPS[mode];
- });
- this.setHelpUrl('');
- }
- };
- Blockly.Python.iot_lcd_draw_zedGraph = function (block) {
- var a = block.getFieldValue('statistical_chart');
- var b = block.getFieldValue('sensor');
- var PROPERTY = Blockly.Python.valueToCode(block, 'PROPERTY', Blockly.Python.ORDER_ATOMIC);
- var content = Blockly.Python.valueToCode(block, 'CONTENT', Blockly.Python.ORDER_ATOMIC);
- Blockly.Python.definitions_.import_font = "import fonts.vga1_8x8 as font";
- Blockly.Python.definitions_.import_math = "import math\ndata_value = [0]";
- var _code = "";
- if (a == 'bar') {
- if (b == 'Temperature') {
- var c = block.getFieldValue('temperature_range');
- if (c == "a") {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*100/5)),5,140-20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140-20*(j+1),45,140-20*(j+1),st7789.color565(255,255,255))\n" +
- "tft.text(font,'0',5,140,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for j in range(4):\n" +
- " tft.text(font,'-'+str(int((j+1)*100/5)),5,140+20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140+20*(j+1),45,140+20*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),140,40+(10 * i),135,st7789.color565(255,255,255))\n" +
- // " if i != 0:\n" +
- // " tft.text(font,str(i),40+(10 * i),150,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- " if data_value[i + 1] >= 0:\n" +
- " tft.fill_rect(40+(10 * (i + 1))-3,140 - data_value[i + 1], 6,data_value[i + 1],st7789.color565(255,255,255))\n" +
- " else:\n" +
- " tft.fill_rect(40+(10 * (i + 1))-3,140, 6,(-1) * data_value[i + 1],st7789.color565(255,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,230, st7789.color565(255,255,255))\n" +
- "tft.line(40,140,220,140, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- }
- else {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*50/5)),5,140-20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140-20*(j+1),45,140-20*(j+1),st7789.color565(255,255,255))\n" +
- "tft.text(font,'0',5,140,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for j in range(2):\n" +
- " tft.text(font,'-'+str(int((j+1)*50/5)),5,140+20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140+20*(j+1),45,140+20*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),140,40+(10 * i),135,st7789.color565(255,255,255))\n" +
- // " if i != 0:\n" +
- // " tft.text(font,str(i),40+(10 * i),150,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- " if data_value[i + 1] >= 0:\n" +
- " tft.fill_rect(40+(10 * (i + 1))-3,140 - data_value[i + 1] * 2, 6,data_value[i + 1] * 2,st7789.color565(255,255,255))\n" +
- " else:\n" +
- " tft.fill_rect(40+(10 * (i + 1))-3,140, 6,(-1) * data_value[i + 1] * 2,st7789.color565(255,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,190, st7789.color565(255,255,255))\n" +
- "tft.line(40,140,220,140, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- }
- }
- else if (b == 'Humidity') {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*180/5)),5,220-36*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,220-36*(j+1),45,220-36*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),220,40+(10 * i),215,st7789.color565(255,255,255))\n" +
- " tft.text(font,str(i),40+(10 * i),230,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- // " tft.line(40+(10 * i),220 - data_value[i],40+(10 * (i + 1)),220 - data_value[i + 1], st7789.color565(0,255,255))\n" +
- " tft.fill_rect(40+(10 * (i + 1))-3,220 - data_value[i + 1], 6,data_value[i + 1],st7789.color565(255,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,220, st7789.color565(255,255,255))\n" +
- "tft.line(40,220,220,220, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- }
- else {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*1080/5)),5,220-36*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,220-36*(j+1),45,220-36*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),220,40+(10 * i),215,st7789.color565(255,255,255))\n" +
- " tft.text(font,str(i),40+(10 * i),230,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- // " tft.line(40+(10 * i),220 - data_value[i] // 6,40+(10 * (i + 1)),220 - data_value[i + 1] // 6, st7789.color565(0,255,255))\n" +
- " tft.fill_rect(40+(10 * (i + 1))-3,220 - data_value[i + 1] // 6, 6,data_value[i + 1] // 6,st7789.color565(255,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,220, st7789.color565(255,255,255))\n" +
- "tft.line(40,220,220,220, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- }
- }
- else if (a == 'broken_line') {
- if (b == 'Temperature') {
- var c = block.getFieldValue('temperature_range');
- if (c == "a") {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*100/5)),5,140-20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140-20*(j+1),45,140-20*(j+1),st7789.color565(255,255,255))\n" +
- "tft.text(font,'0',5,140,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for j in range(4):\n" +
- " tft.text(font,'-'+str(int((j+1)*100/5)),5,140+20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140+20*(j+1),45,140+20*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),140,40+(10 * i),135,st7789.color565(255,255,255))\n" +
- " if i != 0:\n" +
- " tft.text(font,str(i),40+(10 * i),150,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- " tft.line(40+(10 * i),140 - data_value[i],40+(10 * (i + 1)),140 - data_value[i + 1], st7789.color565(0,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,230, st7789.color565(255,255,255))\n" +
- "tft.line(40,140,220,140, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- } else {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*50/5)),5,140-20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140-20*(j+1),45,140-20*(j+1),st7789.color565(255,255,255))\n" +
- "tft.text(font,'0',5,140,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for j in range(2):\n" +
- " tft.text(font,'-'+str(int((j+1)*50/5)),5,140+20*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,140+20*(j+1),45,140+20*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),140,40+(10 * i),135,st7789.color565(255,255,255))\n" +
- " if i != 0:\n" +
- " tft.text(font,str(i),40+(10 * i),150,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- " tft.line(40+(10 * i),140 - data_value[i] * 2,40+(10 * (i + 1)),140 - data_value[i + 1] * 2, st7789.color565(0,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,190, st7789.color565(255,255,255))\n" +
- "tft.line(40,140,220,140, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- }
- }
- else if (b == 'Humidity') {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*180/5)),5,220-36*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,220-36*(j+1),45,220-36*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),220,40+(10 * i),215,st7789.color565(255,255,255))\n" +
- " tft.text(font,str(i),40+(10 * i),230,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- " tft.line(40+(10 * i),220 - data_value[i],40+(10 * (i + 1)),220 - data_value[i + 1], st7789.color565(0,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,220, st7789.color565(255,255,255))\n" +
- "tft.line(40,220,220,220, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- }
- else {
- _code = "" +
- "mapping_value =" + content + "\n" +
- "\n" +
- "if(len(data_value) < 17):\n" +
- " data_value.append(round(mapping_value))\n" +
- "else:\n" +
- " data_value.pop(1)\n" +
- " data_value.append(round(mapping_value))\n" +
- "\n" +
- "for j in range(5):\n" +
- " tft.text(font,str(int((j+1)*1080/5)),5,220-36*(j+1),st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- " tft.line(40,220-36*(j+1),45,220-36*(j+1),st7789.color565(255,255,255))\n" +
- "\n" +
- "for i in range(17):\n" +
- " if i % 2 == 0:\n" +
- " if i < 18 and i > 0:\n" +
- " tft.line(40+(10 * i),220,40+(10 * i),215,st7789.color565(255,255,255))\n" +
- " tft.text(font,str(i),40+(10 * i),230,st7789.color565(255,255,255),st7789.color565(0,0,0))\n" +
- "\n" +
- "for i in range(len(data_value) - 1):\n" +
- " tft.line(40+(10 * i),220 - data_value[i] // 6,40+(10 * (i + 1)),220 - data_value[i + 1] // 6, st7789.color565(0,255,255))\n" +
- "\n" +
- "tft.line(40,20,40,220, st7789.color565(255,255,255))\n" +
- "tft.line(40,220,220,220, st7789.color565(255,255,255))\n" +
- "tft.text(font," + PROPERTY + ",40,10,st7789.color565(255,255,255),st7789.color565(0,0,0))\n";
- }
- }
- else {
- if (b == 'Temperature') {
- }
- else if (b == 'Humidity') {
- }
- else {
- }
- }
- return _code;
- }
- Blockly.Blocks['iot_lcd_clear_screen'] = {
- init: function () {
- this.appendDummyInput()
- .appendField(Blockly.Msg.image_process_clear_lcd);
- this.setInputsInline(true);
- this.setPreviousStatement(true, null);
- this.setNextStatement(true, null);
- this.setColour("#5bb2d6");
- // this.setTooltip('');
- this.setHelpUrl('');
- this.setTooltip(Blockly.Msg.iot_lcd_clear_screen_TOOLTIP);
- }
- };
- Blockly.Python.iot_lcd_clear_screen = function (block) {
- var _code = "tft.fill(st7789.BLACK)\n";
- return _code;
- };
|