Skip to main content
Topic: New member, how to contribute? (Read 2448 times) previous topic - next topic

New member, how to contribute?

Hello, 

I am a new member.  I have used the SUMP analyzer quite a bit in the past and I am very glad to see that it lives on in a new iteration.  About 2 years ago I made several enhancements for SUMP, but there was no interest in incorporating the new code into the project.

I had re-written the display code so it could seamlessly use all the data, rather than paged data.  It could zoom from showing 100% of all the data down to each clock being around 10 pixels wide. I just tried out the newest version of the client and this appears to have been done.

I also wrote a graphical mouse-based zoom capability.  This is a very nice enhancement, and it was the primary reason I had re-written the code.  Maybe my code could be used in some way to add this capability.

I added to the zooming controls a "Back" button with an arbitrary number of stored previous zoom and position settings.  This might be useful.

I used Eclipse for the IDE, and liked it a lot.  What do you guys use for the development of this software?

I then wrote an entire new version in C++ using wxWidgets and mingW32.  That seemed pretty good, though surprisingly, the graphics were pretty slow.  Screen re-writes were slow.  The rubber-band rectangles I used for creating a zoom window with the mouse were painfully slow.  Would Java draw the rubberband rectangles faster?

I tried using the UART RS232 tool in the new software on a capture I made with the old SUMP program.  It was nice, but it reported some frame errors.  AFAIK, there were NO frame errors.  The SUMP RS232 decoder was TERRIBLE.  I made it considerably faster without much effort.  I was able to eliminate frame errors (or at least reduce them) by resetting the frame at the starting edge of each bit (at least on bits that started with an edge).  Is this technique used to constantly correct the frame in this version of the software?

I have a few other things that I worked on in the old SUMP project if any one is interested.

-Tony

Re: New member, how to contribute?

Reply #1
[quote author="spamiam"]Hello, 

I am a new member.  I have used the SUMP analyzer quite a bit in the past and I am very glad to see that it lives on in a new iteration.  About 2 years ago I made several enhancements for SUMP, but there was no interest in incorporating the new code into the project.

I had re-written the display code so it could seamlessly use all the data, rather than paged data.  It could zoom from showing 100% of all the data down to each clock being around 10 pixels wide. I just tried out the newest version of the client and this appears to have been done.[/quote]

As you've already might have read, I'm currently also busy with a new rewrite of the display component, to be able to incorporate all the new requirements I've got. You can give it a look, it is on GitHub: https://github.com/jawi/SignalViewTest (it is an Eclipse project).

[quote author="spamiam"]I also wrote a graphical mouse-based zoom capability.  This is a very nice enhancement, and it was the primary reason I had re-written the code.  Maybe my code could be used in some way to add this capability.

I added to the zooming controls a "Back" button with an arbitrary number of stored previous zoom and position settings.  This might be useful.

I used Eclipse for the IDE, and liked it a lot.  What do you guys use for the development of this software?[/quote]

The mouse based zooming is a much requested feature, if you're willing, you could try to incorporate it in the new display component?

I currently also use Eclipse as primary IDE, but I believe others are used as well (Idea).

[quote author="spamiam"]I then wrote an entire new version in C++ using wxWidgets and mingW32.  That seemed pretty good, though surprisingly, the graphics were pretty slow.  Screen re-writes were slow.  The rubber-band rectangles I used for creating a zoom window with the mouse were painfully slow.  Would Java draw the rubberband rectangles faster?[/quote]

One of the reasons I chose to remain using Java was its ability to provide a cross platform UI. Swing is rather optimized for performance, using OpenGL or DirectDraw when needed. This makes it quite usable for this project. I'm not that familiar with wxWidgets, but could it be that it does not use DirectDraw?

[quote author="spamiam"]I tried using the UART RS232 tool in the new software on a capture I made with the old SUMP program.  It was nice, but it reported some frame errors.  AFAIK, there were NO frame errors.  The SUMP RS232 decoder was TERRIBLE.  I made it considerably faster without much effort.  I was able to eliminate frame errors (or at least reduce them) by resetting the frame at the starting edge of each bit (at least on bits that started with an edge).  Is this technique used to constantly correct the frame in this version of the software?[/quote]

Not that I'm aware of, but it is a good suggestion.

I'm always open to improvements and could use all help I can get, so if you're interested, you could provide patches and/or other contributions that might aid the usability of the client...
when good software is not an alternative...

Re: New member, how to contribute?

Reply #2
[quote author="jawi"]As you've already might have read, I'm currently also busy with a new rewrite of the display component, to be able to incorporate all the new requirements I've got. You can give it a look, it is on GitHub: https://github.com/jawi/SignalViewTest (it is an Eclipse project).[/quote]

I will look into setting up the project. In Eclipse on this computer.

I don't have the Demon Core logic sniffer.  I do have the Xilinx/Diligent Spartan-3 starter board that was for the old SUMP project.  Is this Client software backward compatible with the old board?

[quote author="jawi"] The mouse based zooming is a much requested feature, if you're willing, you could try to incorporate it in the new display component? [/quote]

I can try to add the mouse functionality.  It was not hard to do.  I have to see haow easy it is to convert screen coordinates to clock positions, that is the key.  I had to write a number of back and forth conversion functions into one of the objects (I forget which one).  It started to get pretty hairy with all the objects with different ones all having some direct influence on the display of the data.  I felt that the SUMP program did not adhere closely enough to the MVC pattern to make it intuitive.  Also, I don't think that the project is easily crammed into a classic MVC pattern.  That is why I rewrote it in C.  I wanted it to be faster (succeeded in everything except drawing), and more MVC compliant.  wxWidgets does give some cross-platform functionality.

[quote author="jawi"]One of the reasons I chose to remain using Java was its ability to provide a cross platform UI. Swing is rather optimized for performance, using OpenGL or DirectDraw when needed. This makes it quite usable for this project. I'm not that familiar with wxWidgets, but could it be that it does not use DirectDraw?[/quote]

wxWidgets is a pretty nice set of tools which make it easier to set up a GUI.  I don't know what drawing techniques it uses.  It is supposed to be pretty fast, but I think there is a lot of overhead between the user and the primitive drawing commands.


re: RS-232 translation.  I found that it was very helpful to keep recentering the reading frame at every bit transition.  It lowered the error rate noticeably from the original SUMP technique.  In this manner, the frame error is not cumulative over many clocks, but it could be susceptible to noise if a noise transition occurs close to where it expected a normal bit edge.

I will be happy to add my small amount of expertise to the project.

I will also see if I can get the SVN functions of Eclipse to work.  I never used them before.

-Tony

Re: New member, how to contribute?

Reply #3
Hi Tony,

Welcome to the forum, thanks for joining us.

Quote
I don't have the Demon Core logic sniffer. I do have the Xilinx/Diligent Spartan-3 starter board that was for the old SUMP project. Is this Client software backward compatible with the old board?

We have added some extensions to the SUMP protocol, but the current client should work with any SLA1 core. It even works with some very limited microcontroller devices that implement a tiny subset of SUMP.
Got a question? Please ask in the forum for the fastest answers.

 

Re: New member, how to contribute?

Reply #4
Tony,

Very glad to hear that you have some contributions to add, I just wanted to add a clarification that SVN is no longer used. :)

The SVN project is still there for historical purposes, but all the new work is happening on github with git.

Jawis repository is located at https://github.com/jawi/ols if you are only making changes to the client then this is where you want to pull from and push any changes to.

If you want an automated build process for all the bits and pieces of the OLS project then that is located at: https://github.com/GadgetFactory/OpenBe ... ic-Sniffer

Welcome aboard,
Jack.