初始化提交

This commit is contained in:
王立帮
2024-07-19 10:16:00 +08:00
parent 4c7b571f20
commit 4a2d56dcc4
7084 changed files with 741212 additions and 63 deletions

View File

@@ -0,0 +1,112 @@
// LM35 Temperature
export const LM35 = function (_, generator) {
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'analogRead(' + dropdown_pin + ')*0.322';
return [code, generator.ORDER_ATOMIC];
}
export const store_eeprom_write_long = function (_, generator) {
var address = generator.valueToCode(this, 'ADDRESS', generator.ORDER_ATOMIC) || '0';
var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || '0';
generator.definitions_['include_EEPROM'] = '#include <EEPROM.h>';
generator.setups_['setup_EEPROM.begin'] = 'EEPROM.begin(512);';
var funcName = 'eepromWriteLong';
var code2 = 'void ' + funcName + '(int address, unsigned long value) {\n'
+ ' union u_tag {\n'
+ ' byte b[4];\n'
+ ' unsigned long ULtime;\n'
+ ' }\n'
+ ' time;\n'
+ ' time.ULtime=value;\n'
+ ' EEPROM.write(address, time.b[0]);\n'
+ ' EEPROM.write(address+1, time.b[1]);\n'
+ ' if (time.b[2] != EEPROM.read(address+2) ) EEPROM.write(address+2, time.b[2]);\n'
+ ' if (time.b[3] != EEPROM.read(address+3) ) EEPROM.write(address+3, time.b[3]);\n'
+ ' EEPROM.commit();\n'
+ '}\n';
generator.definitions_[funcName] = code2;
return 'eepromWriteLong(' + address + ', ' + data + ');\n';
}
export const store_eeprom_read_long = function (_, generator) {
var address = generator.valueToCode(this, 'ADDRESS', generator.ORDER_ATOMIC) || '0';
generator.definitions_['include_EEPROM'] = '#include <EEPROM.h>';
generator.setups_['setup_EEPROM.begin'] = 'EEPROM.begin(512);';
var code = 'eepromReadLong(' + address + ')';
var funcName = 'eepromReadLong';
var code2 = 'unsigned long ' + funcName + '(int address) {\n'
+ ' union u_tag {\n'
+ ' byte b[4];\n'
+ ' unsigned long ULtime;\n'
+ ' }\n'
+ ' time;\n'
+ ' time.b[0] = EEPROM.read(address);\n'
+ ' time.b[1] = EEPROM.read(address+1);\n'
+ ' time.b[2] = EEPROM.read(address+2);\n'
+ ' time.b[3] = EEPROM.read(address+3);\n'
+ ' return time.ULtime;\n'
+ '}\n';
generator.definitions_[funcName] = code2;
return [code, generator.ORDER_ATOMIC];
}
export const store_eeprom_write_byte = function (_, generator) {
var address = generator.valueToCode(this, 'ADDRESS', generator.ORDER_ATOMIC) || '0';
var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || '0';
generator.definitions_['include_EEPROM'] = '#include <EEPROM.h>';
generator.setups_['setup_EEPROM.begin'] = 'EEPROM.begin(512);';
return 'EEPROM.write(' + address + ', ' + data + ');\nEEPROM.commit();\n';
}
export const controls_attachInterrupt = function (_, generator) {
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var dropdown_mode = this.getFieldValue('mode');
generator.setups_['setup_input_' + dropdown_pin] = 'pinMode(' + dropdown_pin + ', INPUT_PULLUP);';
//var interrupt_pin=digitalPinToInterrupt(dropdown_pin).toString();
var interrupt_pin = 'digitalPinToInterrupt(' + dropdown_pin + ')';
var code = 'attachInterrupt' + '(' + interrupt_pin + ',' + 'attachInterrupt_fun_' + dropdown_pin + ',' + dropdown_mode + ');\n'
var funcName = 'attachInterrupt_fun_' + dropdown_pin;
var branch = generator.statementToCode(this, 'DO');
var code2 = 'ICACHE_RAM_ATTR void' + ' ' + funcName + '() {\n' + branch + '}\n';
generator.definitions_[funcName] = code2;
return code;
}
export const store_eeprom_read_byte = function (_, generator) {
var address = generator.valueToCode(this, 'ADDRESS', generator.ORDER_ATOMIC) || '0';
generator.definitions_['include_EEPROM'] = '#include <EEPROM.h>';
generator.setups_['setup_EEPROM.begin'] = 'EEPROM.begin(512);';
var code = 'EEPROM.read(' + address + ')';
return [code, generator.ORDER_ATOMIC];
}
export const store_eeprom_put = function (_, generator) {
generator.setups_['setup_EEPROM_begin'] = 'EEPROM.begin(4000);';
var address = generator.valueToCode(this, 'ADDRESS', generator.ORDER_ATOMIC) || '0';
var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || '0';
generator.definitions_['include_EEPROM'] = '#include <EEPROM.h>';
return 'EEPROM.put(' + address + ', ' + data + ');\nEEPROM.commit();';
}
export const store_eeprom_get = function (_, generator) {
generator.setups_['setup_EEPROM_begin'] = 'EEPROM.begin(4000);';
var address = generator.valueToCode(this, 'ADDRESS', generator.ORDER_ATOMIC) || '0';
var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || '0';
generator.definitions_['include_EEPROM'] = '#include <EEPROM.h>';
return 'EEPROM.get(' + address + ', ' + data + ');\n';
}
export const controls_soft_reset = function () {
return ' ESP.restart();\n';
}
export const servo_move = function (_, generator) {
var dropdown_pin = this.getFieldValue('PIN');
var value_degree = generator.valueToCode(this, 'DEGREE', generator.ORDER_ATOMIC);
var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '0'
generator.definitions_['include_Servo'] = '#include <Servo.h>';
generator.definitions_['var_declare_servo' + dropdown_pin] = 'Servo servo_' + dropdown_pin + ';';
generator.setups_['setup_servo_' + dropdown_pin] = 'servo_' + dropdown_pin + '.attach(' + dropdown_pin + ',500,2500);';
var code = 'servo_' + dropdown_pin + '.write(' + value_degree + ');\n' + 'delay(' + delay_time + ');\n';
return code;
}

View File

@@ -0,0 +1,82 @@
// esp_now发送数据
export const esp_now_send = function (_, generator) {
var mac = generator.valueToCode(this, 'mac', generator.ORDER_ATOMIC);
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
var branch = generator.statementToCode(this, 'success');
//branch = branch.replace(/(^\s*)|(\s*$)/g, "");
var branch1 = generator.statementToCode(this, 'failure');
//branch1 = branch1.replace(/(^\s*)|(\s*$)/g, "");
mac = mac.replaceAll('"', '');
mac = mac.toUpperCase();
const macList = mac.split(':');
mac = macList.join(', 0x');
mac = '0x' + mac;
generator.definitions_['include_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
generator.definitions_['include_WifiEspNow'] = '#include <WifiEspNow.h>';
const macName = macList.join('');
generator.definitions_['var_declare_PEER_' + macName] = 'uint8_t PEER_' + macName + '[] = {' + mac + '};\n';
generator.definitions_['function_sendMessage'] = 'bool sendMessage(uint8_t *macAddress, String _data) {\n'
+ ' bool ok = WifiEspNow.addPeer(macAddress, 0, nullptr, WIFI_IF_STA);\n'
+ ' if (!ok) return false;\n'
+ ' uint16_t length = _data.length();\n'
+ ' char _msg[length];\n'
+ ' strcpy(_msg, _data.c_str());\n'
+ ' return WifiEspNow.send(macAddress, reinterpret_cast<const uint8_t*>(_msg), length);\n'
+ '}\n';
generator.setups_['setup_esp_now'] = `
WiFi.persistent(false);
WiFi.mode(WIFI_AP);
WiFi.disconnect();
WiFi.softAP("ESPNOW", nullptr, 3);
WiFi.softAPdisconnect(false);
Serial.print("当前设备MAC:");
Serial.println(WiFi.softAPmacAddress());
bool ok = WifiEspNow.begin();
if (!ok) {
Serial.println("WifiEspNow初始化失败");
ESP.restart();
}`;
var code = `if (sendMessage(PEER_${macName}, ${data})) {\n`
+ branch
+ '} else {\n'
+ branch1
+ '}\n';
return code;
}
// esp_now接收数据
export const esp_now_receive = function (_, generator) {
var branch = generator.statementToCode(this, 'receive_data');
branch = branch.replace(/(^\s*)|(\s*$)/g, "");
generator.definitions_['include_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
generator.definitions_['include_WifiEspNow'] = '#include <WifiEspNow.h>';
generator.definitions_['function_onMessageRecv'] = 'void OnMessageRecv(const uint8_t _mac[WIFIESPNOW_ALEN], const uint8_t* _buf, size_t _count, void* arg) {\n'
+ ' // Serial.printf("从MAC:%02X:%02X:%02X:%02X:%02X:%02X处收到数据\\n", _mac[0], _mac[1], _mac[2], _mac[3], _mac[4], _mac[5]);\n'
+ ' String message = "";\n'
+ ' for (int i = 0; i < static_cast<int>(_count); i++) {\n'
+ ' message += String(static_cast<char>(_buf[i]));\n'
+ ' }\n'
+ ' ' + branch + '\n'
+ '}\n';
generator.setups_['setup_esp_now_message_receive_cb'] = 'WifiEspNow.onReceive(OnMessageRecv, nullptr);';
generator.setups_['setup_esp_now'] = `
WiFi.persistent(false);
WiFi.mode(WIFI_AP);
WiFi.disconnect();
WiFi.softAP("ESPNOW", nullptr, 3);
WiFi.softAPdisconnect(false);
Serial.print("当前设备MAC:");
Serial.println(WiFi.softAPmacAddress());
bool ok = WifiEspNow.begin();
if (!ok) {
Serial.println("WifiEspNow初始化失败");
ESP.restart();
}`;
var code = '';
return code;
}