8000 GitHub - Jirka-Mayer/GateFields: Zápočtový program - Java ZS 2018
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Jirka-Mayer/GateFields

Repository files navigation

Gate fields

Editor a simulátor logických obvodů.

Zápočtový program pro Javu - ZS 2018, Jiří Mayer

Dokumentace

Aplikace je editor a simulátor logických obvodů. Obvody se skládají z elemntárních prvků Element, které jsou propojeny pomocí spojů Wire. Spoje vedou vždy mezi dvěma vrcholy Vertex. Vrcholy volně v prostoru jsou označované jako volné freeVertex. Vrcholy náležící k vývodu prvku jsou označované jako vázané boundVertex. Schéma obvodu obsahující všechny prvky reprezentuje třída Scheme.

Editor

Editor je založený na konceptu akcí Action. Interakcí s oknem editoru SchemeView vznikají události Event, které se předávají třídě ActionController. Ten v sobě drží seznam akcí. Každá akce poslouchá svoji spouštěcí událost. V případě shody se stane akce aktivní a přebere kontrolu nad editorem. Jsou do ní přesměrovány všechny události a může editovat schéma obvodu Scheme.

Některé akce se samy ukončí v okamžiku spuštění. Mezi takové patří například výběr prvků nebo jejich mazání. Jiné akce jsou aktivní po delší dobu. Například posun vybraných prvků. Takové akce jdou většinou potvrdit stiskem enteru, nebo zrušit pomocí escape. Název aktivní akce se zobrazuje v levém dolním rohu editoru.

Kamerou lze pohybovat táhnutím se stiskem levého tlačítka a zoom se dělá kolečkem myši.

Důležitou částí editoru je výběr objektů. Vybírat lze pouze vrcholy a to pravým tlačítkem myši. Spoj se stane vybraným, pokud se vyberou oba jeho krajní vrcholy. Element se stane vybraným, pokud je vybrán alespoň jeden z jeho výstupních vrcholů.

Seznam akcí a jejich spouštěcí událost / klávesa:

Událost Akce
LMB Pohyb kamery.
WHL Zoom.
RMB Výběr vertexů. shift - rozšíření výběru.
G Posun vybraných prvků. shift - spojitý režim.
R Rotace výběru. shift - spojitý režim.
X Smazání vybraných prvků.
W Přidání nebo odebrání spoje mezi dvěma vrcholy.
E Vytažení spoje z vrcholu (extrude).
alt+A Přidání prvku do schématu (otevře menu).
T Překlopí stav vstupního prvku (+myš přes něho).

Schémata jdou ukládat a načítat do souborů pomocí zkratek ctrl+S a ctrl+O.

Schéma lze vyčistit a vytvořit nové zkratkou ctrl+N.

Simulátor

Schéma se simulu 540C je během jeho editace. Simulace je tak interaktivní. Pro ovládání simulátoru existuje pravý postranní panel. Na něm je posuvník nastavující rychlost simulace a tlačítko pro pozastavení simulace.

Hlavní způsob jak interagovat s obvodem během simulace je pomocí vstupních prvků, jejichž hodnota lze přepínat klávesou T (kurzor musí být přes prvek a focus musí mít komponenta SchemeView).

Signál se šíří skrz spoje nekonečně rychle. Simulátor Simulator si udržuje seznam komponent (vrcholy spojené spoji) a navíc o každém vrcholu ví, zda je aktivní. Aktivní vrcholy activeVertex se chovají jako zdroje signálu a obsahuje-li komponenta alespoň jeden aktivní vrchol, tak celá komponenta má signál. V případě změny aktivity vrcholů nebo změně struktury komponent se všechny prvky, kterých se změna dotkla strčí do fronty pro přepočítání.

Každý prvek se v okamžiku jeho přepočítání podívá na svoje vstupní a výstupní vrcholy a podle toho které mají signál některé jiné vrcholy aktivuje nebo deaktivuje. Tím se vzruch šíří skrz schéma.

Každý prvek má nějaké zpoždění, což je čas mezi vyrušením a okamžikem přepočítání aktivity výstupních vrcholů.

Simulace probíhá v krocích. Každý krok odpovídá nějakému uplynulému času a v každém kroku se provede přepočítání všech prvků, které v tomto uplynulém čase měly být přepočítány.

About

Zápočtový program - Java ZS 2018

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

0