jmuhammad wrote:roger wrote:New data is always appended to the end of the receive buffer, after which the display is updated. This implementation doesn't lend itself to move the cursor around in the display and thereby changing the point where new data is inserted.
Roger, I understand that. I also understand if offering this could lead to the impression that CT is not 'acting right'. What I was suggesting was that it be offered
with the understanding that if you scroll to the top while data is still coming in that it could either overwrite what is there or, IIRC if I CTRL+HOME while data is coming in the screen would just jump back to the bottom where I issued it and finish displaying incoming data; for me it did not start typing at 1,1...somehow CT remembered where it left off (maybe my settings).
So previously what I did was, since I was sending a fixed length report...in my case I displayed the contents of a 1kb EEPROM so the report with its header could be 9 rows up to 212 rows on CT. When the report was sent the uC STOPPED sending anymore data until the user typed a 'continuation' key on CT terminal. I had a fixed 5 second wait before it issued CTRL+HOME because I had no way feedback from CT when the report had ended. I waited because I too knew if I CTRL+HOME too early then it would just falcon dive to the bottom, finish, then I'd have to manually scroll to the top. 5 seconds isn't too long but someday I will send much larger memory maps...so instead of a large one-size-fits-all buffer e.g. 20 seconds for a 16kb memory but same 20 seconds for a little 512b part

, I wanted to precisely know when it was done and then CTRL-HOME. So yes, it would be up to the user to not use it if data is still incoming. But since they control what is sent nobody would not tell their transmitter to send 'ASCII 3' or 'ESC[1;1H' unless it was at the end of the transmission.
Now my GUI commands the uC via CT serial port to send EE report back to CT, the last character is ASCII 3, then wait in while(). The GUI then continually checks every 500mS (up to 10 seconds) for the ASCII 3 character; if it sees it then it knows that it is at the end of the report and no more data is coming so CTRL+HOME is OK. The result is I am at the top of the 213 line report and I can, at my leisure manually scroll down or up and review, print, copy, etc. the data. When I am done, I just press my 'continuation' key into CT which sends it to a waiting uC, who in turn starts sending new data (BTW, I clear screen just before this so it starts anew).
It works really well. Well, I have a path for CTRL home which I will use with every project where CT is monitoring. 'ASCII 3' or 'ESC[1;1H' could work natively for CT if, again CT states that this is not PAUSE (CTRL+SHIFT+A), this is CTRL+HOME. The method I now use, all I have to do is make sure the CT Receive Buffer Size is large enough for the report I am expecting (right now I have it set to 20000 because my 1kb report now is 18,832 characters); if not my report gets cutoff at the top

.