~ruther/CTU-FEE-B0B35APO-Semestral-project

ref: 6ada1974eeefafcf50eed752374704d263533283 CTU-FEE-B0B35APO-Semestral-project/docs/user-manual.org -rw-r--r-- 6.9 KiB
6ada1974 — František Boháček feat: add new font with variable width 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#+TITLE: APO - Semestrální práce
#+SUBTITLE: Průzkumník souborů, prohlížeč obrázků, textových souborů
#+AUTHOR: František Boháček
#+DATE: červen 2020

* Zadání
Semestrální práce bude rozdělena do 3 jednotlivých programů vypracovaných pro MZAPO. Hlavní z nich
bude průzkumník souborů, ve kterém bude možné procházet celý kořenový souborový systém a také externí zařízení.
Průzkumník bude umět základní operace jako kopírování, přesouvání a mazání souborů. Dále spouštět spustitelné soubory
a pro obrázky, resp. pro textové soubory otevřít prohlížeč obrázků, resp. textových souborů.

Prohlížeč obrázků je druhý program, který bude umět otevřít formáty jpeg, png a ppm. Přes rotační enkodery
bude zařízen pohyb kurzoru po obrázku a následně se půjde na jednotlivé části obrázku přibližovat,
aby obrázek nebyl moc malý.

Prohlížeč textových souborů je poslední program, ten bude umět otevírat kterékoliv soubory, ale korektně
bude zobrazovat jen ty textové. Půjde se v něm pohybovat za pomoci rotačních enkoderů.

Vstup bude zařízen standardním vstupem pro ovládání na dálku a rotačními enkodery pro ovládání přímo.
Standardní výstup bude použit k logování hlášek o tom, co program právě dělá nebo v jakém chybovém stavu se nachází.

Pro rychlejší ladění bude možnost programy spouštět na osobním počítači, kde se jako displej využije SDL okno.

* Manuál
** Průzkumník souborů
** Prohlížeč textových souborů
*** Funkce
Program zobrazí na LCD displeji text z textového souboru, lze se po něm pohybovat rotačními enkodery.
Pokud program nedostane textový soubor, je možné, že ho nezobrazí korektně.

*** Spouštění
Program nelze bez argumentů spustit, je vždy potřeba spustit s cestou k souboru s textem.
Jinak program skončí s chybovým stavem vyobrazeným na RGB LEDkách.

Použití:
#+begin_src
./text-viewer [cesta-k-souboru]
#+end_src

*** LED pásek
Na LED pásku se ve fázi načítání ukazuje kolik dat je již načtených.
Po načtení se zobrazuje vertikální pozice v souboru podle toho, jak moc je soubor posunutý.

*** Chybové stavy
Pokud se program nespustí správně, jedna z RGB LEDek se rozsvítí červeně.

Levá RGB LED znamená, že nebyl předán žádný argument. Pravá RGB LED znamená, že soubor se nepodařilo načíst,
neexistuje nebo k němu nejsou přístupová práva. Konkrétní chybová hláška se objeví na standardním výstupu.

*** Ovládání

**** Standardní vstup
- ~h~, ~j~, ~k~, ~l~ - pohyb pohledu po souboru (doleva, dolů, nahoru, doprava)
- ~r~ - vrácení pohledu na začátek souboru
- ~t~ - pohled na konec souboru
- ~e~ - ukončení programu

**** Rotační enkodery
- První (červený) - horizontální posun pohledu
- Druhý (zelený) - vertikální posun pohledu
- Tlačítko prvního enkoderu - ukončení programu
- Tlačítko druhého enkoderu - vrácení pohledu na začátek souboru
- Tlačítko třetího enkoderu - pohled na konec souboru
** Prohlížeč obrázků
*** Funkce
Program zobrazí na LCD displeji přeškálovaný obrázek, který se dá přibližovat pomocí rotačních enkoderů nebo standardního vstupu.
Při spuštění programu je obrázek oddálený tak, aby se vešel celý na obrazovku.

*** Spouštění
Program nelze bez argumentů spustit, je vždy potřeba spustit s cestou k souboru s obrázkem.
Jinak program skončí s chybovým stavem vyobrazeným na RGB LEDkách.

Použití:
#+begin_src
./image-viewer [cesta-k-souboru]
#+end_src

*** Podporované formáty
- jpg
- png
- ppm

Formáty se rozlišují podle jejich hlaviček, koncovky se nerozlišují

*** LED pásek
Na LED pásku se ve fázi načítání ukazuje kolik dat je již načtených.
Po načtení se zobrazuje horizontální pozice kurzoru na obrázku
pro snazší orientaci při větším zvětšení.

*** Chybové stavy
Pokud se program nespustí správně, jedna z RGB LEDek se rozsvítí červeně.

Levá RGB LED znamená, že nebyl předán žádný argument. Pravá RGB LED znamená, že soubor se nepodařilo načíst,
neexistuje, není správný formát nebo k němu nejsou přístupová práva. Konkrétní chybová hláška se objeví na standardním výstupu.

*** Ovládání
Program má kurzor, podle kterého se určuje, kam se přibližuje. Kurzor se zobrazí, když se s ním hýbe a chvilku potom. 

**** Standardní vstup
- ~h~, ~j~, ~k~, ~l~ - ovládání kurzoru nebo posunu po celém obrázku v závislosti na módu, viz klávesa m (doleva, dolů, nahoru, doprava)
- ~z~, ~x~ - přiblížení a oddálení obrázku (do místa, kde je kurzor)
- ~r~ - vrácení do původního stavu (oddálí obrázek a nastaví kurzor doprostřed obrázku)
- ~m~ - přepnutí mezi módy pohybu po obrázku nebo pohybu kurzorem
- ~e~ - ukončení programu

**** Rotační enkodery
- První (červený) - posun kurzoru horizontálně nebo posun horizontálně celého obrázku (viz tlačítko druhého enkoderu)
- Druhý (zelený) - posun kurzoru vertikálně nebo posun vertikálně celého obrázku (viz tlačítko druhého enkoderu)
- Třetí (modrý) - přiblížení a oddálení
- Tlačítko prvního enkoderu - ukončení programu
- Tlačítko druhého enkoderu - přepnutí mezi módy pohybu po obrázku nebo pohybu kurzorem
- Tlačítko třetího enkoderu - vrácení do původního stavu přiblížení

* Kompilace, instalace, spouštění
Na kompilaci je použit Makefile.

** Křížová kompilace pro MZAPO
Pro křížovou kompilaci je zapotřebí ~arm-gnueabihf-gcc~ a dynamické knihovny
~libjpeg~ verze 62, ~libpng~ verze 16 a ~libmagic~ verze 1 pro MZAPO.

Soubory se po kompilaci uloží do složky ~bin~, pro spuštění je potřeba
je překopírovat na MZAPO.

Překopírování jde realizovat pomocí ssh, lze použít ~make~, konkrétně
#+begin_src
TARGET_IP=[ip-addr] make copy-executable
#+end_src
kde za ~ip-addr~ je potřeba dosadit ip adresu MZAPO.

Pro spuštění lze využít sériového portu nebo ssh. Případně pomocí ~make~,
na spuštění průzkumníku souborů:
#+begin_src
TARGET_IP=[ip-addr] make run
#+end_src
případně pro spuštění prohlížeče obrázků ~run-image-viewer~
a pro spuštění prohlížeče textových souborů ~run-text-viewer~.
Pro předání argumentu slouží environment proměnná ARG

Například lze použít
#+begin_src
TARGET_IP=[ip-addr] ARG=/path/to/image make run-image-viewer
#+end_src
nebo
#+begin_src
TARGET_IP=[ip-addr] ARG=/path/to/image make run-text-viewer
#+end_src
** Kompilace na osobní počítač
Pro lepší ladění je možnost program zkompilovat
pro osobní počítač, kde je displej simulován
pomocí SDL okna.

Pro kompilaci pro počítač lze využít environment proměnné ~COMPUTER~.
Lze pak využít
#+begin_src
COMPUTER=1 make
#+end_src

Po kompilaci jsou soubory ve složce ~bin~ v kořenu projektu.
Lze je spustit napřímo s potřebnými parametry viz Manuál.
Do not follow this link