コード例 #1
0
 public void getClientData(ref ModbusClientData data, ModbusClientManage clientmanage, int clientid)
 {
     data_    = data;
     data_.ID = data.ID;
     mcm      = clientmanage;
     CID      = clientid;
 }
コード例 #2
0
        //ClientChannel CC ;
        //ClientChannel1 CC1 = new ClientChannel1();
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            ////说明点击的列是DataGridViewButtonColumn列
            ////DataGridViewColumn column = dataGridView1.Columns[e.ColumnIndex];
            ////int currentrow = dataGridView1.SelectedRows[0].Index;
            ////CCl = new ModbusClient.ClientChannel();
            ////CC = new ClientChannel();
            if (e.RowIndex == -1)
            {
                return;
            }
            if (e.ColumnIndex == (int)COLUMNNAME.通道)
            {
                refresh();
                DeviceData data = data_.modbusDeviceList.ElementAt(e.RowIndex);

                ModbusClientData datac = data_;
                // ModbusClientData data1 =
                //CCl.getDeviceData(ref data);
                CCl.getModbusClientData(ref datac, ref mcm, CID);
                CCl.ClientNumber(cn);
                CCl.StartPosition = FormStartPosition.CenterScreen;
                channelNo         = e.RowIndex;
                CCl.ShowDialog(this);
            }
        }
コード例 #3
0
ファイル: Clientindex.cs プロジェクト: JackGuo666/c-_test
        private void button1_Click(object sender, EventArgs e)
        {
            UserControl1.UC.getDataManager(ref baseData);
            int num = 0;

            foreach (string ethname in baseData.ethernetDic.Keys)
            {
                for (int j = 0; j < clientManage.modbusClientList.Count; j++)
                {
                    if (clientManage.modbusClientList[j].transformChannel == baseData.ethernetDic[ethname].name)
                    {
                        num++;
                    }
                }
            }
            if (num >= baseData.ethernetDic.Count)
            {
                string err = string.Format("网口已用完,无法继续添加client");
                utility.PrintError(err);
                return;
            }
            int rowcount = dataGridView1.RowCount;

            if (dataGridView1.RowCount >= utility.clientCount)
            {
                string err = string.Format("client最大个数是{0}", utility.clientCount);
                utility.PrintError(err);
                return;
            }
            dataGridView1.RowCount += 1;
            int i = rowcount;
            ModbusClientData data = new ModbusClientData();

            {
                dataGridView1.Rows[i].Cells["Client编号"].Value = rowcount;
                data.ID = rowcount;
                //dataGridView1.Rows[i].Cells[columnConfig].Value = "..."/* + i.ToString()*/;
                //data.device = new DeviceData();
                data.clientstartaddr = 10000 + 1000 * i;
                data.isready         = false;
                clientManage.modbusClientList.Add(data);
            }

            refreshaddr();
        }
コード例 #4
0
ファイル: Clientindex.cs プロジェクト: JackGuo666/c-_test
        public void initForm()
        {
            //load 事件只加载一次,工程重新加载需清空之前函数
            //init是load加载后,initForm才可以加载
            if (init == false)
            {
                return;
            }

            for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--)
            {
                dataGridView1.Rows.RemoveAt(i);
            }



            //DataGridViewDisableButtonColumn buttonColumn = new DataGridViewDisableButtonColumn();
            //buttonColumn.Name = columnConfig;

            //DataGridViewTextBoxColumn cellColumn = new DataGridViewTextBoxColumn();
            //cellColumn.Name = "ID";

            //dataGridView1.Columns.Add(cellColumn);
            //dataGridView1.Columns.Add(buttonColumn);
            if (clientManage.modbusClientList.Count > 0)
            {
                dataGridView1.RowCount += /*8*/ clientManage.modbusClientList.Count;
            }
            //dataGridView1.AutoSize = true;
            //dataGridView1.AllowUserToAddRows = false;
            //dataGridView1.ColumnHeadersDefaultCellStyle.Alignment =
            //    DataGridViewContentAlignment.MiddleCenter;

            for (int i = 0; i < clientManage.modbusClientList.Count; i++)
            {
                ModbusClientData data = clientManage.modbusClientList.ElementAt(i);
                dataGridView1.Rows[i].Cells[0].Value = data.ID;
                //dataGridView1.Rows[i].Cells[""].Value = "..."/* + i.ToString()*/;
            }
        }
コード例 #5
0
ファイル: Clientindex.cs プロジェクト: JackGuo666/c-_test
        private void Clientindex_Load(object sender, EventArgs e)
        {
            init = true;

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                dataGridView1.Rows.RemoveAt(i);
            }
            DataGridViewButtonColumn  btn        = new DataGridViewButtonColumn();
            DataGridViewTextBoxColumn cellColumn = new DataGridViewTextBoxColumn();
            DataGridViewButtonColumn  btn1       = new DataGridViewButtonColumn();

            btn.Name       = "config";
            btn.HeaderText = "配置";
            btn.DefaultCellStyle.NullValue = ". . .";
            cellColumn.Name = "Client编号";
            btn1.Name       = "info";
            btn1.HeaderText = "详细信息";
            btn1.DefaultCellStyle.NullValue = ". . .";
            dataGridView1.Columns.Add(cellColumn);
            dataGridView1.Columns.Add(btn);
            dataGridView1.Columns.Add(btn1);
            dataGridView1.RowCount           = /*8*/ 1 + clientManage.modbusClientList.Count;
            dataGridView1.AutoSize           = true;
            dataGridView1.AllowUserToAddRows = false;
            this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.ColumnHeadersDefaultCellStyle.Alignment =
                DataGridViewContentAlignment.MiddleCenter;
            for (int i = 0; i < clientManage.modbusClientList.Count; i++)
            {
                ModbusClientData data = clientManage.modbusClientList.ElementAt(i);
                dataGridView1.Rows[i].Cells["Client编号"].Value = data.ID;
                //dataGridView1.Rows[i].Cells["config"].Value = "..."/* + i.ToString()*/;
            }
            dataGridView2.AllowUserToAddRows = false;
        }
コード例 #6
0
ファイル: Clientindex.cs プロジェクト: JackGuo666/c-_test
        //public int clientnumber;

        public void loadXml(XmlNode xn)
        {
            XmlNodeList nodeList = xn.ChildNodes;   //创建xn的所有子节点的集合

            foreach (XmlNode childNode in nodeList) //遍历集合中所有的节点
            {
                XmlElement e    = (XmlElement)childNode;
                string     name = e.Name;
                string     test = e.GetAttribute("name");//获取该节点中所有name属性的值
                Console.WriteLine(name);

                ModbusClientData data = new ModbusClientData();

                int.TryParse(e.GetAttribute("id"), out data.ID);//将所有id属性的值(字符串),转换成int32类型,输出变量为data.ID
                int.TryParse(e.GetAttribute("clientstartaddr"), out data.clientstartaddr);
                data.transformChannel = e.GetAttribute("transformchannel");
                int.TryParse(e.GetAttribute("transformmode"), out data.transformMode);
                int.TryParse(e.GetAttribute("responsetimeout"), out data.responseTimeout);
                int.TryParse(e.GetAttribute("clientstartaddr"), out data.clientstartaddr);
                bool.TryParse(e.GetAttribute("isready"), out data.isready);
                //data.transformChannel = int.TryParse(eChild.GetAttribute("transformchannel"));
                //读取device数据
                XmlNodeList nodeDeviceList = childNode.ChildNodes;//创建当前子设备节点下的所有子节点集合
                foreach (XmlNode childDeviceNode in nodeDeviceList)
                {
                    e = (XmlElement)childDeviceNode;                       //子设备节点
                    DeviceData deviceData = new DeviceData();
                    int.TryParse(e.GetAttribute("ID"), out deviceData.ID); //为各子节点赋值
                    deviceData.nameDev = e.GetAttribute("namedev");
                    deviceData.ipaddr  = e.GetAttribute("ipaddr");
                    int.TryParse(e.GetAttribute("serveraddr"), out deviceData.serverAddr);
                    int.TryParse(e.GetAttribute("port"), out deviceData.port);
                    int.TryParse(e.GetAttribute("responsetimeout"), out deviceData.reponseTimeout);
                    int.TryParse(e.GetAttribute("permittimeoutcount"), out deviceData.permitTimeoutCount);
                    int.TryParse(e.GetAttribute("reconnectinterval"), out deviceData.reconnectInterval);
                    //int.TryParse(e.GetAttribute("resetVaraible"), out deviceData.resetVaraible);
                    deviceData.resetVaraible = e.GetAttribute("resetvaraible");
                    string [] resetkey = e.GetAttribute("resetkey").Split('c');
                    deviceData.resetkey[0] = resetkey[0];
                    deviceData.resetkey[1] = resetkey[1];
                    int.TryParse(e.GetAttribute("devstartaddr"), out deviceData.devstartaddr);
                    int.TryParse(e.GetAttribute("devlength"), out deviceData.devlength);
                    //读取channel数据
                    XmlNodeList nodeChannelList = childDeviceNode.ChildNodes;
                    foreach (XmlNode childChannelNode in nodeChannelList)
                    {
                        e = (XmlElement)childChannelNode;
                        ChannelData channelData = new ChannelData();

                        int.TryParse(e.GetAttribute("ID"), out channelData.ID);
                        channelData.nameChannel = e.GetAttribute("namechannel");
                        int.TryParse(e.GetAttribute("msgtype"), out channelData.msgType);
                        channelData.msgdiscrib = e.GetAttribute("msgdiscrib");
                        int.TryParse(e.GetAttribute("trig_mode"), out channelData.trig_mode);
                        int.TryParse(e.GetAttribute("pollingtime"), out channelData.pollingTime);
                        int.TryParse(e.GetAttribute("offset"), out channelData.Offset);
                        int.TryParse(e.GetAttribute("length"), out channelData.Length);
                        //int.TryParse(e.GetAttribute("writeoffset"), out channelData.writeOffset);
                        channelData.trigger_offset = e.GetAttribute("trigger_offset");
                        //int.TryParse(e.GetAttribute("writelength"), out channelData.writeLength);
                        string [] trigoffset = e.GetAttribute("triggeroffsetkey").Split('c');
                        channelData.offsetkey[0] = trigoffset[0];
                        trigoffset[1].Substring(0, 2);
                        channelData.offsetkey[1] = trigoffset[1].Substring(0, 2);
                        channelData.offsetkey[2] = trigoffset[1].Substring(2);

                        channelData.error_offset = e.GetAttribute("error_offset");

                        int.TryParse(e.GetAttribute("channelstartaddr"), out channelData.channelstartaddr);
                        int.TryParse(e.GetAttribute("Channellength"), out channelData.Channellength);
                        int.TryParse(e.GetAttribute("type"), out channelData.type);
                        channelData.note = e.GetAttribute("note");
                        int.TryParse(e.GetAttribute("edit"), out channelData.edit);
                        deviceData.modbusChannelList.Add(channelData);
                    }


                    data.modbusDeviceList.Add(deviceData);
                }

                clientManage.add(data);//添加进xml
            }
        }
コード例 #7
0
ファイル: Clientindex.cs プロジェクト: JackGuo666/c-_test
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex < 0 | e.RowIndex < 0)
            {
                return;
            }

            if (dataGridView1.Columns[e.ColumnIndex].Name == "config")
            {
                //DataGridViewDisableButtonCell buttonCell =
                //    (DataGridViewDisableButtonCell)dataGridView1.
                //    Rows[e.RowIndex].Cells["config"];

                //if (buttonCell.Enabled)
                {
                    //MessageBox.Show(dataGridView1.Rows[e.RowIndex].
                    //    Cells[e.ColumnIndex].Value.ToString() +
                    //    " is enabled");

                    ModbusClient.modbusclient1 mct1 = new modbusclient1();
                    ModbusClient.ClientChannel cc1  = new ClientChannel();
                    //modbusclientDeviceform form = new modbusmasterDeviceform();
                    ModbusClientData data = clientManage.modbusClientList.ElementAt(e.RowIndex);
                    //ModbusClientManage datamanage = clientManage;
                    this.label1.Text = this.dataGridView1.SelectedRows[0].Index.ToString();

                    mct1.ClientNumber(this.label1.Text);

                    mct1.getClientData(ref data, clientManage, e.RowIndex);
                    //cc1.ClientNumber(this.label1.Text);
                    // cc1.getClientData(ref data);
                    mct1.StartPosition = FormStartPosition.CenterScreen;
                    mct1.ShowDialog();
                }
            }
            if (dataGridView1.Columns[e.ColumnIndex].Name == "info")
            {
                int count = dataGridView2.Rows.Count;
                for (int i = 0; i < count; i++)
                {
                    dataGridView2.Rows.RemoveAt(0);
                }

                int index             = dataGridView1.SelectedRows[0].Index;
                ModbusClientData data = clientManage.modbusClientList[index];
                int    devcount       = data.modbusDeviceList.Count;
                int    channelcount   = 0;
                int [] devchannelnum  = new int[16];
                for (int i = 0; i < devcount; i++)
                {
                    channelcount    += data.modbusDeviceList[i].modbusChannelList.Count;
                    devchannelnum[i] = data.modbusDeviceList[i].modbusChannelList.Count;
                }
                int a = 0;
                if (channelcount > 0)
                {
                    dataGridView2.RowCount = channelcount;
                }
                for (int m = 0; m < devcount; m++)
                {
                    if (m > 0)
                    {
                        a = a + devchannelnum[m - 1];
                    }
                    for (int n = 0; n < data.modbusDeviceList[m].modbusChannelList.Count; n++)
                    {
                        dataGridView2.Rows[a + n].Cells[0].Value = data.modbusDeviceList[m].nameDev;
                        dataGridView2.Rows[a + n].Cells[1].Value = data.modbusDeviceList[m].modbusChannelList[n].nameChannel;
                        dataGridView2.Rows[a + n].Cells[2].Value = data.modbusDeviceList[m].modbusChannelList[n].msgdiscrib;
                        dataGridView2.Rows[a + n].Cells[3].Value = data.modbusDeviceList[m].modbusChannelList[n].channelstartaddr + 2;
                        dataGridView2.Rows[a + n].Cells[4].Value = data.modbusDeviceList[m].modbusChannelList[n].Length;
                        dataGridView2.Rows[a + n].Cells[5].Value = data.modbusDeviceList[m].modbusChannelList[n].channelstartaddr;
                        dataGridView2.Rows[a + n].Cells[6].Value = data.modbusDeviceList[m].modbusChannelList[n].channelstartaddr + 1;
                    }
                }
            }
        }
コード例 #8
0
ファイル: Clientindex.cs プロジェクト: JackGuo666/c-_test
        public void saveJson(JsonTextWriter writer)
        {
            //添加modbusslave节点
            ModbusClientManage client = clientManage;

            if (client.modbusClientList.Count > 0)
            {
                writer.WritePropertyName("mbtcp_client");
                writer.WriteStartObject();                              //添加{  client节点
                writer.WritePropertyName("number");
                writer.WriteValue(clientManage.modbusClientList.Count); //number
                writer.WritePropertyName("time_uint");
                writer.WriteValue("ms");                                //时间单位
                int index = 0;
                writer.WritePropertyName("conf");
                writer.WriteStartArray();                                     //[ client节点下conf数组
                for (int i = 0; i < clientManage.modbusClientList.Count; i++) //遍历所有Client的集合
                {
                    ModbusClientData data = clientManage.modbusClientList.ElementAt(i);

                    writer.WriteStartObject();//{  client节点下device
                    writer.WritePropertyName("port");
                    if (data.transformChannel == "NET1")
                    {
                        writer.WriteValue("ethif_0");
                    }
                    else
                    {
                        writer.WriteValue("");
                    }
                    //writer.WritePropertyName("response_timeout");
                    //writer.WriteValue(data.responseTimeout);
                    string mode = null;
                    if (data.transformMode == 0)
                    {
                        mode = "tcp";
                    }
                    else if (data.transformMode == 1)
                    {
                        mode = "udp";
                    }
                    writer.WritePropertyName("mode");
                    writer.WriteValue(mode);
                    writer.WritePropertyName("dev_namestr");
                    writer.WriteValue("mb" + mode + "_client" + data.ID);
                    writer.WritePropertyName("slave");
                    writer.WriteStartObject();//{  slave节点 从设备信息
                    writer.WritePropertyName("num");
                    writer.WriteValue(data.modbusDeviceList.Count);
                    if (i > 0)
                    {
                        index = i * clientManage.modbusClientList[i - 1].modbusDeviceList.Count;
                    }
                    writer.WritePropertyName("conf");
                    writer.WriteStartArray();                             //[  slave节点conf
                    for (int j = 0; j < data.modbusDeviceList.Count; j++) //循环添加每个设备的各参数至
                    {
                        DeviceData dataDev = data.modbusDeviceList.ElementAt(j);

                        writer.WriteStartObject();//{  conf数组下节点,从设备信息
                        writer.WritePropertyName("slave_ip");
                        writer.WriteValue(dataDev.ipaddr);
                        writer.WritePropertyName("slave_port");
                        writer.WriteValue(dataDev.port);
                        writer.WritePropertyName("slave_id");
                        writer.WriteValue(dataDev.serverAddr);
                        writer.WritePropertyName("response_timeout");
                        writer.WriteValue(dataDev.reponseTimeout);
                        writer.WritePropertyName("retry_interval");
                        writer.WriteValue(dataDev.reconnectInterval);
                        writer.WritePropertyName("timeout_cnt_max");
                        writer.WriteValue(dataDev.permitTimeoutCount);
                        writer.WritePropertyName("io_range");
                        writer.WriteStartObject();//{  conf数组下 iorange
                        writer.WritePropertyName("start");
                        writer.WriteValue(dataDev.devstartaddr);
                        writer.WritePropertyName("bytes");
                        writer.WriteValue(dataDev.devlength);
                        writer.WriteEndObject();//}    conf数组下 iorange
                        writer.WritePropertyName("restart_offset");
                        writer.WriteValue(0);
                        writer.WritePropertyName("channel_cfg");
                        writer.WriteStartObject();//{  channel_cfg节点
                        writer.WritePropertyName("num");
                        writer.WriteValue(dataDev.modbusChannelList.Count);
                        writer.WritePropertyName("conf");
                        writer.WriteStartArray();                                 //[  channel_cfg节点下conf数组

                        for (int k = 0; k < dataDev.modbusChannelList.Count; k++) //循环添加通道至子设备节点下
                        {
                            ChannelData dataChannel = dataDev.modbusChannelList.ElementAt(k);
                            writer.WriteStartObject();//{  channel_cfg节点下conf数组中channel信息
                            writer.WritePropertyName("channel_id");
                            writer.WriteValue(dataChannel.ID);
                            writer.WritePropertyName("channel_name");
                            writer.WriteValue("channel" + dataChannel.ID);
                            writer.WritePropertyName("msg_type");
                            writer.WriteValue(dataChannel.msgType);
                            writer.WritePropertyName("trig_mode");
                            writer.WriteValue(dataChannel.trig_mode);
                            writer.WritePropertyName("polling_time");
                            writer.WriteValue(dataChannel.pollingTime);
                            writer.WritePropertyName("offset");
                            writer.WriteValue(dataChannel.Offset);
                            writer.WritePropertyName("quantity");
                            writer.WriteValue(dataChannel.Length);
                            writer.WritePropertyName("io_offset");
                            writer.WriteValue(dataChannel.channelstartaddr + 3 - dataDev.devstartaddr);
                            writer.WritePropertyName("io_bytes");
                            writer.WriteValue(dataChannel.Channellength - 3);
                            writer.WritePropertyName("trigger_offset");
                            writer.WriteValue(dataChannel.channelstartaddr - dataDev.devstartaddr);
                            writer.WritePropertyName("error_offset");
                            writer.WriteValue(dataChannel.channelstartaddr + 1 - dataDev.devstartaddr);
                            writer.WritePropertyName("direction");
                            writer.WriteValue("in");
                            writer.WriteEndObject(); //} channel_cfg节点下conf数组中channel信息
                        }
                        writer.WriteEndArray();      //] channel_cfg节点下conf数组
                        writer.WriteEndObject();     //}  channel_cfg节点
                        writer.WriteEndObject();     //}  conf数组下节点,从设备信息
                    }
                    writer.WriteEndArray();          //]  slave节点conf
                    writer.WriteEndObject();         //} slave节点 从设备信息
                    writer.WriteEndObject();         //} client节点下device
                }
                writer.WriteEndArray();              //] client节点下conf数组
                writer.WriteEndObject();             //添加}  client节点
            }
        }
コード例 #9
0
ファイル: Clientindex.cs プロジェクト: JackGuo666/c-_test
        public void saveXml(ref XmlElement elem, ref XmlDocument doc)
        {
            XmlElement elem1 = doc.CreateElement("modbusclient");

            elem1.SetAttribute("number", dataGridView1.RowCount.ToString());
            elem1.SetAttribute("time_unit", "ms");
            elem.AppendChild(elem1);
            for (int i = 0; i < clientManage.modbusClientList.Count; i++)//遍历所有的modbusclient集合
            {
                ModbusClientData data    = clientManage.modbusClientList.ElementAt(i);
                XmlElement       elem1_m = doc.CreateElement("modbusclient"); //创建m节点
                elem1_m.SetAttribute("id", data.ID.ToString());               //给id节点赋值,值为data.ID
                elem1_m.SetAttribute("clientstartaddr", data.clientstartaddr.ToString());
                //transformChannel com1 com2 com3
                elem1_m.SetAttribute("transformchannel", data.transformChannel);
                //0 TCP    1 UDP
                elem1_m.SetAttribute("transformmode", data.transformMode.ToString());
                elem1_m.SetAttribute("responsetimeout", data.responseTimeout.ToString());
                elem1_m.SetAttribute("clientstartaddr", data.clientstartaddr.ToString());
                elem1_m.SetAttribute("isready", data.isready.ToString());
                //create devices
                for (int j = 0; j < data.modbusDeviceList.Count; j++)//循环添加每个设备的各参数值至xml
                {
                    DeviceData dataDev   = data.modbusDeviceList.ElementAt(j);
                    XmlElement elem1_m_d = doc.CreateElement("device");
                    elem1_m_d.SetAttribute("ID", dataDev.ID.ToString());
                    elem1_m_d.SetAttribute("namedev", dataDev.nameDev.ToString());
                    elem1_m_d.SetAttribute("ipaddr", dataDev.ipaddr.ToString());
                    elem1_m_d.SetAttribute("serveraddr", dataDev.serverAddr.ToString());
                    elem1_m_d.SetAttribute("port", dataDev.port.ToString());
                    elem1_m_d.SetAttribute("responsetimeout", dataDev.reponseTimeout.ToString());
                    elem1_m_d.SetAttribute("permittimeoutcount", dataDev.permitTimeoutCount.ToString());
                    elem1_m_d.SetAttribute("reconnectinterval", dataDev.reconnectInterval.ToString());
                    elem1_m_d.SetAttribute("resetvaraible", dataDev.resetVaraible.ToString());
                    elem1_m_d.SetAttribute("resetkey", dataDev.resetkey[0] + "c" + dataDev.resetkey[1]);
                    elem1_m_d.SetAttribute("devstartaddr", dataDev.devstartaddr.ToString());
                    elem1_m_d.SetAttribute("devlength", dataDev.devlength.ToString());

                    //通道
                    for (int k = 0; k < dataDev.modbusChannelList.Count; k++)//循环添加通道至子设备节点下
                    {
                        ChannelData dataChannel = dataDev.modbusChannelList.ElementAt(k);
                        XmlElement  elem1_m_d_c = doc.CreateElement("channel");
                        elem1_m_d_c.SetAttribute("ID", dataChannel.ID.ToString());
                        elem1_m_d_c.SetAttribute("namechannel", dataChannel.nameChannel);
                        elem1_m_d_c.SetAttribute("msgtype", dataChannel.msgType.ToString());
                        elem1_m_d_c.SetAttribute("msgdiscrib", dataChannel.msgdiscrib);
                        elem1_m_d_c.SetAttribute("trig_mode", dataChannel.trig_mode.ToString());
                        elem1_m_d_c.SetAttribute("pollingtime", dataChannel.pollingTime.ToString());
                        elem1_m_d_c.SetAttribute("offset", dataChannel.Offset.ToString());
                        elem1_m_d_c.SetAttribute("length", dataChannel.Length.ToString());
                        elem1_m_d_c.SetAttribute("trigger_offset", dataChannel.trigger_offset);
                        elem1_m_d_c.SetAttribute("triggeroffsetkey", dataChannel.offsetkey[0] + "c" + dataChannel.offsetkey[1] + dataChannel.offsetkey[2] + "c" + dataChannel.offsetkey1);
                        elem1_m_d_c.SetAttribute("error_offset", dataChannel.error_offset);
                        elem1_m_d_c.SetAttribute("erroroffsetkey", dataChannel.offsetkey[0] + "c" + dataChannel.offsetkey[1] + dataChannel.offsetkey[2] + "c" + dataChannel.offsetkey2);
                        elem1_m_d_c.SetAttribute("channelstartaddr", dataChannel.channelstartaddr.ToString());
                        elem1_m_d_c.SetAttribute("Channellength", dataChannel.Channellength.ToString());
                        elem1_m_d_c.SetAttribute("type", dataChannel.type.ToString());
                        elem1_m_d_c.SetAttribute("note", dataChannel.note);
                        elem1_m_d_c.SetAttribute("edit", dataChannel.edit.ToString());
                        elem1_m_d.AppendChild(elem1_m_d_c);//将通道节点作为子节点加入设备节点
                    }
                    elem1_m.AppendChild(elem1_m_d);
                }
                //XmlElement elem1_d = doc.CreateElement("device");
                //elem1_m.SetAttribute("id", data.ID.ToString());

                elem1.AppendChild(elem1_m);
            }
        }
コード例 #10
0
 public void add(ModbusClientData data)
 {
     modbusClientList.Add(data);
 }