# usea **Repository Path**: guo-jiahaooo/usea ## Basic Information - **Project Name**: usea - **Description**: yh-coffee-tablet - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-17 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YH Coffee Tablet — 项目说明 本仓库实现的是一个基于 Modbus 协议的上位机(Master/HMI)Android 应用,负责通过 Modbus/TCP 与下位设备进行数据交互,并同时提供网络 API、MQTT 消息通信与本地数据库支持。 核心特点 - 上位机(Host/HMI)软件,Modbus/TCP 主站(master)实现:使用 `com.digitalpetri.modbus:modbus-master-tcp` 与 `io.netty` 进行 Modbus 通讯。 - 支持 MQTT(HiveMQ MQTT 5 客户端)与 REST API(Retrofit)并存,方便与云端或网关对接。 - 本地持久化使用 Room(KSP),UI 使用 Jetpack Compose,依赖注入使用 Hilt。 - 支持串口(SerialPort.Android)与打印机、二维码处理(ZXing)、图片加载(Coil)等外设交互。 技术栈(概要) - Kotlin + Android(JVM target 11) - Android compileSdk = 36, minSdk = 24, targetSdk = 24 - Jetpack Compose(Compose BOM)、Hilt、Room(KSP)、Retrofit + OkHttp - MQTT: `com.hivemq:hivemq-mqtt-client` - Modbus: `com.digitalpetri.modbus:modbus-master-tcp` + Netty (`io.netty:netty-all`) - 其他:Coil、ZXing、Toaster、SerialPort.Android 环境配置(开发者本地) 1. 安装 Android Studio(建议 2025+ 或更高)与合适的 Android SDK(compileSdk 36)。 2. 确保使用 JDK 17。 3. 构建与运行(Windows PowerShell) - 项目使用Build Variants区分不同环境与配置,常用的 productFlavors 有 `dev`(开发)、`qa`(测试)、`prod`(生产)。 - 根据不同Flavors直接打包对应环境的 APK。 - 构建某个风味的 debug/ release APK: ```powershell # dev debug (开发环境) .\gradlew.bat assembleDevDebug # qa release(测试环境) .\gradlew.bat assembleQaRelease # prod release (生产环境) .\gradlew.bat assembleProdRelease ``` 产品风味与运行时配置 - 本项目在 `app/build.gradle.kts` 中定义了三个 productFlavors:`dev`、`qa`、`prod`。每个 flavor 含有不同的 BuildConfig 常量(如 `DEFAULT_DEVICE_HOST`, `DEFAULT_DEVICE_PORT`, `DEFAULT_MQTT_HOST` 等),用于区分环境与设备地址。 - 运行时可通过 `BuildConfig` 访问这些常量进行连接与调试。 打包与发布注意事项 - release 构建已开启 ProGuard(R8)混淆,混淆规则在 `app/proguard-rules.pro`。发布前请确认混淆规则不会移除必须的序列化/反射类。 - 由于使用了 Netty 与第三方 native/平台库,测试在目标设备上是否出现兼容性问题。