项目简介
这是一个基于GTK4和C++的TUM信息显示系统项目,旨在为慕尼黑工业大学(Technical University of Munich,简称TUM)的学生和工作人员提供食堂、MVG(慕尼黑公共交通系统)信息以及天气的实时更新。该项目可运行在Raspberry PI上,作为办公室状态显示器使用。
项目的主要特性和功能
- 界面显示:实时更新显示食堂人数统计、食堂菜单、MVG出发信息和天气信息。
- 数据更新:定时从后端API获取数据并更新UI显示。
- 自定义UI:使用GTK4和C++开发,支持自定义UI设计和交互。
- 多线程处理:采用多线程处理数据更新,确保UI流畅运行。
- 设置管理:提供设置管理功能,用户可自定义显示内容、更新频率等。
安装使用步骤
前提条件
假设用户已经下载了本项目的源码文件。
安装步骤
- 获取源代码:
bash cd tum-ui
- 安装依赖:
- Fedora:
bash sudo dnf install gtkmm4.0-devel libadwaita-devel libcurl-devel g++ clang cmake git libsoup3-devel sqlite-devel ninja-build
- Debian/Ubuntu:
bash sudo apt install libgtk-4-dev libadwaita-1-dev libcurl4-openssl-dev g++ clang cmake git libsoup3-dev libsqlite3-dev ninja-build
- 编译构建:
bash mkdir build cd build cmake .. cmake --build .
- 运行程序:
bash ./tum-ui
- 配置设置:
- 首次运行后,配置文件将自动生成在
/root/tum_ui_settings.json
。 - 可根据需要修改配置文件以自定义显示内容和更新频率。
- 自动启动:
- 将
tum_ui.service
文件复制到/etc/systemd/system/
目录下。 - 启用并启动服务:
bash systemctl enable tum_ui.service systemctl start tum_ui.service
其他构建选项
Flatpak构建
- 安装Flatpak相关依赖:
bash sudo dnf install flatpak flatpak-builder flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install flathub org.gnome.Sdk/43 org.gnome.Platform/43
- 构建Flatpak包:
bash flatpak-builder --force-clean flatpak_build_dir de.tum_ui.cli.yml
- 安装Flatpak包:
bash flatpak-builder --user --install --force-clean flatpak_build_dir de.tum_ui.cli.yml
交叉编译
- 安装交叉编译工具:
bash sudo dnf install qemu-system-arm qemu-user-static sudo systemctl restart systemd-binfmt.service
- 安装aarch64平台依赖:
bash flatpak install flathub org.gnome.Sdk/aarch64/42 org.gnome.Platform/aarch64/42
- 构建并打包:
bash flatpak-builder --arch=aarch64 --repo=repo --force-clean flatpak_build_dir de.tum_ui.cli.yml flatpak build-bundle --arch=aarch64 ./repo/ de.tum_ui.cli.flatpak de.tum_ui.cli
- 将生成的
repo
目录复制到目标系统并安装:bash flatpak --user remote-add --no-gpg-verify tum-ui-repo repo flatpak --user install tum-ui-repo de.tum_ui.cli
通过以上步骤,可在Raspberry PI或其他支持GTK4和C++的平台上成功构建和运行该项目。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】