上位机学习记录(8) 编写上位机报警功能(使用SeeSharp开源控件)
上位机学习记录(8) 编写上位机报警功能(使用SeeSharp开源控件)
第一步:安装SeeSharp
在Nuget中搜索SeeSharp。
第二步:程序设计
大致样式如下:
简要说明:
一个固定文本框显示:系统正常(Label)
一个滚动条显示报警问题(ScrollingText)
一个指示灯(绿色:正常;红色:报警)(LED)
文本框和滚动条在相同位置,彼此覆盖
流程设计:
当系统正常的时候,滚动条隐藏。文本框显示。指示灯显示绿色
当系统异常的时候,指示灯变为红色:
- 报警数量为1条时:文本框显示报警原因
- 报警数量为多条时,滚动条滚动显示多条报警数据
细节说明:
-
只有不相同的报警信息会加入报警显示信息中,相同的不会加入
-
isAck (报警是触发还是消除):如果反馈触发,添加报警;反馈移除报警,就删除报警信息
代码实现如下:
public void AddAlarm(string info, bool isAck)
{
if (isAck)
{
if (!AlarmInfoList.Contains(info))
{
AlarmInfoList.Add(info);
}
}
else
{
if (AlarmInfoList.Contains(info))
{
AlarmInfoList.Remove(info);
}
}
//更新界面
RefreshAlarm();
}
/// <summary>
/// 更新报警界面
/// </summary>
private void RefreshAlarm()
{
this.Invoke(new Action(() =>
{
if (AlarmInfoList.Count == 0)
{
this.led_state.Value = true;
this.lbl_Info.Visible = true;
this.lbl_ScrollInfo.Visible = false;
this.lbl_Info.Text = "系统运行正常";
}
else if (AlarmInfoList.Count == 1)
{
this.led_state.Value = false;
this.lbl_Info.Visible = true;
this.lbl_ScrollInfo.Visible = false;
this.lbl_Info.Text = AlarmInfoList[0];
}
else
{
this.led_state.Value = false;
this.lbl_Info.Visible = false;
this.lbl_ScrollInfo.Visible = true;
this.lbl_ScrollInfo.Text = string.Join(" ", AlarmInfoList).Trim();
}
}));
}
/// <summary>
/// 报警信息列表
/// </summary>
private List<string> AlarmInfoList = new List<string>();
分类:
上位机练习项目(二)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本