PyCompEditor

From TNtech Wiki
Revision as of 09:09, 4 April 2014 by Tntech (Talk | contribs)

Jump to: navigation, search
Pyc obr1.png Pyc demo.png Pyc obr2.png
Demo - Version 0.01 Simple simulator Schematic editor
Pyc obr10.png Pyc obr11.png Pyc obr12.png
Diff. equation - RC Circuit Diff. equation - RLC Circuit Lorenz Attractor


Contents

 [hide

Popis

pyCompEditor je programový modul (softwarový komponent) - grafický editor vytvorený v jazyku Python a knižnici wxPython pre tvorbu a úpravy diagramov, zapojení a schém tvorených komponentami a prepojeniami medzi nimi. Modul je možné rozširovať o nové komponenty pomocou dedenia a definovania ich vlastností a chovania v jazyku Python.

Terminológia


Vlastnosti editoru

  • vytvorený výhradne v jazyku Python s podporou knižnice wxPython
  • jednoduchý zásuvný modul pre iné aplikácie v jazyku Python
  • platformovo nezávislý
  • voľne rozšíriteľný o nové komponenty
  • nové komponenty je možné vytvárať priamo v jazyku Python, bez potreby špeciálneho kompilátora
  • funkcionalitu časovo kritických alebo algoritmicky náročných komponentov je možné implementovať pomocou štandarných postupov v C/C++ prostredníctvom generátora rozhraní SWIG
  • vlastnosti komponentov je možné parametrizovať
  • komponenty na ploche editora môžu meniť svoj vzhľad počas behu aplikácie (grafické zobrazenie stavu alebo hodnoty, chybové stavy a pod.)


Aplikácie

  • grafický editor schém a diagramov založený na preddefinovaných komponentoch a perpojeniach medzi nimi
  • generátor skriptov pre simulačné programy (SPICE, XSPICE, MODELICA a iné)
  • interaktívny blokový simulátor s využitím podpory knižníc SciPy
  • SCADA aplikácie
  • zber a riadenie technologických procesov, vedeckých experimentov, zber a spracovanie dát v reálnom čase


Závislosti

pyCompEditor vo verzii pre wxPython využíva podporu výhradne open source knižníc:

Štruktúra

Modul je dedený z triedy wx.PyPanel a v aplikácii sa používa ako štandardný panel. Pre komunikáciu s modulom sa používajú nasledujúce postupy

  • volanie metód triedy ComponentEditor (API) určených pre manipuláciu s komponentami a prepojeniami
    • addComponent
    • copyComponent
    • addNet ...
  • nastavením módu editora pomocou premennej editorMode, určenej pre riadenie chovania a reakcií na udalosti myši a klávesnice
    • MODE_MOVE_VERTEX
    • MODE_MOVE_COMPONENT ...

Modul generuje zoznam komponentov a zoznam prepojení, ktoré sú dostupné z aplikácie, v ktorej je modul použitý. Modul obsahuje metódy pre uloženie a nahratie do-zo súboru.

Použitie modulu v aplikácii

Základom modulu sú triedy Component a Net, Component agreguje zoznam objektov triedy Terminal, ktore tvoria pripojovacie body komponentov. Prepojenie medzi komponentami je tvorené referenciou na počiatočný a koncový terminál a zoznamom vrchlov tvoriacich geometrický tvar prepojenia. Vzťahy medzi triedami ukazuje diagram tried.

Diagram tried modulu

Použitie

Jednoduchá aplikácia

Zdrojový kód jednoduchého použitia modulu.

import wx
from src.compEditor import *

app = wx.App(False)
frame = wx.Frame(None)
editor = ComponentEditor(frame)

editor.addComponent('R', 50, 50)
editor.addComponent('C', 150, 150)

frame.Show()
app.MainLoop()

Po vytvorení objektu triedy ComponentEditor sú do zoznamu komponentov zaradené dva objekty, 'R' a 'C' sú mená tried, z ktorých sú vytvorené ich inštancie. Po spustení je modul možné ovládať myšou a klávesnicou.

Jednoduchá aplikácia

Klávesami je možné prepínať módy editora

  • q - výpis zoznamu komponentov na konzolu
  • w - výpis zoznamu prepojení na konzolu
  • m - posúvania komponentov
  • s - výber komponentu
  • c - kópia komponentu
  • n - pridanie nového prepojenia
  • b - pridanie spojky medzi prepojeniami
  • r - rotovanie komponentu
  • t - zrkadlenie komponentu
  • ESC - zrušenie zadávania prepojenia

Licencia a zdrojové kódy

Program je vyvíjaný v spolupráci s nasledujúcimi organizáciami

Logo 01.png www.vyskumnecentrum.sk

www.researchcentre.sk

Logo 02.png wiki.tntech.eu

Zdrojové texty k programu sú open-source. Licencia k programu je zhodná s licenciou L-GPL k wxWidgets. Zdrojové texty získate po zaslaní žiadosti na e-mailovú adresu fabo.peter@gmail.com. Uvedte prosím Vaše meno, oblasť použitia a prípadne meno firmy, ak bude použitý pre komerčnú aplikáciu. Tieto informácie mebudú bez Vašeho súhlasu zverejnené.

Upozornenie Program je v štádiu vývoja, dátové štruktúry, formáty súborov ako vlastná štruktúra programu sa môžu vyvíjať a meniť.

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox