Fork me on GitHub

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í.

Možnosti připojení k zařízení:

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í.

Dostupné widgety:

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ý Port

Tohle 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 socket

Rozhraní pro obsluhu programátoru (hlavně) mikročipů Shupito. Lorris umí číst pamět čipu, programovat ho a programovat a číst pojistky.

Podporovaná programovací rozhraní:

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 socket

Prostě 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").

Terminál také posílá stisky kláves do zařízení, a má dva způsoby jak to může dělat:
  1. Poslat každé stisknutí - hned po stisknutí klávesy pošle znak do zařízení
  2. Jako TCP terminál - ukazuje co píšete v terminálu a pošlě to až po stisknutí enteru
Mezi těmito módy můžete přepnout v horním menu "Terminál -> Vstup".

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

1. XCode

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".

2. SDL

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 install

3. Qt Framework

Prostě stáhněte Qt balíček a nainstalujte ho.

4. Lorris

Stá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:


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

Main window

Analyzer module

Analyzer module - packet structure settings

Shupito module

Terminal module

Serial port <-> TCP proxy module
Tahle stránka používá Twitter bootstrap