前言
因为经常调试设备,所以弄一下常见的app进行工具调试
开始
演示

项目架构
com.example.testseewo/
├── ui/ # UI层
│ ├── MainActivity.kt # 主Activity
│ ├── DeviceApp.kt # 应用导航入口
│ ├── home/
│ │ └── DeviceHomeScreen.kt # 设备首页
│ ├── card/
│ │ ├── CardReaderScreen.kt # 读卡器页面
│ │ └── CardReaderViewModel.kt
│ ├── camera/
│ │ ├── CameraScreen.kt # 摄像头页面
│ │ └── CameraViewModel.kt
│ └── wiegand/
│ ├── WiegandScreen.kt # 韦根页面
│ └── WiegandViewModel.kt
│
├── domain/ # 领域层
│ ├── model/ # 数据模型
│ │ ├── CardInfo.kt
│ │ ├── CameraInfo.kt
│ │ ├── DeviceStatus.kt
│ │ └── WiegandCard.kt
│ ├── repository/ # 仓库接口
│ │ ├── CardRepository.kt
│ │ ├── CameraRepository.kt
│ │ ├── DeviceRepository.kt
│ │ └── WiegandRepository.kt
│ └── usecase/ # 用例
│ ├── ReadCardUseCase.kt
│ ├── CaptureImageUseCase.kt
│ └── ReceiveWiegandUseCase.kt
│
├── data/ # 数据层
│ ├── repository/ # 仓库实现
│ │ ├── CardRepositoryImpl.kt
│ │ ├── CameraRepositoryImpl.kt
│ │ ├── DeviceRepositoryImpl.kt
│ │ └── WiegandRepositoryImpl.kt
│ └── datasource/
│ └── HardwareDataSource.kt
│
├── hardware/ # 硬件抽象层
│ ├── card/
│ │ ├── CardReader.kt # 读卡器接口
│ │ └── CardReaderState.kt
│ ├── camera/
│ │ ├── CameraManager.kt # 摄像头接口
│ │ └── CameraState.kt
│ ├── wiegand/
│ │ ├── WiegandReader.kt # 韦根接口
│ │ ├── WiegandDecoder.kt
│ │ └── WiegandParser.kt
│ ├── serial/
│ │ └── SerialManager.kt # 串口接口
│ └── gpio/
│ └── GPIOManager.kt # GPIO接口
│
├── vendor/ # 厂商适配层
│ └── seewo/
│ ├── SeewoCardAdapter.kt # 希沃读卡器适配器
│ ├── SeewoCameraAdapter.kt # 希沃摄像头适配器
│ ├── SeewoGPIOAdapter.kt # 希沃GPIO适配器
│ └── SeewoWiegandAdapter.kt # 希沃韦根适配器
│
├── core/ # 核心工具层
│ ├── callback/
│ │ └── DeviceCallback.kt
│ ├── exception/
│ │ └── HardwareException.kt
│ └── utils/
│ └── Logger.kt
功能模块
## 功能模块
### 1. IC卡/RFID读卡模块
- 支持 NFC、RFID、IC卡
- 实时刷卡事件监听
- 卡类型识别
- 异常处理
### 2. 摄像头模块
- 基于 CameraX 实现
- 前后摄像头切换
- 拍照功能
- 预留人脸识别接口
### 3. 韦根门禁模块
- 支持 Wiegand26/34 格式
- GPIO 数据采集
- 数据解析和校验
- 卡号转换
### 4. 串口通信模块
- 串口数据收发
- 波特率配置
- 实时数据监听
### 5. GPIO控制模块
- GPIO 输入输出
- 状态监听
- 资源管理