Skip to content

Latest commit

 

History

History
137 lines (104 loc) · 8.54 KB

README.md

File metadata and controls

137 lines (104 loc) · 8.54 KB

PIXELIX

PIXELIX

License

SW Architecture

Purpose

The SW architecture provides an overview regarding the relationships of different classes and components. It serves for understanding, maintaining, fixing and extending the software.

Scope

The SW architecture document is valid for the PIXELIX project.

Context

PIXELIX as a system is not complete alone. It interacts with other neighbor systems over different kind of interfaces.

context-diagram

Deployment

deployment-diagram

Task name Core Description
arduinoEvents APP_CPU WiFi handling, see details in Arduino framework WiFiGeneric.cpp
AsyncHttpClientTask APP_CPU The AsyncHttpClient uses the task for decoupling.
async_tcp PRO_CPU AsnycTCPSock library uses the task to interact with the LwIP TCP/IP stack and the application.
buttonTask APP_CPU The task is triggered by a hardware button and provides its status.
esp_timer PRO_CPU High resolution timer task, which calls the timer callbacks.
eventTask PRO_CPU ? TODO ?
IDLE0 PRO_CPU Idle task created for CPU 0. See FreeRTOS applications.
IDLE1 APP_CPU Idle task created for CPU 1. See FreeRTOS applications.
ipc0 PRO_CPU IPC task created for CPU 0. IPC tasks are used to implement the Inter-Processor-Call feature. See FreeRTOS applications.
ipc1 APP_CPU IPC task created for CPU 1. IPC tasks are used to implement the Inter-Processor-Call feature. See FreeRTOS applications.
loopTask APP_CPU The standard Arduino loop task. It will call setup() once and periodically loop().
mdns PRO_CPU mDNS (multicast UDP) service.
network_event APP_CPU The task processes system events, e.g. WiFi and TCP/IP events. See event loop library for more information.
processTask APP_CPU The DisplayMgr process the plugins in this task.
spectrumAnalyzerTask APP_CPU Spectrum analyzer task, which receives data via DMA, performs the FFT incl. further steps and provides the data to the application.
tiT PRO_CPU The LwIP TCP/IP stack task.
Tmr Svc PRO_CPU FreeRTOS timer service.
updateTask no-affinity The DisplayMgr updates the physical display there.
wifi PRO_CPU WiFi handling.

Layers

general-layers

Application

app-layer

Services

hal-layer

Hardware Abstraction Layer (HAL)

hal-layer

System Startup

High Level

startup-diagram

System States

system-states-diagram

Details

Hardware Abstraction Layer (HAL)

hal-diagram

Graphic Base Functionality

gfx-diagram

Widgets

widgets-diagram

User Button Handling

button-diagram

Audio Service

audio-service-diagram

Topic Handler Service

topic-handler-service-diagram

Plugin Handling

Static View

plugin-service-static-diagram

Dynamic View

plugin-service-dynamic-diagram

plugin-cfg-handling-dynamic-diagram

Spectrum Analyzer

specturm-analyzer-diagram

Slot Handling

slot-handling-diagram

Issues, Ideas And Bugs

If you have further ideas or you found some bugs, great! Create a issue or if you are able and willing to fix it by yourself, clone the repository and create a pull request.

License

The whole source code is published under the MIT license. Consider the different licenses of the used third party libraries too!

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.