-
Notifications
You must be signed in to change notification settings - Fork 76
NewSignalDisplay
J.W. Janssen edited this page Mar 14, 2011
·
3 revisions
The new signal display component is a total rewrite of the existing signal display component. Reasons for this are that the current component is:
- Hard to maintain, the code is needlessly complex and tangled;
- Slow, the performance was tweaked a bit, but it should be a lot faster. Especially when the continuous sampling mode is going to be introduced, all the speed we can gain is a pro;
- Makes "hard" assumptions about the availability of information, like the number of channels and so on.
The new signal display component shall support:
- Fast drawing of signals up to 32 channels;
- Allow channel reordering through drag-and-drop;
- Introduce a new timeline that provides detailed time information at all zoom levels;
- Configurable channel labels;
- Configurable channel colors (either predefined or by using color schemes);
- Showing channel indexes beside the channel label;
- Configurable cursor labels;
- Configurable cursor colors (either predefined or by using color schemes);
- Snap cursors to signal edges;
- Measuring pulse widths/periods;
- "Infinite" zoom levels;
- Zoom by dragging a window over the area of interest;
- Zoom between two defined cursors (?);
- Make it easy to 'navigate' between signal edges in a channel;
- Provide timing information between two selected cursors;
- Mask out unused channels to get more attention to the "real" signal data.
- The signal drawing for 8 channels should be in the magnitude of tens of microseconds and for each added group of 8 channels scale linearly;
- The component should react to user-events (clicking, dragging and such) in less than 100 milliseconds.
- The component should be tested through unit tests as much as possible;
- All keyboard shortcuts/accelerators should adhere to the Human Interface guidelines as defined for Gnome, Mac OSX and Windows as much as possible;