Iotgateway技术手册-6. 数据流程

6. 数据流程

IoT Gateway 中的数据流程主要包括两个方面:数据采集流程和 RPC 命令流程。了解这些流程有助于理解网关的工作原理和数据处理机制。

6.1 数据采集流程

数据采集流程是网关的核心功能之一,负责从设备采集数据并上传到云端平台。

6.1.1 数据采集流程概述

  1. 设备线程启动:系统启动时,DeviceService 为每个启用的设备创建一个 DeviceThread

  2. 设备连接:DeviceThread 尝试连接设备

  3. 数据采集:按照设定的采集周期,调用驱动的采集方法获取设备数据

  4. 数据处理:对采集到的数据进行处理,包括表达式计算、数据转换等

  5. 数据上传:将处理后的数据通过 MQTT 上传到云端平台

  6. 状态更新:更新设备状态和变量值

6.1.2 数据采集详细流程

复制代码
┌─────────────────────────────────────────────────────────────────┐
│                         DeviceThread                           │
└─────────────────────────────────────────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        检查设备连接状态                         │
└─────────────────────────────────────────────────────────────────┘
            │
            ├─ 未连接 ──► ┌─────────────────────────────────────┐
            │             │            尝试连接设备              │
            │             └─────────────────────────────────────┘
            │                         │
            │                         └─ 连接失败 ──► 记录错误日志
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        调用驱动采集方法                         │
└─────────────────────────────────────────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        处理采集到的数据                         │
│  - 表达式计算                                                   │
│  - 数据转换                                                     │
│  - 数据验证                                                     │
└─────────────────────────────────────────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        检查数据变化                             │
└─────────────────────────────────────────────────────────────────┘
            │
            ├─ 数据未变化 ──► 跳过上传
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        上传数据到 MQTT 服务器                   │
└─────────────────────────────────────────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        更新设备状态和变量值                     │
└─────────────────────────────────────────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        等待下一个采集周期                       │
└─────────────────────────────────────────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────────────────────────────┐
│                        重复采集流程                             │
└─────────────────────────────────────────────────────────────────┘

6.1.3 数据采集代码实现

复制代码
// 设备线程主循环
Task.Run(() =>
{
    while (true)
    {
        if (tokenSource.IsCancellationRequested)
        {
            _logger.LogInformation($"停止线程:{_device.DeviceName}

文档版本 :1.0 更新日期 :2025-11-29 编写人员:辉为科技

相关推荐
Vis-Lin2 天前
BLE 协议栈:L2CAP 信道详解
网络·物联网·网络协议·蓝牙·iot·ble
物联通信量讯说2 天前
2026物联网连接服务趋势解析:哪些服务商更值得企业关注?
物联网·iot·企业级物联网服务商·物联网连接
小小的代码里面挖呀挖呀挖2 天前
恒玄BES蓝牙耳机开发--IIC接口应用
笔记·单片机·物联网·学习·iot
Oflycomm2 天前
从硬件到智能:AI摄像头平台驱动安防与自动驾驶融合升级
人工智能·iot·qualcomm·qogrisys·ai摄像头
搜佛说4 天前
比SQLite更快,比InfluxDB更轻:sfsDb的降维打击
jvm·数据库·物联网·架构·sqlite·边缘计算·iot
搜佛说6 天前
03-第3章-基础CRUD操作
数据库·物联网·边缘计算·iot·嵌入式实时数据库
搜佛说6 天前
02-第2章-核心概念与架构
数据库·物联网·微服务·架构·边缘计算·iot
TDengine (老段)8 天前
TDengine IDMP 可视化 ——柱状图
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
特别关注外国供应商8 天前
Netskope 在 制造 领域,怎么用?
网络安全·制造·零信任·iot·ot安全·远程访问控制·访问安全