using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.Concurrent; namespace monitor_main_windows { class UIMessageData { public enum NodeStatu { Normal=0, Error } private TimedData m_lidar_statu_A1 = new TimedData(NodeStatu.Normal); private TimedData m_lidar_statu_A2 = new TimedData(NodeStatu.Normal); private TimedData m_lidar_statu_B1 = new TimedData(NodeStatu.Normal); private TimedData m_lidar_statu_B2 = new TimedData(NodeStatu.Normal); private TimedData m_lidar_statu_C1 = new TimedData(NodeStatu.Normal); private TimedData m_lidar_statu_C2 = new TimedData(NodeStatu.Normal); private TimedData m_terminal_statu_A1 = new TimedData(NodeStatu.Normal); private TimedData m_terminal_statu_A2 = new TimedData(NodeStatu.Normal); private TimedData m_terminal_statu_B1 = new TimedData(NodeStatu.Normal); private TimedData m_terminal_statu_B2 = new TimedData(NodeStatu.Normal); private TimedData m_terminal_statu_C1 = new TimedData(NodeStatu.Normal); private TimedData m_terminal_statu_C2 = new TimedData(NodeStatu.Normal); private TimedData m_PLC_statu_A = new TimedData(NodeStatu.Normal); private TimedData m_PLC_statu_B = new TimedData(NodeStatu.Normal); private TimedData m_PLC_statu_C = new TimedData(NodeStatu.Normal); private TimedData m_main_node_statu = new TimedData(NodeStatu.Normal); private TimedData m_database_node_statu = new TimedData(NodeStatu.Normal); private TimedData m_output_terminal_node1_statu = new TimedData(NodeStatu.Normal); private TimedData m_output_terminal_node2_statu = new TimedData(NodeStatu.Normal); private TimedData m_output_unnormilized_statu = new TimedData(NodeStatu.Normal); public class CommandInfo { public CommandInfo() { } public CommandInfo(string[] steps,string[] backsteps,int index) { Steps = steps; BackSteps = backsteps; StepIndex = index; } public string[] Steps; public string[] BackSteps; public int StepIndex = 0; } //控件label为string内容 private ConcurrentDictionary> m_command_map = new ConcurrentDictionary>(); class Nested { // 创建模板类实例,参数2设为true表示支持私有构造函数 internal static readonly UIMessageData instance = Activator.CreateInstance(typeof(UIMessageData), true) as UIMessageData; } private static UIMessageData instance = null; public static UIMessageData Instance { get { return Nested.instance; } } private UIMessageData() { } #region 雷达节点状态 public TimedData LidarStatuA1 { get { return m_lidar_statu_A1; } set { m_lidar_statu_A1 = value; } } public TimedData LidarStatuA2 { get { return m_lidar_statu_A2; } set { m_lidar_statu_A2 = value; } } public TimedData LidarStatuB1 { get { return m_lidar_statu_B1; } set { m_lidar_statu_B1 = value; } } public TimedData LidarStatuB2 { get { return m_lidar_statu_B2; } set { m_lidar_statu_B2 = value; } } public TimedData LidarStatuC1 { get { return m_lidar_statu_C1; } set { m_lidar_statu_C1 = value; } } public TimedData LidarStatuC2 { get { return m_lidar_statu_C2; } set { m_lidar_statu_C2 = value; } } #endregion #region 终端节点状态 public TimedData TerminalStatuA1 { get { return m_terminal_statu_A1; } set { m_terminal_statu_A1 = value; } } public TimedData TerminalStatuA2 { get { return m_terminal_statu_A2; } set { m_terminal_statu_A2 = value; } } public TimedData TerminalStatuB1 { get { return m_terminal_statu_B1; } set { m_terminal_statu_B1 = value; } } public TimedData TerminalStatuB2 { get { return m_terminal_statu_B2; } set { m_terminal_statu_B2 = value; } } public TimedData TerminalStatuC1 { get { return m_terminal_statu_C1; } set { m_terminal_statu_C1 = value; } } public TimedData TerminalStatuC2 { get { return m_terminal_statu_C2; } set { m_terminal_statu_C2 = value; } } #endregion #region PLC状态 public TimedData PLCStatuA { get { return m_PLC_statu_A; } set { m_PLC_statu_A = value; } } public TimedData PLCStatuB { get { return m_PLC_statu_B; } set { m_PLC_statu_B = value; } } public TimedData PLCStatuC { get { return m_PLC_statu_C; } set { m_PLC_statu_C = value; } } #endregion public TimedData MainNodeStatu { get { return m_main_node_statu; } set { m_main_node_statu = value; } } public TimedData DatabaseNodeStatu { get { return m_database_node_statu; } set { m_database_node_statu = value; } } public TimedData OutputTerminal1Statu { get { return m_output_terminal_node1_statu; } set { m_output_terminal_node1_statu = value; } } public TimedData OutputTerminal2Statu { get { return m_output_terminal_node2_statu; } set { m_output_terminal_node2_statu = value; } } public TimedData OutputUnnormalNodeStatu { get { return m_output_unnormilized_statu; } set { m_output_unnormilized_statu = value; } } public ConcurrentDictionary> CommandMap { get { return m_command_map; } } } }