Объединить сгенерированный Dynamic c файл .txt в файл .ino, используя #include - PullRequest
0 голосов
/ 09 января 2020

Я делаю программу «планирования» в Arduino, должна посылать много строковых команд в зависимости от времени дня.

Я использую способ - сделать 'для' l oop который выполняется в течение необходимого времени, и если текущее время имеет значение для запуска чего-либо - он запускает команду 'switch' для запуска правильного кода.

Вот пример кода моей функции 'for':

void CheckIfAction(const RtcDateTime& dt) {
    const int A = 6;    // Action Array Size
    int ActionTimes[A][4] = {
        {6,18,37,1},
        {6,18,38,2},
        {5,15,20,11},
        {5,16,45,51},
        {5,16,50,52},
        {5,23,35,15}   
    };
    int i;
    for ( i = 0; i < A; i++ ) {

        if ((dt.DayOfWeek()==ActionTimes[i][0]) && (dt.Hour()==ActionTimes[i][1]) && (dt.Minute()==ActionTimes[i][2]) && (dt.Second() < 2)) {
            RunMyAction(ActionTimes[i][3]);
        }
    } 
}

А вот и коммутатор:

void RunMyAction(const int& MyActionCode)
{
    switch(MyActionCode) {
    case 1:
        digitalWrite(2, LOW);  // Turn the LED on by making the voltage LOW
        // Serial.println("Time condition is met, LED is ON");
        Serial.println("S041OFE");
        delay(1500);
        Serial.println("S041ONE");
        delay(1500);
        Serial.println("S041OFE");
        delay(1500);
        Serial.println("S041ONE");
        break;  
    case 2:
        digitalWrite(2, HIGH);  // Turn the LED off by making the voltage HIGH
        Serial.println("S017ONE");
        delay(1000);
        Serial.println("S017OFE");
        delay(1000);
        Serial.println("S017ONE");
        delay(1000);
        Serial.println("S017OFE");
        delay(1000);
        Serial.println("S017ONE");
        delay(1000);
        Serial.println("S017OFE");
        delay(1000);
        break;        
    case 11:     //Before Knissat Shabat - Full status update.
        Serial.println("S01D00000D00ES02D01001100ES03D00101101ES04D1100D0DDES05D10011DDDE");
        delay(1000);
        break;
    case 15:     //Last GoodNight Shabat - Full status update.
        Serial.println("S01D00000000ES02D00000000ES03D00000100ES04D1000D00DES05D00011DDDE");
        delay(1500);
        break;
    case 51:
        Serial.println("S036OFE");
        delay(1500);
        break;
    case 52:
        Serial.println("S047OFES036ONE");
        delay(1500);


        break;
    //#include "ExcelActions.txt"
    }
}

Чтобы упростить задачу, я пытаюсь использовать Excel для генерации деталей "case" в соответствии со списком функций, которые я иметь в нем, и (как вы можете видеть в последней команде выше) включить сгенерированный файл с хорошим стилем вместо его ввода или копирования / вставки.

Мои вопросы: 1. Могу ли я действительно включить текстовый файл в этом месте, как я сам набрал, 2. Где я должен разместить этот файл для Arduino IDE, чтобы найти его. Я попытался поместить его в каталог файла .ino и получил ошибку компиляции - «Файл или каталог не существует».

Большое спасибо!

...