Пример #1
0
        private void CreateTestNodes()
        {
            // create test nodes
            var testNode  = new NodeStringXOR(new Point(100, 50));
            var testNode2 = new NodeString(new Point(-350, 40));
            var testNode3 = new NodeChar(new Point(-300, -150));
            var testNode4 = new NodeStringXOR(new Point(350, 150));
            var testNode5 = new NodeLogicOutput(new Point(-280, 300));
            var testNode6 = new NodeMonitor(new Point(600, 290));

            // add nodes to control
            nodeGraphControl.AddNode(testNode);
            nodeGraphControl.AddNode(testNode2);
            nodeGraphControl.AddNode(testNode3);
            nodeGraphControl.AddNode(testNode4);
            nodeGraphControl.AddNode(testNode5);
            nodeGraphControl.AddNode(testNode6);

            // connect nodes
            nodeGraphControl.Connect((SocketOut)testNode3.Sockets[0], (SocketIn)testNode.GetSocketByName("Input key"));
            nodeGraphControl.Connect((SocketOut)testNode2.Sockets[0], (SocketIn)testNode.GetSocketByName("Input string"));
            nodeGraphControl.Connect((SocketOut)testNode.GetSocketByName("Output string"), (SocketIn)testNode4.GetSocketByName("Input string"));
            nodeGraphControl.Connect((SocketOut)testNode3.Sockets[0], (SocketIn)testNode4.GetSocketByName("Input key"));
            nodeGraphControl.Connect((SocketOut)testNode5.GetSocketByName("Output H"), (SocketIn)testNode.GetSocketByName("Input enabled"));
            nodeGraphControl.Connect((SocketOut)testNode5.GetSocketByName("Output H"), (SocketIn)testNode4.GetSocketByName("Input enabled"));
            nodeGraphControl.Connect((SocketOut)testNode4.GetSocketByName("Output string"), (SocketIn)testNode6.GetSocketByName("Input"));
        }
Пример #2
0
        private void buttonClearDevCmd_Click(object sender, EventArgs e)
        {
            string nodeName = GetNodenameSel();
            string reStr    = "";

            if (!NodeMonitor.DevReset(nodeName, ref reStr))
            {
                Console.WriteLine(reStr);
            }
        }
Пример #3
0
 public virtual void DrawLinks(Vector2 scrollPos, NodeMonitor monitor)
 {
     if (sockets != null)
     {
         foreach (var outputSocket in sockets.GetSockets(SocketIO.OUTPUT))
         {
             if (outputSocket.connectedTo != null)
             {
                 var inputSocket = (outputSocket.connectedTo as NodeEditor).GetSocketDimension(SocketIO.INPUT, 0);
                 TreeEditor.DrawLinkBetweenDots(outputSocket.GetGlobalDimension(window).center, inputSocket.center,
                                                monitor != null && monitor.InSequence(outputSocket.connectedTo) ? Sockets.COLOR_RUNNING : Sockets.COLOR_LINK);
             }
         }
     }
 }
Пример #4
0
 private void buttonRfidSimWrite_Click(object sender, EventArgs e)
 {
     try
     {
         string nodeName = GetNodenameSel();
         string rfidVal  = this.textBoxRfidVal.Text;
         NodeMonitor.SimSetRFID(nodeName, rfidVal);
         string barcode = this.textBoxBarcode.Text;
         NodeMonitor.SimSetBarcode(nodeName, barcode);
     }
     catch (System.Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
 }
Пример #5
0
 public static ContainerBuilder AddNodeMonitorService(this ContainerBuilder builder,
                                                      IConfiguration configuration)
 {
     builder.Register(c =>
     {
         var nodeMonitorConfigurationOptions = new NodeMonitorConfigurationOptions();
         configuration.Bind(NodeMonitorConfigurationOptions.ConfigurationSectionName,
                            nodeMonitorConfigurationOptions);
         var nodeMonitorProvider =
             new NodeMonitor(nodeMonitorConfigurationOptions, c.Resolve <Serilog.ILogger>());
         return(nodeMonitorProvider);
     }).As <INodeMonitor>().InstancePerLifetimeScope();
     builder.RegisterType <NodeMonitorService>().As <IHostedService>();
     return(builder);
 }
Пример #6
0
        public void InitializeChannels()
        {
            var nodeExchange = NodeConfiguration.NodeChannel;
            var nodeQueue    = NodeConfiguration.NodeChannel + "Q";
            var meshExchange = NodeConfiguration.MeshChannel;

            Bus.AddRabbitExchange(x => x
                                  .Direct(nodeExchange)
                                  .Immediate()
                                  .Mandatory()
                                  .AutoDelete()
                                  .PersistentDelivery()
                                  // we do want messages sticking around even if the broker dies
                                  );


            Bus.AddRabbitQueue(x => x
                               .QueueName(nodeQueue)
                               .ExchangeName(nodeExchange)
                               .Durable()           // we do want messages sticking around even if the broker dies
                               .AutoDelete()        // we don't want queues lingering after the node is gone
                               .StartSubscription());


            Bus.AddRabbitExchange(x => x
                                  .Fanout(meshExchange)
                                  .Durable()
                                  );


            //Now for the magic
            Bus.BindExchangeToQueue(meshExchange, nodeExchange, NodeConfiguration.NodeChannel);

            //If not an 'edge' node then add 'self' to the node registry
            if (!NodeConfiguration.AsProxy)
            {
                NodeRegistry.AddNode(NodeConfiguration.IdentityProvider.Identity);
            }

            //Start the monitor
            if (!NodeConfiguration.AsProxy)
            {
                NodeMonitor.Start();
            }
        }
Пример #7
0
        private void buttonDB2SimSet_Click(object sender, EventArgs e)
        {
            if (!SysCfg.SysCfgModel.SimMode)
            {
                MessageBox.Show("当前不处于仿真模式");
                return;
            }
            try
            {
                string devName = GetNodenameSel();
                int    itemID  = int.Parse(comboBoxDB2.Text);
                NodeMonitor.SimSetDB2(devName, itemID, int.Parse(this.textBoxDB2ItemVal.Text));

                RefreshPLCComm();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Пример #8
0
        public bool Init()
        {
            List <string> nodeList = new List <string>();
            List <string> nodeIDS  = NodeMonitor.GetMonitorNodeIDS();

            foreach (string nodeID in nodeIDS)
            {
                string nodeName = NodeMonitor.GetNodeName(nodeID);
                nodeList.Add(nodeID + ":" + nodeName);
            }
            this.comboBoxDevList.Items.AddRange(nodeList.ToArray());
            this.comboBoxDevList.SelectedIndex = 0;
            this.cbxWMSimTasktype.Items.AddRange(new string[] { "上架", "下架" });
            this.cbxWMSimTasktype.SelectedIndex = 0;
            DataTable dt = new DataTable("模拟WMS任务列表");

            dt.Columns.AddRange(new DataColumn[] { new DataColumn("管理任务ID"), new DataColumn("任务类型"), new DataColumn("任务状态"), new DataColumn("托盘码"),
                                                   new DataColumn("起始设备号"), new DataColumn("起始设备类型"), new DataColumn("起始设备参数"), new DataColumn("目标设备号"),
                                                   new DataColumn("目标设备类型"), new DataColumn("任务创建时间"), new DataColumn("目标设备参数"), new DataColumn("备注") });

            /*
             * DataRow dr = dt.Rows.Add();
             * dr["管理任务ID"] = System.Guid.NewGuid().ToString();
             * dr["任务类型"] = "产品入库";
             * dr["任务状态"] = "待执行";
             * dr["托盘码"] = "TP2018040412";
             * dr["起始设备号"] = "12112";
             * dr["起始设备类型"] = "工位";
             * dr["起始设备参数"] = "";
             * dr["目标设备号"] = "11001";
             * dr["目标设备类型"] = "货位";
             * dr["目标设备参数"] = "1-1-1";
             * dr["备注"] = "";*/
            this.dataGridView1.DataSource          = dt;
            this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            OnRefreshWMSDt();
            return(true);
        }
Пример #9
0
        private void RefreshPLCComm()
        {
            if (this.dataGridViewDevDB1.InvokeRequired)
            {
                DlgtRefreshPLCComm dlgtRefresh = new DlgtRefreshPLCComm(RefreshPLCComm);
                this.Invoke(dlgtRefresh);
            }
            else
            {
                string nodeName = GetNodenameSel();

                DataTable dt1 = null;
                DataTable dt2 = null;
                //DataTable dtTask = null;
                string taskDetail = "";
                if (!NodeMonitor.GetDevRunningInfo(nodeName, ref dt1, ref dt2, ref taskDetail))
                {
                    Console.WriteLine("刷新工位信息失败");
                    return;
                }
                this.dataGridViewDevDB1.DataSource = dt1;
                for (int i = 0; i < this.dataGridViewDevDB1.Columns.Count; i++)
                {
                    this.dataGridViewDevDB1.Columns[i].SortMode     = DataGridViewColumnSortMode.NotSortable;
                    this.dataGridViewDevDB1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                }
                this.dataGridViewDevDB1.Columns[this.dataGridViewDevDB1.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                this.dataGridViewDevDB2.DataSource = dt2;
                for (int i = 0; i < this.dataGridViewDevDB2.Columns.Count; i++)
                {
                    this.dataGridViewDevDB2.Columns[i].SortMode     = DataGridViewColumnSortMode.NotSortable;
                    this.dataGridViewDevDB2.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                }
                this.dataGridViewDevDB2.Columns[this.dataGridViewDevDB2.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                this.richTextBoxTaskInfo.Text = taskDetail;
            }
        }
Пример #10
0
 public void SetMonitor(NodeMonitor monitor)
 {
     this.monitor = monitor;
 }
Пример #11
0
 public bool Init()
 {
     this.comboBoxDevList.Items.AddRange(NodeMonitor.GetMonitorNodeNames().ToArray());
     this.comboBoxDevList.SelectedIndex = 0;
     return(true);
 }