Giter Site home page Giter Site logo

ols's Introduction

OpenBench LogicSniffer

OpenBench LogicSniffer

This is the public Git repository for the OpenBench LogicSniffer (ols for short) written by J.W. Janssen. It is an alternative client for an open source logic analyzer called the Open Bench Logic Sniffer. Refer to this page for more information about the project.

FEATURES

The alternative Java client provides the following features:

  • Cross platform: The client runs on Mac OS X (32/64-bit), Windows (32/64 bit), Linux (32/64 bit) and Solaris (32 bit)

  • Simple installation: No longer fiddling with the serial libraries (RXTX) in order to get the client up and running. The client embeds the suitable serial libraries for several operating systems

  • Pluggable: Adding new functionality on the fly is possible and as easy as copying files to a single directory

  • Looks and feels good: The client has a good look and feel, aiming at being as usable as possible and adhering to the human interface guidelines of the platform it is running on.

DOCUMENTATION

All documentation is maintained in the wiki.

COMPILING THE SOURCES

In case you are interested in cloning this repository and compile it for yourself, you should do the following:

$ git clone http://github.com/jawi/ols.git

For compiling the sources, you need to have at least a valid JDK (1.6+) and Maven installed. For developing, I recommend Eclipse as development environment.

$ cd ols/ $ mvn clean install

After this, you should find the latest binary ZIP or tarball in ols.distribution/target.

DEVELOPING FOR OLS

Developing for ols can be done with any modern IDE, like Eclipse, Netbeans, or even Emacs. Keep in mind that IDE-specific stuff is not committed to the repository as this would clutter it unnecessarily.

Keep in mind that your IDE should provide support for Maven, otherwise it most probably will not compile out of the box. In addition, you probably want support for Git in your IDE as well. To create the needed project files for Eclipse, for example, you can use the following Maven command:

$ mvn eclipse:eclipse

There are similar commands for other IDEs. See the Maven site for more details on this.

Some notes for Eclipe: After having imported the projects into your workspace, you might need to enable Maven support by hand. Simply select all projects, right click on them and choose Enable Dependency Management from the Maven menu should be sufficient. For running the OLS client in Eclipse, you can make use of the launch configurations found in the eclipse/ subdirectory of the OLS repository. The code formatting rules and cleanup rules can be found there, too.

CONTRIBUTIONS

Drop me a line if you want to contribute code to the OLS repository. If needed I can give you write-access to the GitHub or apply your patch directly.

CONTACT

You can reach me at: j dot w dot janssen at lxtreme.nl

DONATIONS

You can support and encourage further development of this project through the following means:

Flattr This!

Bountysource

LICENSE

GNU GPLv2

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

ols's People

Contributors

dependabot[bot] avatar enkore avatar gillham avatar jawi avatar jelmert avatar kbabioch avatar matthijskooijman avatar piopawlu avatar stefanct avatar tudorp avatar wurstwasserflocke avatar zizzle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ols's Issues

VCD exports ignore selected channel groups.

VCD dump is ignoring the selected number of channels and always dumps all 32 channels. Also the VCD format allows to list for each sample only the channels that have change value; instead they are all listed

(reported by zelea2)

No menu entry for 'capture' functions

This nit-picking, but I miss menu entries for the 'Start capture', 'Cancel capture' and 'Repeat capture' functions. Yes there are icons for direct access, but in my head I always think of icons as shortcut to menu entries. So if I want to see all functionality of a program I look through all menus and should find everything. In the ols-client I have to check out the menus and the icons as the above functions have icons only.

"Transition/Edge counter", possibly in "Measure" dialog

It seems that a really quite basic and essential tool is missing, which is simply a counter to count pulses/transitions between two markers.

This would fit well onto the "Measure" dialog, just add a dropdown for "Rising/Falling/Both" and count the edges between the two selected markers.

Add icon to window/application

On Windows, the default Java icon appears as window-icon. On Mac OS, no application icon is set. Make a new icon for this.

(reported by smarkus and others).

Make the channel colors configurable.

configurable colors would be nice, so that the user can set them to match the probes.

several color schemes could be supported:

  • Saleae probe scheme:
    1. 000000 (black);
    2. 8B4513 (brown);
    3. FF0000 (red);
    4. FFA500 (orange);
    5. FFFF00 (yellow);
    6. 00FF00 (green);
    7. 0000FF (blue);
    8. A020F0 (purple);
    9. CDC9C9 (gray).
  • OLS probe scheme;
    1. 000000 (black);
    2. FFFFFF (white);
    3. 00FF00 (green);
    4. FF0000 (red);
    5. 0000FF (blue);
    6. 00FF00 (green);
    7. FFFF00 (yellow);
    8. 0000FF (blue);
    9. FF0000 (red).
  • custom probe scheme.

In which the order can be defined (or mirrored), and whether or not the first channel is to be considered "ground"...

allow setting trigger delays in seconds instead of number of samplings

the "delay" textfield(s) triggerDelay only allows for specifying trigger delays by the number of samples passed. it would be nice to be able to enter it in seconds too.
to distinguish between sample# and time based delay, i think it is enough to look for 's' in the end of the string (i.e. no new gui elements, only additional tooltip text). preferable the parser would also be able to handle n, µ/u, m as prefixes similar to NumberUtils.parseUnit (which btw should parse m and g case sensitive imho).

Allow import of Value-Change dumps

The OLS client is also used for viewing data from other sources. To make this easier, it should be possible to import VCD dumps and display them in the client.

(requested by rsdio)

NPE due to default values read in readPreferences

i discovered several null pointer dereferences in LogicSnifferConfigDialog.
they are all related to JComboBox sizeSelect i think.
look at line 406: this.sizeSelect.setSelectedIndex( aSettings.getInt( "size", this.sizeSelect.getSelectedIndex() ) );

this.sizeSelect.getSelectedIndex() returns always -1 i guess, because in the beginning nothing is selected. this is the second parameter to getInt which indicates a default value, when it cant parse/read the property.
the problem seems that sometimes(?) it really can't read the property and returns the default value of -1 which makes setSelectedIndex to select nothing aka null.

this will produce NPE in lines 1078:
int sampleCount = ( ( Integer )this.sizeSelect.getSelectedItem() ).intValue();
64 and 85 (i'm not sure about the latter two).

i'm not familiar with the preferences thingy so i'll just report it.

Add warning message about highest channel icw RLE

When using RLE, the highest channel, that is, 8, 16 or 32 is used to encode the RLE-count flag. This means that it does not contain any real information as it is zero'd out during decoding. Add a warning message about this when enabling the RLE option.

Stop button now always enabled

On some platforms (Windows, Linux perhaps?), the stop-capture button is not enabled after starting a capture. It does seem to work on OSX...

(reported by lura).

cursor labels and timestamps are not always redrawn (correctly)

when a tooltip from hovering over an icon in the toolbar is drawn over the label of a cursor, the label is not redrawn correctly after the tooltip is gone. the timeline ticks refresh correctly i think.
the rendering of the timestamp is also sometimes broken, but the bug with the labels is easier to reproduce. the timestamps seem to be re-rendered in another location sometime.
http://666kb.com/i/br658le6va94fbvuw.png shows both problems.

when RLE is enabled the first value rendered is always low

when RLE is enabled the first value rendered is always low, even when the signal is held high all time while capturing. in org.sump.device.logicsniffer.LogicSnifferDevice.RleDecoder#process the first value added seems to be hard coded to 0: this.callback.addValue( 0, time );
but this seems to only effect the first value of the first channel... or so. first time i skimmed over that code... sorry :)

Right-click on the time-scale should allow setting a cursor

Right-clicking on the time-scale actually does nothing. To set a cursor one needs to right-click in the data area.

I think this is counter-intuitive. The cursors are essentially time-scale items, they represent a time. So you should be able to set by clicking in the time-scale area.

In addition, right-clicking on a channel should bring up channel-related preferences, allowing to change its label, for example.

'felix-cache' created in working directory

It looks like the ols client creates a directory 'felix-cache' in the current working directory. This seems to be an artifact of the Apache Felix Framework used. This framework seems to need such a directory.

To mitigate the littering, can we set configuration to place the directory in $HOME instead of the current working directory ?

support OLS-device profiles for BP, regular OLS and SUMP

Support OLS-device profiles for BP, regular OLS and SUMP to support their distinctive features, such as 256k sample depth for the original SUMP, or 5 channels on the BP.

In addition, make the tools aware of the device capabilities (5 channels for BP iso 32, etc.).

Support easy/easier upgrade procedure;

The use of OSGi (icw FileInstall) should allows an easy/easier upgrade procedure. Currently, most users probably will reinstall each new version. Perhaps an "check for upgrades..." button could simplify this...?

I2C decoder produces invalid address

The I2C decoder produces incorrect 7-bit addresses if decoding a multi-slave capture.

This is because the slaveAddress variable is not overwritten, but OR-ed.

(reported by Robert Schneider).

Is it possible to disable DTR when opening the serial port, or delay reset/id commands?

I have written a SUMP compatible logic analyzer for the Arduino, but I have to disable the auto reset feature as by default when the serial port is opened DTR is touched and this causes the Arduino to reset. The SUMP clients seem to send reset & id commands immediately after opening the port and the Arduino is not quite ready to accept them.
My feature request is:
A) would it be possible to add an option delay after open to allow the Arduino code to become ready? And probably clear any bytes in the input buffer from the Arduino. I don't remember if the boot loader sends a byte on reset. I tried added a Thread.sleep(1000) in a couple spots but it didn't seem to help. I'm not at all familiar with Java so I don't know that I had it right.
B) would it be possible to have an option to disable DTR before opening the port? I have read about some 'setdtr' functions, but it seems like this doesn't necessarily disable it depending on some underlying drivers. It seems like option A might be the only reliable way.

Here's some mention of the Java DTR problem with auto-reset:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1268642002

Also my Arduino based logic analyzer supports 1MHz (and lower) sampling, 5 or 6 channels, but only 512 samples. If I made a device profile would you add it? It works with the OBLS profile if I use the right settings. I'm responding to the get_metadata command too.
Thanks!

Move old TODO list to GitHub

This will be the new place where feature requests, bugs and other todo's will be gathered and prioritised. The old todo list needs to be moved to individual issues here...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.