using System;
|
using System.Collections.Generic;
|
using System.Windows.Forms;
|
|
namespace TProduct.WinFrmUI.TBase
|
{
|
public partial class LinkLogListCtrl : UserControl
|
{
|
public LinkLogListCtrl()
|
{
|
InitializeComponent();
|
|
this.gridViewMain.SetNormalView();
|
this.gridViewMain.SetGridMianViewColor();
|
this.gridViewMain.OptionsDetail.ShowDetailTabs = false;//不显示TAB名
|
this.gridViewMain.OptionsView.ShowGroupPanel = false;//隐藏最上面的GroupPanel
|
this.gridViewMain.OptionsSelection.MultiSelect = false;//单选
|
this.gridViewMain.OptionsBehavior.Editable = false;//只读
|
//this.gridViewMain.BestFitColumns();
|
this.gridViewMain.IndicatorWidth = 2;
|
for (int i = 1; i <= 12; i++)
|
{
|
_dispComList.Add(string.Format("COM{0}", i));
|
}
|
beiCOM.EditValue = string.Join(",", _dispComList);
|
bbiStopRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
|
}
|
class CurrentViewModel
|
{
|
public string Time { get; set; }
|
public string MsgTypeName { get; set; }//1 轮询请求 2 轮询返回 3 控制请求
|
public string PortName { get; set; }
|
public string MsgItemName { get; set; }
|
public string Status { get; set; }//1 成功 -1失败, -100 异常Exception
|
public string Info { get; set; }
|
}
|
private List<string> _dispComList = new List<string>();
|
private bool _isRecording = false;
|
private bool _isWriteLog = false;
|
List<CurrentViewModel> list = new List<CurrentViewModel>();
|
public void AddMsg(TProduct.Link.LinkMsgArgs args)
|
{//
|
if (!_isRecording && !_isWriteLog)
|
return;
|
if (!_dispComList.Contains(args.PortName))
|
return;
|
string strMsgTypeName = "";
|
if (args.MsgType == 1)
|
{
|
if (!_isHave发送指令)
|
return;
|
strMsgTypeName = "轮询发送";
|
}
|
else if (args.MsgType == 2)
|
{
|
if (!_isHave返回指令)
|
return;
|
strMsgTypeName = "轮询返回";
|
}
|
else if (args.MsgType == 3)
|
{
|
if (!_isHave控制指令)
|
return;
|
strMsgTypeName = "控制发送";
|
}
|
string strStatus = "";
|
if (args.Status == 1)
|
{
|
strStatus = "成功";
|
}
|
else if (args.Status == -1)
|
{
|
strStatus = "失败";
|
}
|
else if (args.Status == -100)
|
{
|
strStatus = "异常";
|
}
|
string info = "";
|
if (args.Content != null)
|
{
|
info = BitConverter.ToString(args.Content, 0, args.Content.Length);
|
}
|
else
|
{
|
info = args.Error;
|
}
|
if (this._isWriteLog)
|
{
|
TProduct.LogHelper.Test(string.Format("Com:{0},Name:{1},Info:{2}",
|
args.PortName, args.MsgItemName, info));
|
}
|
if (!_isRecording)
|
return;
|
list.Add(new CurrentViewModel()
|
{
|
Time = DateTime.Now.ToString("HH:mm:ss.ff"),
|
MsgTypeName = strMsgTypeName,
|
PortName = args.PortName,
|
MsgItemName = args.MsgItemName,
|
Status = strStatus,
|
Info = info
|
});
|
if (list.Count > 250)
|
list.RemoveAt(0);
|
this.bindingSource1.ResetBindings(false);
|
}
|
|
private void LinkLogListCtrl_Load(object sender, EventArgs e)
|
{
|
this.bindingSource1.DataSource = list;
|
}
|
|
private void bbiStopRecord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
_isRecording = false;
|
bbiStartRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
|
bbiStopRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
|
}
|
|
private void bbiStartRecord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
_isRecording = true;
|
bbiStartRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
|
bbiStopRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
|
}
|
|
private void bbiExportExcel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var path = TProduct.WinFrmUI.ExcelSaveFilePathHelper.SaveFilePathName();
|
if (string.IsNullOrEmpty(path)) return;
|
DevExpress.XtraPrinting.XlsExportOptions options = new DevExpress.XtraPrinting.XlsExportOptions();
|
options.RawDataMode = true;//所见即所得
|
options.TextExportMode = DevExpress.XtraPrinting.TextExportMode.Text;
|
this.gridViewMain.OptionsPrint.AutoWidth = false;
|
|
this.gridViewMain.ExportToXls(path, options);
|
|
}
|
|
private void bbi清空所有数据_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
list.Clear();
|
this.bindingSource1.ResetBindings(false);
|
}
|
|
private void toggle写入日志文件_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
this._isWriteLog = toggle写入日志文件.Checked;
|
}
|
|
|
|
|
|
private void beiCOM_EditValueChanged(object sender, EventArgs e)
|
{
|
var sss = beiCOM.EditValue;
|
if (sss == null)
|
{
|
_dispComList.Clear();
|
return;
|
}
|
var spi = sss.ToString();
|
if (string.IsNullOrEmpty(spi))
|
{
|
_dispComList.Clear();
|
return;
|
}
|
_dispComList.Clear();
|
foreach (var s in spi.Split(','))
|
{
|
_dispComList.Add(s.Trim());
|
}
|
}
|
private bool _isHave发送指令 = true;
|
private void bci发送指令_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
_isHave发送指令 = bci发送指令.Checked;
|
}
|
private bool _isHave返回指令 = true;
|
private void bci返回指令_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
_isHave返回指令 = bci返回指令.Checked;
|
}
|
private bool _isHave控制指令 = true;
|
private void bci控制指令_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
_isHave控制指令 = bci控制指令.Checked;
|
}
|
}
|
}
|