|
|
Line 22: |
Line 22: |
| | | |
| '''[[Source code & Licence]]''' | | '''[[Source code & Licence]]''' |
| + | |
| + | ''' 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ť. |
| | | |
| '''Gallery''' | | '''Gallery''' |
Line 79: |
Line 82: |
| |- | | |- |
| |} | | |} |
− |
| |
− | == Description / Popis ==
| |
− |
| |
− | '''pyCompEditor''' je programový modul (softwarový komponent) - grafický editor vytvorený v jazyku [http://www.python.org Python] a knižnici [http://www.wxpython.org 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.
| |
− |
| |
− | [[File:pyc_terminologia.png |thumb|center|400px| <div align="center"> Terminológia </div> ]]
| |
− |
| |
− |
| |
− | '''Vlastnosti editoru'''
| |
− | * vytvorený výhradne v jazyku [http://www.python.org Python] s podporou knižnice [http://www.wxpython.org 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 [http://www.wxpython.org/OSCON2008/Python%20C++%20and%20SWIG.pdf štandarných postupov] v C/C++ prostredníctvom generátora rozhraní [http://www.swig.org/ 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 [http://www.scipy.org/ 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:
| |
− |
| |
− | * programovaci jazyk [https://www.python.org/ Python 2.7.3]
| |
− | * knižnicu [http://www.wxpython.org/ wxPython 3.0]
| |
− | * knižnice [http://www.scipy.org/ SciPy] a [http://matplotlib.org/ matplotlib]
| |
− | * knižnica [https://code.google.com/p/wxpsvg/wiki/ReadMe wxpsvg] pre renderovanie SVG obrazkov
| |
− |
| |
− | == Štruktúra ==
| |
− |
| |
− | Modul je dedený z triedy [http://www.wxpython.org/docs/api/wx.PyPanel-class.html 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.
| |
− |
| |
− | [[File:pyc_pouzitie.png |thumb|center|400px| <div align="center"> Použitie modulu v aplikácii </div> ]]
| |
− |
| |
− | 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.
| |
− |
| |
− | [[File:pyc_class_diagram.png |thumb|center|400px| <div align="center"> Diagram tried modulu </div> ]]
| |
− |
| |
− | == Použitie ==
| |
− |
| |
− | '''Jednoduchá aplikácia'''
| |
− |
| |
− | Zdrojový kód jednoduchého použitia modulu.
| |
− |
| |
− | <pre>
| |
− | 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()
| |
− | </pre>
| |
− |
| |
− | 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.
| |
− |
| |
− | [[File:pyc_simple_app.png |thumb|center|400px| <div align="center"> Jednoduchá aplikácia </div> ]]
| |
− |
| |
− | 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
| |
− |
| |
− | {|class="wikitable"
| |
− | | align="center" | [[File:logo_01.png | 250px ]]
| |
− | | align="center" | [http://www.vyskumnecentrum.sk www.vyskumnecentrum.sk]
| |
− | [http://www.researchcentre.sk www.researchcentre.sk]
| |
− | |-
| |
− | | align="center" | [[File:logo_02.png | 250px ]]
| |
− | | align="center" | [http://wiki.tntech.eu wiki.tntech.eu]
| |
− | |}
| |
− |
| |
− | Zdrojové texty k programu sú open-source. Licencia k programu je zhodná s licenciou L-GPL k
| |
− | [http://www.wxwidgets.org/about/licence/ 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ť.
| |