Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Thick-Common
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
潘栩锋
Thick-Common
Commits
a731e151
Commit
a731e151
authored
Mar 26, 2021
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化 curve模块 改为json保存数据。和obj.reflect 通信方式
parent
682d3e2c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
137 additions
and
304 deletions
+137
-304
PgCurve.xaml.cs
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgCurve.xaml.cs
+1
-4
PgCurveModify.xaml.cs
...ct.FLY.Thick.Base/FLY.Thick.Base.UI/PgCurveModify.xaml.cs
+2
-2
CurveServiceClient.cs
...LY.Thick.Base/FLY.Thick.Base/Client/CurveServiceClient.cs
+6
-208
CurveCell.cs
Project.FLY.Thick.Base/FLY.Thick.Base/Common/CurveCell.cs
+1
-17
ICurveService.cs
...t.FLY.Thick.Base/FLY.Thick.Base/IService/ICurveService.cs
+6
-5
CurveCollection.cs
...t.FLY.Thick.Base/FLY.Thick.Base/Server/CurveCollection.cs
+121
-68
No files found.
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgCurve.xaml.cs
View file @
a731e151
...
...
@@ -268,10 +268,7 @@ namespace FLY.Thick.Base.UI
if
(!
WdPassword
.
Authorize
(
"Curve"
))
return
;
mCurveService
.
CorrectWay
=
this
.
CorrectWay
;
mCurveService
.
Flag
=
this
.
Flag
;
mCurveService
.
Curves
=
this
.
Curves
.
ToList
();
mCurveService
.
Apply
();
mCurveService
.
Apply
(
this
.
CorrectWay
,
this
.
Flag
,
this
.
Curves
.
ToArray
());
FLY
.
ControlLibrary
.
Window_Tip
.
Show
(
"应用成功"
,
null
,
TimeSpan
.
FromSeconds
(
2
));
...
...
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgCurveModify.xaml.cs
View file @
a731e151
...
...
@@ -322,8 +322,8 @@ namespace FLY.Thick.Base.UI
if
(!
WdPassword
.
Authorize
(
"Curve"
))
return
;
curveService
.
Curves
=
curveCore
.
Curves
;
curveService
.
Apply
();
curveService
.
Apply
(
curveService
.
CorrectWay
,
curveService
.
Flag
,
curveCore
.
Curves
.
ToArray
())
;
FLY
.
ControlLibrary
.
Window_Tip
.
Show
(
"应用成功"
,
null
,
TimeSpan
.
FromSeconds
(
2
));
...
...
Project.FLY.Thick.Base/FLY.Thick.Base/Client/CurveServiceClient.cs
View file @
a731e151
...
...
@@ -15,8 +15,9 @@ namespace FLY.Thick.Base.Client
/// <summary>
/// AD 曲线服务 客户端代理
/// </summary>
public
class
CurveServiceClient
:
FObj
Ser
viceClient
,
ICurveService
public
class
CurveServiceClient
:
FObj
Base
.
Reflect
.
Reflect_Se
viceClient
,
ICurveService
{
protected
override
Type
InterfaceType
=>
typeof
(
ICurveService
);
/// <summary>
/// AD 曲线服务 客户端代理
/// </summary>
...
...
@@ -39,7 +40,8 @@ namespace FLY.Thick.Base.Client
public
CurveType
Flag
{
get
;
set
;
}
[
PropertyChanged
.
DoNotCheckEquality
]
public
List
<
CurveCell
>
Curves
{
get
;
set
;
}
public
CurveCell
[]
Curves
{
get
;
set
;
}
public
void
SetRevised
()
{
for
(
int
i
=
0
;
i
<
Curves
.
Count
();
i
++)
...
...
@@ -47,216 +49,12 @@ namespace FLY.Thick.Base.Client
Curves
[
i
].
AD
=
Curves
[
i
].
RevisedAD
;
}
}
public
void
Apply
()
{
Curves
.
OrderBy
(
c
=>
c
.
Value
);
var
p
=
new
CURVE_OBJ_INTERFACE
.
Pack_CurveList
();
p
.
list
=
Curves
;
p
.
flag
=
Flag
;
p
.
correctway
=
CorrectWay
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
p
);
CurrObjSys
.
SetValueEx
(
mConn
,
mServerID
,
ID
,
CURVE_OBJ_INTERFACE
.
SET_CURVELIST
,
Misc
.
Converter
.
StringToBytes
(
json
)
);
}
#
region
E
int
AD2Value_E
(
int
ad
,
AD2ValueFlag
flag
)
{
int
i
;
int
thick
;
if
(
Curves
.
Count
<
1
)
return
-
1
;
if
(
ad
<
0
)
return
-
1
;
if
(
ad
==
0
)
ad
=
1
;
if
(
flag
==
AD2ValueFlag
.
NoRevised
)
{
for
(
i
=
0
;
i
<
Curves
.
Count
;
i
++)
{
if
(
ad
<
Curves
[
i
].
AD
)
continue
;
else
break
;
}
}
else
{
for
(
i
=
0
;
i
<
Curves
.
Count
;
i
++)
{
if
(
ad
<
Curves
[
i
].
RevisedAD
)
continue
;
else
break
;
}
}
if
(
i
>=
Curves
.
Count
)
i
=
Curves
.
Count
-
1
;
if
(
i
==
0
)
i
=
1
;
if
(
flag
==
AD2ValueFlag
.
NoRevised
)
{
double
adi_ad0
=
Math
.
Log
(
Curves
[
i
].
AD
)
-
Math
.
Log
(
Curves
[
i
-
1
].
AD
);
double
vi_v0
=
Curves
[
i
].
Value
-
Curves
[
i
-
1
].
Value
;
double
a
=
vi_v0
/
adi_ad0
;
double
b
=
Curves
[
i
-
1
].
Value
-
Math
.
Log
(
Curves
[
i
-
1
].
AD
)
*
a
;
thick
=
(
int
)(
Math
.
Log
(
ad
)
*
a
+
b
);
//double u;
//u = Math.Log((double)Curves[i - 1].AD / Curves[i].AD, Math.E) * 100 / (Curves[i].Value - Curves[i - 1].Value);
//thick = (int)(Math.Log((double)Curves[i - 1].AD / ad, Math.E) * 100 / u + Curves[i - 1].Value);
}
else
{
double
adi_ad0
=
Math
.
Log
(
Curves
[
i
].
RevisedAD
)
-
Math
.
Log
(
Curves
[
i
-
1
].
RevisedAD
);
double
vi_v0
=
Curves
[
i
].
Value
-
Curves
[
i
-
1
].
Value
;
double
a
=
vi_v0
/
adi_ad0
;
double
b
=
Curves
[
i
-
1
].
Value
-
Math
.
Log
(
Curves
[
i
-
1
].
RevisedAD
)
*
a
;
thick
=
(
int
)(
Math
.
Log
(
ad
)
*
a
+
b
);
//double u;
//u = Math.Log((double)Curves[i - 1].RevisedAD / Curves[i].RevisedAD, Math.E) * 100 / (Curves[i].Value - Curves[i - 1].Value);
//thick = (int)(Math.Log((double)Curves[i - 1].RevisedAD / ad, Math.E) * 100 / u + Curves[i - 1].Value);
}
//if (thick < 0)
// return 0;
return
thick
;
}
#
endregion
#
region
线性
int
AD2Value_Line
(
int
ad
,
AD2ValueFlag
flag
)
public
void
Apply
(
CurveCorrectWay
correctWay
,
CurveType
flag
,
CurveCell
[]
curves
)
{
int
i
;
int
thick
;
if
(
Curves
.
Count
<
2
)
return
-
1
;
if
(
ad
<
0
)
return
-
1
;
if
(
ad
==
0
)
ad
=
1
;
bool
isDescending
=
true
;
//降序排列
if
(
Curves
[
0
].
AD
<
Curves
[
1
].
AD
)
isDescending
=
false
;
//找 ad0<ad<adi
if
(
flag
==
AD2ValueFlag
.
NoRevised
)
{
if
(
isDescending
)
//降序排列
{
for
(
i
=
0
;
i
<
Curves
.
Count
;
i
++)
{
if
(
ad
<
Curves
[
i
].
AD
)
continue
;
else
break
;
}
}
else
{
for
(
i
=
0
;
i
<
Curves
.
Count
;
i
++)
{
if
(
ad
>
Curves
[
i
].
AD
)
continue
;
else
break
;
}
}
if
(
i
>=
Curves
.
Count
)
i
=
Curves
.
Count
-
1
;
if
(
i
==
0
)
i
=
1
;
double
adi_ad0
=
Curves
[
i
].
AD
-
Curves
[
i
-
1
].
AD
;
double
vi_v0
=
Curves
[
i
].
Value
-
Curves
[
i
-
1
].
Value
;
double
a
=
vi_v0
/
adi_ad0
;
double
b
=
Curves
[
i
-
1
].
Value
-
Curves
[
i
-
1
].
AD
*
a
;
thick
=
(
int
)(
ad
*
a
+
b
);
return
thick
;
}
else
{
if
(
isDescending
)
//降序排列
{
for
(
i
=
0
;
i
<
Curves
.
Count
;
i
++)
{
if
(
ad
<
Curves
[
i
].
RevisedAD
)
continue
;
else
break
;
}
}
else
{
for
(
i
=
0
;
i
<
Curves
.
Count
;
i
++)
{
if
(
ad
>
Curves
[
i
].
RevisedAD
)
continue
;
else
break
;
}
}
if
(
i
>=
Curves
.
Count
)
i
=
Curves
.
Count
-
1
;
if
(
i
==
0
)
i
=
1
;
double
adi_ad0
=
Curves
[
i
].
AD
-
Curves
[
i
-
1
].
RevisedAD
;
double
vi_v0
=
Curves
[
i
].
Value
-
Curves
[
i
-
1
].
Value
;
double
a
=
vi_v0
/
adi_ad0
;
double
b
=
Curves
[
i
-
1
].
Value
-
Curves
[
i
-
1
].
RevisedAD
*
a
;
thick
=
(
int
)(
ad
*
a
+
b
);
return
thick
;
}
Call
(
nameof
(
Apply
),
new
{
correctWay
,
flag
,
curves
});
}
#
endregion
public
int
AD2Value
(
int
ad
,
AD2ValueFlag
flag
)
{
switch
(
Flag
)
{
case
CurveType
.
Line
:
return
AD2Value_Line
(
ad
,
flag
);
default
:
return
AD2Value_E
(
ad
,
flag
);
}
}
#
endregion
public
override
void
ConnectNotify
(
IFConn
from
)
{
base
.
ConnectNotify
(
from
);
if
(
from
.
IsConnected
)
{
CurrObjSys
.
SenseConfigEx
(
mConn
,
mServerID
,
ID
,
0xffffffff
,
SENSE_CONFIG
.
ADD
);
CurrObjSys
.
GetValueEx
(
mConn
,
mServerID
,
ID
,
CURVE_OBJ_INTERFACE
.
GET_CURVELIST
);
}
}
public
override
void
PushGetValue
(
IFConn
from
,
uint
srcid
,
ushort
memid
,
byte
[]
infodata
)
{
PushInfo
(
from
,
srcid
,
memid
,
infodata
);
}
public
override
void
PushInfo
(
IFConn
from
,
uint
srcid
,
ushort
infoid
,
byte
[]
infodata
)
{
switch
(
infoid
)
{
case
CURVE_OBJ_INTERFACE
.
PUSH_CURVELIST
:
{
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
CURVE_OBJ_INTERFACE
.
Pack_CurveList
>(
json
);
CorrectWay
=
p
.
correctway
;
Flag
=
p
.
flag
;
Curves
=
p
.
list
;
}
break
;
}
}
}
}
Project.FLY.Thick.Base/FLY.Thick.Base/Common/CurveCell.cs
View file @
a731e151
...
...
@@ -10,12 +10,8 @@ using System.Collections.ObjectModel;
namespace
FLY.Thick.Base.Common
{
public
class
CurveCell
:
Misc
.
ISaveToXml
,
INotifyPropertyChanged
public
class
CurveCell
:
INotifyPropertyChanged
{
static
CurveCell
()
{
Misc
.
SaveToXmlHepler
.
Regist
(
typeof
(
CurveCell
));
}
public
override
string
ToString
()
{
return
"value="
+
Value
.
ToString
()
+
" ad="
+
AD
.
ToString
()
+
" revisedad="
+
RevisedAD
.
ToString
();
...
...
@@ -33,18 +29,6 @@ namespace FLY.Thick.Base.Common
/// </summary>
public
int
RevisedAD
{
get
;
set
;
}
#
region
ISaveToXml
成员
public
string
[]
GetSavePropertyNames
()
{
return
new
string
[]{
"Value"
,
"AD"
};
}
#
endregion
#
region
INotifyPropertyChanged
成员
public
event
PropertyChangedEventHandler
PropertyChanged
;
...
...
Project.FLY.Thick.Base/FLY.Thick.Base/IService/ICurveService.cs
View file @
a731e151
...
...
@@ -13,16 +13,17 @@ namespace FLY.Thick.Base.IService
/// <summary>
/// AD曲线校正方式
/// </summary>
CurveCorrectWay
CorrectWay
{
get
;
set
;
}
CurveCorrectWay
CorrectWay
{
get
;
}
/// <summary>
/// 标记,用于告诉 客户端,当前的曲线类型, 自然对数 / 直线拟合 / 二次拟合
/// </summary>
CurveType
Flag
{
get
;
set
;
}
CurveType
Flag
{
get
;
}
/// <summary>
/// 曲线
/// </summary>
List
<
CurveCell
>
Curves
{
get
;
set
;
}
void
Apply
();
int
AD2Value
(
int
ad
,
AD2ValueFlag
flag
);
CurveCell
[]
Curves
{
get
;
}
void
Apply
(
CurveCorrectWay
correctWay
,
CurveType
flag
,
CurveCell
[]
curves
);
}
}
Project.FLY.Thick.Base/FLY.Thick.Base/Server/CurveCollection.cs
View file @
a731e151
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment