Code Monkey home page Code Monkey logo

sitidiui's Introduction

SiTiDiUI is a Simple Timing Diagram generator, using a GUI.

It is written in Python, using the PySimpleGUI module.

At the moment this is a very basic program but fully functional.

Screenshot

Assuming Python is already installed, PySimpleGUI can be added with a command such as "python -m install pip -U PySimpleGui". Other modules include pillow (PIL) and math. This can be converted into an exe as well.

Creating a timing diagram

The user can click on a timing line and rotate through options of Low logic level, high level, rising edge and falling edge.

If a high logic level is chosen between a rising edge and falling edge, then the whole stretch is flipped high. Conversely, if a low level is selected between a falling edge and rising edge, then the whole stretch is flipped low.

The units and tick marks on the x axis can changed, the number of timing lines can be set (1 to 6) and a short title can be given for each line (click on the default title).

The existing graph can be saved as a GIF. Note: the coordinates for saving the image had to be adjusted for the monitor used during development, it has not been tested on a variety of monitors. A backup method is to take a screen shot.

Needed features

If a user knows Python and Github, they are welcome to help this project!

Missing features:

  1. Save/read configuration file, format TBD
  2. Test "Save Image" feature on other systems
  3. Add a tristate option
  4. Add ability to create a sine wave for a timing line, with a configurable frequency
  5. Be able to add vertical timing marks in the graph
  6. Change top area with configuration settings into a pull-down menu.
  7. Have an adjustable rise time/fall time
  8. Report the version number

sitidiui's People

Contributors

gitneff avatar

Stargazers

Kevin 0966 avatar Ilyas LEFEBVRE avatar rizal avatar  avatar PySimpleGUI avatar

Watchers

 avatar

Forkers

mfkiwl

sitidiui's Issues

For configuration feature... check out the PySimpleGUI User Settings APIs

I noticed in your readme, along with the awesome screenshot, the list of Needed Features. The first one grabbed my attention

Save/read configuration file, format TBD

This one is easily solved using the PySimpleGUI UserSettings calls.

You've got a choice of either JSON files or INI files. I tend to use JSON because I don't ever hand-edit these files. I never even see them since they're stored in a settings folder. Almost all of the newer programs that I write have a settings file. The rainmeter-style desktop widgets use these APIs to store the last location of the window when the window closes so that the window is opened to that same location the next time.

Other larger programs like psgtest have numerous settings:

image

You can let PySimpleGUI do the naming of the file for you and jump right into saving and loading settings. That's how I use them. There is no open or save needed.

To change a setting:

sg.user_settings_set_entry('setting name(i.e. the key)', 'value')

And to read a setting:

setting_value = sg.user_settings_get_entry('setting name(i.e. the key)', 'Default value in case nothing is found')

There is information in the documentation and cookbook on these calls.

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.