2

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

这可能吗?

为了说明我们这样做的原因,我们必须提供 50 个 Arduino,而不是手动编辑一堆脚本,我宁愿只更改文件名。

我不知道如何做我想做的事,但作为对旁观者的善意表现,这里是我在 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);
}

提前感谢您的任何想法!萨拉

4

1 回答 1

2

我没有测试过这段代码,但它似乎做了你想做的事。

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

于 2013-01-03T21:43:50.200 回答