-
Notifications
You must be signed in to change notification settings - Fork 354
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
siglent-sds: Reimplement eseries acquisition logic and add new scope models #118
Conversation
This commit re-implements the whole acquisition logic for the Siglent E-series (SDS1000X-E, SDS1000X-U, SDS2000X-E). The acquisition is based on a state machine to keep the logic simple and robust. Additionally this improves maintainability as the E-series acquisition logic is now isolated from the older models which follow a partially different logic and have other constraints when compared to the E-series.
90cf08b
to
27273a0
Compare
I've re-rebased this PR against the master since the original PR was already 8 months ago and in a state of merge conflict. At this point however I'm not able to comment if these changes work anymore as originally intended as some of my code from the other PR was partially cherry-picked without due care. Therefore I suspect the whole thing just segfaults. Or maybe the ESERIES works, but other siglent models segfault (see #114 (comment) ) The communication in sigrok community appears to be pretty abysmal these days and majority PR's just get ignored, so I'm not keen on putting any more hours into this. |
Added USB product code for SDS1104X-U
@gsigh Sorry to tag you here, but I see you're an active maintainer and I was wondering if we could get this merged sometime soon. The original bug is here. |
Jfyi, I tested this today (merged to the latest libsigrok master) with my SDS1204X-E, and it makes pulseview work. |
I can also confirm that analog acquisition is working rather reliably with (a rebase of) this PR on my SDS1104X-E. This is contrary to master, which is unusable. Unfortuantely, digital acquisition seems not supported. I tried for quite some time to get any of the SLA1016 signals to work but then discovered related log messages. I wonder when the maintainers are going to either merge this PR or provide meaningful feedback what should be changed to get it merged. |
Thanks for the reviews. There's an ongoing thread on the mailing list on the state of the project. It seems like the sole active maintainer doesn't have (unsurprisingly) the capacity or interest to process PR's, but at the same time the project does not welcome new maintainers who could do that. So it's a deadlock for the unforeseeable future. Gerhard said in the linked thread that ANYONE can do reviews/test, but what good does it do if there is no intention/interest to merge the PR in the first place I might ask. And how does one even pull off testing this PR properly - as this this driver supports, what, 25 different Siglent oscilloscope models from different eras each with their quirks and protocol differences. As far as I recall I proposed few years back that I could split the driver to reduce the testing burden but got no feedback Anyway, probably shouldn't merge this anyway without an active maintainer willing to look after the siglent driver to ensure that new bugs introduced here get fixed in a timely manner. |
I just read along on the mailing list, and as far as I understood it, the "obstacle" to merging PR's are concerns about maintainability. I believe this includes quality of submitted code and commit messages (think git blame) as well as the question who tests or maintains the feature after it has been merged.
I think his main point is that the community should engage more. This means that other people than Gerhard take a look at the code and give feedback etc. People with the hardware can test functionality and report what works or what not. Someone could come forward to maintain the code after it was merged. That being said, I don't know if once all conditions are fulfilled, someone merges the code. But nonetheless, I see some PRs got merged in recent time, so maybe? My try in this PR: Potential improvements:
|
While it's a reasonable thing to wish for, holding PR's as hostage to encourage/force users to contribute to free software is certainly an odd position to take. I'm not really convinced that that is the ulterior motive. But I'll refrain from speculating.
Sorry, given the state of things with the project organization, I prefer not to be involved.
Ideally there would be common/shared functionality and clearly isolated hardware specific functionality. The complete splitting of a driver is not ideal since it will duplicate code but I proposed it to remove the need to consider and test older hardware generations. FYI if anyone wants to work on this you're free to use any code in this PR with or without attribution. But I highly recommend getting in touch with someone who has commit access and make sure your effort is welcome before you start pouring on your free time on this. Just ping in this PR so other Siglent users can find your work too. Please do note that there is also a conflicting PR: #176 |
In fact, you are speculating by assuming that PRs are ignored on purpose and "held as hostage".
At this point, I believe the issue is not solely of technical nature but also has a social component involved that should be addressed. All sides usually have complex reasons and motivations for their behavior which each seem perfectly reasonable to them, the goal is to learn about the other's side story. |
OK, bad wording, the bottom line was that it's the users fault that PR's are not received/welcomed/merged.
The social structure of the project appears to have changed quite significantly over the past few years. Like Gerhard himself wrote, there are only a few developers left. The old lead seems to be gone and to me it looks like Gerhard seems to emerge as the de facto leader now. The old contribution guidelines etc. probably don't quite reflect this change yet. Part of me doesn't quite want to throw in the towel yet. Should probably get in touch with Gerhard and ask how he sees this driver should be handled (for example splitting it?). Is anyone here interested in co-authoring future changes? I'm quite tight on free time I can allocate to programming so working together would be nice. |
Changes are implemented so that they should not affect other series besides eseries. These changes have been using SDS-1104X-E. Fixes broken support to all e-series scopes and adds new models: SDS1104X-U, SDS2202X-E, SDS2352X-E
The acquisition logic for the eseries has been completely reinvented, simplified and made quite error resistant. USBTMC support is included (although it is significantly slower than TCP). The acquisition logic for the eseries is also now completely isolated from older models, allowing maintenance and improvements to be made and tested without breaking legacy compatibility.
Addresses bugs: