2024-10-24 09:04:38 +08:00

63 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 初始化配置及持久化文件
> - `./data/gateway{}.json` 手动维护, 存储已经完成注册上线虚拟网关信息
> - `./data/devices.csv` 手动维护, 存储每个设备的所属项目编码、设备ID以及人为设置的主题信息
> - `./data/users.csv` 手动维护, 存储初始的用户信息
> - `./data/meian.db` 自动维护, 存储程序初始化及运行过程中的数据
# 可拓展性
> devices.meian_model
> - 完成创建的数据模型,可拓展更多的数据模型
> - 不同体系的数据模型应当存储在不同的文件中,如{factory}_model
> - 每个用于转换的数据模型都应该继承一个具有check函数的BaseInfo类用于校验数据的有效性
> devices.meian_db
> - 实现与数据库的对接逻辑,可拓展不同表的处理逻辑
> - 每个表class应当继承BaseTable再进行个性化拓展
> - 在完成拓展后需要在TableHandle进行路由逻辑补充
> devices.meian_service
> - 业务逻辑层,可拓展不同的业务处理逻辑
> - 拓展的每个服务应当最追加到Services中并对BaseService进行继承实现handle方法实现拿到数据后的**处理逻辑**
> - 完成拓展后若对BaseService进行了修改则需在auto_service中进行路由逻辑补充
# 生产部署手册
**注意事项:**
> - 完成 devices.csv 的信息收集
> - 根据 devices.csv 的项目编码一一手动完成网关设备的注册上线并记录返回的ID与token保存存到gateway.json中
> - 若有初始化人员信息需求则补充users.csv若无则不做操作或删除该文件
> - 每次重启需保证meian.db的数据备份保持其唯一性
环境变量
| 环境变量 | 参考值 | 备注 |
|----------------------|-------------------------------------|--------------------------------------|
| ENV_TYPE | 0: local;1: test-svc;2: product-svc | 用于控制环境变量的动态选择,可统一控制以下所有变量,但优先级低于环境变量 |
| LOGGER_DEBUG | False\True | 用于控制日志的丰富程度 |
| BROKER_0_HOST, | iot-broker-test.*******.com | 云端中转mqtt的访问地址 |
| BROKER_0_PORT, | 31883 | 云端中转mqtt的请求端口 |
| BROKER_0_API_PORT, | 38083 | 云端中转mqtt的api请求端口 |
| BROKER_0_USERNAME, | center@meian | 云端中转mqtt的mqtt账号 |
| BROKER_0_PASSWD, | 28b8db7******a5f2 | 云端中转mqtt的mqtt密码 |
| BROKER_0_API_KEY, | fe705******b707 | 云端中转mqtt的api请求key |
| BROKER_0_API_SECRET, | yNsTO21******iRHByI | 云端中转mqtt的api请求secret |
| BROKER_1_HOST, | iot-broker-test.*******.com | 云服aiot平台的mqtt请求地址 |
| BROKER_1_PORT, | 1883 | 云服aiot平台的mqtt请求端口 |
# 常用查询sql
```sql
-- 查询长时间离线的设备信息
select heart_beat.device_id, device_position_desc, last_heart_beat from heart_beat LEFT JOIN register ON register.device_id=heart_beat.device_id LEFT JOIN device ON device.device_id=heart_beat.device_id where project_code = 'WF-TYJMY' AND last_heart_beat < '1720576800';
-- 查询某个项目的设备注册状态
select * from device where project_code = 'NSJMW';
```
# 常用日志过滤
```bash
tail -f data/run.log |grep -v "heartBeat\|心跳\|上线阈值\|新数据\|HeartBeat\|移除订阅\|ms\|subscribe"
```