Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
Qisda-SO1037-AGVDispatch
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5351dd2b
由
张东亮
编写于
2023-03-09 20:29:48 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
上报失败重发-一楼成品问题优化
1 个父辈
809db973
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
50 行增加
和
59 行删除
AGVDispatch/Program.cs
Common/util/HttpHelper.cs
DeviceLibrary/bean/job/F1LiftC1ToLiftD2Job.cs
DeviceLibrary/bean/job/F1LiftD2ToLiftC1Job.cs
DeviceLibrary/bean/job/LiftToLinesJob.cs
DeviceLibrary/bean/job/LineOneToManyJob.cs
DeviceLibrary/bean/job/LineToLineJob.cs
DeviceLibrary/bean/job/SteelLiftToLinesJob.cs
DeviceLibrary/bean/job/SteelLiftToStorageJob.cs
DeviceLibrary/bean/job/SteelLineToLiftJob.cs
DeviceLibrary/bean/jobType/LiftToLinesJobType.cs
DeviceLibrary/manager/AGVManager.cs
DeviceLibrary/manager/HttpManager.cs
DeviceLibrary/manager/UploadManager.cs
AGVDispatch/Program.cs
查看文件 @
5351dd2
using
log4net.Config
;
using
log4net.Util.TypeConverters
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Linq
;
using
System.Text
;
using
Common
;
using
System.Windows.Forms
;
using
Common
;
using
DeviceLibrary
;
using
DeviceLibrary.manager
;
using
log4net.Config
;
using
System
;
using
System.Diagnostics
;
using
System.IO
;
using
System.Windows.Forms
;
using
static
System
.
Net
.
Mime
.
MediaTypeNames
;
using
Application
=
System
.
Windows
.
Forms
.
Application
;
namespace
AGVControl
{
...
...
Common/util/HttpHelper.cs
查看文件 @
5351dd2
using
System
;
using
System.IO
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Web
;
using
System.Collections
;
using
System.Net
;
using
System.Net.Security
;
using
System.Security
;
using
System.Security.Cryptography
;
using
System.Security.Cryptography.X509Certificates
;
using
System.Reflection
;
using
System.Net.NetworkInformation
;
using
System.Text
;
namespace
Common
{
...
...
@@ -193,7 +184,7 @@ namespace Common
{
try
{
var
wc
=
new
WebClient
{
Encoding
=
encoding
};
var
wc
=
new
MyWebClient
(
10000
)
{
Encoding
=
encoding
};
var
readStream
=
wc
.
OpenRead
(
url
);
using
(
var
sr
=
new
StreamReader
(
readStream
,
encoding
))
{
...
...
DeviceLibrary/bean/job/F1LiftC1ToLiftD2Job.cs
查看文件 @
5351dd2
...
...
@@ -408,7 +408,7 @@ namespace DeviceLibrary.bean.job
JobRunStep
.
Msg
=
runInfo
;
ToTakeShelfOff
(
agv
,
$
"{JobParam.LiftStatus.destinationPoint}"
);
}
else
if
(
JobRunStep
.
IsTimeOut
(
0.5
,
out
double
val
))
else
if
(
JobRunStep
.
IsTimeOut
(
0.5
,
out
_
))
{
//AGV离开
LiftContext
.
AGVLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
,
false
);
...
...
@@ -643,6 +643,8 @@ namespace DeviceLibrary.bean.job
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
返回电梯
,
out
string
msg
);
}
//设置电梯占用
LiftContext
.
SetLiftNodeOccupied
(
agv
,
SettingString
.
LIFT_C1
);
d2ToLiftC1Job
.
AllocateTask
(
agv
,
$
"{SettingString.LIFT_C1}"
);
JobRunStep
.
EndJob
();
return
d2ToLiftC1Job
;
...
...
DeviceLibrary/bean/job/F1LiftD2ToLiftC1Job.cs
查看文件 @
5351dd2
...
...
@@ -462,7 +462,7 @@ namespace DeviceLibrary.bean.job
ToTmp2PutOn
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
//AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.Temp2}_{SettingString.PutShelfOn}");
}
else
if
(
JobRunStep
.
IsTimeOut
(
0.5
,
out
double
val
))
else
if
(
JobRunStep
.
IsTimeOut
(
0.5
,
out
_
))
{
//AGV离开
lift
.
LiftContext
.
AGVLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
,
true
);
...
...
@@ -511,6 +511,8 @@ namespace DeviceLibrary.bean.job
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
送料
,
out
string
msg
);
}
//设置电梯占用
LiftContext
.
SetLiftNodeOccupied
(
agv
,
SettingString
.
LIFT_D2
);
c1ToLiftD2Job
.
AllocateTask
(
agv
,
$
"{SettingString.LIFT_D2}"
);
JobRunStep
.
EndJob
();
return
c1ToLiftD2Job
;
...
...
DeviceLibrary/bean/job/LiftToLinesJob.cs
查看文件 @
5351dd2
...
...
@@ -231,7 +231,7 @@ namespace DeviceLibrary
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval
}分"
)
);
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval
.ToString("
f2
")}分"
),
true
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_LiftToLine_10_CheckNextLine
))
...
...
DeviceLibrary/bean/job/LineOneToManyJob.cs
查看文件 @
5351dd2
...
...
@@ -117,7 +117,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
agv
.
Place
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
$
"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval
}分"
)
);
$
"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval
.ToString("
f2
")}分"
),
true
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_Line_OneToMany_06_CheckNextLine
))
...
...
DeviceLibrary/bean/job/LineToLineJob.cs
查看文件 @
5351dd2
...
...
@@ -111,7 +111,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
agv
.
Place
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
$
"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval
}分"
)
);
$
"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval
.ToString("
f2
")}分"
),
true
);
}
}
}
...
...
DeviceLibrary/bean/job/SteelLiftToLinesJob.cs
查看文件 @
5351dd2
...
...
@@ -176,7 +176,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval
}分"
)
);
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval
.ToString("
f2
")}分"
),
true
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_10_CheckNextLine
))
...
...
DeviceLibrary/bean/job/SteelLiftToStorageJob.cs
查看文件 @
5351dd2
...
...
@@ -170,7 +170,7 @@ namespace DeviceLibrary.bean.job
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval
}分"
)
);
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval
.ToString("
f2
")}分"
),
true
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_10_CheckNextLine
))
...
...
@@ -454,7 +454,7 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"{JobName}结束:{JobParam.SrcNode.AliceName}已关门"
;
JobRunStep
.
Msg
=
runInfo
;
}
else
if
(
JobRunStep
.
IsTimeOut
(
0.5
,
out
double
time
))
else
if
(
JobRunStep
.
IsTimeOut
(
0.5
,
out
_
))
{
lift
.
LiftContext
.
AGVLeave
(
JobParam
.
SrcNode
.
Name
,
agv
);
System
.
Threading
.
Thread
.
Sleep
(
1000
);
...
...
DeviceLibrary/bean/job/SteelLineToLiftJob.cs
查看文件 @
5351dd2
...
...
@@ -115,7 +115,7 @@ namespace DeviceLibrary
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
agv
.
Place
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
$
"等待{JobParam.SrcNode.Name}确认超时{timeoutval
}分"
)
);
$
"等待{JobParam.SrcNode.Name}确认超时{timeoutval
.ToString("
f2
")}分"
),
true
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_WaitConfirm
))
...
...
DeviceLibrary/bean/jobType/LiftToLinesJobType.cs
查看文件 @
5351dd2
...
...
@@ -70,7 +70,7 @@ namespace DeviceLibrary
}
LiftContext
.
SetLiftNodeOccupied
(
agv
,
liftname
);
MissionManager
.
SetMissionOccupied
(
missionInfo
,
agv
);
MissionManager
.
Log
.
Info
(
$
"执行任务[{agv.Name}][
目的地
] {JsonHelper.SerializeObject(missionInfo)}"
);
MissionManager
.
Log
.
Info
(
$
"执行任务[{agv.Name}][
LiftToLinesJobType
] {JsonHelper.SerializeObject(missionInfo)}"
);
return
new
LiftToLinesJob
(
jobParam
);
}
}
...
...
DeviceLibrary/manager/AGVManager.cs
查看文件 @
5351dd2
...
...
@@ -209,6 +209,8 @@ namespace DeviceLibrary
if
(
agv
.
CurJob
!=
null
&&
(
agv
.
CurJob
is
StandyJob
||
agv
.
CurJob
is
ChargeJob
))
{
agv
.
CurJob
=
null
;
agv
.
JobContext
=
new
JobContext
();
continue
;
}
LogUtil
.
info
(
$
"读取并使用{agv.Name}上下文信息:{JsonHelper.SerializeObject(info)}"
);
}
...
...
DeviceLibrary/manager/HttpManager.cs
查看文件 @
5351dd2
...
...
@@ -478,16 +478,17 @@ namespace DeviceLibrary
/// </summary>
/// <param name="send"></param>
/// <returns></returns>
public
static
void
UpdateAGVtranstask
(
string
txt
)
public
static
void
UpdateAGVtranstask
(
string
txt
,
bool
isError
=
false
)
{
try
Task
.
Factory
.
StartNew
(()
=>
{
Task
.
Factory
.
StartNew
(()
=>
try
{
Dictionary
<
string
,
string
>
param
=
new
Dictionary
<
string
,
string
>();
param
.
Add
(
"info"
,
txt
);
string
addr
=
GetItsAddr
(
"/UpdateAGVtranstask"
,
param
);
while
(
true
)
while
(
!
isError
)
{
string
resultStr
=
HttpHelper
.
Get
(
addr
);
itsData
data
=
JsonHelper
.
DeserializeJsonToObject
<
itsData
>(
resultStr
);
...
...
@@ -501,16 +502,16 @@ namespace DeviceLibrary
log
.
Info
(
$
"上报任务执行信息成功:[{txt}][{resultStr}]"
);
break
;
}
T
hread
.
Sleep
(
1000
);
T
ask
.
Delay
(
1000
);
}
});
}
catch
(
Exception
e
)
{
log
.
Error
(
"UpdateAGVtranstask"
,
e
);
}
catch
(
Exception
e
)
{
log
.
Error
(
"UpdateAGVtranstask"
,
e
);
}
}
);
}
#
endregion
}
...
...
DeviceLibrary/manager/UploadManager.cs
查看文件 @
5351dd2
...
...
@@ -41,14 +41,14 @@ namespace DeviceLibrary.manager
agvState
.
state
=
"故障中"
;
if
(
item
.
Errors
!=
null
&&
item
.
Errors
.
Count
>
0
)
{
string
tmp
=
string
.
Join
(
";"
,
item
.
Errors
);
if
(!
tmp
.
Equals
(
errstring
))
string
tmp
=
string
.
Join
(
";"
,
item
.
Errors
);
if
(!
tmp
.
Equals
(
errstring
))
{
Common
.
LogUtil
.
error
(
tmp
);
errstring
=
tmp
;
}
}
// agvState.remark = string.Join(";",item.Errors);
// agvState.remark = string.Join(";",item.Errors);
}
else
if
(
item
.
Auto
)
{
...
...
@@ -93,22 +93,17 @@ namespace DeviceLibrary.manager
/// 运输状态上报
/// </summary>
/// <param name="transportStatus"></param>
public
static
void
UploadTransportStatus
(
service
.
model
.
TransportStatus
transportStatus
)
public
static
void
UploadTransportStatus
(
service
.
model
.
TransportStatus
transportStatus
,
bool
iserror
=
false
)
{
Task
.
Factory
.
StartNew
(()
=>
try
{
try
{
string
txt
=
Common
.
JsonHelper
.
SerializeObject
(
transportStatus
);
//Common.LogUtil.info($"运输状态上报{txt}");
HttpManager
.
UpdateAGVtranstask
(
txt
);
}
catch
(
Exception
ex
)
{
Common
.
LogUtil
.
error
(
$
"UploadTransportStatus:{Common.JsonHelper.SerializeObject(transportStatus)}"
,
ex
);
}
});
string
txt
=
Common
.
JsonHelper
.
SerializeObject
(
transportStatus
);
HttpManager
.
UpdateAGVtranstask
(
txt
,
iserror
);
}
catch
(
Exception
ex
)
{
Common
.
LogUtil
.
error
(
$
"UploadTransportStatus:{Common.JsonHelper.SerializeObject(transportStatus)}"
,
ex
);
}
}
#
endregion
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论