@@ -73,6 +73,14 @@ namespace BPASmartClient.MessageName | |||
/// </summary> | |||
ConveyorBeltRunStatus, | |||
/// <summary> | |||
/// 发送消息 | |||
/// </summary> | |||
SendMessageName, | |||
/// <summary> | |||
/// 接收消息 | |||
/// </summary> | |||
ReceiveMessageName, | |||
} | |||
/// <summary> | |||
@@ -18,7 +18,7 @@ namespace BPASmartClient.MessageName.发送消息Model | |||
/// <summary> | |||
/// 控件名称 | |||
/// </summary> | |||
public object ControlName { get; set; } | |||
public string ControlName { get; set; } | |||
/// <summary> | |||
/// 控件标题 | |||
/// </summary> | |||
@@ -9,8 +9,16 @@ namespace BPASmartClient.MessageName.接收消息Model | |||
/// <summary> | |||
/// 事件消息[接收端]Model:配置 | |||
/// </summary> | |||
public class EventReceiveMessage: MessageBase | |||
public class EventReceiveMessage:MessageBase | |||
{ | |||
///// <summary> | |||
///// 消息号 | |||
///// </summary> | |||
//public string MeaageID { get; set; } | |||
//// <summary> | |||
///// 消息名称:枚举 | |||
///// </summary> | |||
//public MessageNameEnum MeaageName { get; set; } | |||
/// <summary> | |||
/// 空:保留 | |||
/// </summary> | |||
@@ -19,5 +27,9 @@ namespace BPASmartClient.MessageName.接收消息Model | |||
/// 消息标题:标志控件说明 | |||
/// </summary> | |||
public string Title { get; set; } | |||
//public EventReceiveMessage() | |||
//{ | |||
// MeaageID = GetMessageID.GetID(); | |||
//} | |||
} | |||
} |
@@ -3,6 +3,7 @@ using BPASmartClient.MessageCommunication; | |||
using BPASmartClient.MessageCommunication.MsgControl; | |||
using BPASmartClient.MessageName; | |||
using BPASmartClient.MessageName.EnumHelp; | |||
using BPASmartClient.MessageName.发送消息Model; | |||
using BPASmartClient.MessageName.接收消息Model; | |||
using BPASmartClient.MessageName.接收消息Model.滚动线; | |||
using Newtonsoft.Json; | |||
@@ -57,6 +58,8 @@ namespace BPASmartClient.SCADAControl | |||
private void NewConveyorBelt_Loaded(object sender, RoutedEventArgs e) | |||
{ | |||
EventReceiveNameList.CollectionChanged += EventNameList_CollectionChanged; | |||
EventSendNameList.CollectionChanged += EventSendNameList_CollectionChanged; | |||
foreach (TextBlock tb in FindVisualChildren<TextBlock>(this)) | |||
{ | |||
// do something with tb here | |||
@@ -68,16 +71,28 @@ namespace BPASmartClient.SCADAControl | |||
} | |||
} | |||
} | |||
EventNameList.CollectionChanged += EventNameList_CollectionChanged; | |||
} | |||
private void EventSendNameList_CollectionChanged(object? sender,System.Collections.Specialized.NotifyCollectionChangedEventArgs e) | |||
{ | |||
if (EventSendNameList.Count > 0) | |||
{ | |||
try | |||
{ | |||
EventSendNameListStr = JsonConvert.SerializeObject(EventSendNameList); | |||
} | |||
catch (Exception ex) | |||
{ | |||
} | |||
} | |||
} | |||
private void EventNameList_CollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) | |||
{ | |||
if (EventNameList.Count > 0) | |||
if (EventReceiveNameList.Count > 0) | |||
{ | |||
try | |||
{ | |||
EventNameListStr = JsonConvert.SerializeObject(EventNameList); | |||
EventReceiveNameListStr = JsonConvert.SerializeObject(EventReceiveNameList); | |||
} | |||
catch (Exception ex) | |||
@@ -310,44 +325,72 @@ namespace BPASmartClient.SCADAControl | |||
} | |||
public static readonly DependencyProperty ConveyorBeltStopProperty = | |||
DependencyProperty.Register("ConveyorBeltStop", typeof(string), typeof(NewConveyorBelt), new PropertyMetadata(string.Empty)); | |||
[Category("消息名称")] | |||
public string EventNameListStr | |||
[Category("名称[自动生成]")] | |||
public string EventReceiveNameListStr | |||
{ | |||
get { return (string)GetValue(EventNameListStrProperty); } | |||
set { SetValue(EventNameListStrProperty, value); } | |||
get { return (string)GetValue(EventReceiveNameListStrProperty); } | |||
set { SetValue(EventReceiveNameListStrProperty, value); } | |||
} | |||
public static readonly DependencyProperty EventNameListStrProperty = | |||
DependencyProperty.Register("EventNameListStr", typeof(string), typeof(NewConveyorBelt), new PropertyMetadata(string.Empty)); | |||
[Category("消息名称集合")] | |||
public ObservableCollection<EventReceiveMessage> EventNameList | |||
public static readonly DependencyProperty EventReceiveNameListStrProperty = | |||
DependencyProperty.Register("EventReceiveNameListStr", typeof(string), typeof(NewConveyorBelt), new PropertyMetadata(string.Empty)); | |||
[Category("消息接收名称集合")] | |||
public ObservableCollection<EventReceiveMessage> EventReceiveNameList | |||
{ | |||
get { return (ObservableCollection<EventReceiveMessage>)GetValue(EventNameListProperty); } | |||
set { SetValue(EventNameListProperty, value); } | |||
get { return (ObservableCollection<EventReceiveMessage>)GetValue(EventReceiveNameListProperty); } | |||
set { SetValue(EventReceiveNameListProperty, value); } | |||
} | |||
public static readonly DependencyProperty EventNameListProperty = | |||
DependencyProperty.Register("EventNameList", typeof(ObservableCollection<EventReceiveMessage>), typeof(NewConveyorBelt), new PropertyMetadata(new ObservableCollection<EventReceiveMessage>(), onEventNameListChanged)); | |||
public static readonly DependencyProperty EventReceiveNameListProperty = | |||
DependencyProperty.Register("EventReceiveNameList", typeof(ObservableCollection<EventReceiveMessage>), typeof(NewConveyorBelt), new PropertyMetadata(new ObservableCollection<EventReceiveMessage>(), onEventNameListChanged)); | |||
private static void onEventNameListChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) => (d as NewConveyorBelt)?.RunNameRefresh(); | |||
[Category("名称[自动生成]")] | |||
public string EventSendNameListStr | |||
{ | |||
get { return (string)GetValue(EventSendNameListStrProperty); } | |||
set { SetValue(EventSendNameListStrProperty,value); } | |||
} | |||
public static readonly DependencyProperty EventSendNameListStrProperty = | |||
DependencyProperty.Register("EventSendNameListStr",typeof(string),typeof(NewConveyorBelt),new PropertyMetadata(string.Empty)); | |||
[Category("消息发送名称集合")] | |||
public ObservableCollection<EventSendMessage> EventSendNameList | |||
{ | |||
get { return (ObservableCollection<EventSendMessage>)GetValue(EventSendNameListProperty); } | |||
set { SetValue(EventSendNameListProperty,value); } | |||
} | |||
public static readonly DependencyProperty EventSendNameListProperty = | |||
DependencyProperty.Register("EventSendNameList",typeof(ObservableCollection<EventSendMessage>),typeof(NewConveyorBelt),new PropertyMetadata(new ObservableCollection<EventSendMessage>(),new PropertyChangedCallback(onEventNameListChanged))); | |||
#endregion | |||
#region 属性变更事件 | |||
public void Register() | |||
{ | |||
if (!string.IsNullOrEmpty(EventNameListStr)) | |||
if (!string.IsNullOrEmpty(EventReceiveNameListStr)) | |||
{ | |||
try | |||
{ | |||
EventReceiveNameList = JsonConvert.DeserializeObject<ObservableCollection<EventReceiveMessage>>(EventReceiveNameListStr); | |||
} | |||
catch (Exception ex) | |||
{ | |||
} | |||
} | |||
if (!string.IsNullOrEmpty(EventSendNameListStr)) | |||
{ | |||
try | |||
{ | |||
EventNameList = JsonConvert.DeserializeObject<ObservableCollection<EventReceiveMessage>>(EventNameListStr); | |||
EventSendNameList = JsonConvert.DeserializeObject<ObservableCollection<EventSendMessage>>(EventSendNameListStr); | |||
} | |||
catch (Exception ex) | |||
{ | |||
} | |||
} | |||
if (EventNameList != null) | |||
if (EventReceiveNameList != null) | |||
{ | |||
EventNameList?.ToList().ForEach(x => | |||
EventReceiveNameList?.ToList().ForEach(x => | |||
{ | |||
Class_InnerMessageBus.GetInstance().ListenMessage(this, x.MeaageName.ToString(), "EventHandler"); | |||
Class_InnerMessageBus.GetInstance().ListenMessage(this,x.MeaageName.ToString(),"EventHandler"); | |||
}); | |||
} | |||
} | |||
@@ -361,7 +404,7 @@ namespace BPASmartClient.SCADAControl | |||
if (e.obj_MessageObj is RunEnumModel)//接收到运行消息 | |||
{ | |||
RunEnumModel mode = (RunEnumModel)e.obj_MessageObj; | |||
var msg = EventNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
var msg = EventReceiveNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
//必对消息号: | |||
if (msg != null) | |||
{ | |||
@@ -371,7 +414,7 @@ namespace BPASmartClient.SCADAControl | |||
else if (e.obj_MessageObj is ConveyorBeltMessageModel)//接收到数据模型 | |||
{ | |||
ConveyorBeltMessageModel mode = (ConveyorBeltMessageModel)e.obj_MessageObj; | |||
var msg = EventNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
var msg = EventReceiveNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
//必对消息号: | |||
if (msg != null) | |||
{ | |||
@@ -60,9 +60,9 @@ namespace BPASmartClient.SCADAControl | |||
private void Silos_Loaded(object sender, RoutedEventArgs e) | |||
{ | |||
Loading(); | |||
EventNameList.CollectionChanged += EventNameList_CollectionChanged; | |||
EventReceiveNameList.CollectionChanged += EventNameList_CollectionChanged; | |||
EventSendNameList.CollectionChanged += EventSendNameList_CollectionChanged; | |||
Loading(); | |||
} | |||
private void EventSendNameList_CollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) | |||
@@ -79,14 +79,13 @@ namespace BPASmartClient.SCADAControl | |||
} | |||
} | |||
} | |||
private void EventNameList_CollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) | |||
{ | |||
if (EventNameList.Count > 0) | |||
if (EventReceiveNameList.Count > 0) | |||
{ | |||
try | |||
{ | |||
EventNameListStr = JsonConvert.SerializeObject(EventNameList); | |||
EventReceiveNameListStr = JsonConvert.SerializeObject(EventReceiveNameList); | |||
} | |||
catch (Exception ex) | |||
@@ -114,10 +113,8 @@ namespace BPASmartClient.SCADAControl | |||
#region 动画 | |||
/// <summary> | |||
/// 字节改变 | |||
/// 加载内部变量 | |||
/// </summary> | |||
/// <param name="sender"></param> | |||
/// <param name="e"></param> | |||
public void Loading() | |||
{ | |||
//查找 | |||
@@ -201,7 +198,6 @@ namespace BPASmartClient.SCADAControl | |||
storyboard.Children.Add(animation); | |||
} | |||
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject | |||
{ | |||
if (depObj != null) | |||
@@ -253,33 +249,29 @@ namespace BPASmartClient.SCADAControl | |||
DependencyProperty.Register("Title", typeof(string), typeof(Silos), new PropertyMetadata(new PropertyChangedCallback(onTargetChanged))); | |||
[Category("名称[自动生成]")] | |||
private string EventNameListStr | |||
public string EventReceiveNameListStr | |||
{ | |||
get { return (string)GetValue(EventNameListStrProperty); } | |||
set { SetValue(EventNameListStrProperty, value); } | |||
get { return (string)GetValue(EventReceiveNameListStrProperty); } | |||
set { SetValue(EventReceiveNameListStrProperty, value); } | |||
} | |||
private static readonly DependencyProperty EventNameListStrProperty = | |||
DependencyProperty.Register("EventNameListStr", typeof(string), typeof(Silos), new PropertyMetadata(string.Empty)); | |||
public static readonly DependencyProperty EventReceiveNameListStrProperty = | |||
DependencyProperty.Register("EventReceiveNameListStr", typeof(string), typeof(Silos), new PropertyMetadata(string.Empty)); | |||
[Category("消息接收名称集合")] | |||
public ObservableCollection<EventReceiveMessage> EventNameList | |||
public ObservableCollection<EventReceiveMessage> EventReceiveNameList | |||
{ | |||
get { return (ObservableCollection<EventReceiveMessage>)GetValue(EventNameListProperty); } | |||
set { SetValue(EventNameListProperty, value); } | |||
get { return (ObservableCollection<EventReceiveMessage>)GetValue(EventReceiveNameListProperty); } | |||
set { SetValue(EventReceiveNameListProperty, value); } | |||
} | |||
public static readonly DependencyProperty EventNameListProperty = | |||
DependencyProperty.Register("EventNameList", typeof(ObservableCollection<EventReceiveMessage>), typeof(Silos), new PropertyMetadata(new ObservableCollection<EventReceiveMessage>(), new PropertyChangedCallback(onEventNameListChanged))); | |||
private static void onEventNameListChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) => (d as Silos)?.DataNameRefresh(); | |||
public static readonly DependencyProperty EventReceiveNameListProperty = | |||
DependencyProperty.Register("EventReceiveNameList", typeof(ObservableCollection<EventReceiveMessage>), typeof(Silos), new PropertyMetadata(new ObservableCollection<EventReceiveMessage>(), new PropertyChangedCallback(onEventNameListChanged))); | |||
[Category("名称[自动生成]")] | |||
private string EventSendNameListStr | |||
public string EventSendNameListStr | |||
{ | |||
get { return (string)GetValue(EventSendNameListStrProperty); } | |||
set { SetValue(EventSendNameListStrProperty, value); } | |||
} | |||
private static readonly DependencyProperty EventSendNameListStrProperty = | |||
public static readonly DependencyProperty EventSendNameListStrProperty = | |||
DependencyProperty.Register("EventSendNameListStr", typeof(string), typeof(Silos), new PropertyMetadata(string.Empty)); | |||
[Category("消息发送名称集合")] | |||
public ObservableCollection<EventSendMessage> EventSendNameList | |||
{ | |||
@@ -288,6 +280,7 @@ namespace BPASmartClient.SCADAControl | |||
} | |||
public static readonly DependencyProperty EventSendNameListProperty = | |||
DependencyProperty.Register("EventSendNameList", typeof(ObservableCollection<EventSendMessage>), typeof(Silos), new PropertyMetadata(new ObservableCollection<EventSendMessage>(), new PropertyChangedCallback(onEventNameListChanged))); | |||
private static void onEventNameListChanged(DependencyObject d,DependencyPropertyChangedEventArgs e) => (d as Silos)?.DataNameRefresh(); | |||
[Category("值设定")] | |||
public int Direction | |||
@@ -302,6 +295,7 @@ namespace BPASmartClient.SCADAControl | |||
{ | |||
(d as Silos)?.Refresh(); | |||
} | |||
#endregion | |||
#region 函数 | |||
@@ -367,25 +361,17 @@ namespace BPASmartClient.SCADAControl | |||
#region 运行事件 | |||
public void Register() | |||
{ | |||
if (!string.IsNullOrEmpty(EventNameListStr)) | |||
if (!string.IsNullOrEmpty(EventReceiveNameListStr)) | |||
{ | |||
try | |||
{ | |||
EventNameList = JsonConvert.DeserializeObject<ObservableCollection<EventReceiveMessage>>(EventNameListStr); | |||
EventReceiveNameList = JsonConvert.DeserializeObject<ObservableCollection<EventReceiveMessage>>(EventReceiveNameListStr); | |||
} | |||
catch (Exception ex) | |||
{ | |||
} | |||
} | |||
if (EventNameList != null) | |||
{ | |||
EventNameList?.ToList().ForEach(x => | |||
{ | |||
Class_InnerMessageBus.GetInstance().ListenMessage(this, x.MeaageName.ToString(), "EventHandler"); | |||
}); | |||
} | |||
if (!string.IsNullOrEmpty(EventSendNameListStr)) | |||
{ | |||
try | |||
@@ -397,6 +383,10 @@ namespace BPASmartClient.SCADAControl | |||
} | |||
} | |||
EventReceiveNameList?.ToList().ForEach(x => | |||
{ | |||
Class_InnerMessageBus.GetInstance().ListenMessage(this,x.MeaageName.ToString(),"EventHandler"); | |||
}); | |||
} | |||
/// <summary> | |||
/// 统一事件消息处理中心 | |||
@@ -412,7 +402,7 @@ namespace BPASmartClient.SCADAControl | |||
if (e.obj_MessageObj is RunEnumModel)//接收到运行消息 | |||
{ | |||
RunEnumModel mode = (RunEnumModel)e.obj_MessageObj; | |||
var msg = EventNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
var msg = EventReceiveNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
//必对消息号: | |||
if (msg!=null) | |||
{ | |||
@@ -421,7 +411,7 @@ namespace BPASmartClient.SCADAControl | |||
}else if (e.obj_MessageObj is SilosMessageModel)//接收到数据模型 | |||
{ | |||
SilosMessageModel mode = (SilosMessageModel)e.obj_MessageObj; | |||
var msg = EventNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
var msg = EventReceiveNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID); | |||
//必对消息号: | |||
if (msg != null) | |||
{ | |||
@@ -48,10 +48,10 @@ namespace SCADA.Test | |||
RootCanvas.Children.Clear(); | |||
foreach (FrameworkElement element in canvas) | |||
{ | |||
if (element.GetType().GetInterface("IExecutable") != null) | |||
{ | |||
element.GetType().GetProperty("IsExecuteState").SetValue(element, true); | |||
} | |||
//if (element.GetType().GetInterface("IExecutable") != null) | |||
//{ | |||
// element.GetType().GetProperty("IsExecuteState").SetValue(element, true); | |||
//} | |||
if (element is IExecutable executable) | |||
{ | |||