using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrpaonEMS.Core.Model
{
///
/// 连接状态模型
/// 有些设备有时候会出现一次连接失败,但是下一次就会连接成功,那么不能判断为连接失败
///
public class LinkStateModel : BindableBase
{
public LinkStateModel()
{
_LinkState = true;
}
private string _BmsLinkStateMsg = "失败";
///
/// Bms通信状态Msg
///
public string BmsLinkStateMsg
{
get { return _BmsLinkStateMsg; }
set { _BmsLinkStateMsg = value; RaisePropertyChanged(); }
}
private bool _LinkState;
///
/// 通信连接状态
///
public bool LinkState
{
get { return _LinkState; }
set
{
if (_LinkState != value)
{
if (value)//改变后连接成功
{
//连接成功了就把报错的设置为0
LinkErrCount = 0;
BmsLinkStateMsg = "正常";
_LinkState = value;
}
else//改变后连接失败
{
//
LinkErrCount = LinkErrCount + 1;
if (LinkErrCount >= 3)//连续达到三次算作报错
{
BmsLinkStateMsg = "失败";
//连接失败
_LinkState = false;
}
else
{
//小于三次的话则判定为没有问题
_LinkState = true;
}
}
}
}
}
///
/// 通信连接失败次数
///
public int LinkErrCount { get; set; }
}
}