hyOzd / serialplot

Small and simple software for plotting data from serial port in realtime.
https://hackaday.io/project/5334-serialplot-realtime-plotting-software
GNU General Public License v3.0
723 stars 180 forks source link

SerialPlot limits fixed or payload size frames to 255 or less bytes #8

Closed GitDave99 closed 3 years ago

GitDave99 commented 3 years ago

I really need to have frames that are longer than 255 bytes.

I really like the triggered frame mode, like an O'scope. But I need 400 bytes per channel, at least, and up to 6 channels max, 4 channels typical, 2 channels minimum.

Another issue, version 0.12 and 0.11; if in ASCII mode, which by the way cannot receive my ASCII data at all, except as a raw binary stream in SP, when I click on Simple Binary button, the program freezes up, may or may not recover and show the binary stream on the chart. May have to use Task Manager to kill SP in that case.

ASCII mode: I'm trying to test if I can use it to circumvent the frame limitations in Custom Frame mode (255 or less total bytes). Using any other terminal program, I can see my ASCII formatted data from my project. Yet in SP, in ASCII mode, no data received... in text window, no data... If I am in Simple Binary mode, in text window I see my ASCII data. But no graphs.

Sigh. I am beyond frustrated trying to find a solution.

Keep up the good work, aside from the frame limits, I'm really happy with your program!

Regards Dave PS. below is the Pic Basic Pro 3.0 routine I'm using to try to get ASCII working in SerialPlot. Binary data works fine but I need more, more bytes per frame!. As you can see, I've tried various permutations on the theme, to no avail. Binary works fine.

'###############################################
DBUG_DATA: 'USE THIS TO VIEW DATA ARRAYS OUTSIDE OF INNER LOOPS DEBUG "A",",", "B" , "," 'FRAME START HEADER 'DEBUG "200" 'PAYLOAD OR BUFFER SIZE TO BE SENT CRAP, 255 IS LIMIT! 'DEBUG 255,255 'DEBUG 200 FOR INDEX = 0 TO 19'9
debug DEC SLEW_RATEL(INDEX) DEBUG "," debug DEC SLEW_RATER(INDEX) 'DEBUG "," 'DEBUG "\r", "\n" NEXT 'DEBUG "\r", "\n"

RETURN

hyOzd commented 3 years ago

@GitDave99 I could increase the size limit that's not a problem.

But I have a question. Since you already send the frame size from the device, why don't you just send multiple frames? Frame size doesn't have to be same. For example if you need to send 400 bytes, you can send 2 of 200 bytes frames. From the perspective of SerialPlot it shouldn't make any difference.

Just remember, each frame should contain full pack of data for each channel. For example if you have 3 channels in 'uint16_t' format. Each frame should contain multiple of 3 * 2 = 6 bytes data. You can stop at 5 bytes and send the remaining 1 byte in the next frame.

Regarding the problem you had with ASCII mode. Can you share the raw data you captured with the terminal application. Maybe in a separate ticket? BTW ASCII implementation is very inefficient. Maybe that is causing problems.

GitDave99 commented 3 years ago

Hello Hasan,

Well, great minds think alike! I tried that very thing, but instead of concatenated data traces, I got "double exposure" traces as Serial Plot takes the frame trigger/size (or no size) as the reason to start a new trace(s). Which is proper and reasonable, yes?

I send the data in a batch, not one at a time (as in one byte per main loop). I have four arrays of data, two raw and two processed. At the end of the main loop, I have a call to a routine that sends two or all four of the arrays a pair or four per loop in the subroutine, until all are sent, then it exits to the main routine and around we go again..

I did notice that SerialPlot was picky about the number of bytes per frame, as you said, I like the "all is well"! Good feedback for hapless user.

I never tried sending ASCII until I became desperate to see all my data in one screen for all two or four traces. Then, NOTHING I did would make SerialPlot show the data! Yeah, overhead and inefficiency plague ASCII transfers. I don't really want to send data for display that way.

So... 255 (or really 254) bytes per frame, no matter how many channels. How do I work around that? I tried lots of things, just whatever came to mind and even some random things... nothing gets me my goal!

Wow, how great for my purposes to see four traces of binary (byte) data with four times 400 (or more, I'm greedy, but right now my ADC in the chip is too slow to get more samples in 30mSeconds) bytes in the frame. Do we agree that a frame is like a video frame? that is, it consists of what you see on the display? I have done a lot of work in analog and digital video, so it's easy for me to think in that way.

But I can also see it as a frame of serial data over the RS232 link. Which way are we using in our communications here? (smile) The thing is, a frame or frames of data end up as a frame of "video" on the display, so it's not hard to get them confused.

Thank you for your attention to my poor needs. I've gone nuts trying to find any solution, free, paid, ... nothing. Wow, if you can fix my problem, well, just wow! I've been using SerialPlot for smaller projects for some years, like it well!

A quick aside, Microchip MPLab X 5.5 does have XScope, four channels of data, four channels of triggered traces! But... and this is a big but... I don't program in C. MPLab does allow MELabs PIC Basic Pro compiler to be used in their IDE. I have it installed, but I have NO idea how to get it to work in that environment... yet. Their customer service and web are down for maintenance this weekend. From what I've seen so far, it's not a given that their IDE will hook XScope to a "foreign" non-C compiler once I know how to use PBP compiler in that IDE.

Best regards and stay healthy! Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sun, Jul 4, 2021 at 8:52 AM Hasan Yavuz ÖZDERYA @.***> wrote:

@GitDave99 https://github.com/GitDave99 I could increase the size limit that's not a problem.

But I have a question. Since you already send the frame size from the device, why don't you just send multiple frames? Frame size doesn't have to be same. For example if you need to send 400 bytes, you can send 2 of 200 bytes frames. From the perspective of SerialPlot it shouldn't make any difference.

Just remember, each frame should contain full pack of data for each channel. For example if you have 3 channels in 'uint16_t' format. Each frame should contain multiple of 3 * 2 = 6 bytes data. You can stop at 5 bytes and send the remaining 1 byte in the next frame.

Regarding the problem you had with ASCII mode. Can you share the raw data you captured with the terminal application. Maybe in a separate ticket? BTW ASCII implementation is very inefficient. Maybe that is causing problems.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-873615511, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZAKAML6AAU5FIP3EDTWB7TRANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hi Hasan,

This is my routine to send data for display. I also tried splitting it up into two loops, one with index from 0 to 199, the next with index from 200 to 399. All that did was to overlay the second half over the first half of the data on the display. That seems reasonable to me, given the nature and function of a trigger!

DBUG_DATA: 'USE THIS TO VIEW DATA ARRAYS OUTSIDE OF INNER LOOPS DEBUG 170,187 'FRAME START HEADER DEBUG 254,0 'PAYLOAD SIZE TO BE SENT PLUS FILLER

FOR INDEX = 0 TO 254
    debug  SLEW_RATEL(INDEX)
    debug  SLEW_RATER(INDEX)     ' TWICE MORE FOR OTHER DATA ARRAYS
NEXT

RETURN

DEBUG command sends binary (byte) data at a preset rate (115200) and pins, 8N1. Standard stuff. It can send ASCII data easily with modifiers, but we don't need to go into that because ASCII is not the solution.

I'm not sure I get how you mean to divide up the data to work around the size limit and still see 400 samples on one screen. Perhaps we can work from this template to get a better idea of how your workaround idea functions.

be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sun, Jul 4, 2021 at 8:52 AM Hasan Yavuz ÖZDERYA @.***> wrote:

@GitDave99 https://github.com/GitDave99 I could increase the size limit that's not a problem.

But I have a question. Since you already send the frame size from the device, why don't you just send multiple frames? Frame size doesn't have to be same. For example if you need to send 400 bytes, you can send 2 of 200 bytes frames. From the perspective of SerialPlot it shouldn't make any difference.

Just remember, each frame should contain full pack of data for each channel. For example if you have 3 channels in 'uint16_t' format. Each frame should contain multiple of 3 * 2 = 6 bytes data. You can stop at 5 bytes and send the remaining 1 byte in the next frame.

Regarding the problem you had with ASCII mode. Can you share the raw data you captured with the terminal application. Maybe in a separate ticket? BTW ASCII implementation is very inefficient. Maybe that is causing problems.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-873615511, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZAKAML6AAU5FIP3EDTWB7TRANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hi Hasan,

Here's the scenario: 1) the routine as shown in an earlier email, sends trigger AA FF, 254 and then 0 then enters a loop to send bytes from two arrays on each iteration. 2) buffer in SP set for 254, plot size for 400 (ignored, no effect on display). If I set the buffer for 400, I get multiples of the data across the screen. 3) since your payload limit is global (includes all the data sent, not on a per array basis) I cannot see more than 127 or 64 bytes on the display depending on how many arrays (traces) sent.

Below we see the data repeated twice on the display. Note the cluster of 3 peaks at ~90 and again at ~220. At 0 and 128, too.

[image: image.png] Help~~~~

Thanks so much! Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sun, Jul 4, 2021 at 8:52 AM Hasan Yavuz ÖZDERYA @.***> wrote:

@GitDave99 https://github.com/GitDave99 I could increase the size limit that's not a problem.

But I have a question. Since you already send the frame size from the device, why don't you just send multiple frames? Frame size doesn't have to be same. For example if you need to send 400 bytes, you can send 2 of 200 bytes frames. From the perspective of SerialPlot it shouldn't make any difference.

Just remember, each frame should contain full pack of data for each channel. For example if you have 3 channels in 'uint16_t' format. Each frame should contain multiple of 3 * 2 = 6 bytes data. You can stop at 5 bytes and send the remaining 1 byte in the next frame.

Regarding the problem you had with ASCII mode. Can you share the raw data you captured with the terminal application. Maybe in a separate ticket? BTW ASCII implementation is very inefficient. Maybe that is causing problems.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-873615511, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZAKAML6AAU5FIP3EDTWB7TRANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hi Hasan,

Last one, then I await your input. (see comments in the code)

DBUG_DATA: 'USE THIS TO VIEW DATA ARRAYS OUTSIDE OF INNER LOOPS DEBUG 170,187 'FRAME START HEADER DEBUG 200,0 'PAYLOAD SIZE TO BE SENT PLUS FILLER

FOR INDEX = 0 TO 199
    debug  SLEW_RATEL(INDEX)
    debug  SLEW_RATER(INDEX)     ' TWICE MORE FOR OTHER DATA ARRAYS
next
DEBUG 170,187   'FRAME START HEADER
DEBUG 200,0      'PAYLOAD SIZE TO BE SENT PLUS FILLER
FOR INDEX = 200 TO 399
    DEBUG SLEW_RATEl(INDEX)
    DEBUG SLEW_RATER(INDEX)
NEXT

'Hi Hasan, to the best of my knowledge, this instantiates your workaround idea 'but it makes the second 200 data points overlay the first 200 in a double 'exposure way, flickering A/B over and over ad infinitum. ; I also tried it without the second trigger/size packet, neither way ; provides the desired result. Is there another way round the size limit? ; make size limit bigger! Four traces of 400 bytes each is 1600 bytes obviously.

rETURN

On Sun, Jul 4, 2021 at 8:52 AM Hasan Yavuz ÖZDERYA @.***> wrote:

@GitDave99 https://github.com/GitDave99 I could increase the size limit that's not a problem.

But I have a question. Since you already send the frame size from the device, why don't you just send multiple frames? Frame size doesn't have to be same. For example if you need to send 400 bytes, you can send 2 of 200 bytes frames. From the perspective of SerialPlot it shouldn't make any difference.

Just remember, each frame should contain full pack of data for each channel. For example if you have 3 channels in 'uint16_t' format. Each frame should contain multiple of 3 * 2 = 6 bytes data. You can stop at 5 bytes and send the remaining 1 byte in the next frame.

Regarding the problem you had with ASCII mode. Can you share the raw data you captured with the terminal application. Maybe in a separate ticket? BTW ASCII implementation is very inefficient. Maybe that is causing problems.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-873615511, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZAKAML6AAU5FIP3EDTWB7TRANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hi Hasan,

A quick question: in ASCII mode, what does SerialPlot want to see in terms of headers, data formatting, footers, etc.?

I can't seem to find any info for what SerialPlot needs.

A second quick question: again in ASCII mode, does the "filter by prefix" work like a trigger?

Can you give me an example of the data format required?

Best regards and stay well Dave

On Sun, Jul 4, 2021 at 4:11 PM Dave Conrad @.***> wrote:

Hi Hasan,

Last one, then I await your input. (see comments in the code)

DBUG_DATA: 'USE THIS TO VIEW DATA ARRAYS OUTSIDE OF INNER LOOPS DEBUG 170,187 'FRAME START HEADER DEBUG 200,0 'PAYLOAD SIZE TO BE SENT PLUS FILLER

FOR INDEX = 0 TO 199
    debug  SLEW_RATEL(INDEX)
    debug  SLEW_RATER(INDEX)     ' TWICE MORE FOR OTHER DATA ARRAYS
next
DEBUG 170,187   'FRAME START HEADER
DEBUG 200,0      'PAYLOAD SIZE TO BE SENT PLUS FILLER
FOR INDEX = 200 TO 399
    DEBUG SLEW_RATEl(INDEX)
    DEBUG SLEW_RATER(INDEX)
NEXT

'Hi Hasan, to the best of my knowledge, this instantiates your workaround idea 'but it makes the second 200 data points overlay the first 200 in a double 'exposure way, flickering A/B over and over ad infinitum. ; I also tried it without the second trigger/size packet, neither way ; provides the desired result. Is there another way round the size limit? ; make size limit bigger! Four traces of 400 bytes each is 1600 bytes obviously.

rETURN

On Sun, Jul 4, 2021 at 8:52 AM Hasan Yavuz ÖZDERYA < @.***> wrote:

@GitDave99 https://github.com/GitDave99 I could increase the size limit that's not a problem.

But I have a question. Since you already send the frame size from the device, why don't you just send multiple frames? Frame size doesn't have to be same. For example if you need to send 400 bytes, you can send 2 of 200 bytes frames. From the perspective of SerialPlot it shouldn't make any difference.

Just remember, each frame should contain full pack of data for each channel. For example if you have 3 channels in 'uint16_t' format. Each frame should contain multiple of 3 * 2 = 6 bytes data. You can stop at 5 bytes and send the remaining 1 byte in the next frame.

Regarding the problem you had with ASCII mode. Can you share the raw data you captured with the terminal application. Maybe in a separate ticket? BTW ASCII implementation is very inefficient. Maybe that is causing problems.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-873615511, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZAKAML6AAU5FIP3EDTWB7TRANCNFSM47VUDQ4Q .

hyOzd commented 3 years ago

Unfortunately SerialPlot doesn't properly document the "Custom Frame" format option. So let me clarify a few things.

First of all, frame isn't like a framebuffer. A frame isn't what you see on the screen. There is a separate buffer of what you see on the screen. Size of this buffer is adjusted from the "Plot" tab. It is simply called "Buffer Size". Data that is sent from the device is simply added to this buffer which works like a ring buffer. As it fills up we cut from the beginning which means buffer always stays at a constant size. BTW there is a separate buffer for each channel. This setting is the size for only one of the buffers.

When a frame is received, samples of different channels are separated and put into their respective buffers.

There is no 'trigger' behavior at the moment. If you see any triggering behavior it is by luck probably.

Now regarding the frame format, I think your code is mostly okay. But you misunderstood what frame size corresponds to. In your latest piece of code it seems like you used frame size as "number of samples per channel". Frame size is actually total payload. Let me give you an example; assuming your data type is uint16_t (2 bytes) and there are 4 channels. If you send 10 samples in a frame. Frame size should be set as 2 4 10 = 80.

Here is a picture that I draw previously that illustrates how samples should appear in a frame. But I think you already implemented that correctly. Please note that in this example there is no "frame size" byte. It is just set from the UI.

image


ASCII data format is fairly simple. Each line contains samples from all channels. Like this:

100, 200, 300
110, 220, 330
111, 222, 333
...

There are no headers etc. You can set the number of channels from the SerialPlot. Or if you set it to 0 it is determined from incoming data.

Filter by prefix, isn't a triggering mechanism. When you have to send some other information along with your data you can use this so that SerialPlot can separate actual data from other text.

GitDave99 commented 3 years ago

Hi Hasan

Thanks, your explanations make things more clear. I know the difference between frame of data and video or display frame, I wanted to get clarity on the point so we wouldn't be at cross-purposes. Good!

I tried making the buffer in the plot dialog bigger, say 800 when I am sending two channels of 400 bytes each, where a byte is the size of the individual payload pieces. All I got was two iterations of one half of the data, repeated on the display in your graph window. I tried LOTS of permutations of sizes, never got me to the solution I need: 400 samples per channel, displayed on the graph in a stable, non-scrolling manner.

Scrolling display is useless for my analysis. It's like trying to watch a movie as a scrolling display of frames. Without the trigger to hold it still, well, it's a moving target.

To the point, how can we achieve the stable display of triggered data larger than the current limits imposed by the design of the application?

On the other subject: ASCII... I tried that, no starting or ending characters, just sending ASCII over the serial port. Nope, Serial Port hates me...It won't display it. The text window won't show it either while in ASCII mode. Isn't that interesting? Better than that... While I am in ASCII mode, if I click on "Simple Binary" button, the program fades the display and may either lock up entirely or take a long time to free up and display the ASCII data as raw binary on the graph.

If I am sending ASCII while starting in "Simple Binary" mode and then go to the text window, the data shows up as numerals, not binary that may cause odd characters to appear.

That's just a detail, not my main subject.

How do we get my stream of four channels, each of 400 bytes of data, each byte being a UINT8, little-endian, to work in triggered mode, where "Frame Start" locks the beginning of the burst of streamed data to the left edge of the graph window?

Now that brings up your point about frames, exactly how does "Frame Start" behave in terms of my four channels of 400 bytes each? As you can see, I'm not entirely satisfied with a solution, I also prefer understanding, learning what's up.

Thank you for your time and effort! Hope we can get to a solution so I can get on with my work.

Best regards and be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 4:18 AM Hasan Yavuz ÖZDERYA @.***> wrote:

Unfortunately SerialPlot doesn't properly document the "Custom Frame" format option. So let me clarify a few things.

First of all, frame isn't like a framebuffer. A frame isn't what you see on the screen. There is a separate buffer of what you see on the screen. Size of this buffer is adjusted from the "Plot" tab. It is simply called "Buffer Size". Data that is sent from the device is simply added to this buffer which works like a ring buffer. As it fills up we cut from the beginning which means buffer always stays at a constant size. BTW there is a separate buffer for each channel. This setting is the size for only one of the buffers.

When a frame is received, samples of different channels are separated and put into their respective buffers.

There is no 'trigger' behavior at the moment. If you see any triggering behavior it is by luck probably.

Now regarding the frame format, I think your code is mostly okay. But you misunderstood what frame size corresponds to. In your latest piece of code it seems like you used frame size as "number of samples per channel". Frame size is actually total payload. Let me give you an example; assuming your data type is uint16_t (2 bytes) and there are 4 channels. If you send 10 samples in a frame. Frame size should be set as 2 4 10 = 80.

Here is a picture that I draw previously that illustrates how samples should appear in a frame. But I think you already implemented that correctly. Please note that in this example there is no "frame size" byte. It is just set from the UI.

[image: image] https://user-images.githubusercontent.com/1479166/124462509-6d192a80-dd9a-11eb-9c16-ce1b196b4525.png

ASCII data format is fairly simple. Each line contains samples from all channels. Like this:

100, 200, 300 110, 220, 330 111, 222, 333 ...

There are no headers etc. You can set the number of channels from the SerialPlot. Or if you set it to 0 it is determined from incoming data.

Filter by prefix, isn't a triggering mechanism. When you have to send some other information along with your data you can use this so that SerialPlot can separate actual data from other text.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-874032847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZ4UM3MHVOBDUJL2B3TWGIIRANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hi Hasan,

Yes, your point about total payload is something that is painfully obvious to me! the limit at 255 (UINT8, or whatever is set) bytes means I get only 127 each channel on the screen. If I set the buffer to 255 to match the "Frame Size" parameter (either in the app or from my stream) I get TWO iterations of my data, one after the other on the graph window.

I can set the buffer and plot window parameters to whatever my imagination may provide, I NEVER get all the data I want to see on the display.

Yep, in "Simple Binary" mode, I get all my data, but it is SCROLLING and to see it in a stable manner, I must stop the stream.

My analysis of my design requires I see the four channels like an oscilloscope display: triggered by some means to always start the display at the start of the stream. What can we do to implement that?

be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 12:33 PM Dave Conrad @.***> wrote:

Hi Hasan

Thanks, your explanations make things more clear. I know the difference between frame of data and video or display frame, I wanted to get clarity on the point so we wouldn't be at cross-purposes. Good!

I tried making the buffer in the plot dialog bigger, say 800 when I am sending two channels of 400 bytes each, where a byte is the size of the individual payload pieces. All I got was two iterations of one half of the data, repeated on the display in your graph window. I tried LOTS of permutations of sizes, never got me to the solution I need: 400 samples per channel, displayed on the graph in a stable, non-scrolling manner.

Scrolling display is useless for my analysis. It's like trying to watch a movie as a scrolling display of frames. Without the trigger to hold it still, well, it's a moving target.

To the point, how can we achieve the stable display of triggered data larger than the current limits imposed by the design of the application?

On the other subject: ASCII... I tried that, no starting or ending characters, just sending ASCII over the serial port. Nope, Serial Port hates me...It won't display it. The text window won't show it either while in ASCII mode. Isn't that interesting? Better than that... While I am in ASCII mode, if I click on "Simple Binary" button, the program fades the display and may either lock up entirely or take a long time to free up and display the ASCII data as raw binary on the graph.

If I am sending ASCII while starting in "Simple Binary" mode and then go to the text window, the data shows up as numerals, not binary that may cause odd characters to appear.

That's just a detail, not my main subject.

How do we get my stream of four channels, each of 400 bytes of data, each byte being a UINT8, little-endian, to work in triggered mode, where "Frame Start" locks the beginning of the burst of streamed data to the left edge of the graph window?

Now that brings up your point about frames, exactly how does "Frame Start" behave in terms of my four channels of 400 bytes each? As you can see, I'm not entirely satisfied with a solution, I also prefer understanding, learning what's up.

Thank you for your time and effort! Hope we can get to a solution so I can get on with my work.

Best regards and be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#m_-6943244451870112452_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 4:18 AM Hasan Yavuz ÖZDERYA < @.***> wrote:

Unfortunately SerialPlot doesn't properly document the "Custom Frame" format option. So let me clarify a few things.

First of all, frame isn't like a framebuffer. A frame isn't what you see on the screen. There is a separate buffer of what you see on the screen. Size of this buffer is adjusted from the "Plot" tab. It is simply called "Buffer Size". Data that is sent from the device is simply added to this buffer which works like a ring buffer. As it fills up we cut from the beginning which means buffer always stays at a constant size. BTW there is a separate buffer for each channel. This setting is the size for only one of the buffers.

When a frame is received, samples of different channels are separated and put into their respective buffers.

There is no 'trigger' behavior at the moment. If you see any triggering behavior it is by luck probably.

Now regarding the frame format, I think your code is mostly okay. But you misunderstood what frame size corresponds to. In your latest piece of code it seems like you used frame size as "number of samples per channel". Frame size is actually total payload. Let me give you an example; assuming your data type is uint16_t (2 bytes) and there are 4 channels. If you send 10 samples in a frame. Frame size should be set as 2 4 10 = 80.

Here is a picture that I draw previously that illustrates how samples should appear in a frame. But I think you already implemented that correctly. Please note that in this example there is no "frame size" byte. It is just set from the UI.

[image: image] https://user-images.githubusercontent.com/1479166/124462509-6d192a80-dd9a-11eb-9c16-ce1b196b4525.png

ASCII data format is fairly simple. Each line contains samples from all channels. Like this:

100, 200, 300 110, 220, 330 111, 222, 333 ...

There are no headers etc. You can set the number of channels from the SerialPlot. Or if you set it to 0 it is determined from incoming data.

Filter by prefix, isn't a triggering mechanism. When you have to send some other information along with your data you can use this so that SerialPlot can separate actual data from other text.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-874032847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZ4UM3MHVOBDUJL2B3TWGIIRANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hi Hasan

Just to illustrate my point about ASCII failing to work (on my PC for some reason, not saying it doesn't work at all in the app) here is the output from my DBUG routine while sending ASCII characters. Indeed, I set one of the lines of code to make one variable in decimal and the other in hexadecimal. No response from SerialPlot in graph or text windows.

FOR INDEX = 0 TO 399
    debug hex SLEW_RATEL(INDEX)
    debug dec SLEW_RATER(INDEX)     ' TWICE MORE FOR OTHER DATA ARRAYS
NEXT

Here's what a terminal app received: [image: image.png]

I don't understand why SerialPlot refuses to receive/display graph/text of this data stream while set for ASCII mode. I just noticed I forgot to include a (debug ",") between the characters... but it makes no difference, the results are teh same. Believe me, I tried many permutations of reasonable methods... SerialPlot on my PC never responds to or displays text or graphics of ASCII streams.

[image: image.png] [image: image.png] No data on graphic display, no data in text display in Serial Plot in ASCII mode. Ever see this issue before?

But this is a digression from my need for a solution to triggered data limits in Serial Plot.

You mentioned modifying that limit. Wow! I do believe that would solve the problem. Difficult to do?

Best regards Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 12:41 PM Dave Conrad @.***> wrote:

Hi Hasan,

Yes, your point about total payload is something that is painfully obvious to me! the limit at 255 (UINT8, or whatever is set) bytes means I get only 127 each channel on the screen. If I set the buffer to 255 to match the "Frame Size" parameter (either in the app or from my stream) I get TWO iterations of my data, one after the other on the graph window.

I can set the buffer and plot window parameters to whatever my imagination may provide, I NEVER get all the data I want to see on the display.

Yep, in "Simple Binary" mode, I get all my data, but it is SCROLLING and to see it in a stable manner, I must stop the stream.

My analysis of my design requires I see the four channels like an oscilloscope display: triggered by some means to always start the display at the start of the stream. What can we do to implement that?

be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#m_-2420505630843354905_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 12:33 PM Dave Conrad @.***> wrote:

Hi Hasan

Thanks, your explanations make things more clear. I know the difference between frame of data and video or display frame, I wanted to get clarity on the point so we wouldn't be at cross-purposes. Good!

I tried making the buffer in the plot dialog bigger, say 800 when I am sending two channels of 400 bytes each, where a byte is the size of the individual payload pieces. All I got was two iterations of one half of the data, repeated on the display in your graph window. I tried LOTS of permutations of sizes, never got me to the solution I need: 400 samples per channel, displayed on the graph in a stable, non-scrolling manner.

Scrolling display is useless for my analysis. It's like trying to watch a movie as a scrolling display of frames. Without the trigger to hold it still, well, it's a moving target.

To the point, how can we achieve the stable display of triggered data larger than the current limits imposed by the design of the application?

On the other subject: ASCII... I tried that, no starting or ending characters, just sending ASCII over the serial port. Nope, Serial Port hates me...It won't display it. The text window won't show it either while in ASCII mode. Isn't that interesting? Better than that... While I am in ASCII mode, if I click on "Simple Binary" button, the program fades the display and may either lock up entirely or take a long time to free up and display the ASCII data as raw binary on the graph.

If I am sending ASCII while starting in "Simple Binary" mode and then go to the text window, the data shows up as numerals, not binary that may cause odd characters to appear.

That's just a detail, not my main subject.

How do we get my stream of four channels, each of 400 bytes of data, each byte being a UINT8, little-endian, to work in triggered mode, where "Frame Start" locks the beginning of the burst of streamed data to the left edge of the graph window?

Now that brings up your point about frames, exactly how does "Frame Start" behave in terms of my four channels of 400 bytes each? As you can see, I'm not entirely satisfied with a solution, I also prefer understanding, learning what's up.

Thank you for your time and effort! Hope we can get to a solution so I can get on with my work.

Best regards and be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#m_-2420505630843354905m-6943244451870112452_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 4:18 AM Hasan Yavuz ÖZDERYA < @.***> wrote:

Unfortunately SerialPlot doesn't properly document the "Custom Frame" format option. So let me clarify a few things.

First of all, frame isn't like a framebuffer. A frame isn't what you see on the screen. There is a separate buffer of what you see on the screen. Size of this buffer is adjusted from the "Plot" tab. It is simply called "Buffer Size". Data that is sent from the device is simply added to this buffer which works like a ring buffer. As it fills up we cut from the beginning which means buffer always stays at a constant size. BTW there is a separate buffer for each channel. This setting is the size for only one of the buffers.

When a frame is received, samples of different channels are separated and put into their respective buffers.

There is no 'trigger' behavior at the moment. If you see any triggering behavior it is by luck probably.

Now regarding the frame format, I think your code is mostly okay. But you misunderstood what frame size corresponds to. In your latest piece of code it seems like you used frame size as "number of samples per channel". Frame size is actually total payload. Let me give you an example; assuming your data type is uint16_t (2 bytes) and there are 4 channels. If you send 10 samples in a frame. Frame size should be set as 2 4 10 = 80.

Here is a picture that I draw previously that illustrates how samples should appear in a frame. But I think you already implemented that correctly. Please note that in this example there is no "frame size" byte. It is just set from the UI.

[image: image] https://user-images.githubusercontent.com/1479166/124462509-6d192a80-dd9a-11eb-9c16-ce1b196b4525.png

ASCII data format is fairly simple. Each line contains samples from all channels. Like this:

100, 200, 300 110, 220, 330 111, 222, 333 ...

There are no headers etc. You can set the number of channels from the SerialPlot. Or if you set it to 0 it is determined from incoming data.

Filter by prefix, isn't a triggering mechanism. When you have to send some other information along with your data you can use this so that SerialPlot can separate actual data from other text.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-874032847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZ4UM3MHVOBDUJL2B3TWGIIRANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hello Hasan,

Just one question, it's a yes or no answer:

Are you willing to increase the frame limit in SerialPlot?

Thanks for your kind attention to my pitiful needs, Dave

On Mon, Jul 5, 2021 at 1:01 PM Dave Conrad @.***> wrote:

Hi Hasan

Just to illustrate my point about ASCII failing to work (on my PC for some reason, not saying it doesn't work at all in the app) here is the output from my DBUG routine while sending ASCII characters. Indeed, I set one of the lines of code to make one variable in decimal and the other in hexadecimal. No response from SerialPlot in graph or text windows.

FOR INDEX = 0 TO 399
    debug hex SLEW_RATEL(INDEX)
    debug dec SLEW_RATER(INDEX)     ' TWICE MORE FOR OTHER DATA ARRAYS
NEXT

Here's what a terminal app received: [image: image.png]

I don't understand why SerialPlot refuses to receive/display graph/text of this data stream while set for ASCII mode. I just noticed I forgot to include a (debug ",") between the characters... but it makes no difference, the results are teh same. Believe me, I tried many permutations of reasonable methods... SerialPlot on my PC never responds to or displays text or graphics of ASCII streams.

[image: image.png] [image: image.png] No data on graphic display, no data in text display in Serial Plot in ASCII mode. Ever see this issue before?

But this is a digression from my need for a solution to triggered data limits in Serial Plot.

You mentioned modifying that limit. Wow! I do believe that would solve the problem. Difficult to do?

Best regards Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#m_-4640751502060504974_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 12:41 PM Dave Conrad @.***> wrote:

Hi Hasan,

Yes, your point about total payload is something that is painfully obvious to me! the limit at 255 (UINT8, or whatever is set) bytes means I get only 127 each channel on the screen. If I set the buffer to 255 to match the "Frame Size" parameter (either in the app or from my stream) I get TWO iterations of my data, one after the other on the graph window.

I can set the buffer and plot window parameters to whatever my imagination may provide, I NEVER get all the data I want to see on the display.

Yep, in "Simple Binary" mode, I get all my data, but it is SCROLLING and to see it in a stable manner, I must stop the stream.

My analysis of my design requires I see the four channels like an oscilloscope display: triggered by some means to always start the display at the start of the stream. What can we do to implement that?

be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#m_-4640751502060504974m-2420505630843354905_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 12:33 PM Dave Conrad @.***> wrote:

Hi Hasan

Thanks, your explanations make things more clear. I know the difference between frame of data and video or display frame, I wanted to get clarity on the point so we wouldn't be at cross-purposes. Good!

I tried making the buffer in the plot dialog bigger, say 800 when I am sending two channels of 400 bytes each, where a byte is the size of the individual payload pieces. All I got was two iterations of one half of the data, repeated on the display in your graph window. I tried LOTS of permutations of sizes, never got me to the solution I need: 400 samples per channel, displayed on the graph in a stable, non-scrolling manner.

Scrolling display is useless for my analysis. It's like trying to watch a movie as a scrolling display of frames. Without the trigger to hold it still, well, it's a moving target.

To the point, how can we achieve the stable display of triggered data larger than the current limits imposed by the design of the application?

On the other subject: ASCII... I tried that, no starting or ending characters, just sending ASCII over the serial port. Nope, Serial Port hates me...It won't display it. The text window won't show it either while in ASCII mode. Isn't that interesting? Better than that... While I am in ASCII mode, if I click on "Simple Binary" button, the program fades the display and may either lock up entirely or take a long time to free up and display the ASCII data as raw binary on the graph.

If I am sending ASCII while starting in "Simple Binary" mode and then go to the text window, the data shows up as numerals, not binary that may cause odd characters to appear.

That's just a detail, not my main subject.

How do we get my stream of four channels, each of 400 bytes of data, each byte being a UINT8, little-endian, to work in triggered mode, where "Frame Start" locks the beginning of the burst of streamed data to the left edge of the graph window?

Now that brings up your point about frames, exactly how does "Frame Start" behave in terms of my four channels of 400 bytes each? As you can see, I'm not entirely satisfied with a solution, I also prefer understanding, learning what's up.

Thank you for your time and effort! Hope we can get to a solution so I can get on with my work.

Best regards and be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#m_-4640751502060504974m-2420505630843354905m-6943244451870112452_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Jul 5, 2021 at 4:18 AM Hasan Yavuz ÖZDERYA < @.***> wrote:

Unfortunately SerialPlot doesn't properly document the "Custom Frame" format option. So let me clarify a few things.

First of all, frame isn't like a framebuffer. A frame isn't what you see on the screen. There is a separate buffer of what you see on the screen. Size of this buffer is adjusted from the "Plot" tab. It is simply called "Buffer Size". Data that is sent from the device is simply added to this buffer which works like a ring buffer. As it fills up we cut from the beginning which means buffer always stays at a constant size. BTW there is a separate buffer for each channel. This setting is the size for only one of the buffers.

When a frame is received, samples of different channels are separated and put into their respective buffers.

There is no 'trigger' behavior at the moment. If you see any triggering behavior it is by luck probably.

Now regarding the frame format, I think your code is mostly okay. But you misunderstood what frame size corresponds to. In your latest piece of code it seems like you used frame size as "number of samples per channel". Frame size is actually total payload. Let me give you an example; assuming your data type is uint16_t (2 bytes) and there are 4 channels. If you send 10 samples in a frame. Frame size should be set as 2 4 10 = 80.

Here is a picture that I draw previously that illustrates how samples should appear in a frame. But I think you already implemented that correctly. Please note that in this example there is no "frame size" byte. It is just set from the UI.

[image: image] https://user-images.githubusercontent.com/1479166/124462509-6d192a80-dd9a-11eb-9c16-ce1b196b4525.png

ASCII data format is fairly simple. Each line contains samples from all channels. Like this:

100, 200, 300 110, 220, 330 111, 222, 333 ...

There are no headers etc. You can set the number of channels from the SerialPlot. Or if you set it to 0 it is determined from incoming data.

Filter by prefix, isn't a triggering mechanism. When you have to send some other information along with your data you can use this so that SerialPlot can separate actual data from other text.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-874032847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZ4UM3MHVOBDUJL2B3TWGIIRANCNFSM47VUDQ4Q .

ppescher commented 3 years ago

@GitDave99 just trying to pin-point your issue: Do you see anything in the TextView panel (after you check "enable")? Is the text format correct as expected? Are you sending end of line characters? Which ones? Could it be a serial port configuration issue (baudrate, number of bits, parity)? What serial adapter are you using to connect to your PC? Does communication with your system require handshake/flow-control signals? What about DTR/RTS state (are they enabled, do you need them to be so)?

hyOzd commented 3 years ago

@GitDave99 I've added support for 2 byte size field a4b820c0df0f9696fe91f5fe5814ce3dfcfdc0c4

You can build it from master branch. Or if you are interested in testing a custom build, please let me know if you prefer linux or windows image.

GitDave99 commented 3 years ago

Wow! I'm not good at "building" software, but I would gladly test a windows build.

Thanks!

Hope your day goes well!

Dave

On Wed, Jul 7, 2021, 12:08 PM Hasan Yavuz ÖZDERYA @.***> wrote:

@GitDave99 https://github.com/GitDave99 I've added support for 2 byte size field a4b820c https://github.com/hyOzd/serialplot/commit/a4b820c0df0f9696fe91f5fe5814ce3dfcfdc0c4

You can build it from master branch. Or if you are interested in testing a custom build, please let me know if you prefer linux or windows image.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-875859398, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPNZNFHLHHOCYLDZXO5DTWSQ4FANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hi Paolo

I don't intend to use ASCII data transfer, I was just trying it to see if I could find a fast workaround for too-small triggered visualization fields.

While trying it out, I noted that 1) no data showing on screen, while operating SerialPlot in ASCII mode 2) opening text box and enabling it, no data in that window. Hmmmm.... 3) going back to the input mode screen (simple binary, ASCII, etc.) I set it for Simple Binary. 4) data is showing on the screen, verifying my ASCII characters are transmitted via RS232 to the PC, hence SerialPlot 5) going to the text box, enabled, yep, there it is.

Yes, my serial interface works fine. No, there are no other issues with my PC that would prevent ASCII from showing on the SP text screen. Other terminal programs (in my IDE, other apps) show ASCII from my target MCU just fine. It just raised an eyebrow... and my curiosity.

So, I was just wondering why my installation of SerialPlot refused to accept or display ASCII data? Just curiosity, I have no need for it, it's too slow for my purposes.

Meanwhile, Hasan says he will soon have a Windows build for me to test, that extends triggered operation from 255 to 65535 (bytes, words, etc.)

That perks me up some, I must say! My data analysis can't function (brain...) without being able to see the data in a stable manner.

Thanks for your interest,

Dave

On Wed, Jul 7, 2021 at 4:48 AM Paolo Messina @.***> wrote:

@GitDave99 https://github.com/GitDave99 just trying to pin-point your issue: Do you see anything in the TextView panel (after you check "enable")? Is the text format correct as expected? Are you sending end of line characters? Which ones? Could it be a serial port configuration issue (baudrate, number of bits, parity)? What serial adapter are you using to connect to your PC? Does communication with your system require handshake/flow-control signals? What about DTR/RTS state (are they enabled, do you need them to be so)?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-875536979, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPN2CPFWXMWHREV6QRHLTWQ5G7ANCNFSM47VUDQ4Q .

hyOzd commented 3 years ago

serialplot_2byte.zip

This is an exe you can run directly. Please let me know if it works for you.

GitDave99 commented 3 years ago

Great! I'll try it immediately before retiring for the night.

On Wed, Jul 7, 2021, 11:35 PM Hasan Yavuz ÖZDERYA @.***> wrote:

serialplot_2byte.zip https://github.com/hyOzd/serialplot/files/6782084/serialplot_2byte.zip

This is an exe you can run directly. Please let me know if it works for you.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-876170418, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPN4KO6ETEQEQV6LHDKDTWVBJRANCNFSM47VUDQ4Q .

hyOzd commented 3 years ago

@GitDave99 regarding ASCII mode problems; can you post the ASCII data captured with a terminal application?

Text View panel doesn't show the raw data coming from the serialport. It shows the parsed data that is sent to plot buffers. If there is a problem with parsing it is normal for Text View panel to be empty.

GitDave99 commented 3 years ago

Okay, then it seems obvious that I am doing something wrong or not doing something right, I'm so confused... LOL

I send my data as ASCII using the PIC Basic Pro command "debug dec my_array(index)" in a for next loop.

No preambles, just the ASCII data. I know it's ASCII because it shows up in terminal apps as such. Well also because that's what debug command does to a number, it translates raw binary to ASCII and transmits it.

So, how or where did I go wrong? Seriously, it's got me flummoxed.

I can send a transmission tomorrow. Note to myself, do it.

Good night! Dave

On Wed, Jul 7, 2021 at 11:42 PM Hasan Yavuz ÖZDERYA < @.***> wrote:

@GitDave99 https://github.com/GitDave99 regarding ASCII mode problems; can you post the ASCII data captured with a terminal application?

Text View panel doesn't show the raw data coming from the serialport. It shows the parsed data that is sent to plot buffers. If there is a problem with parsing it is normal for Text View panel to be empty.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-876174456, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPN2LUBVXBWHGQHT2P73TWVCHDANCNFSM47VUDQ4Q .

GitDave99 commented 3 years ago

Hello Hasan,

Well, I tried several ways of fitting "400" decimal across two bytes, the one that makes the most sense is "0d1, 0d144" from 0x1, 0x90

I'm not clairvoyant, not yet anyway! So, tell me... how should I fit 0d400 into two bytes?

The data shows up in "fixed size", but refuses to come in two byte mode. Let's see if I try 0, 200 for kicks just to prove to myself that it works that far. Hmmm, fixed, okay, 1 or 2 byte field, not so good.

Which byte is most significant? Let's try 200, 0 AHA!, so I'll next try 144,1 as 400...

Okay, I set 1600 decimal, 4 times 400, as byte1=64, byte2=6.

That works! Rather arcane way to have to calculate the parameters. But, it works! 4x400=1600, 400 buffer size, 400 display size. size bytes 64,6. [image: image.png] beautiful. Is it too much to ask for a more human-oriented way to enter the payload parameter?

Thanks, I'm excited! Time to sleep, tomorrow comes too early around here, dagnabbit

be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Wed, Jul 7, 2021 at 11:35 PM Hasan Yavuz ÖZDERYA < @.***> wrote:

serialplot_2byte.zip https://github.com/hyOzd/serialplot/files/6782084/serialplot_2byte.zip

This is an exe you can run directly. Please let me know if it works for you.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-876170418, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPN4KO6ETEQEQV6LHDKDTWVBJRANCNFSM47VUDQ4Q .

hyOzd commented 3 years ago

@GitDave99 I agree just by looking at the screen it is difficult to figure what needs to be done. I plan to create some tutorials especially about the custom frame format in the future. I'm also thinking about how I can improve the GUI itself so that it is easy to understand.

Dealing with multiple bytes is easy if you let the compiler do it for you. For example using C I would do it like this:

uint16_t payload_size = 400;
send_byte(payload_size & 0xFF); // this sends the lower byte, masking probably isn't necessary
send_byte(payload_size >> 8); // this sends the higher byte

// or if I have a send function that accepts an array as parameter I would to it like this:
uint16_t payload_size = 400;
send_array((char*)&payload_size, sizeof(uint16_t);
GitDave99 commented 3 years ago

Hello Hasan,

Thanks for the added benefit of larger triggered frames! The scale and offset feature makes it easy to declutter a multitrack chart.

This is about your request for ASCII , you wanted to see my output when I am sending ASCII. Yep, step one, source. PBP context looks like this: "debug dec my_variable(index)" in a for-next loop

The "dec" does exactly what one would expect, binary is coded as decimal ASCII. I'm dealing with UINT8 bytes in my data structure.

Output: [image: image.png] Here it is again in CSV format, just for fun, using CoolTerm instead of the terminal in my PBP compiler:: [image: image.png]

Without documentation or guidance, I have no idea what to provide, other than trying CSV. I believe I am doing something wrong, am I right?

While sending this format, neither ASCII mode nor text (by design, no text for what's not valid input) show any response. I've tried CSV, no difference.

be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Thu, Jul 8, 2021 at 1:17 AM Hasan Yavuz ÖZDERYA @.***> wrote:

Closed #8 https://github.com/hyOzd/serialplot/issues/8.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#event-4993403573, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPN3RHIUTCNAJCFHYF7LTWVNLDANCNFSM47VUDQ4Q .

2423181821173625493754415138453338323331312628182516241824202619251819232032314143464546424035292320181923222923302329232621211917171717191821202121191917172017261927212223172516251825192620262325251926162416211720182018201819172016201619161717171717171718171717171717171717161817@11817118181012282277732783370275220361732173717391832182220172119192417271626172318191717171717171717171717171717171818191919191819181918201820182018191818181718171916181617171717171719162616301725233734623880418756887481756664485033332821322040243925242518242920402043254227412542264038304542441821612552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551032554618073108909476924969405148484240233115311942215818712372346640643965326726672458234121312130233126323030342634232923212118181820182817371747214929463945455240623160245220462144274528392533263329272719242027272840215521512932253022423857587166706147602654274033263522332728302129162517271831193521412047174818422031182716321732222630183419332332242927233224342729262123182123222824302230183116312028262632253421291725162119182219202017202420342341294033343126272224242026172517221924343248514364396148575558585969638366835164303835184819503741522856204920342321251722181818161817181818181818181818181819172117211720171917171717182019261929202723222920292121221620201728173319352231252627252926282123172021192924312525231830214623642579328233702453174320442948344633392826302238294340395032623269334931255155841031041271101311151231121069890838070735665495546423930352943305224521746234340445646664866496046574153354735373926382335273529362635203118292227272728262323171921173525483653415137463339323431322630182616231823202419231819222030313941434343403833282119171823212923302229212620211817171817201722192120191817172017252027212223172417251826192520252323261827162516221720172017201720172116211719171717171817181718171817171718171817171817@11817119171022182287633773269265220351732173618381932182220162118192317261625172318191717171717171717171717171717171818191919191819181918201820182118191818181719171916181617171717171719172517311726233432573275368256827375736060434729372232273436343732253017272319331737223726382342244539394951441911572552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551012554717474106899474914869405148484240233115311842205819712573356742644165346728672658254222332232233325332930342535233024222118181821182817371747214929463946455240603159245119452143274328372632263329272719232026272539205322483031263122423756566864675944592653293935253523332828312029162717281831193421422049175119452133182916321733222629183119302331242827223223332528252023182324242826302331183216321829232730253321301726172220182418211917192319332239293933343226282224232126172417211924333348514464406249575657585970648567855265303735174822504041532855204720322420261624181919171817191819191919181917181719162017211720181918181717182019261930192722222820272120221620201727173219332330252527252926282124172020192823322426222029224422622276307932692452164220432847344633392726292037274338404932613168335031254953801021011281081321121241081079590828069725664495445413830342942315125531848234640465747674968496346584153344635373826382336263529362635203218292127262628262423181920183426473652395035453137313331312628182416221822192418231819232030303739404141383632272118171722202822292228212620211817171817211723192220201817161917232026212322182417261926202521252424271927162516211720172017201721172216211719171717171717181718171818171717171717161817@116171181710121812875337732692752203517311636173818321822201622182023172616271724182018171717171717171717171717171718181919191918191919182018201820181918181817181719161817171717171717181622172417202227334436553757545376458337762967225519412134263428312423201825193021292325252324212034224642535718415325525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511725547178701068892778952674248494644402632153116402056187024723466406341643466286626572440223121312432273130283424342330242222181818201827173617462050274737464351416035582750204420432643273825322533282827192418282330352450215028332826213632505065606558435823542741342736233527313123301727162718291934204220501853174618331728173117321925251827172820292227272233213524292421241724212526262923311932163217312128282733233118271622201923192120182023193321392838343334263022262423261825182119233231474942633860485656565958686382668353653039341848195136434930552151203623232518232019211720172019202019201819181917211623172317211819181818171819192519291928232329212921212216202017261731183321312326252526252621231720201827213123262221272340235720712676306824521742184226453244303825272720342540373748306130693353302446487797971261031311071231061079490817970705561465343413830332840315026511946244340445647674968506448604355354833413631362735293430352635213218291926232526232421181920173223453651415038453338313530332531182716231922212320241720201928283737423943383932282219171721202823302329222621211917171816211722182320201917171817231827202422182317252027202720272225252025162316211719181918191719172016201619161817171717171718171718171817171717171818@1181711917101218227773378327027532036163116361838183218222016221820241726162517231819171717171717171717171717171717181819191919191919191820182018201819181818171917191618161717171717172016281634172621252843306134715572756776546539532742203622383139363532312229192521182220222421242124262929374447187161255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255109255491757310787947090466741495048434024311530174119591872257435684265426735683067275824422135213523362635313235273625292521231719172217301739184822503047424848554262325822501745204526452738253026282923281823202626283623492247283224292238375355676266584556265126383125332432282830222817241726183119372145215018491741183017271731183123242917321832223125263220382138243024202318222524302633233418361636193325293226342130172617212018211919211820261935224128403234322628232625232719241822192534344953446539614756545658606965836882526231363717502251404152285421462132242125182220181916181818201920192019191919182117221623172118191917181717191925192819262322292029212022162019172617321834203123262625272626202217192119282331232521192721422060207429783266244917401942264632453039252728213627403835492962316734473025475678104971271041301081201061049589818068725363455343403729342942325126522047274642485851685269516447594152344435353726362434283429352533203118292127252526232122171921173524483553405037443337333432332731182816241823192418231819232030303839424142383732262119171922222824292328232621211818171816201722192221192017172017261927202222172417252025192620262324261826162416211820182018201821172216211619171717171717171717171718171817171717171818@1181711818101228228773378337027512035173216371739183219212116221819241726162617231819171717171717171717171817171717181819191919191919191820182118201819181818171817191618171717171717171916271733172423243042306138725874746873556042483137283434383642304321362123292138264532463540353238224323414145195179255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255102255521657910290937287476444495347443923311432184420611973267435694266426737683267295826422333223323342534303235283525292520221718182117301741195024503346444747544061305722501845214627462737243126302925271823202626263722502448313424312339415260636462584356264927363024322332282730202716241726183119362144214917481741173017281734183422253017341935233526303223382237252925192318242626322733243419341634193227283525362031172717212018221819201920292038234130383432332529232625222718241822212536354954436540605056555858606966826980526133334015532453424255295721482232252226192320181917181818211921192019181918181917211622172018181817181718202025202921272523302129222022162021172817331834213023252525272526192217192219292329222220192723422258217229743163234716391942274533433038252628223730414134502761316634453326516082106981281031301061191031019286797866715161455243413731353143335126502145284543475951675266506147564150344334353726362436273628382536203318302127262627242121171823173726493652394936423336323330322430172616231922202418241919242134324443474545413833262219182023242924312329222721221918171816211823202222191917172117261926202222172417251926182619262223251826162416221820182018201821172116211619161717171717171717171718161817171617171818@11817119181022283287832793269265120351732173718381832182220162118192317261625172218191717161716171717171717171717171818181919191919182018201820182018191818181719171916181617161717171719162817341725222529453165397859837477716258464533333230383536402939252930213727433249305030463241383049205034441831672552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551042555017176106899472894865444853464539243114321742205919722575356942664267356930682757254022322234243526352932342735232924212117181721173017401849235132464346485441633160215217472047264626392434263329262618221825242636225023492936233124384251606465635943572650263729253024292826292027162516271731183720441950175017421831173117361836222630173419352435273032223722362527251823192429273428352535183616351931272835263720331629172321182317191919202820382342304034343227282425252227182418212125363650564567416151565657585970658468825160323241155427554744593159234922322422252021211819171818182018201919191819181820172216221720181818171717192020252029212625223121302121211619201727173219332130242727272827262121181823192824282321191825224023572271287428642148163920412844334430382627292338304240365029613067344633265260841071021291081311111191081029788837968725263465344403831363145315324512046284644485951685266506148564250354435353826382336263727372435203218302128262626232120171823173625473551384735423135303229312429172517222022202418241919252135334343464544423634242218182123252925302429232721221918171916211823202221191817172117251926202221172317251925192519262223251825162316211820192019201820172016201619171717171717171717171718171717171617171818@119171191810223832978337832702652203517321737173818311821201621181924172616251722181917171717161717171717181717171718181919192018191820182018201820181918181817191619161917171717171717191728173817332220282727473467547873767364614947373637344242354727443129402744364440463644333833293520392841394917717225525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510725549177751078893728847654348534647392531143217452061187424763470416741693570296927582540223121322334263329313326322326231920171718191827173819502452324643444849425731562251184720472747283925342633292527182420272728382350234928362430233640496061676161425726502536282529252930253219281623182519292035204419511752184418321731173818392129291835173721382633322537233726292620251722252330253223331834173421312927372438193316291724191920171819191827183621412739323431282624232620281725172219263435505547674262505556565860696683698252623234401654255545445731592449243325232521222218211719181920202020192018201819191721172117201819181718171919202520292027232229203020212116192017271732183420322328252828282722221920242029242923232019272442245822722776296622501641194227443343313826282923373041403549276131683747342550578210610313111113411612511210810092878172735564465544423931363044315224521948264741495752675367526148564250344334353727372436263728362533213018282026252526232120171821173424453349364634413134303129302428172517222021222319231819232033324142454343403633252320182223252825302330222821231818171816211723202220191817162017241825202222182317241825182519252223241824162317211820192018191820172116211719171817171717171717171718171717171717171718@1191711918102228328783279326926512035173216381839193219212116221919241627162617221819171717171617171717171717171717181819191919191919191820182018191819181818171917191618161717171717171817261733182723203135345941785982747572615946453630352634343340373638303829352733213319322031192718202525393655176179255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255992554818075108879369874763474757464737252914311743206019732474346941664067336927672556233920312033233527353131342632232523182017181821172917391949235031464245465340613057235020462347294730392732282931233017272130283039245121472533213025384451616467646145572749243527242825282924301928162517271931203621432049185019421930172917351835212527173218352237263231233621362328241923182325243025322233183417332030282837254020361732172620202117181719182818372042264131363029262423252028172517221925343650574668446251555455575868648366814860303141155427544744593260255024332622252022211820171919192019201919191819191821172317221720181818171717182018251827192523212820282021201619191726173219342131242827272827272222191925203125292422211826233924562570307529652150164121422944354332362725302338314141345028623268354534275463871131051381111391141261091069691838169745564485445413730342943295122511846274644496052695466526048564152334634373828382536273727372335183017272025242425232121171822173424453448374635413235313230302429172517222021222419241820252136324542494346393832262220202425273127332532242921231818171716201722192220191817172017241824202122182317241824182519252223251826162417211819181918191819172016201719171817171717171717171718171717171717171819@1181711918102228228773278327027522035163116371838193218232117221820231726162617231819181717171717171717171717171717181818191919181919201820182018201819181818171816191619161717171717171717261740194025283222293331525266736878607146583443343337372845244333304329473848404937453537342434223439425058184173255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255102255471787310686927086466243455344443824311532174519622074287637694266426837713370315830402631243325342533273031263223272320201717171917261737194824523248424647514157325324462143234530473140283528343026291727213130211733194125423037303026262125192717261722192432354856446937624251494858527262856986576932433320471852344347305220471733192121172019182017191720182119202018191818172017201720181919171917191718181924202920292325292230212222162020172717321934233024262625282528202516202019282332252623182719412057236931733564285119441946264734463539312729223627423541423554346532502824485080981011271071341111271091119793848071715662465343433831342940315026511947214535455246644666456344593954344734383728372435273529382638213420302227262427232422181919173022433350395038463639343432312629192618222222232320231619191928283837433943363529232017202128253125302329232823242219191717181720182120191917171817222025212323182517262027212822272424271828162516221821192019191919181917201619161817171717181719171917171717171717171718@11817118171022282287733793270275220351731163717381832182220162218192317261626172318191717171717171717171717171717171818191919191819191919201820182018191818181718171916181617171717171617172117322040284138403540304150467653885185417332572840303627421946204128303325322830372741223825314032445849701851562552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551062555419178114909675905066424951454636272915321544186018722774376844664369377031682858264223342234233325312728312532232922211916161717172317321845235130483945434939553151244420402241294331402935293230232817272133293441275422502530212525354349626368646246582650273631253225313126342033162917281829183118391848175018431831172917371740223330213216312031262932213718352026231825192626272727272429193216322030272936284023361832172518182216211618182217341942244229382931252623262129182817231924313548564570376440514746585073608768875569304331204519503441472751184517322021221820191819171817191821192019191819181819172117211820191819171817181919251930202923243022302222221620191726173121332431252626242725272123171921182923332527241928194220592272307534662851194519462647344535383026302037254334404234533463324829245150839810312510913111412411210710090877873705662465344424030362841305025511947224535455146624664466144584053354535363826372436283730402639213519312228262627242321171919173023433449404839433537333331302428182519232322242320221718191929293838433943363629242017192025242925282328222722242019181716181720182020191817171817231925202321182317262027212822272524271927162417211820202020202019182017191619161817171717181718171717171717171717161817@11817118171012282287733783269265120351732163718391832182220162218192317261626172318191717171717171717171717171717171818181918191819192019201820182018191818181719171916181617161716171617171917292036303742403845324851547658865382427032522734272924362041223921271919182322262723272432274244406548591911502552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551102555618280110929676915066424851444634263015341646186218732674376844664468407035693260304327352636253524332530302735243324242117171718172417341846225330504048445238582955224620412141274429402836283428242616271933283441255520502328212625374250616267646146582550253631243224303026332032162916291730183119391947175018431931172916371740233429223017282128282635213918362128251926182625262827282428193017312029272834273722351831162420172416221718182118312138284033373231282624252126182518212023333449554468346340524948605074608868895572294630224517483239462652174917352022221821191820171917201821182019191819181819172118211820191820171917181918261830182921242722282221221620191725173019332230232624242524262024172119202624312527251931184418612175317834692755194720482849364636393127302137264334404236553664344929244951839910612611313211912511610810591917977706063505546434030372743305226531948214435435243634465446143584052354435353726372436293830402640213619312228252627252422181918172822413348384937443538343332302527182519232222232419231719211930293938434242403634252218172023242824282227222723242119191717181720182020191917171717201924202322192417271827202722272524271927162516221821192020201920182117201719161816171717181718171717171717171717171817@117171181710122822777327833702752203617321637183818321822201622181923172616261723181917171717171717171717171717171818191920191919191919182018201720181918181817191719161816171617161816181719172620302834394337533359486471677959734460334528302929263421352131252329172716251825202422272533413056414918515725525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510625556180811099296759149674349524444342431153616481963197526763670446746684270376934593042263324342333212924263025362434232519181617191725173418452350314640464452385930542345193921412744304029362833282425172621333033432556194923262225243740515965666660475724502436302431233029273222311729163016311831213821461849174218301729163617402335292328192725283227372240183621262518271927272629262822281830183122292929362938253519321625201825162317181823183420402740333632302726252521271826182221233535505643693463405249466049745789659052713044312044174633374824541749173519222118202018221721172118201920192018191817191721182119202118211719171819192518291828212427222722202216192017261731203223292525262427242721241720191926243225272518321746186524793481367027551948215029513648364131293124382842363943355537643348282552558710410612911113311612511310710291888175745866485745433931363043315224521747224436445445654667466345604254364736373926392338274029422540213521312428272628242421181918172923413448394837443339323430302427182419222322242419231718222032324142464444413734252318182023242724272327222723232218191717181820202021181917171817211924212223182517261826202622262523271826162416221820182018191819171917191618161817171717171717171717171717171717171817@118171191710122822876337833712753203617321737183918331822201621181924172616251723182017171717171717171817181717171718181819191918191819182018201820181918181817181719161816171617161716171721183421412841374433503055496273688361764762364629332935274121421937192918211719182021222225262433323252395617715525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511025557187801149297759150674450524546342629153416471863197528773971466847694170356931592943253423342134223126283325352331222219171717191725173319462452324842464651395730532244194022422946324230373034292427172820342935412654205023302226243541486061676263465927502535302330232930253220311729162917291731193819471751184319311729173618402334292330172821292929362240193722282619271826262629272824291831173122293028392741233718321625191823162217171822183320402640313530292625242621281827182220243435495743703464385247456048755890679155733046302143174732404727531949183521222318211918201720172218231921192018191818191721182119202118211719171719182418291827222328212822202216191917251730213324302525272428242720241720201929233224262518331748196524793282357126561950205128513547353930272921352640333741345436653450292550538510310613111313611813011611210395898275745866485746444232372943305225521847224437455446664767476545624156364836383928392538283930412640213620322429282629242422181918172923413449404938453538343331292427182420222421242319231719222032314141464344403733252217182023242725272327232723232118181716181620192020191917171817221924212223182517271927202722272524281827162516221820191919191919192017201619161817171717181719171817171717171717161817@1181711917102228328773378337027522035173217371839193319222017221819241727162617231819171717171717171717171717171717181819191919181919201820182017201819181818171816191618161717171618161817181822212932334535433338285730863710037953181266125432439204318412034232923252121192317241723222031363061426019015625525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510725558179831089494779052684552524545332429143416471863197427743769446744693871336929582640223221332233223126283125332329222119161717191726173519462450324642464651405731512344194121442747294127342631262224172522313031432256204926272324243641505964676562455824502535312333223227283121301628162817281730193919481750174118291730173817412433302130172821282727342138183521262218231924262528252823301832173421322930372839243519311724201825162217181823173419412640313530292625232620281727172220253639506142723365395150446246775690659152732945312044174833404827531946183320212217211918191719171918201820181918191717181620172118202018211719171819192519291927222427222722192116192017271732203423312526262527252620231719201928253125252417301746206528793780376927552049205027493546353831253020352641353843345535643348292652588710710613311113711612811311010193878275745965505646444030352843305225531947234439455547674768476445614154364636373928392637293830402638213320292426282428222321181819173024433449404838433638353332292627202521232423242419231719222033314341484245383631242018192225272927292528242823242118191617181819202021191917171817221923212224182717281927192621262423271827162416211820181919191919182017201619161817171717181718171717161717171717171817@118171191710222832978347833692751203516321637183819321922211622181924172716261723181917171717161717171717171717171718181919191918191819181918201820181918181817181718161816171717171816181718172220313133453043243421522382279928972486216919481838183917391738173518262019202019191717192030393762496319915825525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510725557179821089396769151684451514543342429153316451861197328753869456744673768316728572641233321352135233327303226322527241920161717191725173318432348304640474453385830522345194122432845303928342633272626182722323031432258195325312324263644536268686862475822482233302132223129273221301727162816301733194118481749184119301731173918422235272228172720282726342037193222242418241824242328243021311731173021272825362340193717321725211925162317181722173319412442293829302525222519281727182421293642506342733264375050446447785790659052732846312145174933414928532047183120202117191917191719171918201919191918181817191621172118201918201719171919202519291927232328222822202216202117271733203423312427262727272622231720202030253425262417311647206430783980387029572150215028493644363630242920362742353945355837663348282652588910910813611313911712811410910293888275735964495546424029352842305226531947234538455446654867476445604054364737403931382736293829392537203319302228262527232320181919183123433448404640423836373235292728192619252224242520231719232133334342484445403732262119192225262925282327222722242019181717171718201921181917171817222024222124172617281928202722262622281727162417211819191918181818181917191719161816171717181718171717161717171717171817@118171181710222832878337833702752203616321637173818321822201622182023172616261723181917171717171717171717171717171818191819191919191919182018201820181918181817181719161816171617161816191718172221293032433243303528513080349333892879246521452135223520361734183220242017191719181918241835333856455718715325525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511125556182791109196769151674550524445342530153417461961187326753769436643683669306827572541233222332232233026283126332528242020161716181723173318452351314841474553395830522344194021422745304128352633262425172522313030432256195325302323253541516066666760485724492434312133213327293121301628162817281831193919471749184119281728163718402334282228172721282727332137183520272318241824252527252823301832163320302828362639213617321725201824162116171822183319402440293629302625232520271726172220263438496043713264365048446245775491639351752747292144174934424929532146203123202318212018201620172018211920191918191718191721172117201918211720171919182418281927222328222722192316202017271732203423312527262627272622231720201930243425272517331649206730804082397129572151225128503644353530233020362842363944365737653348272550578610710513211013611512711310910093878175735864485545433930342741295025511946224536455346644665466344604053364637383929382537273829402538213419312228272428222521182019183022433350394839443738383436302828202521242424242419221718232134324443494547423934272219192225262926282327232722242019181717181719201922191917171817212024222224182717291929202822282525271926162317201819191919181918181917191618161817171717181718171717161716171617161817@11717118171012282287633783370275320371732163718391933182220162218192317261626172318191717171716171717171717171717171818181918191919191919201820181918191818181719171916181717171716181619171917252031303643434248374855488153925086397030522635243421392238253223241919181919172017211822242142266038561761502552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551182555518977112929578915167414848434336243215361847206219742875386944684470407035683159294426352434233422322430302733253124232117171718172517341845235131494048435336592656204718412142284432403237313630282818271833273341255618532131222526364151596567676248592551253632233421322628302230172716281629173220412049175018431930172817361740213527242718252126282434193618332226251925172523252726282529202917302129292837264021361732172620182416231718182118321941254231373230272522252028172718222022343449564370316435514645594573548764915575294827224117483243473052204718342021211720191720171917201820191919181917181719172118221820191820171917191919251929192722222821272220221620181725173121332530272627252826282325172018182723322427251834164918672879398241733259225122512951364637373325322136274235414336553565315027244950849910512811013511412811311110292877975715963495545454032342741295224541848224536455245644566456444624258375036413830382637293732402839223520312328282630232621191918172921443351405139473641353634322728192518232223232519241720221934294540484345413835252419192424292928282528242723242219201717171718181920181917171817201822192221192317261827192721272324261926162316211820182019191919181917191718171717171817181718181718171717171717171717@11717119171022283287732783370275220351731163617381832182220162218192317271626172418201717171717171717171718171717171818191919191920192018201820182018191817181718171916181617171716181618172318352040234329532863246540666466745565414933372933253523392837313227312529282331173116322038244145366743591821452552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551122555219175114909677925269405046454236253115341746186219742776377043694471397134703260294426352536243624342532302935263325242118171718182618362048265434504248445337602758215019432243284631423036293528272618262032283139225318522532252723373851586367656348602551233730243221312629292329182716281828192920362045174818422029182617341640213628253018292029272734223920382330252125172422242526272428192917312031282937274023361831162519182416221818182118311938263832343129252622252027172717221823323449554567336236514546584872558764915578295227254316502944453152214819352023211820191820171917201821192019191818181719162217231822181919181917181920242028192721232622282221221621181723172920332431262625242625262225172218202623322427251834164718652780398541753159215121502850354536363124302035254233404136523764345328255048879910813011413811713211511410395918080726465525748454232362741295125541849224536455346644667466445624258375035413730382438274029422641213719322229262728242521191918172922433350405040453839373437313028232421222322252422241719191830294241494548424236302520202224272827282428232823262221191717171719191920181917171817211823202222192517261827202721282425261927162416211819191818181819181917191618161817171717171717171718171717171717171717@117171181710122822877327832702752203617321637173918321822201622182024172716261723181917171717171717171717171717171718181919191919191919181918201720181918181817191719161816171717171817191723172817221720203124522168247128663055344441384534413032242224172816261724212521281731173019302624412149354417716725525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510925556187781109092758851674452504841392232153417461962197528763970456845714073357132592843243522362135223328293624392334242321181718191827173619472550344544454653396129572147184120422544293728312730242322172522322931402352194624282228253843506361706065426226533138392840283732303222291726182720292132223821441746194021271824173118342030242128173021332833352741244126322922301729222727263023321833173521332731332835223317301623201822172019181926183718422341283627302226192617281626172218243136465741683160334744436046775693659553782750262342175032444632522347213321222117191817181718181920192019201919181818201722162417231820191819171920202720312129242429222922222316211818251630193222302426262528262822251721202029243325262517341650206929833986407430582151235030493644363531233220392845374045345736673452302655549110511013211513712013011811210695918178726164505546443932342942315325551849224636465246634566456343604156374935413630362437264027432343193819332429282728242421181920173221443049374837433638363335302828202618252024212519241720231933304441494346393832272321192624302828282527242624222218201818191821202121201918171817211824202422192517271826202622262623271826162316201719171918191918191917201719161816171717181718171717171716171717171717@116171171710121812776337833702753203517311636173818331922201622171923172616261723182017171717171717171717171717171718181919191919191919182018201820181918181817181718161816171717171817181719172117201819252029252532283438314526512457246024542142183218252119221721202322271830173018282223332241344917017525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511025554187761108991768852674250484742392432153317441960197227743768446644694071366932592843233521362135223327293424382334242421171717191726173519452549344444434651385928542145193920402643303830332932272424172320302732382551194624292328253641466057685964436129523336392540273633303521321727172619281932204019471750194421301825173117361932242229173221342833352739243827312922291727212625262723291831173321322631312933233118281622181820181920182025183418402340283527282224192417271625172218253135465541673061344846436045745588659156762849252341175032454733532448203421222118191917191718181819192019201918191818191722162317221820191819171920202620312029242429212921212316221818241729193323302426252527262822241720192027243026242617341749206728823785397429592051215029493544343529233021382844384145365738673552282551528810210913011513512112911911210695918278736163505446423930332741295224541848224436445144624465446243604255375034433433342635263827412341193819342329282629232520181919173020433049374837443538353434312828202619252125222619251720221933314342474345393732252320202624312829282627242623232119191817201722192220201918171717211926202622202416261826212722272525261926162316211719181919192019191918201719161816171717171718171717171717171717161717@117171191710222822877337732702752203517311636183919331823201721181923172616261723182017171717161717171717181717171718181919191918191820182018201820181918181817181619161817171717171817181718171917191819252030242628282839254820551862186718621850174017331727172019212321321941204627533854574066474918715625525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511025555188761118993778853674350494743402433153318441961197428753968456644693971367034603044253723372236223327293525382333242221171717181724173318452449334545444951425931562148174218422445283828332632242521172119282730392451204625272327253642476258705966426328543237372637263431293222301726172518271931213819441748204322311829163717422037262530183122312830342538233724302621261727212724282723291831183123302830322833223117281623191821171919182025183518412240283428292327202818301727172218243136475642683162344944425943755390639253772650242342195035465034552549213421222118201918201719182019202019201919191818191721162217211819191819172020222621302129232428212921222116201717241730193322302426252626272723231719202028253125242517341749216730823985397428592051235030503645363630243020372843374045355736673651302550548610410713211213711713111611410497908478746264505546433931342742285222541748214535455145634566446342603957345133413530362537273830422743223820322328262627242521191919173120433148374637423437343333292727202518242024202518241719241934294440494246383732252322202824322730272727252724242219191717191721202221201817161717211926202522192517271926212622272424251924162216201719171818191919191917201719161816171617171717171717161717171717161717@117171181710122812776337733702753193516311636183819321822201621181923172616261723182017171717171717171717171717171718181819191918191920182018201820181918181817191719161816171617161817181717171817191821242331262729282836254421511860176717631752174317361928192118202020261933224030534268656783656819314125525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511025553186741108992768752664449504544382533153517451960197229734067466545694071377034613046243823372335233227293326362532252222161716171724173419452549344546435050425930561949174220412743313831342833262623172221283130432355194925282325243641476158695965426128513235372235243131273321301725162417261830203620431747184319321727183417401936282633183422342831342538223724302622271728212825282924311933173421322732343037243418311625202024192119181924183517422142273826322129182817291626172120253437495744703364355044425644725487649155762850252342185134474935562551213621232218201918191719181919201920202019201819191721172217211819191819171919202620302030222529223021232116201818241730193422322327252727282824251821191927243125252417321645216330784183417531592150224928493545353629233020372843374146365837683654292547508210110513311114011613311411510197888378736265505645453833332840295224551849204533455045624566436341613857325032413630362634293531392739213519312227262527232422192018172920423148384738423537343233282726202419232123222419241720211832284339494248394033282422212624312830292827262625232219191817191820202122192017171717211926212523202516261927212722272325251925162316211719171917191719172017201720161816171617171717171717161717171717161717@118171191810223832877327832702653203617331637173918331822201622181924172616261723181917171717161717171717171717171718181919192018191819181918201820181918181817181619161816171717171816181718171718181723233129372539253832353930452355186417621853194319351925181817171821192321242427333052466471637719416325525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510425555183771088993748851664551524744362530163419471963207531764168466645694071366931592744223621352134223227293526362430242021161716191726183619462448334343434653396128561947174121422744303929342733262523182222293030432356195025292424243442466256705565386229523635402438273334273721341728172618281933214020471749184318311729193619391933272335173621352832362541233927302821281728222826282925291831173221322731332935233318301625192022182018181825173618422342283727322229192917291625182121273540506044703262354944445847765691649251752646272044205138455333572449223422222318202018201718181919202021192018201819201722162217211919201719171920202619311929222529222921222116191717231730203424322527272629272923251821202028253125252517331649216933844387427531592150224929493545343630243122373143404048355936673449282548558210610313411013811513111311410296898476756066495544433832342943315425561849204433444845604564436340613756334834403630352634293630402639203420302328272628242422181919173121433349394738413535353133282726202419232122232220221718211932304441504248393932272322202724322731272826252523222119191817191821202122191917171717212025222323192717291929212822272324251825162316211720171917191719172017211620161816171717171717181718171817171717171717@11717118171022282287733773269275220351732163717391833182221162218192417271626172318191717171716171717171717171717171818191919191919191918201820172018191818181718171916181717171717181718171817171818172323302834243525343433422847225517641763185520462039192918201718182221242325262836335651667564781911542552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551092555418476110879374885166445051454436253116341846196219742975396845664569407036683359284524372235223322322630342737253225212216171618172417341846234932434141455039582955214618392140274330392835263325252317232229313044235821542730242423344148615970596542622952353540243827333428362133172817261829193320401947174917441832172819341838193427233418342334303136254023392730292129172822272627292429183017312131273134303624341831162719212218201818172417351741204225382534212919281728162517212026333949594469326236514546584775569065915374274628214519533747523456255022362323231921201820171918191920202020201820181920172216231721191820171917182019261930192923243022302123221619171724173121342432262727262827282225172119202723312325241733164920693184418641743158215121502749334533352923302237314341404835593567344929244853811011021291081351121291101119893868074725763475344423831332941305224541748204433434943614364426240603655324732403630352634293531382638203519312328262627242322181919173021423147384638413534353034272726192419232222242220221718201930294140484248404034282421192522302630262827262624232219191817191721202123192017171817222026222524192617291929212822262423261825162316211719181918191819172017211620161817171717171717181718171717171717161717@117171181810122822877327832702752203517311637183918331822201622182023172716261723182017171717171717171717171717171718181918191919191919192018201820181918181817181718161816171717171817191719171917181723213424442046254737464440442947205417551951224422391831172119182223232822312233293448495973587819015825525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511225557178781078993748850664350514544372432163519462063207529753868446644683969346730582744223721362134223228293526372432242221161716181724183418452249314441444552406032562347184120422643293828342633262624182323293230452459215327292424243543486260686263446129523437392838303437283821351729172819302034214220491751184618331729183518381932262131173321332732332538243827302921291729212825282624261826172821282629322835233318301725182020181918181825173517412140253625312228202718271725172120263338495844693262365147476049755890669154732745272044195137465134552549213521232219202018211720172019211921192018201819191721162117201818191718171919192519291928232330213021222116201717241732213624332528262627262722241720201928233324272318301647206730824086407430582049204926493345333628232921352941393947345836653548292550548410210612811213311712611510910292908077726064495346414030352842305325531747204432444844594463416239603754334734383629362634293532382837223421312428272629242621192019183121433147394539403634363035272825202418232122232220211718222033314442494448414034282421202524302830282828262824262121181817181720202022182017171817232026222324192617281927212722272324251824162216201719181818191819182017201719161817171717171717181718171817171717161717@117171181810122822877337833702852203617321637173818321822201622182024172716271723181917171717161717171717171717171718181918191919191919182018201820181918181817181719161816171717171817191721172218191724213824502153285342525044473246215018512048224220371929201919221930203121262020192028384263497118816125525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510925557179791099095749051684551524745372531153418461963207529753868436743693870356933603047263825362234213426313428372633262322161716181724183418452349324643474855426431602251174520452546284028352634262725182419302630412457215226302424243341466160696164436229533439402838283433283521321728182820302132233920481752184620341831183618382032242229173122332832342639243828313022301728212724262522251726182823272728312834233318301625182021182017181824173417402040263728332429212819281725172120263538525947713465375347496050765991689357753047272143195137465234582551223723242320212118211720172119221921192018191818201721162217201819191719171919192519291929232528232922212116191917251732203523322527262527252722231720191928233323272318301647196728823984407230572049194825483244323527232820362842383946345836663549302450528510110712911313411812711611010492908077726063495445424032362942305125521846204432444744594463426241603854344635373728362734303531382738223421312428292630242721201919173120433147394539403735373134292827202519232121232220211718221933314442504549424235302522212524302830282828262924282123191917191720201922181917171917231925212323192617281928202821272323261827162517221820181918191819172017201619161816171717171717171717161716171617171717@1171711817102218228773378327027532036173116361738183218222017221820231726162617241820171717171717171717171717171718181819191919191918191819182017201819181818171817191618161716171718171917201722171917242137255022533053455253445132482150175020462341213619291920182018281930192519201921283942634970185159255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255114255581767810889957491516844515247453825321534184720632074297438684367437039713568336130472639233622352134263234273826332623221617161817241835194624503347434847564164315922501745204526462940283428332727241824193026314025572152263023242534434762596960634260275233383929393035353036233317291830203121332240194817511945203318311836193720312521291731223327313225382338272930202917282127252626222517261828222826293128342332173016251920221820181818251735184122412738263322292028182817261721202634385159457134643852484861507758926692547329442919452052404655355926522336232324202122182217211821192219211920191919182017221623172119191918181719191925182919282224292229212221161918172517312034233124272526262726222317202020292333232623173216491969288439853972295520482047274733433335282328203627423739463558356634472825505585104104130110134116125113108101918880767359644753434137313429442954235318472144334448446044644163396137553446363738293726342935303726372233213125283026322327211920191731214232473945394037353730352728262024192221212322202117182320363347455247504342363026232326263129302827292530232821221919171917202019211719171719172320252122231826172719272127222625222717281625172218211819181731172620212219201718172517361742214126382734233021291929172617222027343950604673366639534848605176609168925774314629204419513847533658265222372224222021231823172117211921192119201919191820172316231721191919171817191919241929182822232821302023201619181725173220352332242824272528252323172020192822322326221730164619662880378338722956204719462547344435372924291936254235414336563666335028244850839710412510913111412511210910092878074725763465342423733343041295223531747204432454745594564426340623756344735383828372535283530382837233221292427292631252723192119173020423146394440403835383136282926212419222121232221211718222034334745534852444438312823232626312931292929263024282122191917191720191921172017171817221925212323182617272028222722252322251725162417221820181918191719172017201619161817171717171717171718171817171617171717@11817118181012282287633773370275320361732173717381832182220162118192417261626172318191717171717171717171718171717171818181818191819191918201820182018191818181718161916181717171717181620172017211719172422382650225429554354524651325020511751204623392335183017212017222322302032193130294945597160721961512552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551172556117781107929378895367465153474637253116351949206619762675366842674270387133682859254522372036203521352733342837253224232117171620172718361946244932454146455439623059235119442043264529392834273428262518252131293142235620512728242624384252616469636342612552343742274129373430352331172717291932213522422047174918421830172817341836203027203217322333293234253722352627301932173123282626262227172917302228272832273422331731172620202117191718182617351740214027372734233020291829172617221927344050614773376639534847604876589167915674304628204319513846533458255122372224212019211722172118211922192119201819181820172216221721181819171917181919241928182722232821302022201619171724173020342331252725272627272324172020192823312424221728184521652879378138692854194619462646334433372925292036264234404235543664344928244753036272827212520232222222118191717242335354544504447403932272221212525292828282629253023272022181916201720201921181917161917231925212123172617272027212622252521271725162217201819181918181719171917201719171817171717171717171718161816171617171818@1181711917102218227773378337127532035173116361739183318232017221820231726162617231820171717171717171717171717171717181819191919191918201820182118201819181818171817181618161717171718171917201721182017252239265222552955455555475334492250175019462141203621292320222122302332232921251919273239574467175154255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255122255591817810991947890526745495445473725331536194820641975267535684066416937693267285926452236203320322232283033273725342425211717161917241833194425493546454548524361345824501843194025422838273326332627251824193026314026562353263123252434434863627063654461275232393929392835312931222917261727192821312239204717501745193317291834183719322521301832253431333625382234262530183117312429272727232718281829232930293628382236183317261819191618171818231833183921402737273323292027192717241721192633385058477237674155505059517359886789577231442920441952374753355825522237222423202022172217211821192119211919191819182017221623172218191917191719181923192818282125272328222120161918172517311934233125262625272527212417202120282530252421182620412361287636793768285420472047264833453337282529193726433540433555356333482724455080981011261071321111251101089890867875705962475343443734333140315125531847214534464946604565436440623756334734393630352633273529372636213320292327292432222922212219182920413045394440393834373034282727202619232220232019191718212031324241474246403934292521202224262727282628243023292124192017191720192021181917171817211924212323192517271928212822272424261827162617231922202019191819171916201619171817181717171718171718161816171617171717@11817119171022282287733783270265220361732163718391932192220162118192417261625172318201717171717171717181718171717171818191919201820182018201820181743194225432736263326342726261826193127304024552251273023262636475166657163644060245133374028392835302829212717251727203021322239204717501744183217311736183821322821311932243330313523382034242528182918282627282728232818301731223029293727382235173117261919211619171817241733194024412939283423292026182717251722202836415261487238654155495060517659916691527228433119472152414556335924502234232323202022172317221821192120202019181918181917211621172018181918191719192024192819272223282228212021162019182517311933232925252625272526202317202120282629252420202524422661277531773165235018432044274534423335272328193526413538433355356133432825485880105981271021301071211051049688857773705663455542443732352943305424541848224635465146634367406638633556324734393631352634273528372534213021272525312333222922202119183122433447414440393734373134292728202520222321232019191717232232334142464346403934282421202323272627272428232922262122191917191720191920171817171918232025222224182617272027202821272423261726162417211920191918191719172016201619171817171717171717181718161816171617171717@11717118181012382287632773269265220361732173718391933192220162118192317261626172318201717171717171717171717171717171818191919201819191918191819182018191817181718161916181617171717181719172017201719182426373147274936495650684465335922551751194621411836193022212218232624332333203118232932446050721861522552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551232556118080107929378905367445051464538253316371951216619762574346841694172377231692660234420331931193122322831342736253123222017171618172418322044274935444542494943593257214916431843244527392634253426272518241930273140265522522631232625364350636370646344592651323839283826332927302128172517271928203122402148175117451933183017351837213326233019322434303335253820342326271827182725272827272427182917312130282935273922371833172618192117201718182317331840224129392935242921261927172516211927333952604972386640564752565271588766905474294629214519513746523457255122372225220181918181817181719161816171717171817191721172218201824253830512654355354536747653559235617531848204322372629242120222329272929223018271822352657376117715325525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525512625560186791119395799254684650544548382633163719492064197525753570417041733672296825592345203418321931223228303327352432232320171716181724183321442748364345424950425831552247174219412544293927342634262825182518312632392655225226312326243643506263706564465929513238362735263129263120291625172518272032214120501753184720341830173518372132262230193224323031352339203624282919301729232826282524241827172922282826342537213519331827182019171917171823183418412341293830342429202718271625172120263438515947723767415749535853725986668854712843301946215239455233572451223723252321202217221720172119202019201819181818191721162117191818191719172018202320271926222328212820212016202018261732193423312525252426242620231719211829233226262220232334245225663171336326501943194324443242343631253119362441323841345236613547282444507797981261051321091251071089690847874705863465643453933352943315427552050214633464945624367406537623556314832403431322631253327362535213120282426302433223021222120183020433148404741423836353234312830202720232420252021201717212031314242494549444338322723192220272427262528233022282023191917191720182019181817171817222024222124182817312030212920282224251826162417211920191918181818171917191619161817181717181718171817171716171617171817@1181711918102238328773378327027522036173217371739183218222016221819231726162617241820171717171617171717171717171717181819191919181918191819182018201819181818171817191618161716171718171917201721171918242538304927503750565068436632602256175318492044223825302321192322292728302131172718213526563862183156255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255123255601847911093957991546846495345463725331537185020651975267435684169417236722969256023452034183119322133273134273624322323201617161918192417271626172318191817171717171717171717171717171819182019201820192019191820182018191818181718171916181617161716181719171917181818182427363344294238425944724070316421591754184919431937223122222021232827302826272222182131345543631811562552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551142555618378109929378905367444851444537253516392051206519752775366841684171367030682659244320331932193322332731322734253124222016171619172617351945254834444345485342603157214918442144274630402835273526272518261832243338255421512530232526354449616467676150573050283732263324312827292128172516261728193121412051175418471934183017361839203326233019312432283032223519342327271927172724262727262526182916322131272833263622351933172718202017201718192318331940244230403036253021261926172416211926343852584973417045605156585572618767885370294232194823534247553658275123372325232121221822172117211821192119191919181819172017201719181819171917201820222027192622222820272119221620201826173019322229242425232524252022172019192822342530212222193418512265326935612749184217422343324233373027302037234232414236553865375030244849839810612811213411512611311010193888376756166495845463933373046315626581851204633444943614166386536613354304531383330312530263227352434203120282525312334223123222419193121443249404841433837373235312930222721232421272122211717212033324343494749454338312722192322272627282528232922272122191817181620182019181817171817221924202122172618292130222921282224241825162417221820191918181818171917201620161817171717171718171717171716171617171717@11817119171022282287733783269265220351731173718381932192220162218192317261626172318191717161716171717171717171717171818191919191819182018201820182018191818181719171916181717171716181619172017201719182426373246284638475748704367336022561852194720421936202920211918212524292627252319192532415749661861582552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552551092555518178108929378895267435051464437243416382051171717161716171617171817@11917119181012282287732783270265220351732173717391832182220162118192417261626172318191717171717171717171717171717171818181919191819182018201820182018191918191719161916191617171717171717171816221628172921252421211817172217371849205220462036182619222223262230213022252022232231233530384447475350471911682552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552559625553181801079292768951684252504944422537154018512064197427743669427043744075367232612946263725372537253725342629282527242020171817211829194020502452334746465153466235592451184520462647284026352534272525182621312929412051194126262432274343515960626056415324472735322333223227283022281725162617291934204219481748183919291729173617371930272033163520342729342039193723302421231723232429253222321731173120302530302833223117291624192120201820201829173920442744324031342628232520271724182022253636515548674163435548535655726386688452652938341749235541485436562648223323212320222320231821172017201819181918181817191621172117201719181818172018222322262225262132203021202216202118271732193322302426262628272722221718201829223523292220271741195728724075406329481941194327453443343729263020372542353844345738663848312654589210811213511813712112511710510488907978716063495445423830362746295625561949234636465147624465416338583551324334373531322930303331352732222821242621322034213023212319193024433549424742443939373634342831222722242424252620251819252038344747514948454037282722252628313130302830263024262020181717181720192020181818171919212223242226192918301930193019302227241924162216201719181818191719172117211620161917171717171717181718171717171717171819@1191711918102228328783378336926511935173217371839193218222017211819241727162617231819181717171717171718171817171717181818191819181919201820182118201819191818171816191618171717171717171717171719172317241922211818191721242237224622462242233526272923322232202717211918221822192119192022343747555160184161255255255255255255255255255255255255255255255255255255255255255512035173217371838193219222016211919241727162617221819171717171617171717171717171717181819191919191919191820182017201819181818171916191618161717171717161716191621172417251722171817201725182620222120181918182117241826182518252327322537223527293024252823403643555156195165255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255255253255942555218679109909272874765434952444436243316372149236519772479337338693868346831683061284425322430243324342731322535223022202016181621172819392050255233474546505244593356234719422242284229362731273030222917292133273239245121442630243324424053586365626142592752323838243824362930322329172518242126213021381946185022432329192417311836223130213418332233262931223520342328231922172125233025312229172817302131263132303323301727162518232022182019182717371841244029362831232621231824162216211926333548544666426347575055565470598362824662273634174924524145533456274726332623262023211920172017201820191919181818181718162116211720171918181817191920252129222725223120302021221620201827173118322129242526262726262122161920193124362329222029174518632777388038682852194420462947364435383027312238274436404535583567344831265257851071031321071361121261091089791848072715662465342413630342943315426542048214534464947594762446141593753334734393530332733303432342932252725243022362135212823192420203324443448424642413936373435332930242623242624272722281721252041355451595557514744323324292832323532342933273225272219181616171719191920181817171918232024212224182817301928192619262124231824162216201718181819181918191917201719161817171717181718171717161716171617171818@119171191810122822877337832702652203517321737183918321822201622182024172716261723181917171717171717171717171717171718181819181918191919181918201820181919181817181719161816171617171717171717161817221827192818251720172320292631303029262723252121191917181718172023233320421843244029383337413044384017716125525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510225550189741108893733563463344530254957811051001291051311091211081049889877875705961495246414030352844305526572151234735464946604663446041553750344435383729352234233625392338203519322429292731242722192120183221433148384738433539343633332729222522232423252521251720231937324846524949464039272922262730313230312830252924252119191617171718191821171917171917232024212124182718291928192719272124231822162016181717181718181818181917191619161816171717181718171718161816171617171817@118171191810322832877337732702752203617321737173918321922211622181924172616261723181917171717161717171717171717171718181918191919191919182018201820181918181817181619161916171717171717171719172316261728172617211818192619351937193218261923212220191817171717171921232922352237273529353234412647384518416825525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510225554180791069090738646654150514745402537154120512265207426743467406642693970356934593242273423362136213326293426382433232220161716201728173818482351324643454951425932562448214125403140323530312830282326182721332633382351184624302428243739485661626457495730522739302531233130273420321629162918301933204018481750184319301727173317362032292333213427343131352337213625302622241821222126232821271728172920302432293132253218311628172319211819181724173318392440303730322626242322251825172218253130484745634065476153585856706081627847572930361649255042425231542447243425232521242220221821172118221921202020191918191720172117201819181818172019222422282226252131193119222016191917271733183521312326262528252621221720202029243423282219311949206826823685387429582149224628473544343830273022362641343841335335603544302448558010199126104129108121106104978886777469596048514541393035264328552557205023463446494561446442624059375234453337342834253329343236283522312128262531243223282420242020322244324838463942373936363432272921252123242324252025172023193530454349464643373625272026263030323032283126292525222019171718171918192018191717181722182419212118251728192819272026232324182316211618171818185486251625460656178627546543027381550274943395328542147213422232220212219221721172217231822182018181717181720172118201818181718171919212421292226252131193120222117202117291734193622332428262628262922251721192128263226262418331950226928833685387429592250214729463643373732263220392344324142365536653550292649548410510513211213611612711410910292888175735963495346423932342841305226532047214233434845594760465843553949354336383730342431243226352336193319302427292432232825202519203121433248414641413837373535332930232623232522252220211618211932314241464343393532242317212025252726282629252924262321201817171618181920182017171917221823192221192418272027202520252322261826162316211720181918191919182018211720171816171717171718171717171716171717171818@117171191710221812776327732692652203517311636183818331823211723182023172616261724182017171717171717171717171717171718181819191919191919181918201820181918181817181719171816171717171717171719172518311933232825192018182829394242503851304526332421231619161817201722162316231825192718231921323048385516716325525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525511725553184731078988788552644147484544412537163821482362207225733567406640683468316629582742233419341934213127283425372332232221171817201726173618472350314643465052455935552547214124412943293726312529262224172420292528362148214430312731224037525866677263576335582845283129242926283024311929162917291931213821461849174118291725173117331927251928182924323034352638203523262618261823272331243022281728173020312433313135243417311626202122201918181725163418392439303530302425202318251624172118243232495148654565526355645562666479657649543127381551275144415429562249203421222319222119211720172117221721182018191818191620172117201818191718171919212421282226262132183018212016192217281732193522332428262727282724231720192028263326262418311947226626803384357327582048214728463544363831273121372442323941335534653451302549518299103128108134113128112111100948681747259634854444338333329403051265120462142324302742354616315225525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525525510625545198711139090788652654147484543422338163921492264207427743766426644704173387334653149263723362235213424343231352830262123181819191826173718502355315142504755436233612552194420432646294327372734302629182720302730372351185025312526213533475260626459485731533240372636243432283621341729192722302334224120491751194521321928173517392033262131163419372337282734193721322524241821202224252623261827162918292429332838233717321625181919171819191927183619402438293628332328202418241723162117252932474948664468526556635561646276647650573032371650215137404827501944183119202219212119221721172018211921202020201919191

GitDave99 commented 3 years ago

Hi Hasan,

I made an Excel sheet to help decipher decimal frame size parameters to two bytes values. [image: image.png]

On Thu, Jul 8, 2021 at 4:03 PM Dave Conrad @.***> wrote:

Hello Hasan,

Thanks for the added benefit of larger triggered frames! The scale and offset feature makes it easy to declutter a multitrack chart.

This is about your request for ASCII , you wanted to see my output when I am sending ASCII. Yep, step one, source. PBP context looks like this: "debug dec my_variable(index)" in a for-next loop

The "dec" does exactly what one would expect, binary is coded as decimal ASCII. I'm dealing with UINT8 bytes in my data structure.

Output: [image: image.png] Here it is again in CSV format, just for fun, using CoolTerm instead of the terminal in my PBP compiler:: [image: image.png]

Without documentation or guidance, I have no idea what to provide, other than trying CSV. I believe I am doing something wrong, am I right?

While sending this format, neither ASCII mode nor text (by design, no text for what's not valid input) show any response. I've tried CSV, no difference.

be well Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#m_-8914017127579857653_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Thu, Jul 8, 2021 at 1:17 AM Hasan Yavuz ÖZDERYA < @.***> wrote:

Closed #8 https://github.com/hyOzd/serialplot/issues/8.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#event-4993403573, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPN3RHIUTCNAJCFHYF7LTWVNLDANCNFSM47VUDQ4Q .

hyOzd commented 3 years ago

@GitDave99 I think something went wrong in your email. Instead of email, can you post it on github directly.

GitDave99 commented 3 years ago

Hi Hasan,

Must have been the attachment.

Okay, it was just this; I think it would be a good thing to make a user-friendly interface between the new two-byte input and the hapless user.

I did some searching in the Excel world for solutions and found something that I modified, which served well to get from a decimal number between 0 and 65535 to two bytes formatted for your current input method.

Where A3 is the user input in my Excel sheet.

DEC2BIN(INT*$A3/256),8) which parses the most significant byte out of the user's decimal input, then places binary in a cell DEC2BIN(MOD($A3,256),8) which does the same for the least significant byte

I used these to make binary numbers, high and low bytes, in two cells, then convert the binary to decimal again for your input from my program.

Anyway, thanks so much for the solution to my problem! I greatly appreciate your effort and your creation.

Stay well, stay happy all else, is crappy

Dave

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Fri, Jul 9, 2021 at 12:41 AM Hasan Yavuz ÖZDERYA < @.***> wrote:

@GitDave99 https://github.com/GitDave99 I think something went wrong in your email. Instead of email, can you post it on github directly.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/hyOzd/serialplot/issues/8#issuecomment-876984890, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUWJPN4YUQESGRY6KFMPQYDTW2R4HANCNFSM47VUDQ4Q .

Kabron287 commented 3 years ago

@hyOzd, My condolences

arduino12 commented 11 months ago

Hi,

This is an amazing software!

I don't understand why the "Fix Frame Size" is limited to 255 ? (I am using SerialPlot 0.12.0 on Windows10 64bit).

@hyOzd Can you please remove that limit (and also increase the width of the input text so it can show like 8 digits)? I see you increased it to 65535 but in my software it is still limited to 255.

Thanks and looking forward to test and report if it works!