import { sensor_light, sensor_sound } from './sensor'; // 执行器_点阵屏显示_字符显示 export const HT16K33_TEXT = function (_, generator) { generator.definitions_['include_HT16K33'] = '#include '; generator.definitions_['var_declare_HT16K33'] = 'HT16K33 MixGo_HT16K33;'; generator.setups_['setup_Matrix_1'] = 'MixGo_HT16K33.begin(0x70);'; generator.setups_['setup_Matrix_2'] = 'delay(100);'; var string1 = generator.valueToCode(this, 'TEXT', generator.ORDER_ASSIGNMENT); var code = 'MixGo_HT16K33.drawStr(' + string1 + ');\n' return code; } // 执行器_点阵屏显示_画点显示 export const HT16K33_POS = function (_, generator) { generator.definitions_['2_include_HT16K33'] = '#include '; generator.definitions_['var_declare_HT16K33'] = 'HT16K33 MixGo_HT16K33;'; generator.setups_['setup_Matrix_1'] = 'MixGo_HT16K33.begin(0x70);'; generator.setups_['setup_Matrix_2'] = 'delay(100);'; var pos_x = generator.valueToCode(this, 'XVALUE', generator.ORDER_ASSIGNMENT); var pos_y = generator.valueToCode(this, 'YVALUE', generator.ORDER_ASSIGNMENT); var dropdown_type = this.getFieldValue('DrawPixel_TYPE'); var code = 'MixGo_HT16K33.drawPixel(' + pos_x + '-1,' + pos_y + '-1,' + dropdown_type + ');\n' code += 'MixGo_HT16K33.writeDisplay();\n'; return code; } // 执行器_点阵屏显示_显示图案 export const HT16K33_DisplayChar = function (_, generator) { generator.definitions_['2_include_HT16K33'] = '#include '; generator.definitions_['var_declare_HT16K33'] = 'HT16K33 MixGo_HT16K33;'; generator.definitions_['var_declare_Matrix1'] = 'uint16_t MixGo_LedArray[8];'; generator.setups_['setup_Matrix_1'] = 'MixGo_HT16K33.begin(0x70);'; generator.setups_['setup_Matrix_2'] = 'delay(100);'; var dropdown_pin = generator.valueToCode(this, 'Chars', generator.ORDER_ASSIGNMENT); // var code='Matrix_'+SDA+'_'+SCL+'.clear();\n'; var code = ''; code += 'for(int i=0; i<8; i++)\n'; code += '{\n' code += ' MixGo_LedArray[i]=' + dropdown_pin + '[i];\n'; code += ' for(int j=15; j>=0; j--)\n' code += ' {\n' code += ' if((MixGo_LedArray[i]&0x01)>0)\n'; code += ' MixGo_HT16K33.drawPixel(j, i,LED_ON);\n'; code += ' MixGo_LedArray[i] = MixGo_LedArray[i]>>1;\n'; code += ' } \n' code += '}\n' code += 'MixGo_HT16K33.writeDisplay();\n' return code; } // 执行器_点阵屏显示_图案数组 export const HT16K33_LedArray = function (_, generator) { var varName = this.getFieldValue('VAR'); var a = new Array(); for (var i = 1; i < 9; i++) { a[i] = new Array(); for (var j = 1; j < 17; j++) { a[i][j] = (this.getFieldValue('a' + i + j) == "TRUE") ? 1 : 0; } } var code = '{'; for (var i = 1; i < 9; i++) { var tmp = "" for (var j = 1; j < 17; j++) { tmp += a[i][j]; } tmp = (parseInt(tmp, 2)).toString(16) // alert(tmp); if (tmp.length == 1) tmp = "000" + tmp; else if (tmp.length == 2) tmp = "00" + tmp; else if (tmp.length == 3) tmp = "0" + tmp; code += '0x' + tmp + ((i != 8) ? ',' : ''); } code += '};'; generator.definitions_[varName] = "uint16_t " + varName + "[8]=" + code; //return ["LedArray_"+clearString(this.id), generator.ORDER_ATOMIC]; return [varName, generator.ORDER_ATOMIC]; } // 辅助块_点阵屏_清除显示 export const HT16K33_Displayclear = function (_, generator) { generator.definitions_['2_include_HT16K33'] = '#include '; generator.definitions_['var_declare_HT16K33'] = 'HT16K33 MixGo_HT16K33;'; generator.setups_['setup_Matrix_1'] = 'MixGo_HT16K33.begin(0x70);'; generator.setups_['setup_Matrix_2'] = 'delay(100);'; var code = ''; code += 'MixGo_HT16K33.clear();\n'; return code; } // 辅助块_点阵屏_清除显示 export const HT16K33_brightness = function (_, generator) { var BRIGHTNESS = generator.valueToCode(this, 'Brightness', generator.ORDER_ATOMIC); generator.definitions_['2_include_HT16K33'] = '#include '; generator.definitions_['var_declare_HT16K33'] = 'HT16K33 MixGo_HT16K33;'; generator.setups_['setup_Matrix_1'] = 'MixGo_HT16K33.begin(0x70);'; generator.setups_['setup_Matrix_2'] = 'delay(100);'; var code = ''; code += 'MixGo_HT16K33.setBrightness(' + BRIGHTNESS + ');\n'; return code; } export const HT16K33_show_image = function (_, generator) { var dropdown_img_ = this.getFieldValue('img_'); var code = '"' + dropdown_img_ + '"'; code = '{'; for (var i = 0; i < 31; i += 4) { code += '0x' + dropdown_img_.substr(i, 4) + ((i != 28) ? ',' : ''); } code += '};\n'; generator.definitions_['matrix_img_' + dropdown_img_] = "byte " + 'matrix_img_' + dropdown_img_ + "[]=" + code; return ['matrix_img_' + dropdown_img_, generator.ORDER_ATOMIC]; } export const sensor_mixgo_light = sensor_light; export const sensor_mixgo_sound = sensor_sound; export const mixgo_touch_pin = function (_, generator) { var touch_pin = this.getFieldValue('touch_pin'); var code = 'touchRead(' + touch_pin + ')'; return [code, generator.ORDER_ATOMIC]; }; export const sensor_mixgo_pin_near = function (_, generator) { var direction = this.getFieldValue('direction'); var code = 'digitalRead(' + direction + ')'; return [code, generator.ORDER_ATOMIC]; } export const mixGo_led = function (_, generator) { var op = this.getFieldValue('STAT'); var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); generator.setups_['setup_pinmode' + op] = 'pinMode(' + op + ',OUTPUT);'; var code = "digitalWrite(" + op + ",!" + bright + ");\n"; return code; } export const MixGo_rgb = function (_, generator) { var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC); var COLOR = generator.valueToCode(this, 'COLOR', generator.ORDER_ATOMIC); COLOR = COLOR.replace(/#/g, "0x"); generator.definitions_['include_Adafruit_NeoPixel'] = '#include '; generator.definitions_['var_declare_rgb_display02'] = 'Adafruit_NeoPixel rgb_display_02= Adafruit_NeoPixel(2,2,NEO_GRB + NEO_KHZ800);'; generator.setups_['setup_rgb_display_begin_02'] = 'rgb_display_02.begin();'; var code = 'rgb_display_02.setPixelColor(' + value_led + '-1,' + COLOR + ');\n'; return code; } export const MixGo_rgb2 = function (_, generator) { var COLOR1 = generator.valueToCode(this, 'COLOR1', generator.ORDER_ATOMIC); var COLOR2 = generator.valueToCode(this, 'COLOR2', generator.ORDER_ATOMIC); COLOR1 = COLOR1.replace(/#/g, "0x"); COLOR2 = COLOR2.replace(/#/g, "0x"); generator.definitions_['include_Adafruit_NeoPixel'] = '#include '; generator.definitions_['var_declare_rgb_display02'] = 'Adafruit_NeoPixel rgb_display_02= Adafruit_NeoPixel(2,2,NEO_GRB + NEO_KHZ800);'; generator.setups_['setup_rgb_display_begin_02'] = 'rgb_display_02.begin();'; var code = 'rgb_display_02.setPixelColor(0,' + COLOR1 + ');\n'; code += 'rgb_display_02.setPixelColor(1,' + COLOR2 + ');\n'; return code; } export const MixGo_rgb_Brightness = function (_, generator) { var Brightness = generator.valueToCode(this, 'Brightness', generator.ORDER_ATOMIC); generator.definitions_['include_Adafruit_NeoPixel'] = '#include '; generator.definitions_['var_declare_rgb_display02'] = 'Adafruit_NeoPixel rgb_display_02= Adafruit_NeoPixel(2,2,NEO_GRB + NEO_KHZ800);'; generator.setups_['setup_rgb_display_begin_02'] = 'rgb_display_02.begin();'; var code = 'rgb_display_02.setBrightness(' + Brightness + ');\n'; return code; } export const MixGo_rgb_rainbow1 = function (_, generator) { generator.definitions_['include_Adafruit_NeoPixel'] = '#include '; generator.definitions_['var_declare_rgb_display02'] = 'Adafruit_NeoPixel rgb_display_02= Adafruit_NeoPixel(2,2,NEO_GRB + NEO_KHZ800);'; var wait_time = generator.valueToCode(this, 'WAIT', generator.ORDER_ATOMIC); generator.setups_['setup_rgb_display_begin_02'] = 'rgb_display_02.begin();'; var funcName2 = 'Wheel'; var code2 = 'uint32_t Wheel(byte WheelPos) {\n'; code2 += 'if(WheelPos < 85) \n{\nreturn rgb_display_02.Color(WheelPos * 3, 255 - WheelPos * 3, 0);\n} \n'; code2 += 'else if(WheelPos < 170) \n{\nWheelPos -= 85; \nreturn rgb_display_02.Color(255 - WheelPos * 3, 0, WheelPos * 3);\n}\n '; code2 += 'else\n {\nWheelPos -= 170;\nreturn rgb_display_02.Color(0, WheelPos * 3, 255 - WheelPos * 3);\n}\n'; code2 += '}\n'; generator.definitions_[funcName2] = code2; var funcName3 = 'rainbow'; var code3 = 'void rainbow(uint8_t wait) {\n uint16_t i, j;\n'; code3 += 'for(j=0; j<256; j++) {\n'; code3 += 'for(i=0; i