audiostream.py

class AudioStream(file_path, chunklength=0.05)[source]

Bases: object

Funksjonalitet:
  • Leser inn en lydfil i opus-format.

  • Sender en lydfil i rå-data over socket til WebServer.

Parameters:

file_path (str) – Stien til filen som skal spilles av.

Variables:

filepath (str) – Stien til lydfilen.

simple_send()[source]

Åpner en lydfil of returnerer den som rådata.

Returns:

Rådata opus-lydfil

Return type:

bytes

Raises:

Exception – Hvis filen ikke kan leses eller en annen feil oppstår.

front.py

front()[source]

Setter opp nettsiden sin landingsside på GET-forespørsler, og sender videre JSON-data i fra forespørslen til MQTT-klienten.

Rute:

GET, POST /front/

Returns:

render_template|request

landing.py

redirect_front()[source]

Funksjon for å redirigere trafikk til landingssiden (front).

Rute:

GET /

Returns:

Rediriger nettleseren til /front-endepunktet.

Oppretter cookie i nettleseren.

Egenskaper:
  • Levetid: 3600 sekunder

  • Secure: True

Rute:

GET /set_cookie

Returns:

JSON:
  • Status: om cookie-en ble opprettet suksessfult eller ikke

  • Statuskode: 200

mqtt.py

find_poi(nfctagID)[source]

Hjelpefunksjon for uthenging av database-data.

Parameters:

nfctagID (str) – NFC-chippen sin ID

Returns:

NFC-taggen sin tilhørende POI.

Return type:

int

getmqtt()[source]

Funksjon som håndterer endepunktet for MQTT-beskjeder.

Rute:

GET /mqtt/

Returns:

JSON:
  • Status: om beskjeden mottas uten problemer

  • Statuskode: 200

WebSocket:
  • Endepunkt: mqttsocket sender melding.

handle_locations()[source]

Håndterer meldinger fra mikrokontrolleren og sender videre til nettleseren.

Rute:

GET /mqtt/location

Returns:

JSON:
  • Status: beskjed om suksess eller ikke

  • Statuskode: 200 om ingen feil, 404 om feil

WebSocket:
  • Endepunkt: getlocation sender melding.

handle_returndata()[source]

Funksjon som videresender tolker JSON-data og videresender til MQTT-klienten på serversiden.

Returns:

JSON:

Statusrapport.

SocketIO:
  • Endepunkt: returndata

  • Lokasjonsdata til MQTT-klienten.

test_socketio()[source]

Test-funksjon for å sjekke at tilkoblingen fungerer.

sockets.py

Håndterer socket-funksjonalitet for flask-serveren.

Funksjonen mottar en forespørsel fra klienten over websocket. Deretter sørger den for at riktig fil blir funnet og returnert til klienten. Hvis riktig fil ikke eksisterer sender den feilmelding tilbake.

Mottar på:
Socket:
  • ready_for_message

Returns:

  • no_cookie beskjed: ingen cookie funnet

  • colorchange color: fargedata [HEX]

Return type:

Socket

find_audio_file_path(poiID)[source]

Hjelpefunksjon for uthenging av database-data.

Parameters:

poiID (int) – lydfilen sin ID

Returns:

poiID sin tilhørende lydfil.

Return type:

str

handle_audio_request(data)[source]

Funksjonen mottar en forespørsel fra klienten over websocket. Deretter sørger den for at riktig fil blir funnet og returnert til klienten. Hvis riktig fil ikke eksisterer sender den feilmelding tilbake.

Mottar på:
Socket:
  • request_audio

Returns:

  • error beskjed: fil eksisterer ikke

  • error beskjed: klarte ikke sende lydfil

  • audio_file lydfil

Return type:

Socket

handle_connect()[source]

Funksjonen sikrer at serveren kobler seg til

Mottar på:
Socket:
  • connect

Returns:

  • server_message beskjed: velkommen!

Return type:

Socket

handle_disconnect()[source]

Sørger for å loggføre når klienter kobler seg av.

app.py

create_app()[source]

Oppretter en flask server og initialiserer diverse tillegsmoduler.

Returns:

Flask app-instans.