Updated documentation.
This commit is contained in:
parent
05328c2a10
commit
349cca3853
@ -5,7 +5,7 @@ This repository is a demo - it isn't a fully fleshed out system and isn't intend
|
|||||||
# Getting started
|
# Getting started
|
||||||
- Use a debian-based 64-bit system. No way around it; this project is not cross-platform.
|
- Use a debian-based 64-bit system. No way around it; this project is not cross-platform.
|
||||||
- Install the SDRPlay device driver & install the project dependencies.
|
- Install the SDRPlay device driver & install the project dependencies.
|
||||||
- `./SDRplay_RSP_API-Linux-3.07.1.run`
|
- `./setup`
|
||||||
- Follow the prompts, there is some audience participation getting the driver installed.
|
- Follow the prompts, there is some audience participation getting the driver installed.
|
||||||
- Beyond that it should be mostly unattended. SoapySDR & plugins will be installed in the system directories.
|
- Beyond that it should be mostly unattended. SoapySDR & plugins will be installed in the system directories.
|
||||||
- Run the demos. The demo code is provided by SoapySDR and required minimal modification.
|
- Run the demos. The demo code is provided by SoapySDR and required minimal modification.
|
||||||
|
|||||||
62
docs/architecture.md
Normal file
62
docs/architecture.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Microservice architecture
|
||||||
|
A bit of an oxymoron isn't it? If it needs an architecture diagram to explain it then how _micro_ can it be? The reality is that this microservice is actually several smaller services in a trenchcoat pretending to be one thing. I suppose that makes it just a service.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
subgraph microservice["✌ 'Microservice' ✌"]
|
||||||
|
subgraph rest[REST Interface]
|
||||||
|
flask[Flask]
|
||||||
|
swag[flasgger]
|
||||||
|
flask-->swag
|
||||||
|
swag-->swaggerui[Swagger UI]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph hw[Hardware Interface]
|
||||||
|
soapy[SoapySDR]
|
||||||
|
subgraph plugins[Vendor Plugins]
|
||||||
|
soapysdrplay[SoapySDRPlay]
|
||||||
|
soapyrtlsdr[SoapyRTLSDR]
|
||||||
|
end
|
||||||
|
soapy<-->plugins
|
||||||
|
end
|
||||||
|
|
||||||
|
flask<-->soapy
|
||||||
|
|
||||||
|
subgraph radio[DSP Chain]
|
||||||
|
demod[fm_demod.py]
|
||||||
|
ffmpeg
|
||||||
|
end
|
||||||
|
mediamtx["RTSP Relay\n(MediaMTX)"]
|
||||||
|
|
||||||
|
plugins-->|IQ samples|demod
|
||||||
|
demod-->|PCM audio|ffmpeg
|
||||||
|
ffmpeg-->|RTP stream|mediamtx
|
||||||
|
|
||||||
|
subgraph proxy[Reverse Proxy]
|
||||||
|
caddy[Caddy]
|
||||||
|
l4[Caddy Layer 4 Plugin]
|
||||||
|
%%le[Let's Encrypt]
|
||||||
|
style l4 stroke-dasharray: 3 3,opacity: 0.5
|
||||||
|
caddy-.->l4
|
||||||
|
%%le-->caddy
|
||||||
|
end
|
||||||
|
|
||||||
|
flask<-->|HTTP:5000|caddy
|
||||||
|
swaggerui<-->|HTTP:5000|caddy
|
||||||
|
mediamtx-.->|RTSP:8554|l4
|
||||||
|
end
|
||||||
|
style microservice opacity: 0.2
|
||||||
|
|
||||||
|
%%rtlsdr[RTL-SDR Driver]-->soapyrtlsdr
|
||||||
|
%%sdrplay[SDRPlay Driver]-->soapysdrplay
|
||||||
|
|
||||||
|
subgraph client[Client]
|
||||||
|
control["REST Client\n(Browser)"]
|
||||||
|
rtsp["RTSP Renderer\n(VLC)"]
|
||||||
|
end
|
||||||
|
style client opacity: 0.2
|
||||||
|
|
||||||
|
caddy<-->|HTTPS:443|control
|
||||||
|
l4-.->|RTSPS|rtsp
|
||||||
|
mediamtx-->|RTSP:8554|rtsp
|
||||||
|
```
|
||||||
@ -1,5 +1,5 @@
|
|||||||
colorama==0.4.3
|
colorama==0.4.3
|
||||||
|
flasgger==0.9.5
|
||||||
|
Flask==2.2.3
|
||||||
numpy==1.17.4
|
numpy==1.17.4
|
||||||
prefixed==0.7.0
|
prefixed==0.7.0
|
||||||
flask==2.2.3
|
|
||||||
flasgger==0.9.5
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user