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
35da02e8
Commit
35da02e8
authored
Nov 12, 2021
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化 AD盒参数保存在电脑,每次connect成功,写参数到设备
parent
3cb0dbf0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
144 additions
and
42 deletions
+144
-42
FlyAD7.cs
Project.FLY.FlyADBase/FlyADBase/FlyAD7.cs
+144
-42
No files found.
Project.FLY.FlyADBase/FlyADBase/FlyAD7.cs
View file @
35da02e8
...
...
@@ -10,6 +10,7 @@ using System.IO;
using
Misc
;
using
System.Collections.ObjectModel
;
using
System.Diagnostics
;
using
Newtonsoft.Json
;
namespace
FlyADBase
{
...
...
@@ -74,6 +75,11 @@ namespace FlyADBase
bool
isReadyGetIO
=
false
;
static
FlyAD7
()
{
propertyName_save
=
FlyAD7JsonDb
.
GetMemberNames
();
}
/// <summary>
///
/// </summary>
...
...
@@ -191,6 +197,11 @@ namespace FlyADBase
conn
.
HasCRC
=
HasCRC
;
}
/// <summary>
/// 只要connect成功,获取systick被复位,都会从AD盒设备读取参数;
/// 否则, 设置参数 到 AD盒
/// </summary>
public
bool
IsReadParamFromDev
{
get
;
set
;
}
/// <summary>
/// 已经从AD盒获取全部当前数据
/// </summary>
public
bool
IsReady
{
get
;
protected
set
;
}
...
...
@@ -355,7 +366,48 @@ namespace FlyADBase
ID
,
0xffffffff
,
SENSE_CONFIG
.
ADD
);
UpdateParam
();
if
(
IsReadParamFromDev
)
{
//读取全部参数!!!!!
//OBJ_SYS_DATA
CurrObjSys
.
GetValueEx
(
conn
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
ID
,
ID
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
GET_SYSPARAM
);
CurrObjSys
.
GetValueEx
(
conn
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
ID
,
ID
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
GET_ZERO_POS
);
//DRIVE_MAN
CurrObjSys
.
GetValueEx
(
conn
,
FLYAD7_OBJ_INTERFACE
.
DRIVE_MAN_INTERFACE
.
ID
,
ID
,
FLYAD7_OBJ_INTERFACE
.
DRIVE_MAN_INTERFACE
.
GET_DRIVEPARAM
);
}
else
{
//参数不保存在设备中, 保存在电脑。
//参数写入到设备。
NotifyPropertyChanged
(
nameof
(
MotorType
));
NotifyPropertyChanged
(
nameof
(
PosOfGrid
));
NotifyPropertyChanged
(
nameof
(
Ratio01
));
NotifyPropertyChanged
(
nameof
(
Ratio02
));
NotifyPropertyChanged
(
nameof
(
PosOffset
));
NotifyPropertyChanged
(
nameof
(
JogVelocity
));
}
CurrObjSys
.
GetValueEx
(
conn
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
ID
,
ID
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
GET_SYSINFO
);
isReadyGetState
=
false
;
isReadyGetPos1AD1
=
false
;
...
...
@@ -1050,6 +1102,7 @@ namespace FlyADBase
/// </summary>
public
void
UpdateParam
()
{
//OBJ_SYS_DATA
CurrObjSys
.
GetValueEx
(
conn
,
...
...
@@ -1063,11 +1116,7 @@ namespace FlyADBase
ID
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
GET_ZERO_POS
);
CurrObjSys
.
GetValueEx
(
conn
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
ID
,
ID
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
GET_SYSINFO
);
//DRIVE_MAN
CurrObjSys
.
GetValueEx
(
...
...
@@ -1075,6 +1124,13 @@ namespace FlyADBase
FLYAD7_OBJ_INTERFACE
.
DRIVE_MAN_INTERFACE
.
ID
,
ID
,
FLYAD7_OBJ_INTERFACE
.
DRIVE_MAN_INTERFACE
.
GET_DRIVEPARAM
);
CurrObjSys
.
GetValueEx
(
conn
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
ID
,
ID
,
FLYAD7_OBJ_INTERFACE
.
SYS_DATA_INTERFACE
.
GET_SYSINFO
);
}
#
region
运动参数
...
...
@@ -1734,9 +1790,8 @@ namespace FlyADBase
#
endregion
#
endregion
private
static
string
[]
propertyName_save
=
new
string
[]
{
"LocalEP"
,
"HasCRC"
,
"GridSmooth"
,
"IsCalSpeed"
};
private
static
string
[]
propertyName_save
;
string
defaultPath
=
"flyad.json"
;
private
string
jsonDbPath
;
public
bool
Load
()
{
...
...
@@ -1747,30 +1802,12 @@ namespace FlyADBase
this
.
jsonDbPath
=
jsonDbPath
;
this
.
PropertyChanged
-=
FlyAD7_PropertyChanged2
;
bool
ret
=
Load2
(
);
bool
ret
=
FlyAD7JsonDb
.
Load
(
jsonDbPath
,
this
);
this
.
PropertyChanged
+=
FlyAD7_PropertyChanged2
;
return
ret
;
}
bool
Load2
()
{
if
(!
File
.
Exists
(
jsonDbPath
))
return
false
;
string
json
=
File
.
ReadAllText
(
jsonDbPath
);
try
{
var
db
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
FlyAD7JsonDb
>(
json
);
this
.
LocalEP
=
Misc
.
StringConverter
.
ToIPEndPoint
(
db
.
LocalEP
);
this
.
GridSmooth
=
db
.
GridSmooth
;
this
.
HasCRC
=
db
.
HasCRC
;
this
.
IsCalSpeed
=
db
.
IsCalSpeed
;
}
catch
(
Exception
e
)
{
return
false
;
}
return
true
;
}
private
void
FlyAD7_PropertyChanged2
(
object
sender
,
PropertyChangedEventArgs
e
)
{
if
(
propertyName_save
.
Contains
(
e
.
PropertyName
))
{
...
...
@@ -1781,31 +1818,96 @@ namespace FlyADBase
}
}
void
Save
()
{
if
(
string
.
IsNullOrEmpty
(
jsonDbPath
))
return
;
FlyAD7JsonDb
db
=
new
FlyAD7JsonDb
()
{
LocalEP
=
LocalEP
.
ToString
(),
GridSmooth
=
GridSmooth
,
HasCRC
=
HasCRC
,
IsCalSpeed
=
IsCalSpeed
};
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
db
);
File
.
WriteAllText
(
jsonDbPath
,
json
);
bool
Save
()
{
return
FlyAD7JsonDb
.
Save
(
jsonDbPath
,
this
);
}
}
public
class
FlyAD7JsonDb
{
public
static
bool
Save
(
string
jsonDbPath
,
FlyAD7
src
)
{
if
(
string
.
IsNullOrEmpty
(
jsonDbPath
))
return
false
;
FlyAD7JsonDb
jsonDb
=
new
FlyAD7JsonDb
()
{
LocalEP
=
src
.
LocalEP
.
ToString
(),
GridSmooth
=
src
.
GridSmooth
,
HasCRC
=
src
.
HasCRC
,
IsCalSpeed
=
src
.
IsCalSpeed
,
MotorType
=
src
.
MotorType
,
PosOfGrid
=
src
.
PosOfGrid
,
Ratio01
=
src
.
Ratio01
,
Ratio02
=
src
.
Ratio02
,
PosOffset
=
src
.
PosOffset
,
JogVelocity
=
src
.
JogVelocity
};
try
{
File
.
WriteAllText
(
jsonDbPath
,
JsonConvert
.
SerializeObject
(
jsonDb
,
Formatting
.
Indented
));
return
true
;
}
catch
{
//异常,没有json 编码失败
return
false
;
}
}
public
static
bool
Load
(
string
jsonDbPath
,
FlyAD7
src
)
{
if
(
string
.
IsNullOrEmpty
(
jsonDbPath
))
return
false
;
try
{
if
(
File
.
Exists
(
jsonDbPath
))
{
string
json
=
File
.
ReadAllText
(
jsonDbPath
);
var
jsonDb
=
JsonConvert
.
DeserializeObject
<
FlyAD7JsonDb
>(
json
);
src
.
LocalEP
=
Misc
.
StringConverter
.
ToIPEndPoint
(
jsonDb
.
LocalEP
);
src
.
GridSmooth
=
jsonDb
.
GridSmooth
;
src
.
HasCRC
=
jsonDb
.
HasCRC
;
src
.
IsCalSpeed
=
jsonDb
.
IsCalSpeed
;
src
.
MotorType
=
jsonDb
.
MotorType
;
src
.
PosOfGrid
=
jsonDb
.
PosOfGrid
;
src
.
Ratio01
=
jsonDb
.
Ratio01
;
src
.
Ratio02
=
jsonDb
.
Ratio02
;
src
.
PosOffset
=
jsonDb
.
PosOffset
;
src
.
JogVelocity
=
jsonDb
.
JogVelocity
;
return
true
;
}
}
catch
{
//异常,没有json 解码失败
}
return
false
;
}
public
static
string
[]
GetMemberNames
()
{
var
type
=
typeof
(
FlyAD7JsonDb
);
return
type
.
GetMembers
().
Select
(
mi
=>
mi
.
Name
).
ToArray
();
}
public
string
LocalEP
=
"192.168.251.10:20006"
;
public
bool
HasCRC
=
false
;
public
int
GridSmooth
=
0
;
public
bool
IsCalSpeed
=
true
;
//非常必要的参数
public
MOTORTYPE
MotorType
=
MOTORTYPE
.
SERVO
;
public
UInt16
PosOfGrid
=
10
;
public
UInt16
Ratio01
=
4
;
public
UInt16
Ratio02
=
1
;
public
Int16
PosOffset
=
0
;
public
UInt32
JogVelocity
=
1000
;
}
...
...
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