Go Down

Topic: What triggers the timestamp in IDE 1.8.6 monitor? (Read 277 times) previous topic - next topic

JohnRob

Hi,

I'm trying to use the timestamp feature in the monitor window.  Timestamps seems to be inconsistent (although I suspect it is me being inconsistent).

It doesn't appear to be a simply a Serial.print or Serial.println command.

No info it the "documentation"

Can someone enlighten me?

Thanks

John


Please do not PM me with thread based messages.  If your thoughts are worth responding,  the group should benefit from your insight.

pert

I'm trying to use the timestamp feature in the monitor window.  Timestamps seems to be inconsistent (although I suspect it is me being inconsistent).
I've never used it before now and I also find it to be very inconsistent in Arduino IDE 1.8.7. Sometimes I get one timestamp on the first line after I start the Serial Monitor, but then no additional timestamps. Other times I get no timestamp at all.

I expect a timestamp added on every line, like this screenshot from one of the Arduino developers posted during testing:
https://github.com/arduino/Arduino/pull/5921#issuecomment-276375014


What sort of inconsistency are you encountering?

Which operating system are you using (I'm on Windows)?

It doesn't appear to be a simply a Serial.print or Serial.println command.
No, it's nothing running on your Arduino's microcontroller. It's code in the Serial Monitor program.

No info it the "documentation"
It's fairly typical for Arduino to do a bunch of effort to add a new feature but never bother to document it. In the case of an obvious, self-explanatory feature that's not such a problem. I would think timestamp is such a feature but since we're both having troubles with it either there is a bug or else the usage is non-obvious.

JohnRob

Thanks for the response.

I'm using Windows 7/64 pro.

I'm happy it not me :) but would still like it to work as (not) advertised.

I'll try some simple configurations and see if I can find a logical solution.

John
Please do not PM me with thread based messages.  If your thoughts are worth responding,  the group should benefit from your insight.

pert

You forgot to answer my question:
What sort of inconsistency are you encountering?

JohnRob

In the below code, "Loop Count" is in one function
all the others are in another function.

They are consistent for each loop but I can't find any logic that would suggest why some show the timestamp and others do not.

The lines that are just:
13:42:49.753 ->
are Serial.println();


Looking closer, perhaps the first Serial.print of a function (subroutine) might be missing the timestamp.  I'll have to perform some testing.


John




Code: [Select]
13:42:49.753 ->
Loop Count =  1
Loop Count =  2
Loop Count =  3
Loop Count =  4
 state change
 ------ in update_stateArray --------
 state change
 ------ in update_stateArray --------
13:43:28.457 -> stateArray
13:43:28.457 -> start byte      FE
13:43:28.457 -> 2nd byte        EE
13:43:28.457 -> 1 if change     1
13:43:28.457 -> pressureOK     0
13:43:28.457 -> remote            2
13:43:28.457 -> faults   2
13:43:28.457 -> alarm           0
13:43:28.457 -> fault           4
13:43:28.457 -> override           0
13:43:28.457 -> stop byte       DE
13:43:28.457 ->
13:43:28.457 ->
Loop Count =  5
Loop Count =  6
Loop Count =  7
Loop Count =  8
Loop Count =  9
Loop Count =  10
Loop Count =  11
Loop Count =  12
Loop Count =  13
Loop Count =  14
Loop Count =  15
Loop Count =  16
Loop Count =  17
Loop Count =  18
Please do not PM me with thread based messages.  If your thoughts are worth responding,  the group should benefit from your insight.

JohnRob

I upgraded to V 1.8.7 before my testing but I suspect the version is not critical.


I found the timestamp would not display unless there was a Serial.println (); prior to any other Serial.print  functions.

This seems to apply to each routine.   I did  not test if the same routine was called in consecutive order but I suspect the 2nd call would react like a "new" routine.


The timestamp would start after:
    Serial.println ();
    Serial.print ('\n');

but NOT after
    Serial.print(" ");
    Serial.print('\r\);

Note:  Any additional information on this topic would be gratefully received.

John
Please do not PM me with thread based messages.  If your thoughts are worth responding,  the group should benefit from your insight.

pert

This is really screwy. This code:
Code: [Select]
void setup() {
  Serial.begin(9600);
  Serial.println("setup1");
  Serial.println("setup2");
  Serial.println("setup3");
  Serial.println("setup4");
  Serial.println("setup5");
  Serial.println("setup6");
  delay(1000);
  Serial.println("setup7");
  delay(1000);
  Serial.println("setup8");
  Serial.println("setup9");
  Serial.println("setup10");
  Serial.println("setup11");
}

void loop() { 
  Serial.println("hello");
    delay(1000);
}

Gives this output:
Code: [Select]
setup1
14:23:44.528 -> setup2
14:23:44.528 -> setup3
14:23:44.528 -> setup4
14:23:44.575 -> setup5
14:23:44.575 -> setup6
setup7
setup8
14:23:46.524 -> setup9
14:23:46.524 -> setup10
14:23:46.571 -> setup11
14:23:46.571 -> hello
hello
hello
hello

So it's affected by delays. I have trouble believing it would intentionally work this way. If it is intentional then it absolutely needs documentation.

JohnRob

#7
Sep 24, 2018, 12:55 am Last Edit: Sep 24, 2018, 01:19 am by JohnRob
OK, I didn't test that.

Perhaps a general rule might be:

"To obtain timestamped print statements one must precede any print statement or group of print statements by a println."


John
Please do not PM me with thread based messages.  If your thoughts are worth responding,  the group should benefit from your insight.

barsznica

For me, it doesn't seem to follow "To obtain timestamped print statements one must precede any print statement or group of print statements by a println."

To me, it seems to print the timestamp (reliably twice) after a "\n\t"?
Lights, music, electronics, Action!

JohnRob

Ok then....

Perhaps the general rule is there is no general rule, but results are better after

Serial.print('\n')
   or
Serial.print('\n\r')
   or
Serial.println ()


John
Please do not PM me with thread based messages.  If your thoughts are worth responding,  the group should benefit from your insight.


Go Up