Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
cdy816
Mars
提交
ea6c2aa4
Mars
项目概览
cdy816
/
Mars
通知
3
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Mars
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ea6c2aa4
编写于
9月 29, 2020
作者:
cdy816
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
日常更新
上级
8885605d
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
129 addition
and
46 deletion
+129
-46
Driver/SpiderDriver/DataService.cs
Driver/SpiderDriver/DataService.cs
+3
-3
RunTime/DBInRun/Properties/launchSettings.json
RunTime/DBInRun/Properties/launchSettings.json
+1
-1
RunTime/DBRuntime/His/LocalFileSeriser.cs
RunTime/DBRuntime/His/LocalFileSeriser.cs
+91
-27
RunTime/DBRuntime/His/SeriseEnginer2.cs
RunTime/DBRuntime/His/SeriseEnginer2.cs
+33
-14
Tools/HisDataTools/Properties/launchSettings.json
Tools/HisDataTools/Properties/launchSettings.json
+1
-1
未找到文件。
Driver/SpiderDriver/DataService.cs
浏览文件 @
ea6c2aa4
...
...
@@ -154,7 +154,7 @@ namespace SpiderDriver
/// </summary>
private
IByteBuffer
TagInfoRequest
(
string
clientId
,
IByteBuffer
memory
)
{
mInfoProcess
.
ProcessData
(
clientId
,
memory
);
mInfoProcess
?
.
ProcessData
(
clientId
,
memory
);
return
null
;
}
...
...
@@ -166,7 +166,7 @@ namespace SpiderDriver
/// <returns></returns>
private
IByteBuffer
RealDataRequest
(
string
clientId
,
IByteBuffer
memory
)
{
this
.
mRealProcess
.
ProcessData
(
clientId
,
memory
);
this
.
mRealProcess
?
.
ProcessData
(
clientId
,
memory
);
return
null
;
}
...
...
@@ -178,7 +178,7 @@ namespace SpiderDriver
/// <returns></returns>
private
IByteBuffer
HisDataRequest
(
string
clientid
,
IByteBuffer
memory
)
{
this
.
mHisProcess
.
ProcessData
(
clientid
,
memory
);
this
.
mHisProcess
?
.
ProcessData
(
clientid
,
memory
);
return
null
;
}
...
...
RunTime/DBInRun/Properties/launchSettings.json
浏览文件 @
ea6c2aa4
...
...
@@ -2,7 +2,7 @@
"profiles"
:
{
"DBInRun"
:
{
"commandName"
:
"Executable"
,
"executablePath"
:
"C:
\\
Users
\\
c
hongdaoyang
\\
source
\\
repos
\\
mars
\\
Output
\\
DBInRun.exe"
"executablePath"
:
"C:
\\
Users
\\
c
dy81
\\
source
\\
repos
\\
mars
\\
Output
\\
DBInRun.exe"
}
}
}
\ No newline at end of file
RunTime/DBRuntime/His/LocalFileSeriser.cs
浏览文件 @
ea6c2aa4
...
...
@@ -7,6 +7,7 @@
// 种道洋
//==============================================================
using
System
;
using
System.Buffers
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.IO
;
...
...
@@ -94,8 +95,15 @@ namespace Cdy.Tag
/// </summary>
public
override
DataFileSeriserbase
Flush
()
{
if
(
mStream
!=
null
)
mStream
.
Flush
();
try
{
if
(
mStream
!=
null
&&
mStream
.
CanWrite
)
mStream
.
Flush
();
}
catch
{
}
return
this
;
}
...
...
@@ -104,9 +112,16 @@ namespace Cdy.Tag
/// </summary>
public
override
DataFileSeriserbase
Close
()
{
if
(
mStream
!=
null
)
try
{
mStream
.
Close
();
if
(
mStream
!=
null
)
{
mStream
.
Close
();
}
}
catch
{
}
return
this
;
}
...
...
@@ -195,16 +210,26 @@ namespace Cdy.Tag
{
mStream
.
Position
=
mStream
.
Length
;
int
size
=
1024
*
128
;
byte
[]
bvals
=
new
byte
[
size
];
for
(
int
i
=
0
;
i
<(
len
/
size
);
i
++)
//byte[] bvals = new byte[size];
var
bvals
=
ArrayPool
<
byte
>.
Shared
.
Rent
(
size
);
try
{
mStream
.
Write
(
bvals
,
0
,
bvals
.
Length
);
for
(
int
i
=
0
;
i
<
(
len
/
size
);
i
++)
{
mStream
.
Write
(
bvals
,
0
,
bvals
.
Length
);
}
int
csize
=
len
%
size
;
if
(
csize
>
0
)
{
mStream
.
Write
(
bvals
,
0
,
csize
);
}
}
int
csize
=
len
%
size
;
if
(
csize
>
0
)
catch
{
mStream
.
Write
(
bvals
,
0
,
csize
);
}
ArrayPool
<
byte
>.
Shared
.
Return
(
bvals
);
return
this
;
}
...
...
@@ -216,9 +241,17 @@ namespace Cdy.Tag
public
override
long
ReadLong
(
long
start
)
{
mStream
.
Position
=
start
;
byte
[]
re
=
new
byte
[
8
];
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
BitConverter
.
ToInt64
(
re
,
0
);
//byte[] re = new byte[8];
var
re
=
ArrayPool
<
byte
>.
Shared
.
Rent
(
8
);
try
{
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
BitConverter
.
ToInt64
(
re
,
0
);
}
finally
{
ArrayPool
<
byte
>.
Shared
.
Return
(
re
);
}
}
/// <summary>
...
...
@@ -229,9 +262,17 @@ namespace Cdy.Tag
public
override
int
ReadInt
(
long
start
)
{
mStream
.
Position
=
start
;
byte
[]
re
=
new
byte
[
4
];
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
BitConverter
.
ToInt32
(
re
,
0
);
//byte[] re = new byte[4];
var
re
=
ArrayPool
<
byte
>.
Shared
.
Rent
(
4
);
try
{
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
BitConverter
.
ToInt32
(
re
,
0
);
}
finally
{
ArrayPool
<
byte
>.
Shared
.
Return
(
re
);
}
}
/// <summary>
...
...
@@ -242,9 +283,17 @@ namespace Cdy.Tag
public
override
float
ReadFloat
(
long
start
)
{
mStream
.
Position
=
start
;
byte
[]
re
=
new
byte
[
4
];
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
MemoryHelper
.
ReadFloat
(
re
);
// byte[] re = new byte[4];
var
re
=
ArrayPool
<
byte
>.
Shared
.
Rent
(
4
);
try
{
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
MemoryHelper
.
ReadFloat
(
re
);
}
finally
{
ArrayPool
<
byte
>.
Shared
.
Return
(
re
);
}
}
/// <summary>
...
...
@@ -255,9 +304,17 @@ namespace Cdy.Tag
public
override
double
ReadDouble
(
long
start
)
{
mStream
.
Position
=
start
;
byte
[]
re
=
new
byte
[
8
];
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
MemoryHelper
.
ReadDouble
(
re
);
// byte[] re = new byte[8];
var
re
=
ArrayPool
<
byte
>.
Shared
.
Rent
(
8
);
try
{
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
MemoryHelper
.
ReadDouble
(
re
);
}
finally
{
ArrayPool
<
byte
>.
Shared
.
Return
(
re
);
}
}
/// <summary>
...
...
@@ -277,12 +334,19 @@ namespace Cdy.Tag
public
override
DateTime
ReadDateTime
(
long
start
)
{
mStream
.
Position
=
start
;
byte
[]
re
=
new
byte
[
8
];
mStream
.
Read
(
re
,
0
,
re
.
Length
);
return
MemoryHelper
.
ReadDateTime
(
re
);
// byte[] re = new byte[8];
var
re
=
ArrayPool
<
byte
>.
Shared
.
Rent
(
8
);
try
{
mStream
.
Read
(
re
,
0
,
re
.
Length
);
// return DateTime.FromBinary(BitConverter.ToInt64(re, 0));
return
MemoryHelper
.
ReadDateTime
(
re
);
}
finally
{
ArrayPool
<
byte
>.
Shared
.
Return
(
re
);
}
// return DateTime.FromBinary(BitConverter.ToInt64(re, 0));
}
/// <summary>
...
...
RunTime/DBRuntime/His/SeriseEnginer2.cs
浏览文件 @
ea6c2aa4
...
...
@@ -527,6 +527,8 @@ namespace Cdy.Tag
mFileWriter
.
Write
(
mFileWriter
.
ReadInt
(
16
)
+
1
,
16
);
LoggerService
.
Service
.
Debug
(
"SeriseEnginer2"
,
"AppendDataRegionHeader_数据区数量更新:"
+
mFileWriter
.
ReadInt
(
16
));
mPreDataRegion
=
mCurrentDataRegion
;
mBlockPointOffset
=
mCurrentDataRegion
+
mBlockPointOffset
;
...
...
@@ -550,6 +552,8 @@ namespace Cdy.Tag
mFileWriter
.
Write
(
mFileWriter
.
ReadInt
(
16
)
+
1
,
16
);
LoggerService
.
Service
.
Debug
(
"SeriseEnginer2"
,
"NewDataRegionHeader_数据区数量更新:"
+
mFileWriter
.
ReadInt
(
16
));
ArrayPool
<
byte
>.
Shared
.
Return
(
bval
);
}
...
...
@@ -679,34 +683,46 @@ namespace Cdy.Tag
string
sfile
=
GetFileName
(
time
);
// DataFileSeriserbase reader = mFileWriter2;
DataFileSeriserbase
dfs
;
if
(
time
>
mCurrentTime
)
{
//如果需要新建的文件,影响到自动记录存储要用到的文件,
//则转到自动记录存储逻辑进行处理
CheckFile
(
time
);
dfs
=
this
.
mFileWriter
;
//mCurrentTime = time;
}
else
{
if
(
mFileWriter2
.
CreatOrOpenFile
(
sfile
)
)
if
(
sfile
==
mCurrentFileName
)
{
var
date
=
new
DateTime
(
time
.
Year
,
time
.
Month
,
time
.
Day
,
((
time
.
Hour
/
FileDuration
)
*
FileDuration
),
0
,
0
);
//新建文件
AppendFileHeader
(
time
,
this
.
DatabaseName
,
mFileWriter2
);
NewDataRegionHeader
(
date
,
mFileWriter2
);
dfs
=
this
.
mFileWriter
;
}
else
{
//如果文件格式不正确,则新建
if
(
mFileWriter2
.
Length
<
FileHeadSize
)
dfs
=
mFileWriter2
;
if
(
mFileWriter2
.
CreatOrOpenFile
(
sfile
)
)
{
var
date
=
new
DateTime
(
time
.
Year
,
time
.
Month
,
time
.
Day
,
((
time
.
Hour
/
FileDuration
)
*
FileDuration
),
0
,
0
);
//新建文件
AppendFileHeader
(
time
,
this
.
DatabaseName
,
mFileWriter2
);
NewDataRegionHeader
(
date
,
mFileWriter2
);
}
else
{
//如果文件格式不正确,则新建
if
(
mFileWriter2
.
Length
<
FileHeadSize
)
{
var
date
=
new
DateTime
(
time
.
Year
,
time
.
Month
,
time
.
Day
,
((
time
.
Hour
/
FileDuration
)
*
FileDuration
),
0
,
0
);
//新建文件
AppendFileHeader
(
time
,
this
.
DatabaseName
,
mFileWriter2
);
NewDataRegionHeader
(
date
,
mFileWriter2
);
}
}
}
}
mFileReader
=
dfs
;
long
ltmp
=
0
;
...
...
@@ -716,9 +732,7 @@ namespace Cdy.Tag
var
icount
=
mTagIdsCach
.
IndexOf
(
id
);
ltmp
=
SearchDataRegionToDatetime
(
mFileWriter2
,
time
);
mFileReader
=
mFileWriter2
;
ltmp
=
SearchDataRegionToDatetime
(
dfs
,
time
);
if
(
ltmp
<
0
)
{
...
...
@@ -728,6 +742,8 @@ namespace Cdy.Tag
ltmp
+=
mDataRegionHeadSize
+
mTagCount
*
8
*
bid
+
icount
*
8
;
LoggerService
.
Service
.
Debug
(
"SeriseEnginer2"
,
"DataRegion Pointer:"
+
ltmp
+
",mDataRegionHeadSize:"
+
mDataRegionHeadSize
+
",BlockIndex:"
+
bid
+
" tag index:"
+
icount
);
return
ltmp
;
}
...
...
@@ -792,8 +808,13 @@ namespace Cdy.Tag
var
vpointer
=
mwriter
.
GoToEnd
().
CurrentPostion
;
datablock
.
WriteToStream
(
mFileWriter
.
GetStream
(),
vpointer
,
size
);
//直接拷贝数据块
datablock
.
WriteLong
(
heads
,
vpointer
);
LoggerService
.
Service
.
Debug
(
"SeriseEnginer2"
,
"更新数据区指针:"
+
heads
+
" Values:"
+
vpointer
);
mwriter
.
Flush
();
mwriter
.
Close
();
if
(
mwriter
!=
mFileWriter
)
mwriter
.
Close
();
datablock
.
MakeMemoryNoBusy
();
MarshalMemoryBlockPool
.
Pool
.
Release
(
datablock
);
...
...
@@ -1003,8 +1024,6 @@ namespace Cdy.Tag
if
(!
CheckFile
(
time
))
return
;
//更新最后写入时间
var
vtmp
=
mFileWriter
.
ReadDateTime
(
8
);
if
(
endTime
>
vtmp
)
...
...
@@ -1012,7 +1031,7 @@ namespace Cdy.Tag
mFileWriter
.
Write
(
endTime
,
8
);
}
if
(
datasize
==
0
)
if
(
datasize
==
0
)
{
Flush
();
sw
.
Stop
();
...
...
Tools/HisDataTools/Properties/launchSettings.json
浏览文件 @
ea6c2aa4
...
...
@@ -2,7 +2,7 @@
"profiles"
:
{
"HisDataTools"
:
{
"commandName"
:
"Executable"
,
"executablePath"
:
"C:
\\
Users
\\
c
hongdaoyang
\\
source
\\
repos
\\
mars
\\
Output
\\
HisDataTools.exe"
"executablePath"
:
"C:
\\
Users
\\
c
dy81
\\
source
\\
repos
\\
mars
\\
Output
\\
HisDataTools.exe"
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录