From 246bddb12d0ff62c41656bb3dbe2739b06caae64 Mon Sep 17 00:00:00 2001 From: Gavin Date: Tue, 26 Dec 2017 08:23:38 +0800 Subject: [PATCH] update tagconfig --- SCADA/Example/TagConfig.exe | Bin 139776 -> 140288 bytes SCADA/Program/ModbusDriver/ModbusTCPDriver.cs | 5 +-- .../TagConfig/TagConfig/Form1.Designer.cs | 30 +++++++------- SCADA/Program/TagConfig/TagConfig/Form1.cs | 37 ++++++------------ SCADA/Program/TagConfig/TagConfig/Form1.resx | 2 +- SCADA/dll/ModbusDriver.dll | Bin 22016 -> 22016 bytes 6 files changed, 30 insertions(+), 44 deletions(-) diff --git a/SCADA/Example/TagConfig.exe b/SCADA/Example/TagConfig.exe index 53dd34a4c6512a973a18a9ec95b5cd240d5b288f..d2394b64c580891417c293c71884cf5d94905291 100644 GIT binary patch delta 36454 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 delta 36501 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.0f, 0, QUALITIES.QUALITY_BAD); else { - int value = IPAddress.HostToNetworkOrder(BitConverter.ToInt32(data, 0)); - return new ItemData(*(((float*)&value)), 0, QUALITIES.QUALITY_GOOD); + return new ItemData(IPAddress.HostToNetworkOrder(BitConverter.ToInt32(data, 0)), 0, QUALITIES.QUALITY_GOOD); } } @@ -541,7 +540,7 @@ namespace ModbusDriver public int WriteFloat(DeviceAddress address, float value) { - var data = WriteMultipleRegister(address.Area, address.Start, BitConverter.GetBytes(value)); + var data = WriteMultipleRegister(address.Area, address.Start, BitConverter.GetBytes((int)value)); return data == null ? -1 : 0; } diff --git a/SCADA/Program/TagConfig/TagConfig/Form1.Designer.cs b/SCADA/Program/TagConfig/TagConfig/Form1.Designer.cs index 6fa7a2d..809aed0 100644 --- a/SCADA/Program/TagConfig/TagConfig/Form1.Designer.cs +++ b/SCADA/Program/TagConfig/TagConfig/Form1.Designer.cs @@ -68,6 +68,7 @@ this.tsppaste = new System.Windows.Forms.ToolStripMenuItem(); this.批量删除ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.事件归档ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.粘贴CSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); this.toolStrip2 = new System.Windows.Forms.ToolStrip(); this.tspImp = new System.Windows.Forms.ToolStripButton(); @@ -113,7 +114,6 @@ this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); - this.粘贴CSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -174,31 +174,31 @@ this.修改ToolStripMenuItem, this.参数设置ToolStripMenuItem}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(125, 92); + this.contextMenuStrip1.Size = new System.Drawing.Size(153, 114); this.contextMenuStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStrip1_ItemClicked); // // 增加ToolStripMenuItem // this.增加ToolStripMenuItem.Name = "增加ToolStripMenuItem"; - this.增加ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); + this.增加ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.增加ToolStripMenuItem.Text = "增加"; // // 删除ToolStripMenuItem // this.删除ToolStripMenuItem.Name = "删除ToolStripMenuItem"; - this.删除ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); + this.删除ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.删除ToolStripMenuItem.Text = "删除"; // // 修改ToolStripMenuItem // this.修改ToolStripMenuItem.Name = "修改ToolStripMenuItem"; - this.修改ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); - this.修改ToolStripMenuItem.Text = "修改"; + this.修改ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.修改ToolStripMenuItem.Text = "重命名"; // // 参数设置ToolStripMenuItem // this.参数设置ToolStripMenuItem.Name = "参数设置ToolStripMenuItem"; - this.参数设置ToolStripMenuItem.Size = new System.Drawing.Size(124, 22); + this.参数设置ToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.参数设置ToolStripMenuItem.Text = "参数设置"; // // imageList1 @@ -398,7 +398,7 @@ this.事件归档ToolStripMenuItem, this.粘贴CSVToolStripMenuItem}); this.contextMenuStrip2.Name = "contextMenuStrip2"; - this.contextMenuStrip2.Size = new System.Drawing.Size(195, 224); + this.contextMenuStrip2.Size = new System.Drawing.Size(195, 202); this.contextMenuStrip2.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip2_Opening); this.contextMenuStrip2.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.contextMenuStrip2_ItemClicked); // @@ -460,6 +460,13 @@ this.事件归档ToolStripMenuItem.Text = "事件归档"; this.事件归档ToolStripMenuItem.CheckedChanged += new System.EventHandler(this.事件归档ToolStripMenuItem_CheckedChanged); // + // 粘贴CSVToolStripMenuItem + // + this.粘贴CSVToolStripMenuItem.Name = "粘贴CSVToolStripMenuItem"; + this.粘贴CSVToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y))); + this.粘贴CSVToolStripMenuItem.Size = new System.Drawing.Size(194, 22); + this.粘贴CSVToolStripMenuItem.Text = "粘贴CSV"; + // // toolStrip2 // this.toolStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -775,13 +782,6 @@ this.tspCount.Name = "tspCount"; this.tspCount.Size = new System.Drawing.Size(0, 17); // - // 粘贴CSVToolStripMenuItem - // - this.粘贴CSVToolStripMenuItem.Name = "粘贴CSVToolStripMenuItem"; - this.粘贴CSVToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y))); - this.粘贴CSVToolStripMenuItem.Size = new System.Drawing.Size(194, 22); - this.粘贴CSVToolStripMenuItem.Text = "粘贴CSV"; - // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); diff --git a/SCADA/Program/TagConfig/TagConfig/Form1.cs b/SCADA/Program/TagConfig/TagConfig/Form1.cs index 13716ad..e25fe1c 100644 --- a/SCADA/Program/TagConfig/TagConfig/Form1.cs +++ b/SCADA/Program/TagConfig/TagConfig/Form1.cs @@ -788,14 +788,21 @@ namespace TagConfig } else { - foreach (Group grp in groups) + if (!groups.Exists(x => x.Name == e.Label)) { - if (grp.ID.ToString() == e.Node.Name) + foreach (Group grp in groups) { - grp.Name = e.Label; - break; + if (grp.ID.ToString() == e.Node.Name) + { + grp.Name = e.Label; + break; + } } } + else + { + MessageBox.Show("组名不能重复!"); + } } } } @@ -932,26 +939,6 @@ namespace TagConfig { switch (e.ClickedItem.Text) { - case "配方": - { - - } - break; - case "设备": - { - - } - break; - case "仓容": - { - - } - break; - case "路径": - { - - } - break; case "导入变量": openFileDialog1.Filter = "xml文件 (*.xml)|*.xml|excel文件 (*.xlsx)|*.xlsx|kepserver文件 (*.csv)|*.csv|All files (*.*)|*.*"; openFileDialog1.DefaultExt = "xml"; @@ -1095,7 +1082,7 @@ namespace TagConfig case "删除": RemoveNode(); break; - case "修改": + case "重命名": UpdateNode(); break; case "参数设置": diff --git a/SCADA/Program/TagConfig/TagConfig/Form1.resx b/SCADA/Program/TagConfig/TagConfig/Form1.resx index 1c985b2..3fff4ea 100644 --- a/SCADA/Program/TagConfig/TagConfig/Form1.resx +++ b/SCADA/Program/TagConfig/TagConfig/Form1.resx @@ -128,7 +128,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC6 - CAAAAk1TRnQBSQFMAgEBAwEAARgBAgEYAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAwEAASABAgEgAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/SCADA/dll/ModbusDriver.dll b/SCADA/dll/ModbusDriver.dll index cb5ab1102175aa2703a01a5df776797573e350b3..c78034124ea23a47891b6adfb112e0b0bdbc81d7 100644 GIT binary patch delta 1871 zcmaKtTWl0n9LB#hJLk;KY@t*ND(z~QUbdx|w6p^Df(yl3Xek?7x!FRMTY+LB6fFeU zt!pu6oTOYoH>a;xyk-^erNyR znaO^$nfNG+kFueDU;10~hW7{ASHqtyXYDRyVP4h_q`M)bz+K70?6lj>VkskAp2dpJ0m;& zQG+wQ?01N78xx6{frp4;_OQDq`_-yxbR4rDC-$-jCPS^Ukue+>l3&>WW@(;gMwIoT!*1b|aZg*1y`E1+JWEdY;RmaOPs1f`w!g!z3#Y}p zcm|Gz<-|CtV~Qxl$J#a_C}shL-ggDa7IUypTOA5TUOCQc?QxzEl_)6kM&rCn%*6q1 zcg?5W!Q9!wE|FnPv+8_02e@O}5^S)N*fU+4@#=YLl(M zh>O}}>m4Yo@Fr#J+c2O_w!R&IXj854Ky#%xDqHVFq{=hd`c5=!ldZpmBidx^UHD6z zY<)M1=XyEW`X01tldbQ=2ij!oar~@JwjO&0sZV)9*?KQ(waM1|5Z6Yni+;T0nfgz@ zhKt(de{w&PB5D`=N2lKyK!#_`XKWS&h-jN^>=uJG#=yB|q9^}v9=qWS8H0X-s|-ex zd6i8vLS_2o?|*poUnBT4FsG5u+;Aq*5zX zs#&F4Rcf6|wV^&nqwQ!QZbOvViKWCYG!ge;8C}XClb15gTFfxrC+}HB2;hBDgvl5s zrr{hh6Bmj37$=r0Rw!1h^*a1c>y2vVImNXwX`d}9vYsiz4pdmx*pJVx9^x5`F_%um z*dcsqjj3Z8awWt)%Jq{0c|4}*hrk;5%*+<+ito1Xjt_2LX=r1w0IH3CVwGYO8=&LX zz!32pL-I@e0P#=fUE*cP6_3a8f7$=0esYG~qotRpl$bsyZvj(6ze*B^%RWt+bpQC+ z(HG9&T-aTHK@eSV?hg5J#EEn;Aq7Q1#6%>4L=C)()bvbBG%@o| zA;LH|Zr@xr-E@sD+hlVdTm8`=z+5@!nrk_At_7`-KWf%;YdLE@&+~n@{Hxn|?Rh=V z=l$Gwyzh3gOC)xQj10OaYN``MUNV*VY#Zse2`Qiz5g^<4Ye9QEDInMElO&opdI0j( zz^Q>El1$U?XORy3FK>0aA1pIa4Oju5wB{{zO*bVQmfqAzzCGhxOj_-Ke3?4ZOQ`*W zZ*lTv|CFm7l%PS|LkL!Q1owK@b6(d3ub3`=`j*?n`JuLebD1Zdvw$qIcjle0%Hr#& z;p6Nl|K0Ni6Zbrs<@0<-+|cY34?k;OMy~D8e`i5}>L~F$dw*CVdn`XITF&@87sxX*XU3=>HPdmA3eS$^pVSp~Y3Z9*|yg=@7CJb1H5@ zvocZf3m8!*D&B#s%6P@J1HN*RnOY9G)y|}-zZ-F7qW$O_ zc&Jp=e+c19XH?YRgSslmME!>mRwn8{f^lV{{-b!TOw@l2Wow+AsQ)-3%0&Gqa8a3P zKNiKbQc?dYELrOWMg9F~R3_>lK)*6xKO4ja$K-eRecVwdzOzF}t(Lc#x2-`fj$Frx zOWV)ls8g1%z0HP^e6z@6(FZQSHtc4YA<*XOGbB~Z(No~Xc3p!XojOGjt2s+h#aV{6 zoE2EdS&3TCYOLq1!v@XedUVG+q`XF3$ZdbCa o$xRl1q<$?$>WWzV68=mwYM