[feat] 新增A2完全测试的例程项目
智能大石头 authored at 2025-05-22 23:24:42
1.17 KiB
SmartA2
using NewLife;
using NewLife.Log;
using NewLife.Model;

namespace FullTest;

/// <summary>
/// 后台任务。支持构造函数注入服务
/// </summary>
public class Worker : IHostedService
{
    private NodeClient _client;
    private readonly ILog _log;
    private readonly ITracer _tracer;

    public Worker(ILog log, ITracer tracer)
    {
        _log = log;
        _tracer = tracer;
    }

    public Task StartAsync(CancellationToken cancellationToken)
    {
        XTrace.WriteLine("开始Node客户端");

#if DEBUG
        // 降低日志等级,输出通信详情。生产环境不建议这么做
        XTrace.Log.Level = LogLevel.Debug;
#endif

        var set = ClientSetting.Current;

        // 产品编码、产品密钥从IoT管理平台获取,设备编码支持自动注册
        var client = new NodeClient(set)
        {
            ProductCode = "A2FullTest",

            Tracer = _tracer,
            Log = _log,
        };

        client.Open();

        _client = client;

        return Task.CompletedTask;
    }

    public Task StopAsync(CancellationToken cancellationToken)
    {
        _client.TryDispose();

        return Task.CompletedTask;
    }
}