#fundamentum #iot #edge #daemon

bin+lib fundamentum-edge-daemon

从 Linux 设备访问 Fundamentum 生态系统的支持方式

3 个稳定版本

1.2.0 2024 年 8 月 2 日
1.1.0 2024 年 5 月 9 日
1.0.0 2024 年 4 月 4 日

#427异步

Download history 10/week @ 2024-04-24 143/week @ 2024-05-08 4/week @ 2024-05-15 6/week @ 2024-05-22 1/week @ 2024-06-05 2/week @ 2024-06-12 2/week @ 2024-07-24 93/week @ 2024-07-31 3/week @ 2024-08-07

98 每月下载量

Apache-2.0

99KB
2K SLoC

Fundamentum Edge Daemon

Crates.io License Build Status Docs.rs

网站 | 文档

从 Linux 设备访问 Fundamentum 生态系统的支持方式。

使用方法

启动守护进程

$ cargo run
# ..
  • gRPC 服务器 将绑定到 127.0.0.1:8080

  • 如果尚不存在,将在 当前工作目录 中创建默认版本的 配置文件 (config.toml)。

  • 将使用 当前工作目录 作为 状态目录。以下是您可能遇到的某些状态文件列表

    • provisioning.jsonrsa_(public|private).pem 将在首次成功配置后创建。

您可以使用可用的 CLI 选项覆盖这些默认设置。以下是一些选项

$ cargo run -- --help
# ..

还可以通过 配置文件 (config.toml) 进行进一步的自定义。

通过 gRPC 接口访问公开的服务

通过 gRPC 接口 提供各种 Fundamentum 服务(请注意,Provisioning 服务是其中一个显著的例外)。

为了能够使用大多数 gRPC 服务(最显著的例外是 Provisioning 服务),您的设备需要 配置。要这样做,一个好的起点是 配置程序

通过 CLI

可以使用 grpcurl CLI 工具与守护进程交互

  • 配置设备

    $ grpcurl \
        -plaintext \
        -d '{
            "api_base_url": "https://devices.fundamentum-iot.com",
            "project_id": 1,
            "region_id": 2,
            "registry_id": 3,
            "serial_number": "device1",
            "asset_type_id": 4,
            "access_token": "TOKEN"
        }' \
        127.0.0.1:8080 \
        com.fundamentum.edge.v1.Provisioning.Provision
    # ...
    
  • 发布遥测数据

    $ grpcurl \
        -plaintext \
        -d '{
            "sub_topic": "test",
            "qos": 0,
            "payload": "SGVsbG8sIFdvcmxkIQ=="
        }' \
        127.0.0.1:8080 \
        com.fundamentum.edge.v1.Telemetry.Publish
    # ...
    
  • 获取设备配置

    $ grpcurl \
        -plaintext \
        127.0.0.1:8080 \
        com.fundamentum.edge.v1.Configuration.Get
    # ...
    
  • 订阅配置更新

    $ grpcurl \
        -plaintext \
        127.0.0.1:8080 \
        com.fundamentum.edge.v1.Configuration.UpdateStream
    # ...
    
  • 发布状态数据

    $ grpcurl \
        -plaintext \
        -d '{
            "states": {
                "status": "ok",
                "alarms": [
                    "alarm1",
                    "alarm2"
                ]
            },
            "sub_devices": [
                {
                    "serial_number": "device1",
                    "states": {
                        "rssi": 50,
                        "battery_level": 75,
                        "temperature": 25
                    }
                }
            ]
        }' \
        127.0.0.1:8080 \
        com.fundamentum.edge.v1.StatesEvent.PublishJson
    # ...
    
  • 订阅传入的动作

    $ grpcurl \
        -plaintext \
        127.0.0.1:8080 \
        com.fundamentum.edge.v1.Actions.Subscribe
    # ...
    
  • 更新动作的状态

    $ grpcurl \
        -plaintext \
        -d '{
            "id": 123,
            "serial_numbers": ["device1", "device2"],
            "ongoing": {"progress": 50},
            "message": "In progress...",
            "payload": "SGVsbG8sIFdvcmxkIQ=="
        }' \
        127.0.0.1:50051 \
        com.fundamentum.edge.v1.Actions.UpdateStatus
    # ...
    

通过语言特定的绑定

对于更严重的用例,我们为以下语言提供特定支持

请确保您使用与您的边缘守护进程服务兼容的绑定库版本。

请注意,即使您的语言尚未被官方支持,您仍然可以在协议缓冲区编译器上对gRPC *.proto文件进行操作,以生成适用于几乎所有语言的绑定库。

开发设置

请参阅开发设置指南

发布

此组件的所有官方版本均发布到crates.io/crates/fundamentum-edge-daemon。所有发布的版本列表可在版本选项卡下找到。

详细的发布说明可在本存储库的CHANGELOG.md中找到:CHANGELOG.md

许可证

Apache License, Version 2.0 许可下发布LICENSE

依赖项

~29–65MB
~1M SLoC