Commit 4cabf699 张东亮

运行版

1 个父辈 0e94e3ea
产线任务名称,任务名称,任务GUID
下料区(A5),MoveA5,679f2ca1-b520-11ea-b6ad-00012998f5a0
上料区(A6),MoveA6,7e5e9dc2-b521-11ea-b6ad-00012998f5a0
4D-1线,MoveD1,73bcddb3-b513-11ea-b6ad-00012998f5a0
4D-2线,MoveD2,9bacf16b-b515-11ea-b6ad-00012998f5a0
4D-3线,MoveD3,f84313b5-b515-11ea-b6ad-00012998f5a0
4D-4线,MoveD4,5683db0e-b516-11ea-b6ad-00012998f5a0
4D-5线,MoveD5,9c04b71b-b516-11ea-b6ad-00012998f5a0
4D-6线,MoveD6,f46be62a-b516-11ea-b6ad-00012998f5a0
4D-8线,MoveD8,41dccfcf-b517-11ea-b6ad-00012998f5a0
4D-9线,MoveD9,7fc3ec2f-b517-11ea-b6ad-00012998f5a0
4D-10线,MoveD10,e7c0ad9c-b517-11ea-b6ad-00012998f5a0
4D-11线,MoveD11,2e23a510-b518-11ea-b6ad-00012998f5a0
4D-12线,MoveD12,6efb37bc-b519-11ea-b6ad-00012998f5a0
4D-14线,MoveD14,b03043fd-b519-11ea-b6ad-00012998f5a0
4D-15线,MoveD15,f3f9a668-b519-11ea-b6ad-00012998f5a0
4D-16线,MoveD16,5ec0f64a-b51a-11ea-b6ad-00012998f5a0
4D-FeedeerIn,MoveD4FeederIn,37401585-b51b-11ea-b6ad-00012998f5a0
4D-FeederOut,MoveD4FeederOut,a4846723-b51b-11ea-b6ad-00012998f5a0
4D-4C门,MoveDoorDToC,fd6e26ac-c1bf-11ea-9a66-94c691a7387d
4C-4D门,MoveDoorCToD,d67f31c8-ca7e-11ea-9a66-94c691a7387d
4C-1线,MoveC1,94a15e2c-cda7-11ea-a3e4-94c691a7387d
4C-2线,MoveC2,cece230b-cda7-11ea-a3e4-94c691a7387d
4C-3线,MoveC3,e393e846-cda7-11ea-a3e4-94c691a7387d
4C-4线,MoveC4,0b297e08-cda8-11ea-a3e4-94c691a7387d
4C-5线,MoveC5,1d3512ae-cda8-11ea-a3e4-94c691a7387d
4C-6线,MoveC6,33c8d629-cda8-11ea-a3e4-94c691a7387d
4C-7线,MoveC7,56c5a660-cda8-11ea-a3e4-94c691a7387d
4C-8线,MoveC8,6873fd7f-cda8-11ea-a3e4-94c691a7387d
4C-9线,MoveC9,8ba46b72-cda8-11ea-a3e4-94c691a7387d
4C-10线,MoveC10,c0b75c41-ca7d-11ea-9a66-94c691a7387d
4C-FeedeerIn,MoveC4FeederIn,0a657afd-ca9d-11ea-9a66-94c691a7387d
4C-FeedeerOut,MoveC4FeederOut,83b9ba6d-cdb2-11ea-a3e4-94c691a7387d
4C-14线,MoveC14,2baac336-d0d4-11ea-a3e4-94c691a7387d
4C-15线,MoveC15,41cc7a90-d0d4-11ea-a3e4-94c691a7387d
4C-AirIn,MoveDoorAirIn,2dc71db5-d0cb-11ea-a3e4-94c691a7387d
4C-AirOut,MoveDoorAirOut,9bc63eaa-d0d3-11ea-a3e4-94c691a7387d
小车进料,Enter,51233d8c-c044-11ea-9a66-94c691a7387d
小车出料,Leave,2e433130-c045-11ea-9a66-94c691a7387d
3号充电桩,AutoCharge3,b7371c5f-c045-11ea-9a66-94c691a7387d
4号充电桩,AutoCharge4,1296084c-c046-11ea-9a66-94c691a7387d
5号充电桩,AutoCharge5,40c8f44e-c046-11ea-9a66-94c691a7387d
6号充电桩,AutoCharge6,56cca0a3-c046-11ea-9a66-94c691a7387d
小车初始化,Init,adcb7a04-b525-11ea-b6ad-00012998f5a0
待机位,MoveStandby,ae6e4f12-c050-11ea-9a66-94c691a7387d
4C临时停车位1,MoveC4_STANDBY1,d5fc690b-f1a5-11ea-a03e-94c691a7387d
4C临时停车位2,MoveC4_STANDBY2,90f4399f-f1a6-11ea-a03e-94c691a7387d
临时停车位,MoveStandbyTemp,d6c32ad3-d64e-11ea-a3e4-94c691a7387d
检查料架情况,CheckShelf,f3e46a3e-d734-11ea-a3e4-94c691a7387d
\ No newline at end of file
任务名称,任务别名,任务GUID
Init,初始化,219cd91a-61da-11eb-96a9-0001297a1dca
Standby,待机位,615cef05-61f4-11eb-96a9-0001297a1dca
AutoCharge1,充电桩4,b4a9e87a-7768-11eb-8758-54b2038d1924
AutoCharge2,充电桩5,c4326dfb-7768-11eb-8758-54b2038d1924
A5,双层线入口,4c533e85-75c6-11eb-a7fe-0001297a1dca
A6,双层线出口,3a0d8f1b-75c8-11eb-a7fe-0001297a1dca
D12,S12线,d2ee5b8e-75c5-11eb-a7fe-0001297a1dca
D11,S11线,968abc82-75c5-11eb-a7fe-0001297a1dca
D10,S10线,1d40c7c7-75c5-11eb-a7fe-0001297a1dca
D9,S9线,ab97b4c1-75c4-11eb-a7fe-0001297a1dca
D8,S8线,103f9e10-75c4-11eb-a7fe-0001297a1dca
D7,S7线,d2943724-75c3-11eb-a7fe-0001297a1dca
D6,S6线,982fc7ed-75c3-11eb-a7fe-0001297a1dca
D5,S5线,5405c489-75c3-11eb-a7fe-0001297a1dca
D4,S4线,17287a21-75c3-11eb-a7fe-0001297a1dca
D3,S3线,1b074ace-75c2-11eb-a7fe-0001297a1dca
D2,S2线,1b074ace-75c2-11eb-a7fe-0001297a1dca
D1,S1线,1b074ace-75c2-11eb-a7fe-0001297a1dca
D21,备料区入口,060d5e35-75b0-11eb-8565-0001297a1dca
D22,备料区出口,fe89c587-75bf-11eb-a7fe-0001297a1dca
CheckShelf,检查负载情况,cc5f1d78-75a2-11eb-8565-0001297a1dca
Leave,出料,28a2ab7b-75ac-11eb-8565-0001297a1dca
Enter,进料,4bf5d4c5-75a4-11eb-8565-0001297a1dca
\ No newline at end of file
Fleet ID,agv,IP,Ȩ,IOID
7,MiR_R1763,10.85.199.71,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
8,MiR_R1764,10.85.199.72,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
9,MiR_R1767,10.85.199.73,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
10,MiR_R1768,10.85.199.74,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
2,MiR_R1579,10.85.199.80,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
1,MiR_R1580,10.85.199.81,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
Fleet ID,agv名称,IP,授权码,IOID
5,18号车,10.85.199.123,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,5d084001-6155-11eb-bee4-0001297a2016
6,19号车,10.85.199.124,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,5d084001-6155-11eb-bee4-0001297a2016
7,20号车,10.85.199.1138,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,5d084001-6155-11eb-bee4-0001297a2016
产线名,节点名,IP,产线别名,位置名称,位置guid
A5,A5,10.85.199.20,下料区(A5),PA5,7ed952c3-b520-11ea-b6ad-00012998f5a0
A6,A6,10.85.199.20,上料区(A6),PA6,929eb1c2-b520-11ea-b6ad-00012998f5a0
D1,D1,10.85.199.42,4D-1线,DL1,3b823fe4-b368-11ea-a1a5-00012999830e
D2,D2,10.85.199.90,4D-2线,DL2,ede15fcb-b367-11ea-a1a5-00012999830e
D3,D3,10.85.199.91,4D-3线,DL3,43855a9b-b365-11ea-a1a5-00012999830e
D4,D4,10.85.199.92,4D-4线,DL4,73c8b98c-b368-11ea-a1a5-00012999830e
D5,D5,10.85.199.93,4D-5线,DL5,5436efd7-b432-11ea-a1a5-00012999830e
D6,D6,10.85.199.94,4D-6线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
D8,D8,10.85.199.95,4D-8线,DL8,8f039d2e-b432-11ea-a1a5-00012999830e
D9,D9,10.85.199.180,4D-9线,DL9,9e0b64ab-b432-11ea-a1a5-00012999830e
D10,D10,10.85.199.181,4D-10线,DL10,aec7da80-b432-11ea-a1a5-00012999830e
D11,D11,10.85.199.182,4D-11线,DL11,c10984c9-b432-11ea-a1a5-00012999830e
D12,D12,10.85.199.183,4D-12线,DL12,d6e0b92a-b432-11ea-a1a5-00012999830e
D14,D14,10.85.199.184,4D-14线,DL14,efb04c55-b432-11ea-a1a5-00012999830e
D15,D15,10.85.199.185,4D-15线,DL15,fd6b1f95-b432-11ea-a1a5-00012999830e
D16,D16,10.85.199.96,4D-16线,line_16,ac6c413e-895e-11ea-9374-000129922ca6
FeederIn,FeederIn,10.85.199.1,4D-FeedeerIn,FI,1e546c3a-8abe-11ea-ab63-000129922ca6
FeederOut,FeederOut,10.85.199.1,4D-FeederOut,FO,431649a4-8abe-11ea-ab63-000129922ca6
C1,C1,10.85.199.50,4C-1线,G1,d402fbc2-cdac-11ea-a3e4-94c691a7387d
C2,C2,10.85.199.51,4C-2线,G2,ce0d60e9-cdac-11ea-a3e4-94c691a7387d
C3,C3,10.85.199.52,4C-3线,G3,c768170a-cdac-11ea-a3e4-94c691a7387d
C4,C4,10.85.199.53,4C-4线,G4,c2de9745-cdac-11ea-a3e4-94c691a7387d
C5,C5,10.85.199.54,4C-5线,G5,be468ef4-cdac-11ea-a3e4-94c691a7387d
C6,C6,10.85.199.55,4C-6线,G6,b9117881-cdac-11ea-a3e4-94c691a7387d
C7,C7,10.85.199.56,4C-7线,G7,b3cda9db-cdac-11ea-a3e4-94c691a7387d
C8,C8,10.85.199.57,4C-8线,G8,ae09fc56-cdac-11ea-a3e4-94c691a7387d
C9,C9,10.85.199.62,4C-9线,G9,a64bdbbb-cdac-11ea-a3e4-94c691a7387d
C10,C10,10.85.199.59,4C-10线,G10,604b1c3c-ca4e-11ea-810b-00012999830e
C14,C14,10.85.199.60,4C-14线,G14,07841fc6-d0d4-11ea-a3e4-94c691a7387d
C15,C15,10.85.199.61,4C-15线,G15,0efca2c6-d0d4-11ea-a3e4-94c691a7387d
4CFeederIn,4CFeederIn,10.85.199.1,4C-FeederIn,G21,cb7f117b-ca88-11ea-9b28-0001299981d4
4CFeederOut,4CFeederOut,10.85.199.1,4C-FeederOut,G22,0fcf606c-d417-11ea-9b6b-0001299981d4
产线名,节点名,IP,产线别名,位置名称,位置guid
A5,A5,10.85.199.20,下料区(A5),PA5,7ed952c3-b520-11ea-b6ad-00012998f5a0
A6,A6,10.85.199.20,上料区(A6),PA6,929eb1c2-b520-11ea-b6ad-00012998f5a0
D3,D3,10.85.199.91,3D-3线,DL3,43855a9b-b365-11ea-a1a5-00012999830e
D4,D4,10.85.199.92,3D-4线,DL4,73c8b98c-b368-11ea-a1a5-00012999830e
D5,D5,10.85.199.93,3D-5线,DL5,5436efd7-b432-11ea-a1a5-00012999830e
D6,D6,10.85.199.94,3D-6线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
D7,D7,10.85.199.94,3D-7线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
D8,D8,10.85.199.95,3D-8线,DL8,8f039d2e-b432-11ea-a1a5-00012999830e
D9,D9,10.85.199.180,3D-9线,DL9,9e0b64ab-b432-11ea-a1a5-00012999830e
D10,D10,10.85.199.181,3D-10线,DL10,aec7da80-b432-11ea-a1a5-00012999830e
D11,D11,10.85.199.182,3D-11线,DL11,c10984c9-b432-11ea-a1a5-00012999830e
D12,D12,10.85.199.183,3D-12线,DL12,d6e0b92a-b432-11ea-a1a5-00012999830e
FeederIn,FeederIn,10.85.199.1,3D-FeedeerIn,FI,1e546c3a-8abe-11ea-ab63-000129922ca6
FeederOut,FeederOut,10.85.199.1,3D-FeederOut,FO,431649a4-8abe-11ea-ab63-000129922ca6
A5,A5,10.85.162.40,双层线入口(A5),PA5,4c533e85-75c6-11eb-a7fe-0001297a1dca
A6,A6,10.85.162.40,双层线出(A6),PA6,3a0d8f1b-75c8-11eb-a7fe-0001297a1dca
S3,S3,10.85.197.151,S3线,DL3,1b074ace-75c2-11eb-a7fe-0001297a1dca
S4,S4,10.85.197.146,S4线,DL4,17287a21-75c3-11eb-a7fe-0001297a1dca
S5,S5,10.85.197.15,S5线,DL5,5405c489-75c3-11eb-a7fe-0001297a1dca
S6,S6,10.85.197.14,S6线,DL6,982fc7ed-75c3-11eb-a7fe-0001297a1dca
S7,S7,10.85.197.9,S7线,DL6,d2943724-75c3-11eb-a7fe-0001297a1dca
S8,S8,10.85.197.141,S8线,DL8,103f9e10-75c4-11eb-a7fe-0001297a1dca
S9,S9,10.85.197.8,S9线,DL9,ab97b4c1-75c4-11eb-a7fe-0001297a1dca
S10,S10,10.85.197.7,S10线,DL10,1d40c7c7-75c5-11eb-a7fe-0001297a1dca
S11,S11,10.85.197.131,S11线,DL11,968abc82-75c5-11eb-a7fe-0001297a1dca
S12,S12,10.85.197.6,S12线,DL12,d2ee5b8e-75c5-11eb-a7fe-0001297a1dca
3DFeederIn,S21,10.85.197.3,备料区入口,FI,060d5e35-75b0-11eb-8565-0001297a1dca
3DFeederOut,S22,10.85.197.3,备料区出口,FO,fe89c587-75bf-11eb-a7fe-0001297a1dca
[18ų]
RFID=
[19ų]
RFID=
[20ų]
RFID=
......@@ -172,9 +172,6 @@
this.DgvNode.AllowUserToDeleteRows = false;
this.DgvNode.AllowUserToResizeColumns = false;
this.DgvNode.AllowUserToResizeRows = false;
this.DgvNode.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DgvNode.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.DgvNode.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.DgvNode.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
......@@ -187,6 +184,7 @@
this.Column9,
this.Column5,
this.Column16});
this.DgvNode.Dock = System.Windows.Forms.DockStyle.Fill;
this.DgvNode.Location = new System.Drawing.Point(3, 3);
this.DgvNode.MultiSelect = false;
this.DgvNode.Name = "DgvNode";
......
......@@ -248,7 +248,7 @@ namespace AGVControl
{
try
{
if (cmbBoxLineName.SelectedItem == null || cmbBoxLineName.SelectedIndex == 0)
if (cmbBoxLineName.SelectedItem == null)
{
return;
}
......@@ -287,12 +287,12 @@ namespace AGVControl
{
try
{
if (cmbBoxLineName.SelectedItem == null || cmbBoxLineName.SelectedIndex == 0 || txtRfid.Text.Equals(""))
if (cmbBoxLineName.SelectedItem == null || txtRfid.Text.Equals(""))
{
return;
}
if (cmbBoxLineName.SelectedItem.ToString().StartsWith("A"))
return;
//if (cmbBoxLineName.SelectedItem.ToString().StartsWith("A"))
// return;
if (MessageBox.Show("确定添加产线任务[" + cmbBoxLineName.SelectedItem.ToString() + "]", "手动添加解绑", MessageBoxButtons.YesNo) == DialogResult.No)
return;
if (txtRfid.Text.ToUpper().StartsWith(SettingString.SmallShelf_Prefix) || txtRfid.Text.ToUpper().StartsWith(SettingString.BigShelf_Prefix))
......@@ -376,7 +376,8 @@ namespace AGVControl
{
Task.Factory.StartNew(() =>
{
bool rtn = HttpManager.UpdateStatus(txtBoxRFID.Text.ToUpper(), txtBoxLineName.Text.ToUpper());
AGVManager.GetNodeNameByLineName(txtBoxLineName.Text.ToUpper(), out string nodename);
bool rtn = HttpManager.UpdateStatus(txtBoxRFID.Text.ToUpper(), nodename);
this.Invoke(new Action(() => { label11.Text = rtn ? "状态上报成功" : "状态上报失败"; }));
LogUtil.info(string.Format("手动上报状态 产线{0} 物料状态更新成功[{1}]", txtBoxLineName.Text.ToUpper(), txtBoxRFID.Text.ToUpper()));
txtBoxLineName.Text = "";
......
......@@ -40,19 +40,20 @@ namespace AGVControl
if (!isIni) return;
this.Invoke(new Action(() =>
{
btnReSendTask.Enabled = chkBxAuto.Checked;
btnAssignTask.Enabled = !chkBxAuto.Checked;
Agv.IsUse = chkBxAuto.Checked;
if (!chkBxAuto.Checked)
{
Agv.CurJob = null;
//AGVManager.Standby.DelOccupyInfo(Agv);
AGVManager.Charge.DelOccupyInfo(Agv);
//添加Init任务
MissionSys.AssignMission(Agv, SettingString.Init);
if (Agv.Place.Equals(SettingString.Standby) || Agv.Place.Equals(SettingString.AutoCharge))
Agv.Place = "";
if (Agv.IsCon)
{
MiR_API.Del_Mission(Agv);
//添加Init任务
MissionSys.AssignMission(Agv, SettingString.Init);
}
//AGVManager.Standby.DelOccupyInfo(Agv);
}
else
{
......@@ -61,12 +62,23 @@ namespace AGVControl
LogUtil.error(string.Format("{0} 车上有负载,无法开启自动模式,请先清空小车负载!", Agv.Name));
return;
}
Agv.CurJob = null;
MiR_API.Del_Mission_Fleet(Agv, Agv.CurTaskID.ToString());
MiR_API.Del_Mission(Agv);
Agv.RFID = "";
}
if (MessageBox.Show(this, "是否继续上一次的任务?\r\n" + Agv.Msg, "提示", MessageBoxButtons.YesNo).Equals(DialogResult.No))
{
Agv.CurJob = null;
if (Agv.Place.Equals(SettingString.Standby) || Agv.Place.Equals(SettingString.AutoCharge))
Agv.Place = "";
if (Agv.IsCon)
MiR_API.Del_Mission(Agv);
Agv.RFID = "";
}
else
{
if (Agv.IsCon)
Agv.Resend();
}
}
Agv.IsUse = chkBxAuto.Checked;
}));
}
......@@ -76,7 +88,8 @@ namespace AGVControl
{
if (MessageBox.Show("确定对小车重发任务?", Agv.Name, MessageBoxButtons.YesNo) == DialogResult.No)
return;
Task.Factory.StartNew(new Action(()=> {
Task.Factory.StartNew(new Action(() =>
{
MiR_API.Clear_Error(Agv);
System.Threading.Thread.Sleep(1000);
MiR_API.State_Ready(Agv);
......@@ -118,15 +131,23 @@ namespace AGVControl
private void btnAssignTask_Click(object sender, EventArgs e)
{
if (Agv.IsCon)
try
{
string taskName = MissionSys.GetTaskNameByAliceName(cmbBxMission.SelectedItem.ToString());
if (taskName.Equals(SettingString.Enter) || taskName.Equals(SettingString.Leave))
if (MessageBox.Show("确定对小车发送进/出任务?", Agv.Name, MessageBoxButtons.YesNo) == DialogResult.No)
return;
MissionSys.AssignMission(Agv, taskName);
LogUtil.info(string.Format("{0} 手动发任务 [{1}]", Agv.Name, cmbBxMission.SelectedItem.ToString()));
if (Agv.IsCon)
{
string taskName = MissionSys.GetTaskNameByAliceName(cmbBxMission.SelectedItem.ToString());
if (taskName.Equals(SettingString.Enter) || taskName.Equals(SettingString.Leave))
if (MessageBox.Show("确定对小车发送进/出任务?", Agv.Name, MessageBoxButtons.YesNo) == DialogResult.No)
return;
MissionSys.AssignMission(Agv, taskName);
LogUtil.info(string.Format("{0} 手动发任务 [{1}]", Agv.Name, cmbBxMission.SelectedItem.ToString()));
}
}
catch (Exception ex)
{
LogUtil.error("手动发任务 ", ex);
}
}
private void btnExit_Click(object sender, EventArgs e)
......
......@@ -31,7 +31,7 @@ namespace Common
public const string Executing = "Executing";
public const string Invalid = "Invalid";
public static List<string> RandomCharge_IPs = new List<string>() { "10.85.199.81" };
public static List<string> RandomCharge_IPs = new List<string>() { "10.85.199.123,10.85.199.124,10.85.199.138" };
public const string DoubleLine_Name_Prefix = "A";
public const string FileName_AGV = "AgvName.csv";
public const string FileName_AgvMission = "AgvMission.csv";
......@@ -45,16 +45,17 @@ namespace Common
public const string C4_STANDBY1 = "C4_STANDBY1";
public const string C4_STANDBY2 = "C4_STANDBY2";
public const string RoomCFeederIn = "C21";
public const string RoomDFeederIn = "D21";
public const string RoomCFeederOut = "C22";
public const string RoomDFeederOut = "D22";
public const string RoomCFeederIn = "S21";
public const string RoomDFeederIn = "S21";
public const string RoomCFeederOut = "S22";
public const string RoomDFeederOut = "S22";
public const string ChargeThreshold = "ChargeThreshold";
//双层线
public const string A6 = "A6";
public const string A5 = "A5";
public const string RoomD_Name_Prefix = "D";
public const string Line_Name_Prefix = "S";
public const string RoomD_Name_Prefix = "S";
public const string RoomC_Name_Prefix = "C";
public const string BigShelf_Prefix = "C";
public const string SmallShelf_Prefix = "D";
......
......@@ -176,7 +176,7 @@ namespace Common
}
catch (Exception e)
{
LogUtil.error("HTTP GET ERROR:" + e.Message);
LogUtil.error("HTTP GET ERROR:" +url+ e.Message);
}
return "";
}
......
......@@ -490,7 +490,7 @@ namespace DeviceLibrary
int idx = AGVManager.nodeInfo.FindIndex(s => s.Name == node.Name);
if (idx == -1)
{
log.Error("UpdateNode " + node.Name + " 不存在");
//log.Error("UpdateNode " + node.Name + " 不存在");
return;
}
......
......@@ -28,7 +28,7 @@ namespace DeviceLibrary
{
Station = new Dictionary<string, string>();
Station.Add(AutoCharge1, "");
//Station.Add(AutoCharge2, "");
Station.Add(AutoCharge2, "");
string s = AppConfigHelper.GetValue(SettingString.ChargeThreshold);
string[] arr = s.Split(',');
......@@ -95,20 +95,26 @@ namespace DeviceLibrary
/// <returns></returns>
public bool HasEmptyChargeStation(Agv_Info agv)
{
//lock(loc)
//{
// if (SettingString.FixedCharge_AGV_IPs.Contains(agv.IP))//固定充电小车
// return true;
// else
// {
// if (Station[AutoCharge2].Equals(""))
// {
// return true;
// }
// }
//}
//return false;
return true;
lock (loc)
{
//if (SettingString.FixedCharge_AGV_IPs.Contains(agv.IP))//固定充电小车
// return true;
//else
//{
// if (Station[AutoCharge2].Equals(""))
// {
// return true;
// }
//}
foreach (string item in Station.Keys)
{
if (Station[item].Equals(""))
{
return true;
}
}
}
return false;
}
/// <summary>
/// 开始充电任务
......
任务名称,任务别名,任务GUID
Init,初始化,219cd91a-61da-11eb-96a9-0001297a1dca
Standby,初始化615cef05-61f4-11eb-96a9-0001297a1dca
AutoCharge,充电,615cef05-61f4-11eb-96a9-0001297a1dca
A5,双层线入口,90cece3e-6205-11eb-a040-0001297a2016
A6,双层线出口,9fd1183d-6205-11eb-a040-0001297a2016
D12,S12线,82abbf41-614c-11eb-b885-0001297a1dca
D11,S11线,61bab7dd-614c-11eb-b885-0001297a1dca
D10,S10线,b9bcc942-6205-11eb-a040-0001297a2016
D9,S9线,c19a6ce3-6205-11eb-a040-0001297a2016
D8,S8线,d3181a94-6205-11eb-a040-0001297a2016
D7,S7线,e718516c-6205-11eb-a040-0001297a2016
D6,S6线,fa13c4a5-6205-11eb-a040-0001297a2016
D5,S5线07e146a9-6206-11eb-a040-0001297a2016
D4,S4线,11cd500c-6206-11eb-a040-0001297a2016
D3,S3线,19b42469-6206-11eb-a040-0001297a2016
D2,S2线,2575e471-6206-11eb-a040-0001297a2016
D1,S1线,3037232d-6206-11eb-a040-0001297a2016
D21,备料区入口88486aae-6208-11eb-a040-0001297a2016
D22,备料区出口,97f8b64a-6208-11eb-a040-0001297a2016
CheckShelf,检查负载情况,d7ecd9b0-6207-11eb-a040-0001297a2016
Leave,出料,5a17e712-6205-11eb-a040-0001297a2016
Enter,进料,432f1946-6205-11eb-a040-0001297a2016
\ No newline at end of file
Standby,待机位,615cef05-61f4-11eb-96a9-0001297a1dca
AutoCharge1,充电桩4,b4a9e87a-7768-11eb-8758-54b2038d1924
AutoCharge2,充电桩5,c4326dfb-7768-11eb-8758-54b2038d1924
A5,双层线入口,4c533e85-75c6-11eb-a7fe-0001297a1dca
A6,双层线出口,3a0d8f1b-75c8-11eb-a7fe-0001297a1dca
D12,S12线,d2ee5b8e-75c5-11eb-a7fe-0001297a1dca
D11,S11线,968abc82-75c5-11eb-a7fe-0001297a1dca
D10,S10线,1d40c7c7-75c5-11eb-a7fe-0001297a1dca
D9,S9线,ab97b4c1-75c4-11eb-a7fe-0001297a1dca
D8,S8线,103f9e10-75c4-11eb-a7fe-0001297a1dca
D7,S7线,d2943724-75c3-11eb-a7fe-0001297a1dca
D6,S6线,982fc7ed-75c3-11eb-a7fe-0001297a1dca
D5,S5线,5405c489-75c3-11eb-a7fe-0001297a1dca
D4,S4线,17287a21-75c3-11eb-a7fe-0001297a1dca
D3,S3线,1b074ace-75c2-11eb-a7fe-0001297a1dca
D2,S2线,1b074ace-75c2-11eb-a7fe-0001297a1dca
D1,S1线,1b074ace-75c2-11eb-a7fe-0001297a1dca
D21,备料区入口,060d5e35-75b0-11eb-8565-0001297a1dca
D22,备料区出口,fe89c587-75bf-11eb-a7fe-0001297a1dca
CheckShelf,检查负载情况,cc5f1d78-75a2-11eb-8565-0001297a1dca
Leave,出料,28a2ab7b-75ac-11eb-8565-0001297a1dca
Enter,进料,4bf5d4c5-75a4-11eb-8565-0001297a1dca
\ No newline at end of file
Fleet ID,agv名称,IP,授权码,IOID
5,18号车,10.85.199.138,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,007615a5-2220-11ea-99f2-94c691a73b53
5,18号车,10.85.199.123,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,5d084001-6155-11eb-bee4-0001297a2016
6,19号车,10.85.199.124,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,5d084001-6155-11eb-bee4-0001297a2016
7,20号车,10.85.199.138,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==,5d084001-6155-11eb-bee4-0001297a2016
产线名,节点名,IP,产线别名,位置名称,位置guid
A5,A5,10.85.162.40,双层线入口(A5),PA5,7ed952c3-b520-11ea-b6ad-00012998f5a0
A6,A6,10.85.162.40,双层线出(A6),PA6,929eb1c2-b520-11ea-b6ad-00012998f5a0
S3,D3,10.85.197.151,3D-3线,DL3,43855a9b-b365-11ea-a1a5-00012999830e
S4,D4,10.85.197.146,3D-4线,DL4,73c8b98c-b368-11ea-a1a5-00012999830e
S5,D5,10.85.197.15,3D-5线,DL5,5436efd7-b432-11ea-a1a5-00012999830e
S6,D6,10.85.197.14,3D-6线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
S7,D7,10.85.197.9,3D-7线,DL6,6b7710c1-b432-11ea-a1a5-00012999830e
S8,D8,10.85.197.141,3D-8线,DL8,8f039d2e-b432-11ea-a1a5-00012999830e
S9,D9,10.85.197.8,3D-9线,DL9,9e0b64ab-b432-11ea-a1a5-00012999830e
S10,D10,10.85.197.7,3D-10线,DL10,aec7da80-b432-11ea-a1a5-00012999830e
S11,D11,10.85.197.131,3D-11线,DL11,c10984c9-b432-11ea-a1a5-00012999830e
S12,D12,10.85.197.6,3D-12线,DL12,d6e0b92a-b432-11ea-a1a5-00012999830e
3DFeederIn,D21,10.85.197.3,3D-备料区入口,FI,1e546c3a-8abe-11ea-ab63-000129922ca6
3DFeederOut,D22,10.85.197.3,3D-备料区出口,FO,431649a4-8abe-11ea-ab63-000129922ca6
A5,A5,10.85.162.40,双层线入口(A5),PA5,4c533e85-75c6-11eb-a7fe-0001297a1dca
A6,A6,10.85.162.40,双层线出(A6),PA6,3a0d8f1b-75c8-11eb-a7fe-0001297a1dca
S3,S3,10.85.197.151,S3线,DL3,1b074ace-75c2-11eb-a7fe-0001297a1dca
S4,S4,10.85.197.146,S4线,DL4,17287a21-75c3-11eb-a7fe-0001297a1dca
S5,S5,10.85.197.15,S5线,DL5,5405c489-75c3-11eb-a7fe-0001297a1dca
S6,S6,10.85.197.14,S6线,DL6,982fc7ed-75c3-11eb-a7fe-0001297a1dca
S7,S7,10.85.197.9,S7线,DL6,d2943724-75c3-11eb-a7fe-0001297a1dca
S8,S8,10.85.197.141,S8线,DL8,103f9e10-75c4-11eb-a7fe-0001297a1dca
S9,S9,10.85.197.8,S9线,DL9,ab97b4c1-75c4-11eb-a7fe-0001297a1dca
S10,S10,10.85.197.7,S10线,DL10,1d40c7c7-75c5-11eb-a7fe-0001297a1dca
S11,S11,10.85.197.131,S11线,DL11,968abc82-75c5-11eb-a7fe-0001297a1dca
S12,S12,10.85.197.6,S12线,DL12,d2ee5b8e-75c5-11eb-a7fe-0001297a1dca
3DFeederIn,S21,10.85.197.3,备料区入口,FI,060d5e35-75b0-11eb-8565-0001297a1dca
3DFeederOut,S22,10.85.197.3,备料区出口,FO,fe89c587-75bf-11eb-a7fe-0001297a1dca
[18ų]
RFID=
[19ų]
RFID=
[20ų]
RFID=
......@@ -104,20 +104,20 @@ namespace DeviceLibrary
}
}
if (AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederOut) || AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederOut))
{
if (AGVManager.unlockManager.GetUnlockCnt(AGVManager.nodeInfo[j].Name) > 0)
{
tmp = AGVManager.unlockManager.GetUnlockRfids(AGVManager.nodeInfo[j].Name)[0];
if (!tmp.Equals(AGVManager.nodeInfo[j].RFID))
{
AGVManager.nodeInfo[j].RFID = tmp;
NodeChangedEvent?.Invoke(j);
}
//if (AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomCFeederOut) || AGVManager.nodeInfo[j].Name.Equals(SettingString.RoomDFeederOut))
//{
// if (AGVManager.unlockManager.GetUnlockCnt(AGVManager.nodeInfo[j].Name) > 0)
// {
// tmp = AGVManager.unlockManager.GetUnlockRfids(AGVManager.nodeInfo[j].Name)[0];
// if (!tmp.Equals(AGVManager.nodeInfo[j].RFID))
// {
// AGVManager.nodeInfo[j].RFID = tmp;
// NodeChangedEvent?.Invoke(j);
// }
}
// }
}
//}
}
}
HttpManager.updateDeviceAlarmMsg(msglist);
......@@ -144,12 +144,12 @@ namespace DeviceLibrary
{
if (!CheckOnline(i)) continue;
bool change = false;
MiR_API.Get_Task_State(AGVManager.agvInfo[i], out string stateStr);
MiR_API.Get_Task_State(AGVManager.agvInfo[i], out string taskStateStr);
Thread.Sleep(50);
//获取AGV状态
rtn = MiR_API.Get_State(AGVManager.agvInfo[i], out eAGVState stateID, out string stateText, out int battery, out string mission_text, out Agv_Info.MirPosition position);
Thread.Sleep(50);
if (rtn) change = AGVManager.agvInfo[i].SetState(stateID, stateStr, battery, mission_text, position);
if (rtn) change = AGVManager.agvInfo[i].SetState(stateID, taskStateStr, battery, mission_text, position);
// if (change)
{
......@@ -160,7 +160,7 @@ namespace DeviceLibrary
if (stateText.Equals("Error") || stateText.Equals("EmergencyStop") || stateText.Equals("Pause"))
{
isAlarm = true;
msglist.Add(new AlarmMsg(AGVManager.agvInfo[i].Name, "lineAgv." + AGVManager.agvInfo[i].Name + ".Msg", "agv状态:" + stateText + ""));
msglist.Add(new AlarmMsg(AGVManager.agvInfo[i].Name, "lineAgv." + AGVManager.agvInfo[i].Name + ".Msg", "状态:" + stateText + ""));
}
if (!isAlarm && AGVManager.agvInfo[i].StandTimeOut)
......
......@@ -98,6 +98,8 @@ namespace DeviceLibrary
string guid = GetMissionGuidByTaskName(taskName);
if (!guid.Equals(""))
{
if (!taskName.StartsWith(SettingString.AutoCharge))
agv.Place = taskName;
if (agv.UseFleet)
{
agv.CurTarName = taskName;
......@@ -169,7 +171,7 @@ namespace DeviceLibrary
return GetMissionGuidByTaskName(taskName).Equals(agv.CurTaskGUID) && curTaskState.Equals(SettingString.Executing);
}
/// <summary>
/// 获取Fleet Job任务状态
/// 获取Job任务状态
/// </summary>
/// <param name="CurTaskID"></param>
/// <returns></returns>
......
......@@ -22,10 +22,6 @@ namespace DeviceLibrary
/// </summary>
public string IP { private set; get; }
/// <summary>
///小车在Fleet中的id号
/// </summary>
public string RobotId { private set; get; }
/// <summary>
/// IO模块GUID
/// </summary>
public string IOID { private set; get; }
......@@ -178,7 +174,7 @@ namespace DeviceLibrary
Place = "";
Msg = "";
Position = new MirPosition();
RunInfos = new List<string>() { "目的地", "RFID", "负载", "运行模式", "任务信息", "AGV运行信息" };
RunInfos = new List<string>() { "状态", "目的地", "RFID", "负载", "运行模式", "任务信息", "AGV运行信息" };
StateKanban = new AGV_UI.Status(name, RunInfos);
}
......@@ -187,7 +183,7 @@ namespace DeviceLibrary
int IoLastTime = 5000;
int StandLastTimeMinute = 5;
public DateTime StandStartTime = DateTime.MaxValue;
public bool SetState(eAGVState stateID, string stateText, int battery, string missionText, MirPosition position)
public bool SetState(eAGVState stateID, string taskStateText, int battery, string missionText, MirPosition position)
{
bool isChange = false;
bool preShelfState = IsExistShelf;
......@@ -222,15 +218,19 @@ namespace DeviceLibrary
IsExistShelf = false;
}
}
if (!StateID.Equals(stateID) || !CurTaskState.Equals(stateText) || !Battery.Equals(battery)
if (!StateID.Equals(stateID) || !CurTaskState.Equals(taskStateText) || !Battery.Equals(battery)
|| !MissionText.Equals(missionText) || !IsExistShelf.Equals(preShelfState))
isChange = true;
StateID = stateID;
if (!StateID.Equals(stateID))
{
StateID = stateID;
StateKanban.ShowInfo("状态", stateID.ToString());
}
if (!CurTaskState.Equals(stateText))
if (!CurTaskState.Equals(taskStateText))
{
CurTaskState = stateText;
StateKanban.SetCurState(stateText);
CurTaskState = taskStateText;
StateKanban.SetCurState(taskStateText);
}
if (!Battery.Equals(battery))
......@@ -255,7 +255,11 @@ namespace DeviceLibrary
}
StateKanban.ShowInfo("运行模式", IsUse ? "自动" : "手动");
if (this.CurJob != null)
StateKanban.ShowInfo("任务信息", this.CurJob.RunInfo);
{
Msg = this.CurJob.RunInfo;
StateKanban.ShowInfo("任务信息", Msg);
}
if (!MissionText.Equals(missionText))
{
......
......@@ -13,7 +13,6 @@ namespace DeviceLibrary
{
private const int httpTimeout = 5000;
private static log4net.ILog log = log4net.LogManager.GetLogger("MiR_API");
public static bool IsDebug { get; set; } = false;
/// <summary>
/// 获取IO模块guid列表
/// </summary>
......@@ -253,7 +252,8 @@ namespace DeviceLibrary
try
{
info.CurTaskGUID = mission_id;
info.CurTaskID = Convert.ToInt32(id);
if (info.IsUse)
info.CurTaskID = Convert.ToInt32(id);
}
catch
{
......@@ -292,7 +292,7 @@ namespace DeviceLibrary
string ip = AppConfigHelper.GetValue(SettingString.FLEET);
string url = "http://" + ip + "/api/v2.0.0/mission_scheduler";
string body = "{\"mission_id\":\"" + mission_id + "\",\"robot_id\":" + info.RobotId + "}";
string body = "{\"mission_id\":\"" + mission_id + "\",\"robot_id\":" + info.ID + "}";
string json = HttpPost(url, info.IP, info.Authorization, body);
if (string.IsNullOrWhiteSpace(json)) return false;
......@@ -706,7 +706,6 @@ namespace DeviceLibrary
string s = response.Content;
s = s.Replace("\n", "");
s = s.Replace(" ", "");
if (IsDebug)
log.Debug("HttpGet URL: " + url + " Return: " + s);
return s;
}
......@@ -726,8 +725,7 @@ namespace DeviceLibrary
string s = response.Content;
s = s.Replace("\n", "");
s = s.Replace(" ", "");
if (IsDebug)
log.Debug(string.Format("HttpPost URL: {0}; Body: {1} Return: {2}", url, body, s));
log.Debug(string.Format("HttpPost URL: {0}; Body: {1} Return: {2}", url, body, s));
return s;
}
......@@ -746,7 +744,6 @@ namespace DeviceLibrary
string s = response.Content;
s = s.Replace("\n", "");
s = s.Replace(" ", "");
if (IsDebug)
log.Debug(string.Format("HttpPut URL: {0}; Body: {1} Return: {2}", url, body, s));
return s;
}
......@@ -763,7 +760,6 @@ namespace DeviceLibrary
request.AddParameter("application/json", "", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
string s = response.Content;
if (IsDebug)
log.Debug("HttpDel URL: " + url);
}
#endregion
......
......@@ -175,7 +175,7 @@ namespace DeviceLibrary
}
else
{
if (RFID.StartsWith(SettingString.BigShelf_Prefix) && !agv.Place.Equals(SettingString.RoomDFeederIn) && !agv.Place.Equals(SettingString.RoomCFeederIn))
if (RFID.StartsWith(SettingString.BigShelf_Prefix) && !FullShelfPlace.Equals(SettingString.RoomDFeederIn) && !FullShelfPlace.Equals(SettingString.RoomCFeederIn))
{
jobStep.ToNextStep(SEND_FULL_SHELF_STEP.WAIT_BIG_SHELF_UNLOCK);
runInfo = "AGV到达 " + FullShelfPlace + ",并等待大料架解绑";
......
......@@ -14,14 +14,14 @@ namespace DeviceLibrary
/// <returns></returns>
public override Job GetNewJob(Agv_Info currentAgv)
{
if (currentAgv.Battery < AGVManager.Charge.BatteryMax - 10 && AGVManager.Charge.HasEmptyChargeStation(currentAgv))
//if (currentAgv.Battery < AGVManager.Charge.BatteryMax - 10 && AGVManager.Charge.HasEmptyChargeStation(currentAgv))
{
return new ChargeJob(currentAgv.Place);
}
else
{
return new StandyJob(currentAgv.Place);
}
//else
//{
// return new StandyJob(currentAgv.Place);
//}
}
}
}
......@@ -662,17 +662,17 @@ namespace DeviceLibrary
public static bool CheckStationState(ClientNode clientNode, out string rfid)
{
rfid = "";
if (!unlockManager.GetUnlockRfids(clientNode.Name).Contains(clientNode.RFID))
if (unlockManager.GetUnlockCnt(clientNode.Name) > 0 && !unlockManager.GetUnlockRfids(clientNode.Name).Contains(clientNode.RFID))
{
if (clientNode.Name.Equals(SettingString.RoomCFeederOut) || clientNode.Name.Equals(SettingString.RoomDFeederOut))
{
warnMsg = string.Format("[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台", clientNode.RFID, clientNode.Name);
warnMsg = string.Format("线体[{0}]外侧料架[{1}]未解绑,已解绑料架:{2}", clientNode.AliceName, clientNode.RFID, string.Join(",",unlockManager.GetUnlockRfids(clientNode.Name).ToArray()));
log.Debug(warnMsg);
}
else
{
string res = HttpManager.GetRFIDs(clientNode.LineName);
warnMsg = string.Format("[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台:料架由里到外顺序:{2}", clientNode.RFID, clientNode.Name, res);
warnMsg = string.Format("线体[{0}]外侧料架[{1}]未解绑,已解绑料架:{2}", clientNode.AliceName, clientNode.RFID, string.Join(",",unlockManager.GetUnlockRfids(clientNode.Name).ToArray()));
log.Debug(warnMsg);
}
return false;
......@@ -690,17 +690,17 @@ namespace DeviceLibrary
public static bool UpdateStationState(ClientNode clientNode)
{
if (!unlockManager.GetUnlockRfids(clientNode.Name).Contains(clientNode.RFID))
if (unlockManager.GetUnlockCnt(clientNode.Name) >0 && !unlockManager.GetUnlockRfids(clientNode.Name).Contains(clientNode.RFID))
{
if (clientNode.Name.Equals(SettingString.RoomCFeederOut) || clientNode.Name.Equals(SettingString.RoomDFeederOut))
{
clientNode.WarnMsg = string.Format("接驳台最外侧料架[{0}]没有解绑信息,请检查接驳台状况", clientNode.RFID);
clientNode.WarnMsg = string.Format("外侧料架[{0}]未解绑,已解绑料架:{1}", clientNode.RFID, string.Join(",", unlockManager.GetUnlockRfids(clientNode.Name).ToArray()));
return false;
}
else
{
string res = HttpManager.GetRFIDs(clientNode.LineName);
clientNode.WarnMsg = string.Format("接驳台最外侧料架[{0}]没有解绑信息,当前料架由里到外顺序:{1}", clientNode.RFID, res);
clientNode.WarnMsg = string.Format("外侧料架[{0}]未解绑,已解绑料架:{1}", clientNode.RFID, string.Join(",", unlockManager.GetUnlockRfids(clientNode.Name).ToArray()));
return false;
}
}
......
......@@ -281,7 +281,7 @@ namespace DeviceLibrary
int.TryParse(msgs[0].msg.Substring(0, 1), out int resCode);
string resStr = msgs[0].msg.Substring(1, 2);
lineName = msgs[0].msg.Substring(3);
log.Debug(string.Format("[{0}] [{1}]", addr, result));
log.Info(string.Format("[{0}] [{1}]", addr, result));
if (lineName.Equals("").Equals(true))
return false;
if (resStr.Equals("OK") || resCode.Equals(1))
......@@ -354,7 +354,7 @@ namespace DeviceLibrary
string server = GetAddr(Addr_updateDeviceAlarmMsg, paramMap);
DateTime startTime = DateTime.Now;
string resultStr = HttpHelper.Post(server, "");
log.Debug("异常看板【" + server + "】【" + resultStr + "】");
msgList.ForEach(new Action<AlarmMsg>(k=>log.Debug("deviceAlarmList " + k.ToString())));
RfidData data = JsonHelper.DeserializeJsonToObject<RfidData>(resultStr);
......@@ -434,7 +434,7 @@ namespace DeviceLibrary
public static string GetRFIDs(string lineName)
{
string addr = "";
if (lineName.StartsWith(SettingString.RoomD_Name_Prefix))
if (lineName.StartsWith(SettingString.Line_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_3D_Light), lineName);
......@@ -475,7 +475,7 @@ namespace DeviceLibrary
public static string GetFirstRFID(string lineName)
{
string addr = "";
if (lineName.StartsWith(SettingString.RoomD_Name_Prefix))
if (lineName.StartsWith(SettingString.Line_Name_Prefix))
{
addr = string.Format("http://{0}/LineGetRFID?line={1}", AppConfigHelper.GetValue(SettingString.IP_3D_Light), lineName);
......@@ -699,6 +699,10 @@ namespace DeviceLibrary
this.msgValue = value;
this.type = type;
}
public override string ToString()
{
return string.Format("[name:{0},msgKey:{1},msgValue:{2},type:{3}]", name, msgKey, msgValue, type);
}
}
public class RfidData
{
......
......@@ -86,7 +86,7 @@ namespace DeviceLibrary
}
public bool DelMission(string nodeName, string rfid)
{
bool rtn = NodeUnlockMissions[nodeName].Delete(rfid);
bool rtn = NodeUnlockMissions[nodeName].Delete(rfid, nodeName);
if (rtn)
{
UnlockMissions[nodeName] = new UnlockInfo(nodeName, NodeUnlockMissions[nodeName].EmptyCnt, NodeUnlockMissions[nodeName].GetRfidWithTime());
......
......@@ -20,7 +20,6 @@ namespace DeviceLibrary
/// 空料架数量
/// </summary>
public int EmptyCnt { get; set; }
public string NodeName;
/// <summary>
/// 解绑的RFID及时间
/// </summary>
......@@ -62,7 +61,7 @@ namespace DeviceLibrary
/// <summary>
/// 删除一个解绑任务
/// </summary>
public bool Delete(string rfid)
public bool Delete(string rfid, string nodeName = "")
{
if (EmptyCnt > 0)
{
......@@ -75,7 +74,7 @@ namespace DeviceLibrary
{
Rfids.Clear();
}
if (rfid.Equals(SettingString.RoomCFeederOut) || rfid.Equals(SettingString.RoomDFeederOut))
if (nodeName.Equals(SettingString.RoomCFeederOut) || rfid.Equals(SettingString.RoomDFeederOut))
Rfids.Remove(rfid);
return true;
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!