Как преобразовать строки в длинные в Arduino - PullRequest
0 голосов
/ 27 мая 2020

Я использую esp32 для двух вещей: для получения времени эпохи NTP в миллисекундах и для чтения времени другой эпохи из базы данных Firebase Realtime, я хочу вычесть их, чтобы получить разницу в миллисекундах, поэтому мне нужно преобразовать их в длинные long (long в Arduino может содержать только 10 цифр, а эпоха миллисекунд - 13 цифр), я попытался преобразовать их в long long с помощью этого кода:

//define users regTime var to save the regTime from firebase
String checkRegTime = "1590518243941"; //assuming it has that value 

//a var to save the current epoch in millis time
String epochMillis = "1590569250992"; //let's give it that value

void setup(){
  Serial.begin(9600);
}
void loop(){
  convertEpoch()
}

void convertEpoch(){
char* p;
checkRegTime = strtoll(checkRegTime.c_str(),&p, 10);
epochMillis = strtoll(epochMillis.c_str(),&p, 10);

Serial.println(checkRegTime);
Serial.println(epochMillis);
}

, но он дает эту ошибку:

conversion from 'long long int' to 'StringSumHelper' is ambiguous

Я пытался использовать time_t для обоих, но не могу найти, как преобразовать строку в time_t (я могу только прочитать переменную checkRegTime как строку из Firebase)

есть ли способ вычесть их? а как преобразовать строку в длинную в Arduino? так как я пробовал здесь все ответы на С ++, и, похоже, он не работает с Arduino.

...