Giter Site home page Giter Site logo

poorren / studio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eez-open/studio

0.0 0.0 0.0 372.34 MB

Cross-platform low-code GUI and automation

Home Page: https://www.envox.eu/studio/studio-introduction/

License: GNU General Public License v3.0

Shell 0.01% JavaScript 49.71% C++ 0.98% C 0.41% TypeScript 46.61% CSS 0.48% Nix 0.06% HTML 0.18% CMake 0.28% Less 1.06% PEG.js 0.22%

studio's Introduction

GitHub release license liberapay Downloads

Ownership and License

The contributors are listed in CONTRIB.TXT. This project uses the GPL v3 license, see LICENSE.TXT. EEZ Studio uses the C4.1 (Collective Code Construction Contract) process for contributions. To report an issue, use the EEZ Studio issue tracker.

Links

Introduction

EEZ Studio is a free and open source cross-platform low-code tool for embedded GUIs. Built-in EEZ Flow enables the creation of complex scenarios for test and measurement automation, and the Instruments feature offers remote control of multiple devices and T&M equipment including EEZ BB3 T&M chassis and EEZ H24005 programmable power supply and any other T&M devices that support SCPI from manufacturers such as Keysight, Rigol, Siglent, etc.

EEZ Studio Project

EEZ Studio Project

  • Modular visual development environment for designing TFT display screen decorations and defining user interaction (embedded GUI)
  • Generate C++ code for embedded GUI functionality that can be directly included in STM32CubeIDE for BB3 and other STM32 target platforms or Arduino IDE for H24005 and other Arduino compatible target platforms
  • Instrument definition file (IDF) builder with context sensitive SCPI commands help (based on Keysight’s Offline Command Expert command set XML structure) suitable for EEZ Studio Instrument and Keysight Command Expert
  • SCPI command help generator based on bookmarked HTML generated directly from .odt file using EEZ WebPublish extension for OpenOffice/LibreOffice.
  • LVGL (Light and Versatile Graphivs Library) support
  • Project templates (using giteo.io repositories) and comparison of projects
  • Drag&drop editor for creating instrument's desktop dashboard (for remote control and management)
  • Flowchart based low-code programming for desktop dashboard

Flow

EEZ Studio Instrument

EEZ Studio Instrument

  • Dynamic environment where multiple instruments can be configured and easily accessed
  • Session oriented interaction with each SCPI instrument
  • Serial (via USB), Ethernet and VISA (via free R&S®VISA) T&M instrument interfaces support
  • Direct import of EEZ Studio generated IDFs and Keysight’s Offline Command Expert command sets
  • IEXT (Instrument EXTension) catalog with growing number of supported instruments (Rigol, Siglent, Keysight, etc.)
  • History of all activities with search/content filtering
  • Quick navigation via calendar ("heatmap") or sessions list view
  • Shortcuts (hotkeys and buttons) that can be user defined or come predefined from imported IDF. The shortcut can contain single or sequence of SCPI commands or Javascript code.
  • Javascript code for task automation (e.g. logfile, or programming list upload/download, etc.) can be also assigned to the shortcut
  • SCPI commands context sensitive help with search
  • File upload (instrument to PC) with image preview (e.g. screenshots)
  • File download (PC to instrument) automation for transferring instrument profiles
  • Simple arbitrary waveform editor (envelope and table mode)
  • Displaying measurement data as graphs
  • FFT analysis, harmonics and simple math functions (Period, Frequency, Min, Max, Peak-to-Peak, Average)
  • Export graphs as .CSV file

New functionality is under development thanks to the sponsorship of the NGI0 PET and NGI0 Entrust funds from NLnet. The following milestones have been achieved so far:

  • M1 - Visual editor
  • M2 - Interpreter for PC
  • M3 - Interpreter for BB3
  • M4 - Debugger for PC
  • M5 - Debugger for BB3
  • M6 - EEZ flow engine unification
  • M7 - Multilanguage support in project
  • M8 - Widgets advanced control
  • M9 - Project templates
  • M10 - Gitea.io integration
  • M11 - New EEZ Flow extensions
  • M12 - LVGL integration
  • M13 - Standalone Flow dashboard
  • M14 - Home page modifications and enhancements
  • M15 - Enhancements (more examples, extension manager, MQTT)

Installation

64-bit OS is required in all cases.

Linux

Depending on your linux distribution, choose one of the listed packages (.deb, .rpm) and start the installation using the associated installer. In addition, there is a self-executing .AppImage version that, after downloading, needs to enable the Allow executing file as program under file Permissions before starting it. If you encounter a problem running the .AppImage version on your Linux distribution, try running it using the --no-sandbox option, i.e. ./EEZ-Studio-[version].AppImage --no-sandbox

Mac

Download eezstudio-mac.zip, unpack and move eezstudio.app to Applications.

Windows

Download and start EEZ_Studio_setup.exe.

Nix

The Nix flake provides a derivation for EEZ Studio or an overlay that provides that derivation. It can be used to install the project using Nix package manager.

Build and run from source (all operating systems)

Only Linux:

sudo apt-get install build-essential libudev-dev libnss3

Only Raspbian:

Install Node.js 16 and npm on Raspberry Pi: https://lindevs.com/install-node-js-and-npm-on-raspberry-pi/

sudo apt-get install build-essential libudev-dev libopenjp2-tools ruby-full
sudo gem install fpm

All platforms:

git clone https://github.com/eez-open/studio
cd studio
npm install
npm run build

Start with:

npm start

Create distribution packages (except Raspbian):

npm run dist

On Raspbian:

npm run dist-raspbian

Nix

To build:

nix build 'github:eez-open/studio'

To start:

nix run 'github:eez-open/studio'

USB TMC

The USB TMC driver must be installed if you want to access the T&M instrument using the USB-TMC interface from EEZ Studio Instrument section.

Windows

Download and start Zadig. Select your device, select libusb-win32 and press "Replace Driver" button:

Zadig

Linux

You will probably need to add your Linux account to the usbtmc group before you can access the instrument using EEZ Studio. Connect your instrument with a USB cable and turn it on. Wait until booting is complete. Now check the instrument group name by entering the following command:

ls -l /dev/usbtmc*

In case it is root, enter the command:

sudo groupadd usbtmc

Now, add your account () to the group:

sudo usermod -a -G usbtmc <username>

A reboot is required. After that, the gid of /dev/usbtmc0 should be set to usbtmc and you are ready to use your instrument via USB-TMC interface.

FAQ

Q: Where is the database file by default? A: Depending on the operating system, it can be:

  • Linux: ~/.config/eezstudio/storage.db
  • Mac: ~/Library/Application\ Support/eezstudio/storage.db
  • Windows: %appdata%\eezstudio\storage.db

The default created database as well as its location can be changed later through the options in the Settings section of EEZ Studio.

Q: Where are the IEXTs (Instrument EXTensions) used to access T&M instruments stored? A: Depending on the operating system, it can be:

  • Linux: ~/.config/eezstudio/extensions
  • Mac: ~/Library/Application\ Support/eezstudio/extensions
  • Windows: %appdata%\eezstudio\extensions

studio's People

Contributors

mvladic avatar prasimix avatar fietser28 avatar ilkecan avatar

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.