Kod till Raspberry Pi:en som driver skärmen i Konsulatet
Börja med att logga in med github (rekommenderat) på balena.io. Därefter skapar du en ny Raspberry Pi applikation och klickar sedan på +Add device. Följ instruktionerna och välj inställningar som passar behovet. Här finns en mer detaljerad guide som går igenom varje steg, koden som du pushar kan du ersätta med denna repository. Ibland appliceras inte förändringar på pi:en direkt efter en push och då räcker det med en enkel restart genom balenas device-dashboard.
VIKTIGT: För att skärmen överhuvudtaget ska visa någonting så måste du även lägga till en custom-config-variabel till din device. Detta görs genom tabben "Device configuration". Scrolla ner längst ner och klicka på +Add custom variable och ange någon av följande variabelvärden:
Key | Value |
---|---|
RESIN_HOST_CONFIG_gpu_mem_256 |
128 |
RESIN_HOST_CONFIG_gpu_mem_512 |
196 |
RESIN_HOST_CONFIG_gpu_mem_1024 |
396 |
Det borde räcka med RESIN_HOST_CONFIG_gpu_mem_256
och 128
. Mer detaljerad information om detta finns i kons-screen/wpe/README.md
eller på balena-wpe repon.
Om allt gått bra och ingenting spökar så borde det nu gå att pusha till och styra hallonpajen över internet!
Det borde i de flesta fall räcka med att köra
./setup_local.sh
i rot-directoryn (dvs kons-screen/
).
- NOTE: Den kommer att ändra filen
backend/APIs/common/paths.py
men du borde inte committa dessa ändringar eftersom de pekar på dina lokala paths.
Följande instruktioner förutsätter att python
är av version python3.4+.
Kolla din python-version med python --version
. I vissa fall finner du python3 genom python3
.
Om du inte redan har nodejs
eller npm
så kör du
sudo apt-get install nodejs
och därefter
sudo apt-get install npm
För att sedan installera appen så går du in i frontend/
och kör
npm install
För att installera alla dependencies till app.py
så kan du köra kommandot
pip3 install -r requirements.txt
Om kommandot pip3
inte känns igen så kör du samma kommando fast med pip
istället.
Om detta mot all förmodan inte skulle fungera så måste du först installera pip med
sudo apt-get install python-pip
eller
sudo apt-get install python3-pip
Om du vill köra hela appen samtidigt så räcker det med att köra
./run.sh
i rot-directoryn (dvs kons-screen/
).
Argument till run.sh
(flera argument separeras med mellanslag):
./run.sh --remotedb
./run.sh --debug
--remotedb
gör så att appen använder data från f.kth.se istället för lokal data.
Den lokala datan är gammal så i vissa fall måste datan uppdateras manuellt för att den
ska visas på frontend.
--debug
är endast relevant om du redigerar saker på backend och inte vill starta om hela
skriptet för att servern ska uppdateras. Du behöver då endast uppdatera sidan för att ändringarna
ska få effekt.
För att starta testköraren för hela applikationen så körs kommandot
npm test
i kons-screen/frontend
. App.test.js renderar dock hela applikationen varje gång du sparar och söker dessutom efter alla tester som ska köras, så om du
önskar att få snabbare respons på testerna med nackdelen att App.js inte testas
så kan du köra
npm run watch
i kons-screen/frontend
. För tillfället körs då alla tester i kons-screen/frontend/src/js/data_compilers/
, vilket råkar vara där just alla övriga tester som inte är App.js.test
ligger. Om fler tester tillkommer så borde regexen för watch
under scripts
i package.json
ändras.
För att förhandsgranska index.html
så måste du först köra npm start
när du är i frontend/
.
Efter detta så serveras appen på localhost:3000
. För att data ska fyllas i så måste app.py
köras,
se instruktioner nedan.
Det finns flera sätt att köra app.py
på; du kan välja mellan att använda en lokal databas,
eller att koppla upp dig mot https://f.kth.se och använda data som uppdateras regelbundet.
För att använda en lokal databas så kör du kommandot python app.py
och för att använda data
från https://f.kth.se så körs istället python app.py --remotedb
.
Datan i APIs/db/
är gammal
så i vissa fall måste datan uppdateras manuellt för att den ska visas på frontend.
Ytterligare startalternativ till app.py
är --debug
som tillåter dig att spara ändringar och se dessa
genom att bara uppdatera sidan istället för att behöva starta om app.py
.
Exempelanvändning: python app.py --debug --remotedb
.