Lorris Toolbox
Grafické rozhraní napsané v Qt určené pro práci s embedded zařízeními, roboty a podobnými aplikacemi.
Ke stažení
Předkompilované binárky jsou dostupné zatím jen pro Windows, pokud používáte jiný OS, musíte si Lorris zkompilovat sami.
Windows
Nejnovější verzi Lorris najdete vždy zde: Lorris.zip
Několik starších revizí je uloženo v tomto repozitáři: Lorris_binaries
Binárky Lorris jsou hostovány na Bitbucketu.
Podpora pythonu: v ZIP archivu jsou přibaleny všechny soubory potřebné ke spuštění, k plné podpoře pythonu si však musíte nainstalovat Python 2.7.x. Bez něj nebudou ve Script widgetu dostupné žádné další moduly, to znamená že například "import random" skončí chybou.
Balíčky pro Debian/Ubuntu
APT repozitář je na adrese http://apt.tasemnice.eu/ubuntu
# 1. Přidání podpisového klíče wget -O - -q https://apt.tasemnice.eu/key.gpg | sudo apt-key add -v - # 2. Přidání repozitáře echo deb http://apt.tasemnice.eu/ubuntu stable main | sudo tee /etc/apt/sources.list.d/lorris.list # 3. Aktualizace informací o balíčcích a instalace sudo apt-get update && sudo apt-get install lorris
Vydání stable je pro poslední LTS vydání Ubuntu a pravděpodobně bude fungovat na většině distribucí založených na Debianu. Jsou podporované i některá další vydání Ubuntu, můžete vyzkoušet například xenial
nebo zesty
.
Pokud máte Ubuntu 14.04, Mint 17.1 nebo podobné, použijte vydání trusty:
echo deb http://apt.tasemnice.eu/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/lorris.list
Samotné .deb balíčky najdete zde.
Zdrojový kód
Github repozitář je na https://github.com/Tasssadar/Lorris, k naklonování můžete použít následující příkaz:
git clone git://github.com/Tasssadar/Lorris.git cd Lorris git submodule update --init
Nejnovější změny jsou ve větvi "master", stabilní verze je ve větvi "stable".
Github také umožňuje stažení celého stromu jako ZIP archiv nebo .tar.gz archiv.
Popis
Video s krátkým představením: http://www.youtube.com/watch?v=LkmFn40BbX8
Lorris je navrhnut jako modulární aplikace - poskytuje pouze připojení k danému zařízení, moduly se starají o vše ostatní. Můžete pracovat s více moduly zaráz (dokonce i se stejným portem/adresou/...) jako se záložkami ve webovém prohlížeči.
Lorris je napsaný v C++ a využívá Qt Framework (4.7), což (mimo jiné) znamen že dokáže běžet na více platformách -
je otestovaný na Debian Linux(Wheezy, 64bit) a MS Windows (Xp, 7).
Předkompilované binárky si můžete stáhnou v sekci ke stažení.
- Sériový port
- TCP Socket
- Shupito Tunel - vysvětleno zde
- Bez připojení (načíst data ze souboru)
Modul: Analyzér
Podporovaná připojení: Sériový Port, TCP socket, Bez připojení (načíst data ze souboru)Tento modul je grafický parser příchozích dat. Parsovaná data zobrazuje ve widgetech, které si zvolí uživatel. Očekává se, že příchozí data budou mít formát packetů, nejlépe s nějákou hlavičkou. Přesná struktura packetu se nastavuje v tomto okně.
(Obrázek řekne víc než tisíc slov, podívejte se na tento screenshot
abyste věděli o čem mluvím)
Jakmile nastavíte strukturu packetu, můžete natahat na hlavni pracovní plochu widgety z pravého sloupce.
Data k widgetu přiřadíte přetažením (prvního) bytu dat z horního seznamu dat na widget.
Každý widget má individuální nastavení přistupná po pravém kliknutí.
- Číslo
- Sloupec
- Barva - očekává tří uint8 jako RGB
- Graf
Widgety, strukturu a data lze také uložit do souboru, abyste pokaždé nemuseli nastavovat vše od začátku.
Modul: Proxy mezi Sériovým portem a TCP Socketem
Podporovaná připojení: Sériový PortTohle je jednoduchá proxy mezi sériovým portem a TCP socketem. K této proxy se můžete přes internet připojit pomocí Lorris nebo jiného programu.
Modul: Shupito
Podporovaná připojení: Sériový Port, TCP socketRozhraní pro obsluhu programátoru (hlavně) mikročipů Shupito. Lorris umí číst pamět čipu, programovat ho a programovat a číst pojistky.
- SPI
- PDI
- Texas Instrument's CC25xx RF-enabled processors
Lorris umí také využít RS232 tunel, který umí Shupito poskytnout. Když tento tunel zapnete (screenshot, vlevo nahoře), vytvoří se nový typ připojení - "Shupito tunel". Je to v podstatě sériový port, a chová se tak, takže ho mohou využít všechny moduly které podporují připojení přes sériový port.
Modul: Terminál
Podporovaná připojení: Sériový Port, TCP socketProstě terminál. Zobrazuje příchozí data buďto jako normální test (a podporuje \f, \r, \n a \b znaky) nebo jako hex dump (přepínání je v horním menu pod položkou "Formát").
- Poslat každé stisknutí - hned po stisknutí klávesy pošle znak do zařízení
- Jako TCP terminál - ukazuje co píšete v terminálu a pošlě to až po stisknutí enteru
Jak kompilovat
Budete potřebovat QtFramework >= 4.7 (4.6 by taky mohl fungovat, ale není to vyzkoušené).
Zkompilované binárky by měly být ve složce bin/debug nebo bin/release.
Windows
Stáhněte si Qt SDK s Qt >= 5.4 a gcc kompilátorem a nainstalujte ho.
Pokud chcete podporu pythonu v analyzéru, musíte si nainstalovat také python 2.7.x.
Pokud ne, zakomentujte řádek "DEFINES += WITH_PYTHON" v config.pri
Nakonec stáhněte Lorris, otevřete Lorris.pro v QtCreatoru a stiskněte "Sestavit".
Linux
Potřebné balíčky:
- Qt SDK >= 5.4.0
- make, g++
- libudev-dev
- python-dev == 2.7.x (Jen pokud chcete podporu Pythonu v Analyzéru - viz config.pri)
apt-get pro Debian Testing by vypadalo takto:
sudo apt-get install g++ make libudev-dev python2.7-dev qt5-default qttools5-dev qtscript5-dev pkg-config
Podívejte se do souboru config.pri - nastavují se tam možnosti kompilace.
Teď můžete zkompilovat Lorris v QtCreatoru nebo následujícími příkazy:
./prepare.sh make sudo make install
Lorris binárka bude instalovaná jako /usr/bin/Lorris a překlady jako /usr/share/lorris/Lorris.*.qm.
A co ARM?
Lorris jde pod ARMem zkompilovat, a funguje - alepsoň pokud je to little-endian ARM.
Tady je screenshot Lorris běžícího na mém Android telefonu,
pod Debianem který je v chrootu. Jsem na něj připojený přes VNC. Telefon má (přetaktovaný) 768 MHz procesor
a _opravdu_ pomalou SD kartu, takže kompilace trvala asi 55 minut, ale Lorris potom běžel rychleji než jsem čekal.
Možná se brzy dostanu k Raspberry Pi, takže to budu móct zkust na opravdovém ARM počítači.
Mac OS X
Lorris lze pod OS X zkompilovat (od 20b3dc2a75e7),
ale vypadá tam docela divně a poměrně často divně padá. Qt na Macu potřebuje OS X verze >= 10.6.
Podpora pythonu není pod 0S X otestovaná, zakomentuje řádek "DEFINES += WITH_PYTHON" v config.pri
Nainstalujte XCode z Apple store, asi to bude chvíli trvat.
Až to bude hotovo, otevřte XCode, v horním menu XCode->Preferences->Downloads a nainstaluje "Console tools".
Stáhněte libSDL source, extrahujte ho, otevřte Terminál, bežte do složky kam jste libSDL dali a zadejte následující příkazy:
./configure make sudo make install3. Qt Framework
Prostě stáhněte Qt balíček a nainstalujte ho.
4. LorrisStáhněte zdroják Lorris, otevřte Terminál a běžte do složky s Lorris.
/Users/*username*/QtSDK/Desktop/*your qt version*/bin/qmake CONFIG+=release make sudo make install
Lorris bude nainstalován mezi ostatními aplikacem (tj. /Applications).
Licence & knihovny
Lorris je vydaný pod GNU GPLv3 licencí a používá tyto knihovny:
- Qt Framework (http://qt.nokia.com/), the cross-platform application and UI framework,
který je vydaný pod GNU LGPL v2.1 - Qwt (http://qwt.sourceforge.net/), Qt Widgets for Technical Applications,
která je vydaná pod Qwt licencí - dep/qwt/COPYING - QExtSerialPort (http://code.google.com/p/qextserialport/),
Qt interface class for old fashioned serial ports,
která je vydaná pod New BSD Licencí - http://www.opensource.org/licenses/bsd-license.php - Upravenou verzi QHexEdit2 (http://code.google.com/p/qhexedit2/),
"QHexEdit is a Binary Edior for Qt",
který je vydaný pod LGPL v2.1 - dep/qhexedit2/src/license.txt - SDL (http://www.libsdl.org), Simple directmedia layer, která je vydaná pod GNU LGPL v2.1.
- Simple JavaScript Inheritance (http://ejohn.org/blog/simple-javascript-inheritance/),
implementace Johna Resiga,
která je distribuovaná pod MIT licencí - viz MIT_LICENSE - Tango Icon Library (http://tango.freedesktop.org/), která je vydaná "to the Public Domain".
Bug report
Pokud najdete v Lorris nějáký bug nebo chcete přidat nějákou novou vymoženost, založte prosím ticket na githubu.
Screenshoty
Hlavní okno |
Analyzér |
Analyzér - nastavení struktury packetu |
Shupito |
Terminál |
Sériový port <-> TCP socket proxy |