TODO
Revision as of 01:32, 20 January 2011 by Uwe Hermann (talk | contribs)
sigrok 0.2
- Ensure that segfaults are rare / non-existing in CLI. Use code reviews and valgrind or similar to check.
- Support OLS file format input and output (https://github.com/jawi/ols/wiki/OLS-data-file-format).
- CLI: Fix save session, implement load session.
- sigrok_errno:
- Most functions should return SIGROK_OK or SIGROK_ERR_* (same for LIBSIGROK_OK etc).
- Most backend functions return status as an integer, which is SIGROK_OK if all went well, or SIGROK_ERR_* and similar if an error occurred.
- However there is no way to pass any information back as to what went wrong — and this is important for user-friendliness.
- Perhaps an error code is not enough; maybe something like sigrok_errno(errorcode, "unsupported device") is better.
- Don't initialize any and scan for any hardware if the -d option is used; instead, only initialize the specified device.
- Make sure all combinations of --enable-*/--disable-* options works for configure.
- There are possible issues if no libusb-device is enabled (e.g. only OLS or only demo).
- There may be issue if none of the drivers is enabled, print useful error in that case(?)
- libsigrok.h/libsigrokdecode.h: Only list public API functions.
- Prefix all public functions with sigrok_ or sigrokdecode_.
- Windows port: Implement anykey.c replacement.
- CLI: Restructure command line option syntax.
- libsigrok, libsigrokdecode: Proper shared libs setup and version numbers to be able to handle API/ABI compatibility issues sanely later.
- Also, provide correct and complete libsigrok.pc/libsigrokdecode.pc files.
- Fix segfaults in protocol decoders, e.g. sigrok-cli --samples 2050 -a transitioncounter.
- demo driver: Add a mechanism to set/report a samplerate, needed for some output file formats and other stuff.
Future
- Add support for downloading/installing the Python Windows installer.
- Fix/workaround libusb 1.0 Windows port issues:
- Device renumeration not yet supported (needed for FX2 based LAs)
- File descriptor / socket based polling not supported in Windows. Workaround (short-term): Use a thread in sigrok.
- Make sure all optional components are really optional in the build system:
- Only require Python if the users wants protocol decoders, the rest should also build/compile/run fine without Python installed.
- sigrok uses uint64_t as an internal datatype to represent a sample, limiting the number of probes on supported hardware to 64. But high-end logic analyzers can have hundreds of probes. A solution would be to switch to either a roll-our-own byte array type, or use GMP. In any case, the overhead of switching over shouldn't be too bad: the filter code and frontend datafeed callback functions will need to use it, but hardware drivers should have enough with a couple of lightweight wrappers.
Hardware drivers
- Clean up device-specific globals in hardware drivers, to properly permit multiple devices per driver.
asix-sigmademo(not relevant)link-mso19- openbench-logic-sniffer
- saleae-logic
- zeroplus-logic-cube
Contributors needed
- Add output for latex package tikz-timing
- Open-source firmware for the FX2 devices
The Cypress FX2-based devices, such as the Saleae Logic and the USBee SX, use only a minimal vendor-provided firmware. The only thing it really does is set the sample rate and turn on the chip's auto-mode. Nevertheless, the vendors provide the firmware as a binary blob, with no source.
It would be great if sigrok could ship with an own firmware implementation for these devices. Some links:
- SDCC, the Small Devices C Compiler, is a compiler specifically suited to small MCUs, and has support for the 8051 core in the FX2.
- fx2lib is an open-source library for writing firmware on the FX2. It has a number of interesting functions, including implementing custom USB vendor commands.
- GNU Radio's USRP2 board has an FX2 on it, and GNU Radio has extensive custom firmware for it.