From 73af9a520dde5f74eab4dd9cf75f21c23857ad42 Mon Sep 17 00:00:00 2001 From: yangjingzhao123 Date: Sat, 25 Nov 2017 22:30:53 +0800 Subject: [PATCH] =?UTF-8?q?ModBusRTUDriver=E5=92=8CModbusTCPDriver?= =?UTF-8?q?=E4=B8=AD=E7=9A=84PDU=20=E5=AE=9A=E4=B9=89=E9=95=BF=E5=BA=A6?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E4=BA=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SCADA/Program/.vs/DataExchange/v15/.suo | Bin 218112 -> 222720 bytes .../.vs/DataExchange/v15/sqlite3/storage.ide | Bin 2641920 -> 2658304 bytes SCADA/Program/ModbusDriver/ModbusRTUDriver.cs | 14 +- SCADA/Program/ModbusDriver/ModbusTCPDriver.cs | 160 ++++++++++-------- 4 files changed, 100 insertions(+), 74 deletions(-) diff --git a/SCADA/Program/.vs/DataExchange/v15/.suo b/SCADA/Program/.vs/DataExchange/v15/.suo index 8e7b465e0aa1fbed74354bfce96cb3762010bb79..7c2a6c410261aa70bfdad5925e73719b8514f9c4 100644 GIT binary patch delta 4569 zcmeH~e^6A{702J*w<{Z55QT(a3aE%<7F>{JSwPLc-3PlXtnBg|OOwIfv&BwZlBAnw`xRSGUz5;!g%Dy!d~nwnx(9%O?RU|Hm_ z@i8*oV+$*)h+1B%$c*m^HGcK4-uFp5nz;fwG%rLh$Tt-~j3c=)%me6WN?vNpmT&O6 zaSy_<2&h1U+^SAomk8|vz{X2~TnOfaTkJiQq&xIMGSeNiXTtu==zOyOKA)=>l@n|} zIcWa8`NU)s4d##>w-nDV21<}DA2w#LTLO)Z!b)6JXER)WhdmAY0>EaP6_rdsA9+qG zkp%WQV;7os134kqmh?Q71K>IEb-*5wyE4`)BdEy7W3#eON3FB3zlQqj;5*>EK>lOK zV%2oxaO7aPDbUM@f+m}iURVg+_zxrpS3K!qG6x+VSv@m zeEYy6rzSaSm^0p3bR~{3zt4J=g^7l(4YuhLPP3_bXmhUw(&}Vea;|(M&8cBg5_?x; z`fkM}iF}&)Cz7-i4LiV-U=Xlgk1SS%b8YJX%ZVLXtqAKy4U0s!(`FYO3F!Bda9S48 z%ZK?|6-Cn|6^@Zg4SQm?FiYTbEb_ai{BX9YSr+Y`y*s@v1KICr*p{5_j2R<=71e}& zY57KuQ?m-KG0`VjD>c>dN;$aliI@ynLwX{AR;yTXRIgzho*gQ)lZXUL_Y%#{==Rvvl1& z-m+r)L!$ZucoDn=M!?J9DEJ0=g}Tm>%;6rTDuUYWQ>}$0y#8L!UB8$A-#b?htk`?R ztPJN|_%}Sf@*g}*uE>4G&ya6M*SLGhF|6@8I03!|z70--Qvho(BjHl<-X0HUTvtZV zl$2EF*b5l#4R8@mfJ@-Ayd*RI%h#a21KtJif%n0Wz>mQP;3wdx;6pG8eg=LHegQrL zR{{Ilzk>WV_zhqq{uc5p(@TjYto;}v)3VbvY9b*69eq$y94>!U$pN{zjatPmEYWbB>pKMy55P9^)J%pNHBH8rhY4RwIKSA{L;nSpPEZ)M8s;1Y^ z4h%Mj>9GHofj$2^9z|f|7sGv@EMa3FC@zi{P7-`Q*(nRB5g}?TkBEkJ<$l@<_wWAJx zh|DbHOLGh1){Ku}MLHn<=bW#jLzl^DY|*9h+q)*8|KP-7YI>8HR4n}=^r<&V*l(cr9)m`hmIlh9zntb88C62 z7V?@fBkL?P@}h{O$bk+#=p`MQ;S2TH@|f|AAEu`0q>|5}=Y~nry<<2}6Kk(QJbV4C z-MubqI#0@0-VyyRcQjf`Tk5d~dRtmO-R)aiMD|?{(&HjYS=j#8@FI8Fg2zrCs!3KU zPQAymtdZ&-Cppx4o@nFm?vW}d$Xa!NrB&K02m-ZD5aVEhSr9D2j)8t-v#TCfVS~He zx5+&q2x6}T)nZX_d-}IoUC_l~ZGDZoLG(GBgB=FRTu~_*txZ)0I<2%u>fX@aJYWmz zBz>RVV$e7Geb#Po+ZNY0N$aR@4EelX>sD=}xwyP$TdS_Et=HNhl@tntZb|5@ZZ4=O za0hFh<_!*;Z>v|VFlyVnD_r#r^}g1Mj=Er=zQR@28wzzgJOlO3Qu#oBai~gL917Lw z`nCQN116yBuv;y)wmQ3Gpw_IlZYpRfZ!mZ1*Vwuxr{EJjA%nv#l{*Bj!Pw_2SX13$ z7piOAn+HYLh5=_`$WT(+v@fWNvME;R^3c~?bUXKkOW+k)7-yQFXgn;zebjBBYPnW!kaL>_V7KYs2XKlhKH`^V20a{Qd7 k%1hDf5Q&9y>{boW6KYcN9y!O9C67O(r_N)fXYMEWZvvCeZ~y=R delta 2546 zcmd5;du)?c6uX+>pV#tw4b}3rt=XS7A`bI@pv5Q94F~A&S|`!y2Hx z42ct2ukI3!l8uK5hBy|tL?O($2?22+LlHzLPJ#(BNJbza*57H@QF-crp5)ha@45Fo z_ndRjIk*0=4E~*lO}RD}p+v^wF;;-Tg25n(IbZ|^0BJyDoogEpDAReoIId(E&S%bB zRB?h2#7c`z_>`%lAbXU!rW_FkeIFIws?GK=mSO->NJP9Z<~PCnfhPdzKq^q7S>pNSRycMEI$sqo>0l!3-eT^r`o>0Q_sI^D;mxT1U=K0D4bJp~K&ZG`A- z?KT;$kqyy%`eXhB@DT7b@CZ=jF$ssJHF(zXfL^B~RRockP#6=M)Od=;M+q4X750Cz z!RU=y2c;JAit$yxR$MX8FmM%uh!x^^mW8hoOZodi`E z+69fQ5*HKFQ@((#6=(y#1P%f}iUF>)l6H)a0mp%FfD^z;U?((v3;rE&3iuv44V(ea z0%QxR@9Y_$>*2qM8rQPGV5goET-PHc`x?E2tGPJWnlBx*REykPfuG!&ToW7e^F^+r zHMh)E9Xw!l>Zv?PJyF;*>oNTh2nYW|-H>8#;8Z4kqQs(ms9R4T#zhOg!~Ag>5cup| z+(<6EGrG~59~|Ai=0dKESQ)l3wL^DDT9Nk;POHZ5L3)MUCJ)JSqF%SNZxc3p@8x!} zfl-d!;rFi)hWyT)8VXESkH+wwSgLuzwp`h-3ZLz|a)^ng!#8Rj*iz%!tfBX@2G3j` zD0GTeCAZO=SIxK9xsxS9sHF+>x5FAGMqe zg`COs!~Ff`3tPC^Of57-c`ZEyM$L}O9wZuCGHZ|WpeV_yLW&rrqfFI_r*rb<-ZpNN zo!fY<+|$gTm6x)(*1XBCzHGSV4BsS{41ZlJ2l-?<`4C@8fnnp=B>7VtFOlhOysP#w zPnVw@;hidH&X7^k3ZrCaiJB?@&{S)K$IUe=gc?t}m6}BOa)Lo>#6*#@rtw7*E|(5F--VV~i2_N4s{QDr`8X~GiFX9X zmxGsMeigg|{371kIOv))B7B_o7}g-4XlLvOxNj6=UEm*&M&Ph7I0g?P=Hnm7BZ~R@ zv5Y;1dEz((7xVJ*c$Md1a9{#s8Q_*D5H0XU4#tLopP3Zqu7WV%=VYu13g$pd8dCn9 zGR8V!XgE5-;M;J33?ABJusl6o%@*~o%R`L}Rw6baXXOh^7gWwIT3k`Sq-thq+4H3Z z?h*5=Y@P*qV|=Z-$z^>iVd5Q_1o>>JAe;>4*{yt4xqs^`#y!1(KKFdjg_fecusG6U%p@dHzWUJcqTa( cp?hR+(-hUu|F`KX{bj0EWGiNV_kx-6H*@N35dZ)H diff --git a/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide b/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide index 2bad3aba3e668febb116153f5f51b39d82cd28cd..d7749224e09db14ed957ef264a6100f5eba2043c 100644 GIT binary patch delta 23074 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 delta 15588 zcmeHuiCYxM^Y_kh$^z>Ua0eDS-Pw&7sEA^sUo@KN*9)(BMiIrt6Fj2kP(Z~qDh8$0 zcpp&{qbSiao_NK0qec@vQNd{9ooLi}{Hkhpch)?=_kI6?cb{jVK2@LYuCA`0>F(Xh zUbaHWUbbAw3k&odW-y4k2FGWPJyG-=wkdVhe>_?RX65@N=lPVG>IUWpW)*G9{9G&w zd*?%=pO`T@!C(*$POg_fquqL;a(=`1-wA<5H`+%;d9(^p@_jNpcm^ne^NZ3l&w9*B z@h)mG>WnY=eP9gt!?q@_EX&T$jVOvAmnsAayT8uHPY2XbT3t-i#1-SGtQargCF13Q zm#4a7yjNNs)ic}wm1&Acu@_$6c=_Pvi&rJpqu6g^e$WP+!EnqZ>{wpsY)k6S1{=)p zWQ-O!+Td;{qgg%O$>dX&woR_G!{8m%SBgz$HKm1{}^c$ zs*mi_)uZ4MsmJ__Jw~DSy^D;*03Vk z6b6rLm_mgQ)yg$Zt9@W)ib+3qn|7Im&BO_XT`9=ltI79C-lNH}9Z)XT>gj?NOGQ}E;O=@oMUdUW6eE19 z(RUI(9nd?odZ&Zw+vdV9t?Z@(bgDm~H`fbH7U)!nQWZdHGD)pa5UpRxw0CehG!Leb zdJU@gC!TawzDC{N(VSwE0QKLs-tW=_SklZfL5om5efWP|wJfqh`!sX3^d0J#-g(2N z{|<7HF0DZI;SbKaYFVLvpJvVt4EhT7tIo7?(Z8}m>)}|}X)fwdjce=D&sB%yo8OWkX^vTjJ*&)H zqyl7Ay57{qD1hA6SmAP1@4DCCrCzRXTW#)al)goM>q5QP->OwNnIlco64ZOYrR$fd zZHvuoJ%xo@1Og6X1QsL5Lt5wZeK8~*#HR94?cSw4b;v>U?M^}jbPtu&rB!Hd6Vb-y z$tv|^s9eiS_*%s{Cn?fUv`<^M++`mM@3oL)#DO*#-%YNf=CqJ|L`#E^6j%Ri7io}s zdw@JSP#mJMVEV_hMH-BxC*2pjNQ2d_AIm9?yayXh$A!W8nE61+TGVS%kCi3#IPf(5 z(C`~yZy_lmII>D~`Hl{azHas5w5omYuCL!@!y8}T^cLzG0`O-4E?ylLedy=aX8!d% zVol-iGxbJpOPzLn`HXh6DwmpH90}ch+t+I9`h0j!FOLT2nk`-5CwkJ`x6<}c=T?Kklb$^I@%HMInK5FN!B_P4mJyFp;ObU6Qk+ZT9vDc>uu1X)MAE`;BYVThz&AIEg?Q!tgRjPRwz{GQwglMQMh<}*1p3#9t8H+qr4B{qm8$tYdxt`eUZOG{@Cy0w1 zL+#6!I&lAz(Mx>Q1Wv6pCWtMQA+?sx;ojD!AZ5r6Mdcj`yke;frjf`jXbz)y$gyIV z7Vy;$c|gSE76wBgg&IHJo+%kahWJ+VZSMQtTZk9G2a!85LW{e=+dHx8AG^TtopN>Y zVHa4uQ?4P}--jbRF-U#hhetbQn>hD)R8;_sDT#c~5A&N4ATDdcl}I*nUMXShh!w7C-nv-M>d}F2Kc_b_>Mp zl`W8+g%O_pj>!vZ)UtnUylTPTVh;u3Dr8=i`$5t^*(Ov#-+gjTAslAWKM{6l|8DM+ z+Zm@;b(WY4P4~<3!WS@NKe9?-Dg9dq$FzS>_si|5wNOYsfb9;vgYBkXk^Nx70lA7B zJWg=SJw=AROR_fz2Q?U01LtdQgomLwP1icDf^LnQP*+=smDvr3*Rk5`pj=mkw)d1U z$ox_Eg!PB87KAdKKP2CV?N)mjl>H=!X%bW9!$`SH28L~3huH)_AFp}u1)~&uyvDmp zhC-Ji{K#uCgY z2y02A4$evOgmV|rwxlukcHAAsAA&E+9gP02N#jqGX1d@H|6G*EX*AC9f=gJ%f;!IO zKJq$zNiZ2>+l4@%Py;U}tM+Zftewxo2mp`tk&DCY@)4JP-Kf8*?Vv*M|1P-yM zsVj%rw+QNtVfJQ%n%mbt+pi!q!c+Auvs?)ltJ&3xzbySNK~Y#ZtL(I^vM4+BtQ;OK z7TVPDmBXu5mZqWue>FbpB20y%sPGtRI;smtA9Jav!;Pr$&C=|Dv1hC6qQj4i(lpeU zRncpircS9AzQiwR6Y95loOM;R$)+}l3qMl1s&AUX)91RuKRhtd*XDB_#Z-&}USHLm z90w7};W@E>{?BWD9@J~q^yVjpwe9;&{pCXIhTg^gZ8Q3(eLS-Hh=HTiN2uSuXU`I# zPqT0zn9w5J1_4dO`xmsZSB35^?P2PSrs20evgTmL&d)3SY(wCS7w)YM*E}>i5#>fW z4M^V*uQZftxkK`Q@$$io_!p2*GVzb$-jYkuB1l92s2YG>)pM^sb*ab01yl!ohUy0~f3x~C@H-o; zNS~vs{ZO6xx!Uw>td}WlBI?B_dc}n4Q?n2r+>fZLjw_G7<1bA>?I%0*(i7mb2iSZT zs?T}dB~%iqzGU)!>J*S0klys6Vw%cVQfO2UUxaCZT$F zyk7YvH7TfC#eFFk^=m5W`doB2F zxhkt-hw|puXyKsNiHH`~FzF>W*ttaa^rhOWh4r{m`UUkjlKya&{RM0tFfwmA8tB`> zde=+3g{0I!b#HG$YFFz{;aAP2gl^VtLXZian9=2dt0I#fUUs)eOOLQ@+hcm!M-bn` z8WVmW)xT{0%|$0npNT0)iq)mbR$PdVsjUR6b9-A)3ep|4HtD*)q4SjG4vb2*#y};( zCc}nQs|DUB=_*QMRfp%neXZ3b=>!(sQgqAJ%n4{U!Wtu8LbZFZFTv-i7XGFVg~GNG z*3cjk`}6KOJusqOy*|SFG*I|iBR$TshKe#bR!2I8^?eqm_vRFInqZ9yGGiT2ciwfi zZnmpaCRn!x1W9OE)IiS<$qpUztkI$;*Jp+qd6;*84zL?RkOfP8`$`{UiyeNa5}fbm>Sq*-%6i|Psn3h7hy3Ap%zL;{Y_$k~YAu=eV!u4F zUrDQVFFow=)?Uor65^QEQG2bI0>dh>N_P@r`qVr*Z(;iyVa<7| z9Gy2}3k`+eUE^!CtBuR8$tLMXtkkos-m4$gS$|r01xUwGpE&EGtH3enB`7h%Pg`>3rdnn_#NUUrLJ@yt5$pKVLuNeB_&4s z2i5Lb@DF@V>QYpj&+GG|6iQJo{G~2QK_Bv5#wwYL5p3|TN1kf-X72HWA+ca&)9EH-vvwjQ#x;MW`* zd#V*}(Oe0Wt|G;~=v6hdxzf>7DAU?H-%^=mhPyp+3o{~B8EmpvHyE%4ZZTPM+px9n ztJnl9^hr}{3Td#cuQJh?hGaSc5i~_@4=m+Is194x6uWUFvT&7%tc`FhO^JVvQyV_+ zhaB3(1v95QtnG)K>QLGb8|n-n_E&0yS0B6G*cmwun8VuFIo07_f2Ai(%~oVJEnQjR zK_YKLjSxFfNi*&YH5lIG(mNq^f-a$)ew%h^ZP`0qJ z*tikv!;LaWs9dvb1Qa?OPosrayn=8VMh)XKEOa*VxU%IccxJGLh0aDFYzI4wWqe?+ zW?`W-4>N9C3o?}%+M!BDrs56jGVvtMc>?1FnVE_gTp}Ird_y(3c_PBz1e1p=7CI+! z7(N+}20SNm!0!n1!3fuqupJ>Ehg2Sc#qhwx!D}@F4S3+;fa3__F^287(z!P93Sf})|TL_kxuKiFA=t@W|v{(NM##*m4Z^%C?%Ye0*Xc{Ql*PI8_uQS zg1^6de3a5g(DEMlzaX;f1anOgi4;>$;_+!wtN{tuq91$L@eWV-VsN-2vYs zh>I=L1ld7`fzuJ9m$x8b z2DZs3m&r5SGS9B|n4xqOwd_nCkJInSOe}&ot5B`=mjwBKoJvDjbQoLLQj*|+S!mU= zk>EmtJXGBJ34%Oc3@0AJvOH)E6KA8&@GR^*&mL^>QrkFT?ru=5mA_5QZNRp<%;Q z;&FT!)>?s(gT(Or#|Sx6c`L9OM~V%HiO1n$_<|tEjNzoe5pv*CS7I>^92*v_L<2{U z;cAko(VY7D4Vm!)p7mb?!gI$7JOUWmtVPLQYeLy$Q0b4D~xS!yn1YSQam?ZA% z3zE2(b+(|y9ZV;Q$94fpJhsP4;$aoGqQoOwpClg4fh6%@E+&b`@f1lsgzT=Litchq zl2kPC=nYZb(mvFY_TI33hCLZ(Up9xSH&x{sK4NKcKp`lg#Q?j5$l(r$<|8t&PYf3k zWXBkm5M=LOQ8D(84Gn3Ppl2EDhLDcETe!o`yXy|`JYY^PdRG_{Y0Xc{7zpEkw7m`Y z%kk$1w;%e4!GoPjq}xoay$dVjDask_K~H&oq*+%$6n&&wcZ78M9g=k~NyoQIhWdhm z;eg#}<#c4YkRYcc!xIEKK^Xok9TWGUmG2%=oAB;2h#>pS@mNBT+hyo%SKeBzct-gN zVv0db@i!U|sezf*nu(rx?3|z-JJ;`K5o^3KH2ZwGFfV=Xq!zzdl>`3&u`@2J|F6f+ zXs2WC1U$0#XF1DYSc2!#w6-V14=B^O$RuyXZ|aN=c{|EZ&PkM=XWSJi)2@j4?XYaP zLymTIEbhU?>%h)R-aC+zFyL=q~UPOQeVBsZk-ze7a4 zsDTJ1Im0_0NzU+|Mq4EZ#{)SelM@-pA(@gdiu&Sy7G~>4F={ z->sstZk!R=Ga5s3+JrqOnVfipmot$SEbC0(d$3{Wa8yT*Gt@oZI&jFX12S@)&b4xj#1`Z@oqI3KjWpJcRPIKq=f>&p#wl^* zGi@$nT!|R0f{pnIV2Ou z7aJg%IQSjC>ju>dInEo@8LY>7gBpn(ocCPMU=Kr222{}_B$0tDLfJX?6RIr zImf;ia-89v>DJ??t{$t;?kSx_ZOb#@Audh$3BHgdet4fCi66z{pD6LlffrM6(f*nj z4Gc2~>MKL%?px0PbEp(h^YQHQ&R@2KsQ3OS z@^Xw})DwjIa;*Im>@zRwQ1XJQWaUL2!<_`VDu(w7a#fK}vDj<1ctN+PXywHxlfNLy zz1;rPZH@PbUE6s1K%r<4R_{Mmw&|hbGoVmlN1r{%^4dD?6|Tfvi8~>TN57AZDi0gu-N7Ww+Z5a%`<>M@>_w1MlVKh~PR%|0(JRhMHasB%XC=d$beN{6 zChJm3$Ei8{0G6emTP8GEgTE!st?Fr*G=hGeR?m4f@R2?LME^AS&q3Q6*Foe*s^v%9 z1`oGA1lRi;o%-l|2-aEXG>6yn4BHdr^A?8br3m>B#84$G--a0eL6Enb3?u1qhqn|A z>z_x+8&8H)$jZAXc_>v&UfT43bhH7O8oIoqbfUOG& zats)rAjmOb=$wv@vWX|r%F~gpg9z$fT|$rp!B*FF+*)Egqz2GpF(5D~kUXYGs&(OJ*#vibjVg(#_HY}it$TN@Oae^FdhCyHA ztl(hBpT}aHaBLVzbC840a4|s+Hbd7rU%>?|#bIWB(gmb(tQig^$gyUqAM=$^F%B~u zDqTb#$C_bdf*fmx`Z3?Ki&%`q%!X3pajY2zTtcYFnsxdyU*;t&OHt3?ofhP}-(696 zU$T`7o;kIC!r#9d1i9l3^}8O!AIZucXZVaDPd|pWUm)a;Gt_VT3=7E0 z9cOriAm8v9z9h&g!q9os$3-S}aKKBna*8lqNRaP(3{Mc$7T`qIzb0jC;w!XrLNgph zkh7ZM5`vu744vPV%D6`nC%}UWb9_PjNPjgs(_S38wZu}znR)c{`Gm6;?U}4@Es^6r zU~Rc#QkVZ~>EjbfyEQLEA)a4|CE_TkTw)oTUz}NAtrc%i5w@PTJQLLx*OZO|v^gUO zz|!kVRWBKf^oFc6a)dZRfWGBQtgs3)ezk;(=LA?*u9(FK0==^mf-kYjUif0$(jF); zZHBK`OcwFjRgp!(1Ef+*q)-*=lv*N$`H)g-sVcVcgpVqes!_$*C)yIz$J?jVkiMhS zTlJ@xTzrP2rlA+Tx)O#j#_bIWH+!@01zZjZm!Z#p@dcL7-t^*170vJo9PKH$_VY=@ z{rPb`dNDy%FWKzpGZ-ssgl+i1sqb+)z4nF@E#5Q2(HqKpVmA{6|EAOsZNbp=HziSA z9u9ABkt1RLZ%VBAS5?^coAQ>pC=wc7u*6suatn8yhI>)kjuk65czdKY@8WW}A_j6U zSZa&?V(CqvIImi@aEl2|d&v!adiYtr~{X8DhXoahETZ181IWd;0ASnlH-k=n#{-Q65rxCZj3I)tGD^B z8(nd<3BP$`Y`{gZlC)%g`$lJUYQ}Hi=!y}|`7In>as54d6Q_aLrzO3FQyaU5^?cuo z-o%O1z+eBR*KrcXbFJx3oH)p6ha+{M4ZV(&C~j^`Z{pO`m@C@R>o^U>FWbZ2Ka_Cs zofO#F9^ZdTOM#p#mU`lW6!_q_(nK840T$oJ0ZHfx`)(_J6Vf|shk6`1?M 0) + { + dv.Start = int.Parse(address.Substring(1, index - 1)); + dv.Bit = byte.Parse(address.Substring(index + 1)); + } + else + dv.Start = int.Parse(address.Substring(1)); + dv.Start--; + } + break; + case '3': + { + int index = address.IndexOf('.'); + dv.DBNumber = Modbus.fctReadInputRegister; + if (index > 0) + { + dv.Start = int.Parse(address.Substring(1, index - 1)); + dv.Bit = byte.Parse(address.Substring(index + 1)); + } + else + dv.Start = int.Parse(address.Substring(1)); + dv.Start--; + } + break; + } + return dv; + } + + public string GetAddress(DeviceAddress address) + { + return string.Empty; + } + + #endregion private int _timeout; private Socket tcpSynCl; @@ -239,78 +325,6 @@ namespace ModbusDriver return WriteSyncData(data); } - public int PDU - { - get { return 252; } - //get { return 256; } - } - - public DeviceAddress GetDeviceAddress(string address) - { - DeviceAddress dv = DeviceAddress.Empty; - if (string.IsNullOrEmpty(address)) - return dv; - dv.Area = _slaveId; - switch (address[0]) - { - case '0': - { - dv.DBNumber = Modbus.fctReadCoil; - int st; - int.TryParse(address, out st); - //dv.Start = (st / 16) * 16;//??????????????????? - dv.Bit = (byte)(st % 16); - st /= 16; - dv.Start = st; - } - break; - case '1': - { - dv.DBNumber = Modbus.fctReadDiscreteInputs; - int st; - int.TryParse(address.Substring(1), out st); - //dv.Start = (st / 16) * 16;//??????????????????? - dv.Bit = (byte)(st % 16); - st /= 16; - dv.Start = st; - } - break; - case '4': - { - int index = address.IndexOf('.'); - dv.DBNumber = Modbus.fctReadHoldingRegister; - if (index > 0) - { - dv.Start = int.Parse(address.Substring(1, index - 1)); - dv.Bit = byte.Parse(address.Substring(index + 1)); - } - else - dv.Start = int.Parse(address.Substring(1)); - dv.Start--; - } - break; - case '3': - { - int index = address.IndexOf('.'); - dv.DBNumber = Modbus.fctReadInputRegister; - if (index > 0) - { - dv.Start = int.Parse(address.Substring(1, index - 1)); - dv.Bit = byte.Parse(address.Substring(index + 1)); - } - else - dv.Start = int.Parse(address.Substring(1)); - dv.Start--; - } - break; - } - return dv; - } - - public string GetAddress(DeviceAddress address) - { - return string.Empty; - } public IGroup AddGroup(string name, short id, int updateRate, float deadBand = 0f, bool active = false)