Experimental DataLogger2 using a CircularBuffer<T>#3946
Experimental DataLogger2 using a CircularBuffer<T>#3946swharden merged 8 commits intoScottPlot:mainfrom
CircularBuffer<T>#3946Conversation
2b75d26 to
3465e60
Compare
|
@swharden Will be very nice to get your thoughts on that. The main reason for making this change for me personally was to limit memory consumption when running for very long periods. That's why I went on with adding CircularBuffer. |
|
Hi @drolevar, thanks for this PR! I'm starting to run out of time today and may have limited time tomorrow 😅 but this PR is definitely next up for me to review 👍 I took a quick look in my browser and this is looking great! I like how you created a dedicated
|
|
Hi @drolevar, I haven't heard anything in a little while and this PR is still marked "draft", however it's looking pretty good so I'm going to take a few minutes now to modify it slightly and merge it in. If you had additional work you were planning to do to these classes we can start a new PR and take a closer look. Thanks again for this new datalogger! This is looking fantastic 🚀 |
This looks close, but not identical |
|
CircularBuffer<T>
|
Hi @drolevar, thanks for the follow up! I'll throw an exception when rotation is assigned to and we can add that functionality if it's desired in the future 👍 |
|
@swharden Do you have an idea of what has to be done do take it out of the experimental? |
Probably update the following sections:
To clarify how this new class is different from the existing ones. To be honest, I'm still uncertain about this myself. If the new class can simply replace the existing A few messages up you said "The reason I didn't use DataStreamer is that it didn't have the functionality I needed, however at the moment I don't remember what that was.", so maybe just clarifying that point will let us deprecate the old one and replace it with the new one |
|
This would be amazing on a DataLogger along with the nice ViewFull() and ViewSlide() functionality. I also need this functionality. I currently achieve a circular buffer by calling if (IsDataCountLargerThanBuffer && IsCircularBuffer)
{
DataLogger.Data.Coordinates.RemoveAt(0);
}but this is not the best approach and comes with some issues: #3969 |
* upstream/main: Fix interaction of axis panels when scale factor is more than 1 (ScottPlot#3994) Added ResetMinAndMaxValues() to DataLoggerSource.cs (ScottPlot#3993) CoordinateLine: add constructor overloads (ScottPlot#3987) Colormap.GetColors() (ScottPlot#3983) Added a constructor overload that accepts List<Coordinates> (ScottPlot#3982) Signal: improve support for IReadOnlyList<T> (ScottPlot#3978) Axes: improve sharpness of axis lines, tick marks, and grid lines (ScottPlot#3976) adding console write file name function (ScottPlot#3965) Color.ToColor() Sandbox: extend minimal API Sandbox: Create .NET API project SVG XML Updates (ScottPlot#3957) Repeat render if changes are made in invoked events (ScottPlot#3952) CI: autoformat Experimental DataLogger2 using a `CircularBuffer<T>` (ScottPlot#3946)
There are two main goals behind this Datalogger: