Application » History » Version 5
Alex Seferidis, 07/17/2025 12:36 PM
| 1 | 1 | Alex Seferidis | # Application |
|---|---|---|---|
| 2 | |||
| 3 | FBX-3566 can run on 5 different modes: |
||
| 4 | - Fleex Embedded |
||
| 5 | - Fleex Prime |
||
| 6 | - Fleex DS |
||
| 7 | - IPTV STB |
||
| 8 | - DS player (not implemented yet) |
||
| 9 | |||
| 10 | The main QT application opens a full screen web browser (QT web engine, based on chromium 87) |
||
| 11 | On Fleex embedded it opens a web page from the headend. |
||
| 12 | On Fleex DS and Fleex Prime it opens a web page from DS server, or Prime server |
||
| 13 | On IPTV it opens a local page (inside FBX-3566) /htdocs/IPTV/index.php |
||
| 14 | |||
| 15 | There are three main applications: |
||
| 16 | - Web server |
||
| 17 | - QT application |
||
| 18 | - External player |
||
| 19 | 2 | Alex Seferidis | |
| 20 | 4 | Alex Seferidis | Copy eglfs.conf to device home directory (/home/root) |
| 21 | Unzip and copy home.zip to home directory |
||
| 22 | 5 | Alex Seferidis | In case the remote control needs to send different keycodes: |
| 23 | 4 | Alex Seferidis | - change extra.kmap |
| 24 | (example for back key on remote : keycode 158 = Escape) |
||
| 25 | |||
| 26 | - execute |
||
| 27 | ./kmap2qmap extra.kmap extra.qmap |
||
| 28 | |||
| 29 | call qt main application, declare env variable: |
||
| 30 | export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=keymap=/home/root/extra.qmap |
||
| 31 | |||
| 32 | |||
| 33 | |||
| 34 | 2 | Alex Seferidis | ## Web server |
| 35 | |||
| 36 | The device can serve PHP web pages, using Apache2 web server. Settings are saved on SQLITE3 database |
||
| 37 | We can connect to device by opening a web browser from a PC directly to it's IP address |
||
| 38 | http://xxx.xxx.xxx.xxx |
||
| 39 | |||
| 40 | user: admin |
||
| 41 | pass: 12345 |
||
| 42 | |||
| 43 | On the device the web application is located at: |
||
| 44 | /data/firmware/htdocs |
||
| 45 | |||
| 46 | Databases are located at: |
||
| 47 | /data/settings |
||
| 48 | |||
| 49 | On development machine (Alex windows PC): |
||
| 50 | C:\wamp64\www\stb |
||
| 51 | |||
| 52 | **Note: two critical files** |
||
| 53 | 1. /htdocs/python/init.py |
||
| 54 | This script runs on powerup and prepares the system, copy necessary files, etc. |
||
| 55 | |||
| 56 | 2. On DS mode a JavaScript file (main.ds) is downloaded from DS server, and runs all the logic needed for the DS |
||
| 57 | 3 | Alex Seferidis | |
| 58 | TODO: add git server link for web application |
||
| 59 | |||
| 60 | ## QT application |
||
| 61 | |||
| 62 | It is the main application, runs on the screen when the device powers up. |
||
| 63 | Opens QT web engine in full screen. Main application communicate with external player (GSteamer) with internal UDP commnads on 127.0.0.1 address. |
||
| 64 | Source code is located at Virtual machine (Alex PC): |
||
| 65 | /data/Yocto_SDK_QT5/QTplayer |
||
| 66 | |||
| 67 | See QT Creator section, how to setup IDE and then open this application from QT Creator. |
||
| 68 | |||
| 69 | TODO: add git server link for main application |
||
| 70 | |||
| 71 | |||
| 72 | ## External player |
||
| 73 | |||
| 74 | External player is used to play media streams. |
||
| 75 | It is based on Gstreamer. Source code is located with gst-play-1.0 tool inside Yocto: |
||
| 76 | |||
| 77 | /data/Yocto/poky/build-rockchip/tmp/work/armv8a-poky-linux/gstreamer1.0-plugins-base/1.20.7-r0/gst-plugins-base-1.20.7/tools |
||
| 78 | |||
| 79 | It is one file: gst-external.c |
||
| 80 | |||
| 81 | build with: |
||
| 82 | |||
| 83 | ``` |
||
| 84 | bitbake -c compile -f gstreamer1.0-plugins-base |
||
| 85 | ``` |
||
| 86 | |||
| 87 | find executable at /media/alex/data/Yocto/poky/build-rockchip/tmp/work/armv8a-poky-linux/gstreamer1.0-plugins-base/1.20.7-r0/build/tools |
||
| 88 | Then you can copy this executable to the device (/data/firmware) |
||
| 89 | |||
| 90 | TODO: add git server link for external player |