@page "/init"
@using MasaBlazorApp3.Pojo.Config;
@using MasaBlazorApp3.Pojo.Vo;
@using MasaBlazorApp3.Util;
@using Microsoft.Extensions.Options;
@using Newtonsoft.Json;
@using log4net;
    
    加载程序必要连接中,请稍等。。。
    @msg
    @errMsg
@code {
    @inject Radzen.DialogService dialogService;
    @inject IOptions setting;
    @inject NotificationService _message;
    @inject PortUtil PortUtil;
    @inject FingerprintUtil FingerprintUtil;
    @inject GlobalStateService globalStateService;
    string msg;
    string errMsg;
    private readonly ILog logger = LogManager.GetLogger(typeof(InitPage));
    protected override async Task OnInitializedAsync()
    {
        
        base.OnInitializedAsync();
    }
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        base.OnAfterRender(firstRender);
        if (firstRender)
        {
            await Task.Delay(15);
            msg = "开始连接指纹模块";
            InvokeAsync(StateHasChanged);
            try
            {
                await FingerprintUtil.ConnectionMain();
                msg = "指纹模块连接成功";
                InvokeAsync(StateHasChanged);
            } catch (Exception e)
            {
                msg = "指纹模块连接失败";
                errMsg += "【指纹模块连接失败】";
                InvokeAsync(StateHasChanged);
            }
            await Task.Delay(500);
            msg = "开始连接抽屉串口";
            InvokeAsync(StateHasChanged);
            try
            {
                PortUtil.drawerSerial.Open();
                logger.Info($"抽屉串口打开结果【{PortUtil.drawerSerial.IsOpen}】");
                msg = "抽屉串口连接成功";
                InvokeAsync(StateHasChanged);
            } catch (Exception e)
            {
                msg = "抽屉串口连接失败";
                errMsg += "【抽屉串口连接失败】";
                InvokeAsync(StateHasChanged);
            }
            await Task.Delay(500);
            msg = "开始连接CanBus模块";
            InvokeAsync(StateHasChanged);
            try
            {
                PortUtil.canBusSerial.Open();
                logger.Info($"CanBus模块打开结果【{PortUtil.canBusSerial.IsOpen}】");
                msg = "CanBus模块连接成功";
                InvokeAsync(StateHasChanged);
            } catch (Exception e)
            {
                msg = "CanBus模块连接失败";
                errMsg += "【CanBus模块连接失败】";
                InvokeAsync(StateHasChanged);
            }
            await Task.Delay(500);
            msg = "开始连接条码扫描模块";
            InvokeAsync(StateHasChanged);
            try
            {
                PortUtil.scanCodeSerial.Open();
                logger.Info($"条码扫描模块打开结果【{PortUtil.scanCodeSerial.IsOpen}】");
                msg = "条码扫描模块连接成功";
                InvokeAsync(StateHasChanged);
            } catch (Exception e)
            {
                msg = "条码扫描模块连接失败";
                errMsg += "【条码扫描模块连接失败】";
                InvokeAsync(StateHasChanged);
            }
            globalStateService.isInit = true;
            dialogService.Close();
        }
    }
}