Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hemei
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
潘栩锋
hemei
Commits
bca3ea01
Commit
bca3ea01
authored
Nov 15, 2019
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
风环添加 看到撤销记录的时间
parent
cfc5fe73
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
219 additions
and
539 deletions
+219
-539
AssemblyInfo.cs
...FLY.FeedbackRenZiJia.UI.Client/Properties/AssemblyInfo.cs
+2
-2
Page_Graph.xaml
...a/FLY.FeedbackRenZiJia.UI.Client/UIModule/Page_Graph.xaml
+16
-2
Page_Graph.xaml.cs
...LY.FeedbackRenZiJia.UI.Client/UIModule/Page_Graph.xaml.cs
+10
-67
AssemblyInfo.cs
...FLY.FeedbackRenZiJia.UI.Server/Properties/AssemblyInfo.cs
+2
-2
FeedbackHeatServiceClient.cs
.../FLY.FeedbackRenZiJia/Client/FeedbackHeatServiceClient.cs
+68
-74
IFeedbackHeat.cs
...ckRenZiJia/FLY.FeedbackRenZiJia/IService/IFeedbackHeat.cs
+19
-5
FEEDBACK_OBJ_INTERFACE.cs
....FeedbackRenZiJia/OBJ_INTERFACE/FEEDBACK_OBJ_INTERFACE.cs
+12
-323
AssemblyInfo.cs
...kRenZiJia/FLY.FeedbackRenZiJia/Properties/AssemblyInfo.cs
+2
-2
FeedbackHeat_OBJProxy.cs
...FeedbackRenZiJia/Server.OBJProxy/FeedbackHeat_OBJProxy.cs
+56
-55
FeedbackHeat.cs
...dbackRenZiJia/FLY.FeedbackRenZiJia/Server/FeedbackHeat.cs
+32
-7
No files found.
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia.UI.Client/Properties/AssemblyInfo.cs
View file @
bca3ea01
...
...
@@ -51,7 +51,7 @@ using System.Windows;
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("4.
1
.0.0")]
[assembly: AssemblyFileVersion("4.
1
.0.0")]
[assembly: AssemblyVersion("4.
2
.0.0")]
[assembly: AssemblyFileVersion("4.
2
.0.0")]
[assembly: Guid("18607932-ECBC-4292-A3DE-5864B7FB14DB")]
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia.UI.Client/UIModule/Page_Graph.xaml
View file @
bca3ea01
...
...
@@ -63,11 +63,14 @@
<Style TargetType="Image">
<Setter Property="Height" Value="50"/>
</Style>
<Style TargetType="TextBlock" >
<Style TargetType="TextBlock" x:Key="TitleStyle">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontFamily" Value="YouYuan"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource TitleStyle}"/>
</ResourceDictionary>
</Grid.Resources>
...
...
@@ -130,7 +133,18 @@
<TextBlock Text="{Binding UndoIdx}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" FontFamily="Arial" FontSize="10"/>
</Grid>
</Grid>
<TextBlock Text="撤销" />
<TextBlock >
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource TitleStyle}">
<Setter Property="Text" Value="撤销"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsInUndo}" Value="True">
<Setter Property="Text" Value="{Binding UndoTime,StringFormat={}{0:HH:mm}}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</Button>
<Button x:Name="button_clear_h" Click="button_clear_h_click" Template="{StaticResource picture_button}" >
...
...
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia.UI.Client/UIModule/Page_Graph.xaml.cs
View file @
bca3ea01
...
...
@@ -79,11 +79,6 @@ namespace FLY.FeedbackRenZiJia.UI.Client.UIModule
grid_longpress
.
DataContext
=
lpress
;
}
private
void
Sysparam_PropertyChanged
(
object
sender
,
PropertyChangedEventArgs
e
)
{
throw
new
NotImplementedException
();
}
void
InitializeChart
()
{
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartArea
chartArea1
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartArea
();
...
...
@@ -713,58 +708,25 @@ namespace FLY.FeedbackRenZiJia.UI.Client.UIModule
public
class
LongPress
:
INotifyPropertyChanged
{
private
int
progress
=
0
;
/// <summary>
/// 满9
/// </summary>
public
int
Progress
{
get
{
return
progress
;
}
set
{
if
(
progress
!=
value
)
{
progress
=
value
;
NotifyPropertyChanged
(
"Progress"
);
NotifyPropertyChanged
(
"IsOK"
);
NotifyPropertyChanged
(
"IsRunning"
);
}
}
}
public
int
Progress
{
get
;
set
;
}
public
bool
IsOK
=>
(
Progress
==
Max
);
public
bool
IsRunning
=>
(
Progress
>
0
);
private
int
max
=
360
;
/// <summary>
/// Progress 最大值
/// </summary>
public
int
Max
{
get
{
return
max
;
}
set
{
if
(
max
!=
value
)
{
max
=
value
;
NotifyPropertyChanged
(
"Max"
);
}
}
}
public
int
Max
{
get
;
set
;
}
=
360
;
private
int
intervalMs
=
2000
;
/// <summary>
/// 时间间隔
/// </summary>
public
int
IntervalMs
{
get
{
return
intervalMs
;
}
set
{
if
(
intervalMs
!=
value
)
{
intervalMs
=
value
;
NotifyPropertyChanged
(
"IntervalMs"
);
}
}
}
public
int
IntervalMs
{
get
;
set
;
}
=
2000
;
public
RoutedEventHandler
LongClick
;
...
...
@@ -829,20 +791,8 @@ namespace FLY.FeedbackRenZiJia.UI.Client.UIModule
}
}
public
bool
IsOK
{
get
{
return
(
Progress
==
Max
);
}
}
public
bool
IsRunning
{
get
{
return
(
Progress
>
0
);
}
}
public
void
Reset
()
{
Progress
=
0
;
...
...
@@ -851,13 +801,6 @@ namespace FLY.FeedbackRenZiJia.UI.Client.UIModule
#
region
INotifyPropertyChanged
成员
public
event
PropertyChangedEventHandler
PropertyChanged
;
protected
void
NotifyPropertyChanged
(
string
propertyname
)
{
if
(
PropertyChanged
!=
null
)
{
PropertyChanged
.
Invoke
(
this
,
new
PropertyChangedEventArgs
(
propertyname
));
}
}
#
endregion
}
...
...
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia.UI.Server/Properties/AssemblyInfo.cs
View file @
bca3ea01
...
...
@@ -51,7 +51,7 @@ using System.Windows;
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("4.
1
.0.0")]
[assembly: AssemblyFileVersion("4.
1
.0.0")]
[assembly: AssemblyVersion("4.
2
.0.0")]
[assembly: AssemblyFileVersion("4.
2
.0.0")]
[assembly: Guid("32104657-86E9-4380-9113-606589E6D812")]
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia/Client/FeedbackHeatServiceClient.cs
View file @
bca3ea01
...
...
@@ -123,16 +123,18 @@ namespace FLY.FeedbackRenZiJia.Client
#
region
IFeedbackHeat
函数
public
void
Apply
()
{
FObjSys
.
Current
.
SetValueEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
SET_PARAMS
,
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
()
var
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
()
{
step
=
Step
,
delay
=
Delay
,
hasCheck
=
HasCheck
,
HasCheckFilmVelocity
=
HasCheckFilmVelocity
}.
ToBytes
());
};
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
p
);
FObjSys
.
Current
.
SetValueEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
SET_PARAMS
,
Misc
.
Converter
.
StringToBytes
(
json
));
}
/// <summary>
/// 保存当前加热量
...
...
@@ -140,11 +142,10 @@ namespace FLY.FeedbackRenZiJia.Client
/// <param name="productname"></param>
public
void
SaveHeats
(
string
productname
)
{
FEEDBACK_OBJ_INTERFACE
.
Pack_String
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
();
p
.
data
=
productname
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
productname
);
FObjSys
.
Current
.
CallFunctionEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
CALL_SAVEHEATS
,
p
.
ToBytes
(
));
FEEDBACK_OBJ_INTERFACE
.
CALL_SAVEHEATS
,
Misc
.
Converter
.
StringToBytes
(
json
));
}
/// <summary>
/// 获取保存的加热量文件列表 返回类型为 List<string>
...
...
@@ -165,11 +166,11 @@ namespace FLY.FeedbackRenZiJia.Client
/// <param name="productname"></param>
public
void
DelHeatsFile
(
string
productname
)
{
FEEDBACK_OBJ_INTERFACE
.
Pack_String
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
(
);
p
.
data
=
productname
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
productname
);
FObjSys
.
Current
.
CallFunctionEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
CALL_DEL
,
p
.
ToBytes
(
));
FEEDBACK_OBJ_INTERFACE
.
CALL_DEL
,
Misc
.
Converter
.
StringToBytes
(
json
));
}
/// <summary>
...
...
@@ -178,11 +179,10 @@ namespace FLY.FeedbackRenZiJia.Client
/// <param name="filename"></param>
public
void
LoadHeatsFile
(
string
productname
)
{
FEEDBACK_OBJ_INTERFACE
.
Pack_String
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
();
p
.
data
=
productname
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
productname
);
FObjSys
.
Current
.
CallFunctionEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
CALL_LOADHEATS
,
p
.
ToBytes
(
));
FEEDBACK_OBJ_INTERFACE
.
CALL_LOADHEATS
,
Misc
.
Converter
.
StringToBytes
(
json
));
}
...
...
@@ -190,24 +190,20 @@ namespace FLY.FeedbackRenZiJia.Client
public
void
SetCheckEnable
(
bool
enable
)
{
CheckEnable
=
enable
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
enable
);
FObjSys
.
Current
.
SetValueEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
SET_CHECKENABLE
,
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
()
{
enable
=
enable
}.
ToBytes
());
Misc
.
Converter
.
StringToBytes
(
json
));
}
public
void
SetEnable
(
bool
enable
)
{
IsAuto
=
enable
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
enable
);
FObjSys
.
Current
.
SetValueEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
SET_ENABLE
,
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
()
{
enable
=
enable
}.
ToBytes
());
Misc
.
Converter
.
StringToBytes
(
json
));
}
#
endregion
...
...
@@ -243,10 +239,8 @@ namespace FLY.FeedbackRenZiJia.Client
{
case
FEEDBACK_OBJ_INTERFACE
.
GET_PARAMS
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
();
if
(!
p
.
TryParse
(
infodata
))
return
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
>(
json
);
Step
=
p
.
step
;
Delay
=
p
.
delay
;
...
...
@@ -256,9 +250,9 @@ namespace FLY.FeedbackRenZiJia.Client
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_STATE
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Status
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Status
(
);
if
(!
p
.
TryParse
(
infodata
))
return
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
FEEDBACK_OBJ_INTERFACE
.
Pack_Status
>(
json
);
IsConnectedWithPLC
=
p
.
isConnected
;
ChannelCnt
=
p
.
channelcnt
;
NBolts
=
p
.
nbolts
;
...
...
@@ -266,27 +260,22 @@ namespace FLY.FeedbackRenZiJia.Client
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_CHECKENABLE
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
();
if
(!
p
.
TryParse
(
infodata
))
return
;
CheckEnable
=
p
.
enable
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
bool
>(
json
);
CheckEnable
=
p
;
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_ENABLE
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
();
if
(!
p
.
TryParse
(
infodata
))
return
;
IsAuto
=
p
.
enable
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
bool
>(
json
);
IsAuto
=
p
;
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_ERROR
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Error
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Error
();
if
(!
p
.
TryParse
(
infodata
))
return
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
FEEDBACK_OBJ_INTERFACE
.
Pack_Error
>(
json
);
HasFan
=
p
.
hasFan
;
HasElectricity
=
p
.
hasEletric
;
...
...
@@ -299,18 +288,20 @@ namespace FLY.FeedbackRenZiJia.Client
case
FEEDBACK_OBJ_INTERFACE
.
GET_PRODUCTNAME
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_String
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
();
if
(!
p
.
TryParse
(
infodata
))
return
;
HeatsProductName
=
p
.
data
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
string
>(
json
);
HeatsProductName
=
p
;
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_UNDOIDX
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Undo
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Undo
();
if
(!
p
.
TryParse
(
infodata
))
return
;
UndoIdx
=
p
.
undo_idx
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
FEEDBACK_OBJ_INTERFACE
.
Pack_Undo
>(
json
);
UndoIdx
=
p
.
undoIdx
;
IsInUndo
=
p
.
isInUndo
;
UndoTime
=
p
.
undoTime
;
}
break
;
}
...
...
@@ -321,10 +312,10 @@ namespace FLY.FeedbackRenZiJia.Client
{
case
FEEDBACK_OBJ_INTERFACE
.
CALL_GETLIST
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_StringList
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_StringList
(
);
if
(!
p
.
TryParse
(
retdata
))
return
;
((
AsyncCBHandler
)
AsyncDelegate
)(
AsyncState
,
p
.
list
);
string
json
=
Misc
.
Converter
.
BytesToString
(
retdata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
List
<
string
>>(
json
);
((
AsyncCBHandler
)
AsyncDelegate
)(
AsyncState
,
p
);
}
break
;
}
...
...
@@ -358,26 +349,21 @@ namespace FLY.FeedbackRenZiJia.Client
#
region
撤销
private
int
undoidx
=
0
;
/// <summary>
/// undo 的序号
/// </summary>
public
int
UndoIdx
{
get
{
return
undoidx
;
}
protected
set
{
if
(
undoidx
!=
value
)
{
undoidx
=
value
;
NotifyPropertyChanged
(
"UndoIdx"
);
}
}
}
//读取 UndoIdx 的 加热
public
int
UndoIdx
{
get
;
private
set
;
}
/// <summary>
/// 在撤销中
/// </summary>
public
bool
IsInUndo
{
get
;
private
set
;
}
/// <summary>
/// 这次撤销动作的时间
/// </summary>
public
DateTime
UndoTime
{
get
;
private
set
;
}
//UndoIdx--
public
void
Undo
()
{
FObjSys
.
Current
.
CallFunctionEx
(
...
...
@@ -386,6 +372,14 @@ namespace FLY.FeedbackRenZiJia.Client
);
}
//UndoIdx++
public
void
Redo
()
{
FObjSys
.
Current
.
CallFunctionEx
(
mConn
,
mServerID
,
ID
,
FEEDBACK_OBJ_INTERFACE
.
CALL_REDO
,
null
);
}
#
endregion
...
...
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia/IService/IFeedbackHeat.cs
View file @
bca3ea01
...
...
@@ -140,14 +140,28 @@ namespace FLY.FeedbackRenZiJia.IService
/// <param name="filename"></param>
void
LoadHeatsFile
(
string
productname
);
#
region
撤销
/// <summary>
///
undo
的序号
///
撤销
的序号
/// </summary>
int
UndoIdx
{
get
;
}
//读取 UndoIdx 的 加热
int
UndoIdx
{
get
;
}
/// <summary>
/// 撤销中
/// </summary>
bool
IsInUndo
{
get
;
}
/// <summary>
/// 这次撤销动作的时间
/// </summary>
DateTime
UndoTime
{
get
;
}
//UndoIdx--
void
Undo
();
/// <summary>
/// UndoIdx++
/// </summary>
void
Redo
();
#
endregion
}
...
...
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia/OBJ_INTERFACE/FEEDBACK_OBJ_INTERFACE.cs
View file @
bca3ea01
...
...
@@ -13,71 +13,15 @@ namespace FLY.FeedbackRenZiJia.OBJ_INTERFACE
public
class
FEEDBACK_OBJ_INTERFACE
{
#
region
pack
public
class
Pack_Params
:
IPack
public
class
Pack_Params
{
public
int
step
;
public
int
delay
;
public
bool
hasCheck
;
public
bool
HasCheckFilmVelocity
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
buf
.
AddRange
(
BitConverter
.
GetBytes
(
step
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
delay
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
hasCheck
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
HasCheckFilmVelocity
));
return
buf
.
ToArray
();
}
public
bool
TryParse
(
byte
[]
value
)
{
if
(
value
.
Length
<
(
4
+
4
+
1
))
return
false
;
int
idx
=
0
;
step
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
delay
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
hasCheck
=
BitConverter
.
ToBoolean
(
value
,
idx
);
idx
+=
1
;
HasCheckFilmVelocity
=
BitConverter
.
ToBoolean
(
value
,
idx
);
idx
+=
1
;
return
true
;
}
#
endregion
}
public
class
Pack_CallSmoothRequest
:
IPack
{
public
double
thresholdHeatSigma
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
buf
.
AddRange
(
BitConverter
.
GetBytes
(
thresholdHeatSigma
));
return
buf
.
ToArray
();
}
public
bool
TryParse
(
byte
[]
value
)
{
if
(
value
.
Length
<
(
8
))
return
false
;
int
idx
=
0
;
thresholdHeatSigma
=
BitConverter
.
ToDouble
(
value
,
idx
);
idx
+=
8
;
return
true
;
}
#
endregion
}
public
class
Pack_Status
:
IPack
public
class
Pack_Status
{
public
int
channelcnt
;
public
int
nbolts
;
...
...
@@ -85,281 +29,21 @@ namespace FLY.FeedbackRenZiJia.OBJ_INTERFACE
public
bool
isConnected
;
public
DateTime
lastChangedTime
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
buf
.
AddRange
(
BitConverter
.
GetBytes
(
channelcnt
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
nbolts
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
isConnected
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
lastChangedTime
.
Ticks
));
return
buf
.
ToArray
();
}
public
bool
TryParse
(
byte
[]
value
)
{
if
(
value
.
Length
<
(
4
+
4
+
1
+
8
))
return
false
;
int
idx
=
0
;
channelcnt
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
nbolts
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
isConnected
=
BitConverter
.
ToBoolean
(
value
,
idx
);
idx
+=
1
;
lastChangedTime
=
new
DateTime
(
BitConverter
.
ToInt64
(
value
,
idx
));
idx
+=
8
;
return
true
;
}
#
endregion
}
public
class
Pack_Enable
:
IPack
{
public
bool
enable
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
buf
.
AddRange
(
BitConverter
.
GetBytes
(
enable
));
return
buf
.
ToArray
();
}
public
bool
TryParse
(
byte
[]
value
)
{
if
(
value
.
Length
<
1
)
return
false
;
int
idx
=
0
;
enable
=
BitConverter
.
ToBoolean
(
value
,
idx
);
idx
+=
1
;
return
true
;
}
#
endregion
}
public
class
Pack_Error
:
IPack
public
class
Pack_Error
{
public
bool
hasFan
;
public
bool
hasEletric
;
public
int
checkno
;
public
bool
[]
bads
=
null
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
buf
.
AddRange
(
BitConverter
.
GetBytes
(
hasFan
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
hasEletric
));
buf
.
AddRange
(
BitConverter
.
GetBytes
(
checkno
));
if
(
bads
!=
null
)
{
buf
.
AddRange
(
BitConverter
.
GetBytes
(
bads
.
Length
));
for
(
int
i
=
0
;
i
<
bads
.
Length
;
i
++)
{
buf
.
AddRange
(
BitConverter
.
GetBytes
(
bads
[
i
]));
}
}
else
{
int
len
=
0
;
buf
.
AddRange
(
BitConverter
.
GetBytes
(
len
));
}
return
buf
.
ToArray
();
}
public
bool
TryParse
(
byte
[]
value
)
public
class
Pack_Undo
{
int
cnt
=
1
*
2
+
4
*
2
;
if
(
value
.
Length
<
cnt
)
return
false
;
int
idx
=
0
;
hasFan
=
BitConverter
.
ToBoolean
(
value
,
idx
);
idx
+=
1
;
hasEletric
=
BitConverter
.
ToBoolean
(
value
,
idx
);
idx
+=
1
;
checkno
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
int
len
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
cnt
+=
len
;
if
(
value
.
Length
<
cnt
)
return
false
;
if
(
len
==
0
)
{
bads
=
null
;
}
else
{
bads
=
new
bool
[
len
];
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
bads
[
i
]
=
BitConverter
.
ToBoolean
(
value
,
idx
);
idx
++;
}
}
return
true
;
}
#
endregion
}
public
class
Pack_StringList
:
IPack
{
public
List
<
string
>
list
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
byte
[]
bs
;
buf
.
AddRange
(
BitConverter
.
GetBytes
(
list
.
Count
()));
for
(
int
i
=
0
;
i
<
list
.
Count
();
i
++)
{
bs
=
Misc
.
Converter
.
StringToBytes
(
list
[
i
]);
buf
.
AddRange
(
BitConverter
.
GetBytes
(
bs
.
Count
()));
buf
.
AddRange
(
bs
);
}
return
buf
.
ToArray
();
}
/// <summary>
/// 返回由字节数组中指定位置的9个字节转换来的数据。
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public
bool
TryParse
(
byte
[]
value
)
{
int
cnt
=
4
;
if
(
value
.
Length
<
cnt
)
return
false
;
int
idx
=
0
;
int
len
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
cnt
+=
len
*
4
;
if
(
value
.
Length
<
cnt
)
return
false
;
if
(
list
==
null
)
list
=
new
List
<
string
>();
list
.
Clear
();
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
int
l
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
cnt
+=
l
;
if
(
value
.
Length
<
cnt
)
return
false
;
string
s
=
Misc
.
Converter
.
BytesToString
(
value
,
idx
,
l
);
idx
+=
l
;
list
.
Add
(
s
);
}
return
true
;
}
#
endregion
}
public
class
Pack_String
{
public
string
data
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
if
(
data
!=
null
)
{
byte
[]
bs
=
Misc
.
Converter
.
StringToBytes
(
data
);
buf
.
AddRange
(
BitConverter
.
GetBytes
(
bs
.
Length
));
buf
.
AddRange
(
bs
);
}
else
{
buf
.
AddRange
(
BitConverter
.
GetBytes
(
0
));
}
return
buf
.
ToArray
();
}
/// <summary>
/// 返回由字节数组中指定位置的9个字节转换来的数据。
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public
bool
TryParse
(
byte
[]
value
,
int
index
,
int
count
)
{
int
cnt
=
4
;
if
(
value
.
Length
<
cnt
)
return
false
;
int
idx
=
0
;
int
len
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
cnt
+=
len
;
if
(
value
.
Length
<
cnt
)
return
false
;
if
(
len
<=
0
)
data
=
null
;
else
{
data
=
Misc
.
Converter
.
BytesToString
(
value
,
idx
,
len
);
idx
+=
len
;
}
return
true
;
}
public
bool
TryParse
(
byte
[]
value
)
{
return
TryParse
(
value
,
0
,
value
.
Length
);
}
#
endregion
}
public
class
Pack_Undo
:
IPack
{
public
int
undo_idx
;
#
region
IPack
成员
public
byte
[]
ToBytes
()
{
List
<
byte
>
buf
=
new
List
<
byte
>();
buf
.
AddRange
(
BitConverter
.
GetBytes
(
undo_idx
));
return
buf
.
ToArray
();
}
public
bool
TryParse
(
byte
[]
value
)
{
if
(
value
.
Length
<
4
)
return
false
;
int
idx
=
0
;
undo_idx
=
BitConverter
.
ToInt32
(
value
,
idx
);
idx
+=
4
;
return
true
;
}
#
endregion
public
int
undoIdx
;
public
bool
isInUndo
;
public
DateTime
undoTime
;
}
#
endregion
...
...
@@ -449,6 +133,11 @@ namespace FLY.FeedbackRenZiJia.OBJ_INTERFACE
/// </summary>
public
const
UInt16
CALL_UNDO
=
13
;
/// <summary>
/// request:null
/// reponse:null
/// </summary>
public
const
UInt16
CALL_REDO
=
14
;
#
endregion
#
region
Push
...
...
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia/Properties/AssemblyInfo.cs
View file @
bca3ea01
...
...
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// 内部版本号
// 修订号
//
[assembly: AssemblyVersion("4.
1
.0.0")]
[assembly: AssemblyFileVersion("4.
1
.0.0")]
[assembly: AssemblyVersion("4.
2
.0.0")]
[assembly: AssemblyFileVersion("4.
2
.0.0")]
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia/Server.OBJProxy/FeedbackHeat_OBJProxy.cs
View file @
bca3ea01
...
...
@@ -111,7 +111,9 @@ namespace FLY.FeedbackRenZiJia.Server.OBJProxy
this
,
FEEDBACK_OBJ_INTERFACE
.
PUSH_PRODUCTNAME
,
buf
);
}
else
if
(
e
.
PropertyName
==
"UndoIdx"
)
else
if
((
e
.
PropertyName
==
"UndoIdx"
)
||
(
e
.
PropertyName
==
"IsInUndo"
)
||
(
e
.
PropertyName
==
"UndoTime"
))
{
byte
[]
buf
;
GetValue
(
null
,
0
,
FEEDBACK_OBJ_INTERFACE
.
GET_UNDOIDX
,
out
buf
);
...
...
@@ -130,64 +132,69 @@ namespace FLY.FeedbackRenZiJia.Server.OBJProxy
{
case
FEEDBACK_OBJ_INTERFACE
.
GET_PARAMS
:
{
infodata
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
()
var
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
()
{
delay
=
data
.
Delay
,
hasCheck
=
data
.
HasCheck
,
step
=
data
.
Step
,
HasCheckFilmVelocity
=
data
.
HasCheckFilmVelocity
}.
ToBytes
();
}
break
;
};
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
p
);
infodata
=
Misc
.
Converter
.
StringToBytes
(
json
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_STATE
:
{
infodata
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Status
()
var
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Status
()
{
channelcnt
=
data
.
ChannelCnt
,
nbolts
=
data
.
NBolts
,
isConnected
=
data
.
IsConnectedWithPLC
,
lastChangedTime
=
data
.
LastChangedTime
}.
ToBytes
();
}
break
;
};
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
p
);
infodata
=
Misc
.
Converter
.
StringToBytes
(
json
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_ERROR
:
{
infodata
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Error
()
var
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Error
()
{
hasFan
=
data
.
HasFan
,
hasEletric
=
data
.
HasElectricity
,
checkno
=
data
.
CheckNo
,
bads
=
data
.
Bads
}.
ToBytes
();
};
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
p
);
infodata
=
Misc
.
Converter
.
StringToBytes
(
json
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_CHECKENABLE
:
{
infodata
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
{
enable
=
data
.
CheckEnable
}.
ToBytes
();
}
break
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
data
.
CheckEnable
);
infodata
=
Misc
.
Converter
.
StringToBytes
(
json
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_ENABLE
:
{
infodata
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
{
enable
=
data
.
IsAuto
}.
ToBytes
();
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
data
.
IsAuto
);
infodata
=
Misc
.
Converter
.
StringToBytes
(
json
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_PRODUCTNAME
:
{
infodata
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
{
data
=
data
.
HeatsProductName
}.
ToBytes
();
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
data
.
HeatsProductName
);
infodata
=
Misc
.
Converter
.
StringToBytes
(
json
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
GET_UNDOIDX
:
{
infodata
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Undo
var
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Undo
{
undo_idx
=
data
.
UndoIdx
}.
ToBytes
();
undoIdx
=
data
.
UndoIdx
,
isInUndo
=
data
.
IsInUndo
,
undoTime
=
data
.
UndoTime
};
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
p
);
infodata
=
Misc
.
Converter
.
StringToBytes
(
json
);
}
break
;
}
...
...
@@ -198,9 +205,9 @@ namespace FLY.FeedbackRenZiJia.Server.OBJProxy
{
case
FEEDBACK_OBJ_INTERFACE
.
SET_PARAMS
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
();
if
(!
p
.
TryParse
(
infodata
))
return
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
FEEDBACK_OBJ_INTERFACE
.
Pack_Params
>(
json
)
;
data
.
Step
=
p
.
step
;
data
.
Delay
=
p
.
delay
;
...
...
@@ -210,17 +217,15 @@ namespace FLY.FeedbackRenZiJia.Server.OBJProxy
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
SET_CHECKENABLE
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
();
if
(!
p
.
TryParse
(
infodata
))
return
;
data
.
CheckEnable
=
p
.
enable
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
bool
>(
json
);
data
.
CheckEnable
=
p
;
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
SET_ENABLE
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_Enable
();
if
(!
p
.
TryParse
(
infodata
))
return
;
data
.
IsAuto
=
p
.
enable
;
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
bool
>(
json
);
data
.
IsAuto
=
p
;
}
break
;
}
}
...
...
@@ -231,24 +236,21 @@ namespace FLY.FeedbackRenZiJia.Server.OBJProxy
{
case
FEEDBACK_OBJ_INTERFACE
.
CALL_SAVEHEATS
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_String
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
();
if
(!
p
.
TryParse
(
infodata
))
return
;
data
.
SaveHeats
(
p
.
data
);
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
string
>(
json
);
data
.
SaveHeats
(
p
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
CALL_LOADHEATS
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_String
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
();
if
(!
p
.
TryParse
(
infodata
))
return
;
data
.
LoadHeatsFile
(
p
.
data
);
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
string
>(
json
);
data
.
LoadHeatsFile
(
p
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
CALL_DEL
:
{
FEEDBACK_OBJ_INTERFACE
.
Pack_String
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_String
();
if
(!
p
.
TryParse
(
infodata
))
return
;
data
.
DelHeatsFile
(
p
.
data
);
string
json
=
Misc
.
Converter
.
BytesToString
(
infodata
);
var
p
=
Newtonsoft
.
Json
.
JsonConvert
.
DeserializeObject
<
string
>(
json
);
data
.
DelHeatsFile
(
p
);
}
break
;
case
FEEDBACK_OBJ_INTERFACE
.
CALL_GETLIST
:
{
...
...
@@ -256,8 +258,7 @@ namespace FLY.FeedbackRenZiJia.Server.OBJProxy
new
AsyncCBHandler
(
delegate
(
object
AsyncState
,
object
retdata
)
{
ConnContext
context
=
(
ConnContext
)
AsyncState
;
FEEDBACK_OBJ_INTERFACE
.
Pack_StringList
p
=
new
FEEDBACK_OBJ_INTERFACE
.
Pack_StringList
();
p
.
list
=
(
List
<
string
>)
retdata
;
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
retdata
);
CurrObjSys
.
PushCallFunctionEx
(
context
.
from
,
...
...
@@ -265,7 +266,7 @@ namespace FLY.FeedbackRenZiJia.Server.OBJProxy
ID
,
context
.
magic
,
FEEDBACK_OBJ_INTERFACE
.
CALL_GETLIST
,
p
.
ToBytes
(
));
Misc
.
Converter
.
StringToBytes
(
json
));
}),
new
ConnContext
(
from
,
srcid
,
magic
));
}
break
;
...
...
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia/Server/FeedbackHeat.cs
View file @
bca3ea01
...
...
@@ -215,8 +215,8 @@ namespace FLY.FeedbackRenZiJia.Server
//记录改变!!!!
mHeatChanged
.
Add
(
mHeatCell
.
Heats
);
UndoIdx
=
mHeatChanged
.
mItem
.
Count
()
-
1
;
//复位undo模块
resetUndo
();
//记录到数据库
if
(
lastLcThickHeat
!=
null
)
...
...
@@ -230,7 +230,8 @@ namespace FLY.FeedbackRenZiJia.Server
};
mHeatCell
.
AfterClearOffsetsEvent
+=
(
c
)
=>
{
UndoIdx
=
mHeatChanged
.
mItem
.
Count
()
-
1
;
//复位undo模块
resetUndo
();
};
...
...
@@ -406,7 +407,8 @@ namespace FLY.FeedbackRenZiJia.Server
mHeatBuf
.
Init
(
NBolts
,
ChannelCnt
);
mHeatCell
.
Init2
(
NBolts
,
ChannelCnt
);
UndoIdx
=
mHeatChanged
.
mItem
.
Count
()
-
1
;
//复位undo模块
resetUndo
();
mSnapShotBuf
.
Init
(
NBolts
,
ChannelCnt
);
}
...
...
@@ -824,19 +826,42 @@ namespace FLY.FeedbackRenZiJia.Server
/// <summary>
/// undo 的序号
/// </summary>
public
int
UndoIdx
{
get
;
protected
set
;
}
public
int
UndoIdx
{
get
;
private
set
;
}
/// <summary>
/// 在撤销中
/// </summary>
public
bool
IsInUndo
{
get
;
private
set
;
}
/// <summary>
/// 这次撤销动作的时间
/// </summary>
public
DateTime
UndoTime
{
get
;
private
set
;
}
//读取 UndoIdx 的 加热
public
void
Undo
()
{
int
idx
=
UndoIdx
-
1
;
updateUodo
(
UndoIdx
-
1
);
}
public
void
Redo
()
{
updateUodo
(
UndoIdx
+
1
);
}
void
updateUodo
(
int
idx
)
{
if
(
idx
<
0
)
return
;
else
if
(
idx
>=
mHeatChanged
.
mItem
.
Count
())
return
;
mHeatCell
.
ModifyPreHeats
(
mHeatChanged
.
mItem
[
idx
].
Heats
);
UndoIdx
--;
UndoTime
=
mHeatChanged
.
mItem
[
idx
].
Time
;
IsInUndo
=
idx
<=
mHeatChanged
.
mItem
.
Count
()
-
1
;
UndoIdx
=
idx
;
}
void
resetUndo
()
{
UndoIdx
=
mHeatChanged
.
mItem
.
Count
()
-
1
;
UndoTime
=
DateTime
.
MinValue
;
IsInUndo
=
false
;
}
#
endregion
...
...
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