Exemple #1
0
        private void btn_addtask_Click(object sender, EventArgs e)
        {
            ModbusHelper.OperationCode c = (ModbusHelper.OperationCode)Convert.ToByte(tb_Code.Text);

            byte[] a = ModbusHelper.DataPacking(modbusType, c, ModbusHelper.HexStringToBytes(tb_Station.Text)[0], ModbusHelper.HexStringToBytes(tb_data.Text));

            addr++;
            string s = addr.ToString().PadLeft(4, '0') + "0006";

            tb_data.Text     = s;
            tb_taskName.Text = "t" + addr.ToString();;
            AddTask(tb_taskName.Text, a);
        }
Exemple #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            ModbusHelper.OperationCode c = (ModbusHelper.OperationCode)Convert.ToByte(tb_Code.Text);//获取操作码

            //将给定的  操作码、站号 、数据  按照modbusType 打包为标准报文格式
            byte[] a = ModbusHelper.DataPacking(modbusType, c, ModbusHelper.HexStringToBytes(tb_Station.Text)[0], ModbusHelper.HexStringToBytes(tb_data.Text));



            //按钮点动输出 都应该这样设置特别是t.ExecuteOnce = true;  如果不写这一句、会一直发送指令给仪表。
            //执行完你创建的任务应该把他删除、否则他会一直存在用任务列表、影响迭代效率
            #region 创建一个控制输出的任务 Demo
            TestContext t = new TestContext();
            t.TaskName    = tb_taskName.Text;
            t.TX          = a;
            t.ExecuteOnce = true;              //只发送一次  !:如果不为ture 这个任务会被循环执行
            t.Priority    = TaskPriority.High; //即刻发送  !:设置优先级使这个任务立即被执行一次,然后不管会不会成功 这个任务都会被降级为普通任务
            t.IsTempTask  = true;              //临时任务 :在调用查找该任务的同时会把该任务删除  !:在查找方法返回结果值后、这个被查找的任务就被删除掉了
            if (task != null)
            {
                task.AddOrUpdateTaskToQueue(t);
            }
            #endregion
        }