62 lines
2.0 KiB
C#
62 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using MQTTnet.Client;
|
|
using Prism.Events;
|
|
using Prism.Regions;
|
|
using RIZO_Application.Core;
|
|
using RIZO_Application.Core.Mvvm;
|
|
using RIZO_Application.Infrastructure.Model;
|
|
using RIZO_Helper.Tools;
|
|
|
|
namespace RIZO_Application.Modules.Base.ViewModels
|
|
{
|
|
public class ScanControlViewModel : RegionViewModelBase
|
|
{
|
|
private readonly IEventAggregator _eventAggregator;
|
|
private ComScanHelper _scanHelper;
|
|
|
|
|
|
|
|
|
|
public ScanControlViewModel(
|
|
IRegionManager regionManager,
|
|
IEventAggregator eventAggregator)
|
|
: base(regionManager)
|
|
{
|
|
_eventAggregator = eventAggregator;
|
|
Task.Run(StartComScan);
|
|
}
|
|
public async Task StartComScan()
|
|
{
|
|
string comName = "COM1";
|
|
int baudRate = 9600;
|
|
if (SerialConfigs.Current != null)
|
|
{
|
|
comName = SerialConfigs.Current.ComName ?? string.Empty;
|
|
baudRate = SerialConfigs.Current.BaudRate ?? 9600;
|
|
}
|
|
_eventAggregator.GetEvent<SystemLogEvent>().Publish($"串口扫码枪初始化……串口:{comName}波特率:{baudRate}");
|
|
_scanHelper = new ComScanHelper(comName, baudRate);
|
|
if(_scanHelper == null)
|
|
{
|
|
Debug.WriteLine("串口打开异常!");
|
|
return;
|
|
}
|
|
_scanHelper.DataReceived += HandleMessage;
|
|
await _scanHelper.OpenAsync();
|
|
_eventAggregator.GetEvent<SystemLogEvent>().Publish($"串口扫码初始化完成");
|
|
}
|
|
// 定义事件处理方法
|
|
public void HandleMessage(string labelCode)
|
|
{
|
|
// 打印接收到的消息信息
|
|
_eventAggregator.GetEvent<SystemLogEvent>().Publish($"收到串口信息:{labelCode}");
|
|
_eventAggregator.GetEvent<ScanEvent>().Publish(labelCode);
|
|
}
|
|
}
|
|
}
|