You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

225 lines
7.8 KiB
C#

using Rs.AutoDischarge.V3.Flow;
using Rs.Controls;
using Rs.Framework;
using Rs.MotionPlat.Commom;
using Rs.MotionPlat.Flow;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Rs.MotionPlat.SysConfig
{
public partial class StockControl : BaseForm
{
public StockControl()
{
InitializeComponent();
}
protected void OnbtnLoadClick(object sender, EventArgs e)
{
Button btn = (Button)sender;
string trayName = btn.Tag.ToString();
bool ok = Enum.TryParse(trayName, out ETrayType result);
if (ok)
{
Task.Run(() => {
if (MachineManage.Instance.MachineStatus == EMachineStatus.Homed || MachineManage.Instance.MachineStatus == EMachineStatus.Stop)
{
if (!StockManager.Instance.GetStock(result).IsRunning())
{
if (IsBack(trayName))
{
StockManager.Instance.GetStock(result).Load(EStockTrayLoadMode.AfterBacked, () => {
});
}
else
{
StockManager.Instance.GetStock(result).Load(EStockTrayLoadMode.Whole, () => {
if (result == ETrayType.Input)
{
GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.Have);
}
else
{
GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.NotHave);
}
});
}
}
else
{
Msg.ShowError("Stock is busy");
}
}
else
{
Msg.ShowError($"device status is {MachineManage.Instance.MachineStatus},cann't operate the stock");
}
});
}
}
protected void OnbtnUnLoadClick(object sender, EventArgs e)
{
Button btn = (Button)sender;
string trayName = btn.Tag.ToString();
bool ok = Enum.TryParse(trayName, out ETrayType result);
if(ok)
{
Task.Run(() => {
if(MachineManage.Instance.MachineStatus== EMachineStatus.Homed || MachineManage.Instance.MachineStatus== EMachineStatus.Stop)
{
if (!StockManager.Instance.GetStock(result).IsRunning())
{
if (IsBack(trayName))
{
StockManager.Instance.GetStock(result).Unload(EStockTrayUnLoadMode.Back, () => {
// GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.Null);
});
}
else
{
StockManager.Instance.GetStock(result).Unload(EStockTrayUnLoadMode.Whole, () => {
GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.Null);
});
}
}
else
{
Msg.ShowError("Stock is busy");
}
}
else
{
Msg.ShowError($"device status is {MachineManage.Instance.MachineStatus},cann't operate the stock");
}
});
}
}
private bool IsBack(string trayName)
{
bool back = false;
switch (trayName)
{
case "Empty1":
if (cboxBackEmpty1.Checked)
back = true;
break;
case "Input":
if (cboxBackInput.Checked)
back = true;
break;
case "Ok":
if (cboxBackOk.Checked)
back = true;
break;
case "Ng":
if (cboxBackNg.Checked)
back = true;
break;
case "Multi":
if (cboxBackMulti.Checked)
back = true;
break;
case "Empty2":
if (cboxBackEmpty2.Checked)
back = true;
break;
default:
break;
}
return back;
}
protected void btnMovetrayClick(object sender, EventArgs e)
{
RadioButton rbtnFrom = null;
RadioButton rbtnTo = null;
foreach (Control ctl in gboxFrom.Controls)
{
if(ctl is RadioButton)
{
rbtnFrom = (RadioButton)ctl;
if(rbtnFrom.Checked)
{
break;
}
}
}
foreach (Control ctl in gboxTo.Controls)
{
if (ctl is RadioButton)
{
rbtnTo = (RadioButton)ctl;
if (rbtnTo.Checked)
{
break;
}
}
}
if(rbtnFrom != null && rbtnTo!=null) {
if(rbtnFrom.Text == rbtnTo.Text)
{
Msg.ShowError("Cann't move tray to same position");
return;
}
}
}
private void button12_Click(object sender, EventArgs e)
{
ETrayType fromstock = ETrayType.Empty2;
ETrayType tostock = ETrayType.Ok ;
if (btnFromEmpty1.Checked)
fromstock = ETrayType.Empty1;
if (btnFromInput.Checked)
fromstock = ETrayType.Input;
if (btnFromOk.Checked)
fromstock = ETrayType.Ok;
if (btnFromNg.Checked)
fromstock = ETrayType.Ng;
if (btnFromMulti.Checked)
fromstock = ETrayType.Multi;
if (btnFromEmpty2.Checked)
fromstock = ETrayType.Empty2;
if (btnToEmpty1.Checked)
tostock = ETrayType.Empty1;
if (btnToInput.Checked)
tostock = ETrayType.Input;
if (btnToOk.Checked)
tostock = ETrayType.Ok;
if (btnToNg.Checked)
tostock = ETrayType.Ng;
if (btnToMulti.Checked)
tostock = ETrayType.Multi;
if (btnToEmpty2.Checked)
tostock = ETrayType.Empty2;
StockManager.Instance.GetStock(fromstock).Load(EStockTrayLoadMode.Whole, null);
TakeTrayFlow.Instance.Take(fromstock, tostock,
null,
null,
() => {
StockManager.Instance.GetStock(tostock).Unload(EStockTrayUnLoadMode.Whole, null);
});
}
}
}