From 2eda557ade7cdaee681ba0ebb8d8765f1a5d83ff Mon Sep 17 00:00:00 2001 From: Candy Date: Sun, 12 Apr 2020 10:48:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=8E=8B=E6=9F=A5=E8=AF=A2Bug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../His/Compress/Special/NoneCompressUnit.cs | 43 ++++++++++++------ DataRunner/His/HisEnginer.cs | 2 + DataRunner/His/HisQuery/QuerySerivce.cs | 2 +- DataRunner/His/Tag/HisRunTag.cs | 33 +------------- Mars/.vs/Mars/v16/.suo | Bin 473088 -> 473088 bytes Mars/.vs/Mars/v16/Server/sqlite3/storage.ide | Bin 5193728 -> 5193728 bytes 6 files changed, 34 insertions(+), 46 deletions(-) diff --git a/DataRunner/His/Compress/Special/NoneCompressUnit.cs b/DataRunner/His/Compress/Special/NoneCompressUnit.cs index 58b5de5..a39a14b 100644 --- a/DataRunner/His/Compress/Special/NoneCompressUnit.cs +++ b/DataRunner/His/Compress/Special/NoneCompressUnit.cs @@ -51,7 +51,7 @@ namespace Cdy.Tag target.Write(this.StartTime); target.Write((ushort)(size - this.QulityOffset));//写入值的个数 if (size > 0) - source.CopyTo(target, sourceAddr, targetAddr + 12, size); + source.CopyTo(target, sourceAddr, targetAddr + 10, size); return size + 10; } @@ -148,7 +148,14 @@ namespace Cdy.Tag // return (int)count; //} - + /// + /// 读取时间戳 + /// + /// + /// + /// + /// + /// private Dictionary ReadTimeQulity(MarshalMemoryBlock source, int sourceAddr, int timeTick, out DateTime startTime) { source.Position = sourceAddr; @@ -164,11 +171,6 @@ namespace Cdy.Tag { timeQulities.Add(startTime.AddMilliseconds(source.ReadUShort() * timeTick), i); } - - while (source.Position < source.Length) - { - timeQulities.Add(startTime.AddTicks(source.ReadUShort() * timeTick), source.ReadByte()); - } return timeQulities; } @@ -189,14 +191,17 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值1个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 3, qs.Count); + //值地址 var valaddr = qs.Count * 2; int i = 0; int rcount = 0; foreach(var vv in qs) { + //如果时间戳大于100说明,是其他类型的值,故排除掉 if(qq[vv.Value] <100) { if (vv.Key < startTime || vv.Key > endTime) @@ -227,6 +232,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值1个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 3, qs.Count); var valaddr = qs.Count * 2; @@ -266,6 +272,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值2个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 4, qs.Count); var valaddr = qs.Count * 2; @@ -304,6 +311,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值2个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 4, qs.Count); var valaddr = qs.Count * 2; @@ -342,6 +350,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值4个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 6, qs.Count); var valaddr = qs.Count * 2; @@ -356,7 +365,7 @@ namespace Cdy.Tag { continue; } - var bval = source.ReadUShort(valaddr + i * 4); + var bval = source.ReadInt(valaddr + i * 4); result.Add(bval, vv.Key, qq[vv.Value]); rcount++; } @@ -380,6 +389,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值4个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 6, qs.Count); var valaddr = qs.Count * 2; @@ -394,7 +404,7 @@ namespace Cdy.Tag { continue; } - var bval = source.ReadUShort(valaddr + i * 4); + var bval = source.ReadUInt(valaddr + i * 4); result.Add(bval, vv.Key, qq[vv.Value]); rcount++; } @@ -419,6 +429,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值8个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 10, qs.Count); var valaddr = qs.Count * 2; @@ -433,7 +444,7 @@ namespace Cdy.Tag { continue; } - var bval = source.ReadUShort(valaddr + i * 8); + var bval = source.ReadLong(valaddr + i * 8); result.Add(bval, vv.Key, qq[vv.Value]); rcount++; } @@ -457,6 +468,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值8个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 10, qs.Count); var valaddr = qs.Count * 2; @@ -471,7 +483,7 @@ namespace Cdy.Tag { continue; } - var bval = source.ReadUShort(valaddr + i * 8); + var bval = source.ReadULong(valaddr + i * 8); result.Add(bval, vv.Key, qq[vv.Value]); rcount++; } @@ -495,6 +507,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值4个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 6, qs.Count); var valaddr = qs.Count * 2; @@ -509,7 +522,7 @@ namespace Cdy.Tag { continue; } - var bval = source.ReadUShort(valaddr + i * 4); + var bval = source.ReadFloat(valaddr + i * 4); result.Add(bval, vv.Key, qq[vv.Value]); rcount++; } @@ -533,6 +546,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值8个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 10, qs.Count); var valaddr = qs.Count * 2; @@ -547,7 +561,7 @@ namespace Cdy.Tag { continue; } - var bval = source.ReadUShort(valaddr + i * 8); + var bval = source.ReadDouble(valaddr + i * 8); result.Add(bval, vv.Key, qq[vv.Value]); rcount++; } @@ -571,6 +585,7 @@ namespace Cdy.Tag DateTime time; var qs = ReadTimeQulity(source, sourceAddr, timeTick, out time); + //读取质量戳,时间戳2个字节,值8个字节,质量戳1个字节 var qq = source.ReadBytes(qs.Count * 10, qs.Count); var valaddr = qs.Count * 2; @@ -585,7 +600,7 @@ namespace Cdy.Tag { continue; } - var bval = source.ReadUShort(valaddr + i * 8); + var bval = source.ReadDateTime(valaddr + i * 8); result.Add(bval, vv.Key, qq[vv.Value]); rcount++; } diff --git a/DataRunner/His/HisEnginer.cs b/DataRunner/His/HisEnginer.cs index 2ed614c..b182c52 100644 --- a/DataRunner/His/HisEnginer.cs +++ b/DataRunner/His/HisEnginer.cs @@ -287,6 +287,7 @@ namespace Cdy.Tag //用于解码时在头尾分别记录前一个区域的值和后一个区域的值 count += 2; + //数据区偏移,时间戳占2个字节 dataOffset = regionHeadSize + count * 2; switch (tagType) { @@ -330,6 +331,7 @@ namespace Cdy.Tag count = CachMemoryTime * 1000 / MemoryTimeTick; } + //数据区偏移,时间戳占2个字节,质量戳占1个字节 dataOffset = headSize + count * 2; switch (tagType) { diff --git a/DataRunner/His/HisQuery/QuerySerivce.cs b/DataRunner/His/HisQuery/QuerySerivce.cs index 96d9834..69bf98a 100644 --- a/DataRunner/His/HisQuery/QuerySerivce.cs +++ b/DataRunner/His/HisQuery/QuerySerivce.cs @@ -3155,7 +3155,7 @@ namespace Cdy.Tag { int preid = ltmp[0]; dtmp.Add(preid,0); - for (int i = 0; i < ltmp.Count; i++) + for (int i = 1; i < ltmp.Count; i++) { var id = ltmp[i] + preid; dtmp.Add(id, i); diff --git a/DataRunner/His/Tag/HisRunTag.cs b/DataRunner/His/Tag/HisRunTag.cs index a6fb936..2680103 100644 --- a/DataRunner/His/Tag/HisRunTag.cs +++ b/DataRunner/His/Tag/HisRunTag.cs @@ -104,39 +104,10 @@ namespace Cdy.Tag /// public virtual byte SizeOfValue { get; } - ///// - ///// - ///// - //public static int HeadSize - //{ - // get - // { - // return 4; - // } - //} - - ///// - ///// - ///// - //public byte[] HeadDatas - //{ - // get - // { - // return headBytes; - // } - //} - - #endregion ...Properties... #region ... Methods ... - //public void Init() - //{ - // var hbyts = new List(4); - // hbyts.AddRange(BitConverter.GetBytes(this.HisQulityStartAddr - this.TimerValueStartAddr)); - // headBytes = hbyts.ToArray(); - //} /// /// @@ -177,8 +148,8 @@ namespace Cdy.Tag Count = vcount; //数据内容: 时间戳(time1+time2+...) +数值区(value1+value2+...)+质量戳区(q1+q2+....) - //实时数据内存结构为:实时值+时间戳+质量戳 - HisAddr.WriteIntDirect(TimerValueStartAddr + vcount * 2, tim + TimerOffset); + //实时数据内存结构为:实时值+时间戳+质量戳,时间戳2个字节,质量戳1个字节 + HisAddr.WriteUShort(TimerValueStartAddr + vcount * 2, (ushort)(tim + TimerOffset)); //写入数值 //HisAddr.WriteBytesDirect(HisValueStartAddr + vcount * SizeOfValue, RealMemoryAddr, RealValueAddr, SizeOfValue); diff --git a/Mars/.vs/Mars/v16/.suo b/Mars/.vs/Mars/v16/.suo index fe7cf09846c815decbcfa1340d19b8f20b41ee8d..8d6420be30c464c781a5187f57c92e1bd96a38b2 100644 GIT binary patch delta 9399 zcmdU!3w%vi_Q&tqXP=XYB(4a8NaBi!$PfgnM_loaSExpcQLj{}N#hY8LgNb6j!BE0 z&RyE7YO05-QKWN^cC@`wqmNO=sH(xJ>1e0*S5g!u`Tuq#9iyFTXFC0VKL4H1H~Y2D zK6|gd*4pQs>p36gIUltu`3~WzO-_g79Ezc!s=B&bwQAs309}qx!Qa3p@Eh=+Nkf}& z_bj4PF*9splDqip`bVfgIUH`&EEI(_wEU82MJZoEv>1#6V*y64o`<|aZCTZu)RreB z?+VPJGP(Z^bhuEN1^R$&Omro32`+#7I)ieZf)dP%z$WthloOGN zp>I`=8pfQdC$&|DCo$gl>E^FyMNmwmF&IW&p_0;#%7>Vjf*x9|46dc&aJWD#5C>X= zc+dtUfVLnJv;#@tXP`ak0FpsR&LA7VHXX9;5IS!&1=GCMm5SdUcyc^d&Mkl zRHzTZ>JrSWjoWgZK~d#tjeXyeF1$^e7wn<7=7xQcZnm3BHCMSS_9P_;n7P{0;n-S< z@_FPPk^dQa5OP2ASmb8H(9F9Ytt#(;dNR;K=i0u9 zYx`8cO1*G(6Y7Wm&4UKi%3MTnYDlpro$R5HLt6oQJFNDE&7kSwduKMr?yA5X=VowKwQ(cFY*lVk8#-B3cT;RuBtr-nhDYnE6~rE1GYMo}J|jg|?J90mH;Ua=2tZtyY~588lJU_ICkQh*xy zF36v)Evx!8EU%ThZAggzGxUr$D~2>Q<6s=Pb4Z&r-0k0k) z6U@0WBh0?_JL*@^@?!bbg#n`U!#IxbP0h;FhM%VLSobNShs}!33)ug>?krz1YMy4T z5JIXAGi6r3YzcEJpP%)x<{d?G<#FRr)Hi8thnoKKl(A>Yjx7{?vtZX^8eD#9S3TlGALyy&sXO1&eA&WD%dQ*W-b}J2MUZJyUQB~-u&9l#v^YCl2KMp zvK`bp$tx(UOWUKbKFZ6$>e{wdnB5MP*8+7?&IfOTCEz%S0I!0R;Avok_CRgYPAJ4t z=Vj5Dqw=!<0g)igY;b>*#XV6v43>gVKwC_q&imTq3JqLF`|rUI@xFH<7l3P&_x%xk z3Dc5t@7qU~o1C}1S?S5goSQIZ zr9qXRN4b2%$?;^3roht5(bONt@~hRJl+Xd#n}J{u7;HZCUsfIC%x#Hb8K0%>Y=ngR9!mW$`BQIxEe?*wwRQJ;iiB7_E7?rmpGqa)JOK}P*{(7= zN!BS6OgW-8Z~lW3;k=%9;>!)2k4TJxX_FQrB*yR4%WW0~Lyz?oi(jCc~IwcsgGC&i1rw6?|!Ig06H z>n#$#HS`k6imbjb_*e>>)x*Y~0vz48x^W|QxW--q&+>rbsNd+z9SZ=;OM9PBwSTicq?fp=l=~8_Eh4InYqG4xn`e&+g-d2UF`L_r^aoJeWjJFEmD^Yn}ngkuxmE*{C4bAEmk0xatbxEB-yKtF07uEJCGirx&_ggMi zr=F7kqk0ZnoKV}-2YFYZ&NS8A4!PR!HfU3$rq#-ILEaOz2I>e?cX!wJ4Xn)vAs-Af zz|h(@b(9SUBY+ATBUN3Ukawb>UKP}9LKeznfHLR1k&g#zGAjKXW#t+7AfE`-JHce2 z-Up^4&jI&>i>METOH4=kJ}?Z-B;FbzMtKwH;_XL?UUQU~S9jwu8iXKp`%z)zsMsxh z!^K>jZ{Kk|)QiRaZXOSaR+B`xdQ%+th=`}D;gZ_C!5=D1}p`;Bzb3kEU< zJMHc-{3^J!fB~?3wD7ZMtSY^Zc7$M>VOGq~;2~L}fIUA)$9W;var8vtqItaJI%RTI zD8>_@q5B19+*0C?S7_kYGj_;>a<%=5aWnF zlOX1qEZnyp1~Wu;JrCBS9(0g+brmh(A`ONfm@87*KM~V(=fYZ-aYZ=wz8T_XiWBe{ zFLnD-M~00fV~waiDjugn-pRtl+b$`e!#v5mh$4UB!C|;>PQGe^SWcPtgN0%tMJz#E zG58lzn|xCd9@vi{VZDTy`QMA$_Ki14Q^D9^_jD}FlMnR|&lSsf>vR#$-Uq}CDyh*Z zrJGCI#__HeMzr1c0KG~ao+BbSy4VQkcZ!V!9-c2caoHFV&G}zw2Cr%$qHI5gBi|u% z>u$Al*!xcz-H+0BvK9#h@ik%>tbYJ*sBY=t-nrrq>p0O*8~fRPfjs|KVE+%p`Js)7 z;&7>dFLeLqIEHbMc+@h5bC&Yy_rbl_c)|98)3 z|0K+*&hPwUBisR#__o2a|2+uaZixqk8v*V+4Fk*OkxfOk9eqTcChMdKWB)uYo?|~3 zPP^+l@s5r*VOEc4VsdDRKJ8 z@Peo_;$zKPt4XW97HnO{P(wArWuJ&R-qJ~ibMjXr&`!G|c9Yc;0>i;|2yI4Qh5RK= zZqOu`P1CyawqIx=cKS~3HI38%B)anfLyNYvrM8)P^k*W8lRwbXc>P>0!uHJ5JY*S| zXCZDD?$omEtUx6fzEpGZwqh;JPWEdDFis$(BZ9TF#HF8z6rT7thPbvybK1pgv?8)X zG{f49VU}Y$SUT^{)spO_x3t4#C16^0i~WpPz6Ygk-LD1O$@{efgcY~9_G8sYFv4NY zX@yB)9Y<&w^^r*9%+t_U-dU|Q$m%LF!2sM!wjK0+QN>m0fx(Oh`}>WIFkVHcapaH|MSw+*yR8W>Fax=T1v zW&9&i;!~!vQJ#*?CfylJ|Wvgfr(GVSKkwv|-Oc>G9qv-Syk5Nc8u_BW%%8o;p`u z&C6`D$O@DgbAz;6T~NJ3+dwQFsV-qp;C^C#LP5B;Cqw zpH24;#$6Y^pu5a=gF~$-Y51}*#755~Nw#N##3}5aBK)FtbaWe@rz_n9g23^-Z( zd3TA7;Is2(7?;hI>wLMg4{^nO)jM5!%&wn0**Q}tdlyJI?|)P_SEAAU@&fq~6`B?2 zvw5OVcXHYhJ)D1cpX_hNL($N`l`I9_TO;7yrw8(+`Env3TCYd&U4`;Kb}x{9c+?Ae zGrR=`+kY*T&B^P*9op>FoAQTCxSYJWHXN79e)D@fmGe7xj7im_w1$Y+Q%%Vb>hyqX8s9E^Xz z;}`h!r?zhn{t6s&=kOIMj#DYv+SKU#OJL0_IMdHa>Uy9Cpu; zc!hgW;vn$Mkd3*bQYQXbJO5F({R+JI-?wecFJ%Z+@PA{))>|_0TXy@yOlGWg1nxM= zlr8=vTlopCfMEq5-)Xr`hL0Z&>lieB&ZvSsl-f_3(~)N_)LU`~!n?&I^Yy-s)oa|% z6zgA$LIUXbG9O%}=kfVOy#fDnx!%S4REl~nf^U9wmX6!Hd(d+=@}ae+IJ+PZC7x9& z+fi9fkERUtLag42yIhj5@Qf-MMz;?lbw|J3r0a)b>izSkP0!1jjk&k4nS0oGv}tJL zrx)tO8mJ$4ZYGysy@9s2_pQ=jq=tX3YeudoM>KSkCx9A#O$;S;)gGu|%oF?X8^Pu~O*D_C#rJtMc- z+m6ai`fr$m%NmaZv-KtU&i9zZbbL4JYImKg?<79_z8=q+FX&0!V4F+~zy}9xaS3lP z*ZXo*Mf^ zar2$V;U@pe`hvKup;2N7AJylQZ-Ra<;D_(>@*uSjjrfpHpKYK2P=Ay*7QKq6ztSW^ z{ZG16@TxI-V_r)}B>(w&8D(cIGg4aesA+n*y{bY#M;z$KbDgt|k!bIXG4^U3i{8)$ zr%zD*t&DT^cy=oz&My18F(KSKj-K0xyR4^ZJSUVQ%~fZD?e!gulRD2nq^H@tuIjt- zf|R4Tx3~PxIHdE%vAUOc3VpntU!{j>T)e=D;FA#)Vz29CoYFb`Yy5vqqRTzzD>>*2M6d Z8%D10u(5_<9}(Pfl3wszXTbSx{|kwB!Yu#* delta 18292 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 diff --git a/Mars/.vs/Mars/v16/Server/sqlite3/storage.ide b/Mars/.vs/Mars/v16/Server/sqlite3/storage.ide index b864161bee05ed6a1b9edae09c2a3abc573807b4..f63cb086ef2e4b8d70001f0d56afdef5504b2800 100644 GIT binary patch delta 39062 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 WgO%6&2c?AkDOndPKanyh>Hh%1i)uFj -- GitLab