I want to parse a large number to sync time on my arduino. For this i send it a string with the current time in Unix time format wich looks somethink like this:
1535441277
For this I just call a php script wich echos the time()
function.
But with string.toInt()
I'm unable to parse it. I suppose the number is too large for an int or a long. But I can't put it directly into the setEpoch()
method from the RTCzero libary because it accepts as input datatype only uint32_t
. So how can I parse large numbers on a system where double isn't implemented. And I don't just try to parse the entire HTTP-Response. I iterate thru the response and at the relevant line I write all the chars into a char-Array. I also have removed the \r and \n chars.
2 Answers 2
On 32 bit systems, uint32_t
is usually the same as unsigned int
and unsigned long
. You should be able to parse the number using strtoul()
, which is quite standard and returns an unsigned long
.
Thanks for the quick response. I also found another solution: Before echoing the time remove a large chuck of the time by just removing the current timestamp on the server-side. Later on I add the exact same amount when using the setEpoch()
function. I know that's not very elegant but it works for me.
-
How do you share the time base (that large chunk) between the Arduino and the PC?Dmitry Grigoryev– Dmitry Grigoryev2018年08月28日 08:34:23 +00:00Commented Aug 28, 2018 at 8:34
-
@DmitryGrigoryev, subtract epoch time of the first second of this year2018年08月28日 08:40:50 +00:00Commented Aug 28, 2018 at 8:40
-
So you already have current time set on both Arduino and the PC?Dmitry Grigoryev– Dmitry Grigoryev2018年08月28日 08:48:36 +00:00Commented Aug 28, 2018 at 8:48
-
@DmitryGrigoryev, read the question. he gets the time with HTTP GET request to his service on the server2018年08月28日 08:50:27 +00:00Commented Aug 28, 2018 at 8:50
-
@Juraj I totally don't see that in the question.Dmitry Grigoryev– Dmitry Grigoryev2018年08月28日 08:57:04 +00:00Commented Aug 28, 2018 at 8:57