以编程方式查找Arduino草图的名称?
我想确定在我的Arduino Leonardo上运行的Arduino草图的名称。因此,当我设置Arduino时,我可以更改文件名,并让草图自动更改脚本中的数字 这可能吗 为了了解我们为什么要这样做,我们必须提供50个Arduinos,而不是手工编辑一堆脚本,我宁愿更改文件名 我不知道如何做我想做的事情,但为了向旁观者表示诚意,我在Arduino上设置EEPROM的代码如下:以编程方式查找Arduino草图的名称?,arduino,eeprom,Arduino,Eeprom,我想确定在我的Arduino Leonardo上运行的Arduino草图的名称。因此,当我设置Arduino时,我可以更改文件名,并让草图自动更改脚本中的数字 这可能吗 为了了解我们为什么要这样做,我们必须提供50个Arduinos,而不是手工编辑一堆脚本,我宁愿更改文件名 我不知道如何做我想做的事情,但为了向旁观者表示诚意,我在Arduino上设置EEPROM的代码如下: #include <EEPROM.h> #include "EEPROMAnything.h" // beg
#include <EEPROM.h>
#include "EEPROMAnything.h"
// begin EDIT ME
char CONFIG_NUMBER[]="##"; // Config Number goes here
// end EDIT ME
char IPADDRESS[]="XX.XX.XX.XXX";
char APN[]="myapn";
const int buflen = 32;
struct config_t {
char model[buflen];
char serial_num[buflen];
char ipaddress[buflen];
char apn[buflen];
}configuration;
int ee_addr=0;
boolean registrationDone = false;
void setup(){
Serial.begin(115200);
Serial.println(F("Starting Up"));
}
void loop()
{
config_t configuration;
strcpy(configuration.model, MODEL);
strcpy(configuration.serial_num, SERIAL_NUM);
strcpy(configuration.ipaddress, IPADDRESS);
strcpy(configuration.apn, APN);
if (!registrationDone){
EEPROM_writeAnything(ee_addr,configuration);
registrationDone = true;
}
EEPROM_readAnything(ee_addr, configuration);
Serial.println(F("Settings"));
Serial.println(String(configuration.model));
Serial.println(String(configuration.serial_num));
Serial.println(String(configuration.ipaddress));
Serial.println(String(configuration.apn));
delay(5000);
}
#包括
#包括“EEPROMAnything.h”
//开始编辑我
字符配置号[]=“##”;//配置号在这里
//结束编辑我
字符IP地址[]=“XX.XX.XX.XXX”;
char APN[]=“myapn”;
常数int buflen=32;
结构配置{
煤焦模型[buflen];
字符序列号[buflen];
字符地址[buflen];
char-apn[buflen];
}配置;
int ee_addr=0;
布尔注册完成=假;
无效设置(){
序列号开始(115200);
Serial.println(F(“启动”);
}
void循环()
{
配置配置;
strcpy(配置、模型、模型);
strcpy(configuration.serial\u num,serial\u num);
strcpy(configuration.ipaddress,ipaddress);
strcpy(configuration.apn,apn);
如果(!注册完成){
EEPROM_写入内容(ee_地址、配置);
注册完成=真;
}
EEPROM_readAnything(ee_地址、配置);
Serial.println(F(“设置”);
Serial.println(String(configuration.model));
Serial.println(字符串(configuration.Serial_num));
Serial.println(字符串(configuration.ipaddress));
Serial.println(String(configuration.apn));
延迟(5000);
}
提前感谢您的任何想法!
Sara我还没有测试过这个,但它似乎做了你想做的事情
在我看来,一个更容易维护的解决方案是使用一个外部的.h文件,该文件定义了一个ID号,然后将其包含在草图中。然后,您可以编写一个桌面宏,在设置每个电路板之前增加.h文件中定义的数字。那么您要做的是让50个Arduinos都运行相同的脚本,但上载一些识别号以区分它们?您是否必须通过更改文件名来实现这一点(是否需要一个不同的解决方案—不涉及更改脚本—就足够了)?是的—我喜欢skinnyTOD的解决方案,因为它可以做到这一点。谢谢令人惊叹的!我目前正在供应Arduinos,所以这听起来像是我的答案。非常感谢!