以编程方式查找Arduino草图的名称?

时间:2013-01-03 16:59:46

标签: arduino eeprom

我想确定在我的Arduino Leonardo上运行的Arduino草图的名称。当我配置Arduino时,我就可以更改文件名,并让草图自动更改脚本中的数字。

这可能吗?

为了了解我们为什么要这样做,我们必须提供50个Arduinos,而不是手工编辑一堆脚本,我宁愿只更改文件名。

我不知道如何做我想要做的事情,但是为了向旁观者展示善意,我在这个代码中设置了Arduino上的EEPROM:

#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);
}

提前感谢任何想法! 萨拉

1 个答案:

答案 0 :(得分:2)

我没有对此code进行测试,但它似乎可以做你想做的事。

对我而言,虽然更容易维护的解决方案是使用外部.h文件来定义ID号,然后将其包含在草图中。然后,您可以编写一个桌面宏来增加.h文件中定义的数字,然后再配置每个板。