AHTC/RGD/RGD.WCS/CControl.cs

1370 lines
70 KiB
C#
Raw Normal View History

2025-05-19 09:22:33 +08:00
using RGD.Common;
using RGD.DataService;
using RGD.DBUtility;
using RGD.Model;
using RGD.OPCClient;
using RGD.ZhiQianAPI;
using RGD.ZhiQianAPI.ZhiQianModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
namespace RGD.WCS
{
/// <summary>
/// Creator:RGD
/// <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public class CControl
{
private Object thisLock = new Object();
private Model.MError errs;
private Model.MDevice devinfo;
private ISendDeviceOrder sdo;
private StringBuilder AheadDetectUnallow = new StringBuilder();
private CCommonFunction ccf = new CCommonFunction();
private int _DeviceIdx = 0;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
private int _routeID = 0;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
private int _serialNumber = 0;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private int _ManageTaskIdx = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private int _ManageKindIdx = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private int _DeviceOrder = 0;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
private int _LockedState = 0;
private int _Associate = 0;
private int _ManTaskReserve = 0;
private string _AheadDetect = "";
private int _NumParam1 = 0;
private int _NumParam2 = 0;
private int _NumParam3 = 0;
private int _NumParam4 = 0;
private int _NumParam5 = 0;
private int _NumParam6 = 0;
private string _TxtParam = "-";
private int _DeviceKind = 0;
private int _OutsideAltDevice = 0;
private int _InsideAltDevice = 0;
private int _StartDevice = 0;
private int _EndDevice = 0;
private int _RouteKind = 0;
private int _CorrelDoubleFork = -1;
private int _AgvNo = 65535;
private string _CControlError = "";//<2F><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
private string _PickUpLocation = "0";
public string CControlError
{
get { return _CControlError; }
set { _CControlError = value; }
}
public CControl()
{
}
public void StartOrder()
{
//<2F><><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥵ġ<F1B5A5B5><C4A1><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>еĵ<D0B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥣<EFBFBD>
//Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E8B1B8>F_AheadDetect<63><74><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A3AC>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥣<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼִ<CABC><D6B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>еĹ<D0B5><C4B9><EFBFBD><EFBFBD>豸F_AssociateDeviceIndex,׼<><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ָ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>¼<EFBFBD><C2BC>״̬F_StatusΪ1,<2C><><EFBFBD><EFBFBD><EFBFBD>豸Ϊռ<CEAA><D5BC>״̬<D7B4><CCAC>T_Base_device<63><65>F_LockedState=<3D>豸ָ<E8B1B8><EFBFBD><EEB5A5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO_Control<6F><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>״̬FSTATUS=1;T_Manage_Task<73><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>״̬FSTATUS=1
//·<><C2B7><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8>F_LockedDeviceIndex<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Ӧ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DataView taskDetail = DbHelperSQL.Query("select * from t_warehouse").Tables[0].DefaultView;
string task_type = taskDetail[0]["F_TASK_TYPE"].ToString();
string taskkind = " (F_ManageTaskKindIndex = 1 or F_ManageTaskKindIndex = 2 or F_ManageTaskKindIndex = 4) "; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string strsql = "SELECT DISTINCT F_ManageTaskIndex AS MIndex,F_MonitorTaskLevel,F_ManageTaskKindIndex FROM T_Monitor_Task where " +
taskkind + " order by F_ManageTaskKindIndex desc, F_MonitorTaskLevel desc, F_ManageTaskIndex asc";
DataView dvM = new DataView();
string strM = "";
if (task_type != "Inventory")
{
try
{
char[] sep = new char[1] { '-' };
string taskType = string.Empty;
string aa = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
//<2F><><EFBFBD>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ǰ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AGV,<2C>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ׷<D2AA><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D6B1><EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//DataView allouttask = DbHelperSQL.Query("select * from T_Monitor_Task,T_Manage_Task where T_Monitor_Task.F_DeviceCommandIndex='4'and f_status='0' and T_Monitor_Task.F_ManageTaskIndex=T_Manage_Task.fid and T_Manage_Task.FCONTROLTASKTYPE='2'").Tables[0].DefaultView;
DataView outTaskCount = DbHelperSQL.Query("select * from t_manage_task where FCONTROLTASKTYPE=2 and FIntoStepOK='1' and fstatus=0").Tables[0].DefaultView;
if (outTaskCount.Count != 0)
{
for (int a = 0; a < outTaskCount.Count; a++)
{
List<BoxList> boxLists = new List<BoxList>();
if (a % 5 == 0 || a == 0)
{
CreateOrder createOrder = new CreateOrder();
createOrder.zoneid = 0;
createOrder.poolid = 1;
createOrder.orderno = DateTime.Now.ToString("yyyyMMddHHmmssfff");
if ( a==outTaskCount.Count-1)
{
createOrder.appendflag = false;
}
else
{
createOrder.appendflag = true;
}
BoxList boxList = new BoxList();
boxList.src = outTaskCount[a]["FSTARTCELL"].ToString();
boxList.dst = "12004";
boxList.box = outTaskCount[a]["FPALLETBARCODE"].ToString();
boxList.rgsTaskId = int.Parse(outTaskCount[a]["FID"].ToString());
boxLists.Add(boxList);
createOrder.boxlist = boxLists;
if (boxLists.Count != 0)
{
CreateOrderResponse createOrderResponse = SendDataToAgv.SendOutOrInvTasksToAgv(createOrder);
if (createOrderResponse.code == "0")
{
//<2F><><EFBFBD>ͳɹ<CDB3><C9B9><EFBFBD>,<2C><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊִ<CEAA><D6B4><EFBFBD><EFBFBD>
DbHelperSQL.ExecuteSql("update t_manage_task set FStatus = '1' where fid="+ outTaskCount[a]["FID"]);
DbHelperSQL.ExecuteSql("update t_monitor_task set F_Status = '2' where f_status=0 and F_DeviceCommandIndex='4' and F_ManageTaskIndex="+ outTaskCount[a]["FID"]);
FrmMain.taskId = createOrderResponse.result.taskid;
//FrmMain.taskId = 1560;
}
}
}
else
{
AppendOrder appendOrder = new AppendOrder();
appendOrder.taskid = FrmMain.taskId;
List<BoxList> list = new List<BoxList>();
BoxList boxList = new BoxList();
boxList.src = outTaskCount[a]["FSTARTCELL"].ToString();
boxList.dst = "12004";
boxList.box = outTaskCount[a]["FPALLETBARCODE"].ToString();
boxList.rgsTaskId = int.Parse(outTaskCount[a]["FID"].ToString());
list.Add(boxList);
appendOrder.boxlist = list;
AppendCompleteCancelResponse appendResponse = SendDataToAgv.SendSuperaddTaskToAgv(appendOrder);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
DbHelperSQL.ExecuteSql("update t_manage_task set FStatus = '2' where fid=" + outTaskCount[a]["FID"]);
DbHelperSQL.ExecuteSql("update t_monitor_task set F_Status=2 where F_DeviceCommandIndex=4 and F_ManageTaskIndex=" + Convert.ToInt32(outTaskCount[0]["FID"]));
if(a== outTaskCount.Count-1 ||a%5==0)
{
CompleteOrder completeOrder = new CompleteOrder();
completeOrder.taskid = FrmMain.taskId;
AppendCompleteCancelResponse completeResponse = SendDataToAgv.SendStopAppendTaskToAgv(completeOrder);
}
}
}
}
DataView dv = DbHelperSQL.Query(strsql).Tables[0].DefaultView;
if (dv.Count > 0)
{
for (int i = 0; i < dv.Count; i++)
{
try
{
//1<><31><EFBFBD><EFBFBD>ȡÿ<C8A1><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD>豸ָ<E8B1B8><D6B8>
strM = "select top 1 min(F_MonitorIndex) as minMidx,f_status from T_Monitor_Task where " + taskkind + " and F_ManageTaskIndex = " + dv[i]["MIndex"] + " GROUP BY F_MonitorIndex, F_Status";
dvM = DbHelperSQL.Query(strM).Tables[0].DefaultView;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (dvM.Count > 0 && dvM[0]["minMidx"] != DBNull.Value)
{
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DataView InOut = DbHelperSQL.Query("select * from t_manage_task where fid='" + dv[i]["MIndex"] + "'").Tables[0].DefaultView;
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>漰AGV,<2C><><EFBFBD>漰,ֻ<><D6BB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>AGV<47>ϱ<EFBFBD><CFB1>ӿں<D3BF><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DataView isAgv = DbHelperSQL.Query("select * from t_monitor_task,t_manage_task where t_manage_task.fid=t_monitor_task.F_ManageTaskIndex and t_monitor_task.f_monitorindex='" + dvM[0]["minMidx"] + "' and F_Status = '0' and F_DeviceCommandIndex='4'").Tables[0].DefaultView;
if (isAgv.Count != 0)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (InOut[0]["FCONTROLTASKTYPE"].ToString() == "1")
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ǵ<EFBFBD>ִ<EFBFBD>еĵ<D0B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>·<EFBFBD><C2B7>˵<EFBFBD><CBB5>ӿ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>׷<EFBFBD>ӽӿ<D3BD>
//<2F><>agv<67><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҲӦ<D2B2><D3A6><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׷<EFBFBD><D7B7>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>жϴ<D0B6>ʱ<EFBFBD>豸ָ<E8B1B8><D6B8><EFBFBD>Ƿ񻹴<C7B7><F1BBB9B4><EFBFBD>agvȡ<76><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>β<EFBFBD><CEB2>,<2C><>Ҫ<EFBFBD><D2AA><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>***<2A>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ж<EFBFBD>,***<2A>ֶ<EFBFBD><D6B6><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>صĽӿڽ<D3BF><DABD><EFBFBD>,<2C><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵĵ<C9B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//DataView isFirstManageTask = DbHelperSQL.Query("select * from t_manage_task where FCONTROLTASKTYPE=1 and FIntoStepOK='1'").Tables[0].DefaultView;
DataView haveSendTask = DbHelperSQL.Query("select * from t_monitor_task where F_DeviceCommandIndex=5 and F_Status=0").Tables[0].DefaultView;
DataView haveTakeTask = DbHelperSQL.Query("select * from t_monitor_task where F_DeviceCommandIndex=4 and F_Status=0").Tables[0].DefaultView;
DataView monitorTask = DbHelperSQL.Query("select * from t_monitor_task").Tables[0].DefaultView;
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD>ӵ<EFBFBD><D3B5>̻<EFBFBD><CCBB>߼<EFBFBD>
if (FrmMain.taskCount %5==0|| haveTakeTask.Count==0)//<2F><>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>񵫶<EFBFBD><F1B5ABB6><EFBFBD><EFBFBD>ͻ<EFBFBD>;<EFBFBD><CDBE><><D6BB><EFBFBD>ڵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
CreateOrder createFirstOrder = new CreateOrder();
createFirstOrder.zoneid = 0;
createFirstOrder.poolid = 1;
createFirstOrder.orderno = DateTime.Now.ToString("yyyyMMddHHmmssfff");
//createFirstOrder.appendflag = false;//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
createFirstOrder.appendflag = true;
DataView RFIDCount = DbHelperSQL.Query("select * from T_InTask_QTY").Tables[0].DefaultView;
if (RFIDCount.Count > 0)
{
int number = int.Parse(RFIDCount[0]["count"].ToString());
if (number == 0)
{createFirstOrder.appendflag = false;
}
}
List<BoxList> list = new List<BoxList>();
BoxList boxList = new BoxList();
boxList.src = "12004";
boxList.dst = InOut[0]["FENDCELL"].ToString();
boxList.box = InOut[0]["FPALLETBARCODE"].ToString();
boxList.rgsTaskId = int.Parse(InOut[0]["FID"].ToString());
list.Add(boxList);
createFirstOrder.boxlist = list;
CreateOrderResponse createResponse = SendDataToAgv.SendFirstInTaskToAgv(createFirstOrder);
FrmMain.taskId = createResponse.result.taskid;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
DbHelperSQL.ExecuteSql("update t_monitor_task set F_Status=2 where F_DeviceCommandIndex=4 and F_ManageTaskIndex=" + Convert.ToInt32(InOut[0]["FID"]));
}
else//<2F><><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ʹ<><CAB9>׷<EFBFBD>ӽӿ<D3BD>
{
AppendOrder appendOrder = new AppendOrder();
appendOrder.taskid = FrmMain.taskId ;
List<BoxList> list = new List<BoxList>();
BoxList boxList = new BoxList();
boxList.src = "12004";
boxList.dst = InOut[0]["FENDCELL"].ToString();
boxList.box = InOut[0]["FPALLETBARCODE"].ToString();
boxList.rgsTaskId = int.Parse(InOut[0]["FID"].ToString());
list.Add(boxList);
appendOrder.boxlist = list;
AppendCompleteCancelResponse appendResponse = SendDataToAgv.SendSuperaddTaskToAgv(appendOrder);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
DbHelperSQL.ExecuteSql("update t_monitor_task set F_Status=2 where F_DeviceCommandIndex=4 and F_ManageTaskIndex=" + Convert.ToInt32(InOut[0]["FID"]));
//׷<><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>β<EFBFBD><CEB2>,<2C><><EFBFBD><EFBFBD>β<EFBFBD><CEB2>,<2C><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>׷<EFBFBD>ӽӿ<D3BD>
DataView RFIDCount = DbHelperSQL.Query("select * from T_InTask_QTY").Tables[0].DefaultView;
if (RFIDCount.Count > 0)
{
int number = int.Parse(RFIDCount[0]["count"].ToString());
if (number==0)
{
CompleteOrder completeOrder = new CompleteOrder();
completeOrder.taskid = FrmMain.taskId;
AppendCompleteCancelResponse completeResponse = SendDataToAgv.SendStopAppendTaskToAgv(completeOrder);
}
}else if (InOut[0]["LAST_BOX_REMARK"].ToString() == "1")
{
CompleteOrder completeOrder = new CompleteOrder();
completeOrder.taskid = FrmMain.taskId;
AppendCompleteCancelResponse completeResponse = SendDataToAgv.SendStopAppendTaskToAgv(completeOrder);
}
}
FrmMain.taskCount += 1;
if (FrmMain.taskCount % 5 == 0)
{
CompleteOrder completeOrder = new CompleteOrder();
completeOrder.taskid = FrmMain.taskId;
AppendCompleteCancelResponse completeResponse = SendDataToAgv.SendStopAppendTaskToAgv(completeOrder);
}
}
}
if (dvM[0]["F_Status"].ToString() == "0")
{
SendMonitorTask(Convert.ToInt32(dvM[0]["minMidx"]));
}
else
{
continue;
}
}
else
{
continue;
}
}
catch (Exception ex)
{
_CControlError = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message;
}
}//for<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dv = null;
dvM = null;
return;
}
else
{
dv = null;
dvM = null;
//_CControlError = "û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD>";
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(_CControlError) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", _CControlError, true);
}
if (string.IsNullOrEmpty(task_type))
{
FrmMain.taskCount = 0;
}
return;
}
}
catch (Exception ex)
{
throw ex;
}
}
else
{
//1.һ<><D2BB><EFBFBD>̿<EFBFBD><CCBF>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>
//2.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ʱ<EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF>˵<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//3.<2E>̿<EFBFBD><CCBF>˵<EFBFBD>ÿ<EFBFBD><C3BF>Ӧ<EFBFBD><D3A6>ȡ2*agv<67><76><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//4.ÿ<><C3BF><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><E8B7A2>һ<EFBFBD><D2BB>,<2C><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//5.ÿ<><C3BF>ȡǰ<C8A1><C7B0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>FID<49>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD>ȥ<EFBFBD>·<EFBFBD><C2B7><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DataView invGroupTask = DbHelperSQL.Query("select top 10 * from t_manage_task where FMANAGEID="+ taskDetail[0]["F_TASK_NO"].ToString()).Tables[0].DefaultView;
bool IsinvGroupTask = true;
foreach (DataRowView row in invGroupTask)
{
// <20>жϸ<D0B6> FID <20>Ƿ<EFBFBD><C7B7><EFBFBD> lastBatchFids <20>г<EFBFBD><D0B3>ֹ<EFBFBD>
if (CControl_Model.lastBatchFids.Contains(row["FID"].ToString()))
{
IsinvGroupTask = false;
break;
}
}
if (IsinvGroupTask && invGroupTask.Count>0)
{
CControl_Model.lastBatchFids.Clear();
CreateOrder invCreateOrder = new CreateOrder();
List<BoxList> invBoxLists = new List<BoxList>();
invCreateOrder.zoneid = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD>ģʽ,<2C><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
invCreateOrder.poolid = 1;
invCreateOrder.orderno = DateTime.Now.ToString("yyyyMMddHHmmssfff");
invCreateOrder.appendflag = false;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B2BB>׷<EFBFBD><D7B7>
for (int i = 0; i < invGroupTask.Count; i++)
{
CControl_Model.lastBatchFids.Add(invGroupTask[i]["FID"].ToString());
BoxList invBoxList = new BoxList();
//ȡ<><C8A1>λ<EFBFBD>ͷŻ<CDB7>λȡ<CEBB><C8A1><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (invGroupTask[i]["FCONTROLTASKTYPE"].ToString() == "1")
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
invBoxList.src = "12004";
invBoxList.dst = invGroupTask[i]["FENDCELL"].ToString();
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
invBoxList.src = invGroupTask[i]["FSTARTCELL"].ToString();
invBoxList.dst = "12004";
}
invBoxList.box = invGroupTask[i]["FPALLETBARCODE"].ToString();
invBoxList.rgsTaskId = Convert.ToInt32(invGroupTask[i]["FID"].ToString());
invBoxLists.Add(invBoxList);
}
invCreateOrder.boxlist = invBoxLists;
CreateOrderResponse invCreateOrderResponse = SendDataToAgv.SendOutOrInvTasksToAgv(invCreateOrder);
}
DataView dv = DbHelperSQL.Query(strsql).Tables[0].DefaultView;
if (dv.Count > 0)
{
for (int i = 0; i < dv.Count; i++)
{
try
{
//1<><31><EFBFBD><EFBFBD>ȡÿ<C8A1><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD>豸ָ<E8B1B8><D6B8>
strM = "select top 1 min(F_MonitorIndex) as minMidx,f_status from T_Monitor_Task where " + taskkind + " and F_ManageTaskIndex = " + dv[i]["MIndex"] + " GROUP BY F_MonitorIndex, F_Status";
dvM = DbHelperSQL.Query(strM).Tables[0].DefaultView;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (dvM.Count > 0 && dvM[0]["minMidx"] != DBNull.Value)
{
////<2F>̿<EFBFBD>ʱagv<67><76><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD>
//if (dvM[0]["F_DeviceIndex"].ToString() == "11001")
//{
// continue;
//}
if (dvM[0]["F_Status"].ToString() == "0")
{
SendMonitorTask(Convert.ToInt32(dvM[0]["minMidx"]));
}
else
{
continue;
}
}
else
{
continue;
}
}
catch (Exception ex)
{
_CControlError = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" + ex.Message;
}
}//for<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
//_CControlError = "û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD>";
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(_CControlError) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", _CControlError, true);
}
}
}
strM = null;
dvM = null;
if (string.IsNullOrEmpty(task_type))
{
FrmMain.taskCount = 0;
}
return;
}
/// <summary>
/// <20><>ȡÿ<C8A1><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,true<75><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false<73><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
/// </summary>
/// <param name="minMidx"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns>true<75><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false<73><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD></returns>
public bool GetFirstDeviceIFLocked(int minMidx, bool checkLockedstate)
{
char[] sep = new char[1] { '-' };
int msgIdx = 0;//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
int adidx = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
try
{
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ϣ
if (GetSendInfo(minMidx) == false) { return true; }
int DeviceIdx = _DeviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
int routeID = _routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
int serialNumber = _serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ManageTaskIdx = _ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ManageKindIdx = _ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int DeviceOrder = _DeviceOrder;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
int LockedState = _LockedState;
int Associate = _Associate;
int ManTaskReserve = _ManTaskReserve;
string AheadDetect = _AheadDetect;
int NumParam1 = _NumParam1;
int NumParam2 = _NumParam2;
int NumParam3 = _NumParam3;
int NumParam4 = _NumParam4;
int NumParam5 = _NumParam5;
int NumParam6 = _NumParam6;
string TxtParam = _TxtParam;
int DeviceKind = _DeviceKind;
int OutsideAltDevice = _OutsideAltDevice;
int InsideAltDevice = _InsideAltDevice;
int StartDevice = _StartDevice;
int EndDevice = _EndDevice;
int RouteKind = _RouteKind;
int AgvNo = _AgvNo;
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ռ<EFBFBD>ã<EFBFBD>RGV<47>ͶѶ<CDB6><D1B6><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>Ƿֲ<C7B7><D6B2><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ûִ<C3BB><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĵ<C2B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (((_LockedState == 0) && (checkLockedstate == true)) || (checkLockedstate == false))
{
#region <EFBFBD>Ƿ񱻵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼF_ManTaskReserve<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>INDEX<EFBFBD><EFBFBD>ͬ
if (_ManTaskReserve > 0 && (_ManTaskReserve.ToString() != _ManageKindIdx.ToString() + _ManageTaskIdx.ToString()))
{
return true;
}
#endregion <EFBFBD>Ƿ񱻵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԤԼF_ManTaskReserve<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>INDEX<EFBFBD><EFBFBD>ͬ
//3<><33>F_AheadDetect<63><74><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>顰;<3B><>)
if (AheadDetectOK(minMidx, _AheadDetect) == true)//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
{
//<2F><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>еĹ<D0B5><C4B9><EFBFBD><EFBFBD>豸F_AssociateDeviceIndex
//4<><34><EFBFBD>Ƿ<EFBFBD><C7B7>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>
//AssociateDevice = ccf.GetAssociateDevice(minMidx);
#region <EFBFBD><EFBFBD><EFBFBD><EFBFBD>_Associate
if (_Associate != 0)
{
//5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĹ<D0B5><C4B9><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>豸ָ<E8B1B8><D6B8>,<2C>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD>У<EFBFBD>
//<2F>ظ<EFBFBD><D8B8>ݹ鵽2
//split = AssociateDevice.Split(sep);
adidx = _Associate;
if (adidx != 0)
{
if (new MonitorTaskService().GetAssociateMonitor(minMidx) == 0)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22>豸ָ<E8B1B8>" + minMidx.ToString() + "<22>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + adidx.ToString() + "<22><><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22>豸ָ<E8B1B8>" + minMidx.ToString() + "<22>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + adidx.ToString() + "<22><><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", true);
}
return true;
}
if (GetFirstDeviceIFLocked(adidx, false) == false)
{
//6<><36><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><CDB9><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
//CStaticClass.MessageIndex++;
CStaticClass.MessageIndex = 1;
msgIdx = (CStaticClass.MessageIndex);
sdo = CommModeCreate.CreateSendDeviceOrder(_DeviceIdx);
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD>
bool sendok;
int[] gc = new int[6] { _NumParam2, _NumParam3, _NumParam1, _NumParam5, _NumParam6, _NumParam4 }; //ccf.GetCoordinatesFromMonitorTask(adidx);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((_DeviceKind == 1) || (_DeviceKind == 6))
{
//1<><31><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>RGV<47><56>6<EFBFBD><36>AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><E8B1B8><EFBFBD><EFBFBD>F_NeedOptimize='1'<27><>
//ֱ<><D6B1>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_Monitor_Task_Child<6C><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ccf.NeedOptimize(_DeviceIdx) == true)
{
ccf.InsertMonitorOptimizeChildTask(adidx);
sendok = true;
}
else
{
sendok = sdo.SendDeviceOrder(msgIdx, adidx, _DeviceOrder,
_DeviceIdx, gc[0], gc[1], gc[2], gc[3], gc[4], gc[5]);
}
}
else
{
sendok = sdo.SendDeviceOrder(msgIdx, adidx, _DeviceOrder, _DeviceIdx, gc[5]);
}
if (sendok == false)
{
return true;
}
else
{
//8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>¼<EFBFBD><C2BC>״̬F_StatusΪ1,<2C><><EFBFBD><EFBFBD><EFBFBD>豸Ϊռ<CEAA><D5BC>״̬<D7B4><CCAC>T_Base_device<63><65>F_LockedState=<3D>豸ָ<E8B1B8><EFBFBD><EEB5A5>
DbHelperSQL.ExecuteSql("update T_Monitor_Task set F_StartTime='" + DateTime.Now.ToString("u") + "',F_Status='1' where F_MonitorIndex=" + adidx);
//dbo.ExceSQL("update T_Base_device set F_LockedState=" + adidx + " where F_DeviceIndex=" + _DeviceIdx);
//<2F><><EFBFBD>ص<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>豸ֵ
_DeviceIdx = DeviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
_routeID = routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
_serialNumber = serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ManageTaskIdx = ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ManageKindIdx = ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_DeviceOrder = DeviceOrder;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
_LockedState = LockedState;
_Associate = Associate;
_ManTaskReserve = ManTaskReserve;
_AheadDetect = AheadDetect;
_NumParam1 = NumParam1;
_NumParam2 = NumParam2;
_NumParam3 = NumParam3;
_NumParam4 = NumParam4;
_NumParam5 = NumParam5;
_NumParam6 = NumParam6;
_TxtParam = TxtParam;
_DeviceKind = DeviceKind;
_OutsideAltDevice = OutsideAltDevice;
_InsideAltDevice = InsideAltDevice;
_StartDevice = StartDevice;
_EndDevice = EndDevice;
_RouteKind = RouteKind;
_AgvNo = AgvNo;
return false;
}
}
else
{
return true;
}
}
else//
{
//<2F><><EFBFBD>ص<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>豸ֵ
_DeviceIdx = DeviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
_routeID = routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
_serialNumber = serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ManageTaskIdx = ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ManageKindIdx = ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_DeviceOrder = DeviceOrder;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
_LockedState = LockedState;
_Associate = Associate;
_ManTaskReserve = ManTaskReserve;
_AheadDetect = AheadDetect;
_NumParam1 = NumParam1;
_NumParam2 = NumParam2;
_NumParam3 = NumParam3;
_NumParam4 = NumParam4;
_NumParam5 = NumParam5;
_NumParam6 = NumParam6;
_TxtParam = TxtParam;
_DeviceKind = DeviceKind;
_OutsideAltDevice = OutsideAltDevice;
_InsideAltDevice = InsideAltDevice;
_StartDevice = StartDevice;
_EndDevice = EndDevice;
_RouteKind = RouteKind;
_CControlError = "<22><><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ·<CFB8><C2B7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>豸ָ<E8B1B8>ƥ<EEB2BB>䣬ϵͳ<CFB5><CDB3>Ϊû<CEAA>й<EFBFBD><D0B9><EFBFBD><EFBFBD>豸ָ<E8B1B8><EFBFBD><EEB4A6><EFBFBD><EFBFBD>";
return false;
}
}
#endregion <EFBFBD><EFBFBD><EFBFBD><EFBFBD>_Associate
else
{
//<2F><><EFBFBD>ص<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>豸ֵ
_DeviceIdx = DeviceIdx;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
_routeID = routeID;//·<><C2B7>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
_serialNumber = serialNumber;//·<><C2B7><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ManageTaskIdx = ManageTaskIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_ManageKindIdx = ManageKindIdx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_DeviceOrder = DeviceOrder;//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
_LockedState = LockedState;
_Associate = Associate;
_ManTaskReserve = ManTaskReserve;
_AheadDetect = AheadDetect;
_NumParam1 = NumParam1;
_NumParam2 = NumParam2;
_NumParam3 = NumParam3;
_NumParam4 = NumParam4;
_NumParam5 = NumParam5;
_NumParam6 = NumParam6;
_TxtParam = TxtParam;
_DeviceKind = DeviceKind;
_OutsideAltDevice = OutsideAltDevice;
_InsideAltDevice = InsideAltDevice;
_StartDevice = StartDevice;
_EndDevice = EndDevice;
_RouteKind = RouteKind;
return false;
}
}
else
{
return true;
}
}
else
{
return true;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="minMidx"><3E><><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD></param>
/// <returns><3E>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>true<75><65>ʾ<EFBFBD>豸ִ<E8B1B8><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></returns>
public bool AheadDetectOK(int minMidx, string _AheadDetect)
{
//<2F><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD>顰;<3B><>)
DataView dvdv;
DataTable dt;
try
{
AheadDetectUnallow.Remove(0, AheadDetectUnallow.Length);//dzf
int[] States;
int DeviceIdx = _DeviceIdx;
int TaskIdx = minMidx;
int fid = ccf.GetManageTaskIndexfromMonitor(TaskIdx);
int mti = ccf.GetManageTaskKindIndexFromMonitor(TaskIdx);
int DeviceKind = BaseDeviceService.GetDeviceKindIdx(DeviceIdx);//20100617
//20100706
devinfo = BaseDeviceService.GetDeviceInfo(DeviceIdx);
if (devinfo.CommType == "OPCClient")//20100706 ֻ<><D6BB>OPCClientͨѶ<CDA8><D1B6><EFBFBD>͵ļ<CDB5><C4BC><EFBFBD><EFBFBD>豸״̬
{
#region OPCͨѶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//gds = CommModeCreate.CreateGetDeviceState(DeviceIdx);
try
{
//States = gds.GetDeviceState(DeviceIdx, TaskIdx);//1<><31><EFBFBD><EFBFBD>,2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,5<><EFBFBD><E8B1B8>
States = CStaticClass.GetDeviceState(DeviceIdx);
}
catch (Exception ex)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22><>ȡ״̬ʱ<CCAC><CAB1>" + ex.Message) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22><>ȡ״̬ʱ<CCAC><CAB1>" + ex.Message, true);
}
return false;
}
if (States == null)//û<><C3BB><EFBFBD>յ<EFBFBD><D5B5>κη<CEBA><CEB7><EFBFBD>ֵ
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>û<EFBFBD>յ<EFBFBD>PLC<4C><43><EFBFBD>ݣ<EFBFBD>") < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>û<EFBFBD>յ<EFBFBD>PLC<4C><43><EFBFBD>ݣ<EFBFBD>", true);
}
return false;
}
if ((States[1] == 1) || (States[1] >= 30))//<2F><><EFBFBD>л<EFBFBD><D0BB>߹<EFBFBD><DFB9><EFBFBD>
{
if (States[1] >= 30)
{
devinfo = BaseDeviceService.GetDeviceInfo(DeviceIdx);
int ErrId = States[1];
//20090910
//<2F>й<EFBFBD><D0B9><EFBFBD>¼<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
string devstr = "SELECT F_DeviceIndex FROM T_Base_Device where F_DeviceIndex=" + DeviceIdx + " and F_ErrorTaskNo=" + TaskIdx + "";
dt = DbHelperSQL.Query(devstr).Tables[0];
if (dt.Rows.Count >= 1)
{
//dbo.ExceSQL("update T_Monitor_Task set F_Status= " + ErrId + " where (F_MonitorIndex= " + TaskIdx + ") and ((F_Status<> " + ErrId + ") and (F_Status<> 3))");
return false;
}
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DbHelperSQL.ExecuteSql("update T_Base_Device set F_ErrorTaskNo= " + TaskIdx + " where F_DeviceIndex= " + DeviceIdx);
if (CStaticClass.IsEquals(devinfo.ReturnMessage, States, 2) == true) return false;
errs = BaseDeviceService.GetErrorInfo(Convert.ToInt32(_DeviceKind.ToString() + States[1].ToString()));
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf("<22><EFBFBD><E8B1B8><EFBFBD><EFBFBD>" + DeviceIdx + "<22>й<EFBFBD><D0B9>ϣ<EFBFBD>" + errs.ErrorName) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", "<22><EFBFBD><E8B1B8><EFBFBD><EFBFBD>" + DeviceIdx + "<22>й<EFBFBD><D0B9>ϣ<EFBFBD>" + errs.ErrorName, true);
}
FrmMain.FormInstance.notifyIcon1.BalloonTipText = "<22><><EFBFBD><EFBFBD>:" + devinfo.DeviceName + "," + DeviceIdx + "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>" + errs.ErrorName;
FrmMain.FormInstance.notifyIcon1.ShowBalloonTip(10000, "<22><><EFBFBD><EFBFBD>", devinfo.DeviceName + "," + DeviceIdx + "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>" + errs.ErrorName, System.Windows.Forms.ToolTipIcon.Warning);
if (mti == 1)
{
string sResult = string.Empty;
//RGDWCSServices.WMS.uploadWhExceptionInfo ss = new RGDWCSServices.WMS.uploadWhExceptionInfo();
//ss.Notify(devinfo.DeviceIndex.ToString(), devinfo.DeviceName, "׼<><D7BC>ִ<EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" + devinfo.DeviceName + "," + DeviceIdx + errs.ErrorName, DateTime.Now.ToString(), out sResult);
}
DbHelperSQL.ExecuteSql("update T_Manage_Task set FERRORCODE='" + <><D7BC>ִ<EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" + devinfo.DeviceName + "," + DeviceIdx + errs.ErrorName + "' where F_ManageTaskKindIndex=" + mti + " and FID=" + fid);
}
return false;
}
//20110724
if (devinfo.DeviceKind == 1 && States[3] == 0)//<2F>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return false;
}
#endregion OPCͨѶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//#endregion
#region <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((_AheadDetect != "") && (_AheadDetect != null))
{
char[] cc = new char[1];
cc[0] = ';';
string[] AheadDetect = _AheadDetect.Split(cc);
char[] dd = new char[1] { '.' };//20101118
string[] DS;
//ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0B9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IGetDeviceState<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//IGetDeviceState GDS;
int s = 0;
//int[] sss;
int fs = 1;
//int[] fsss;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><E7BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
for (int i = AheadDetect.GetLowerBound(0); i <= AheadDetect.GetUpperBound(0); i++)
{
if (AheadDetect[i].Trim().Length <= 0) continue;
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "H")//<2F><><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>̽<EFBFBD><CCBD>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡ
dvdv = DbHelperSQL.Query("SELECT F_DeviceIndex, F_HaveGoods FROM T_Base_Device where F_DeviceIndex=" +
Convert.ToInt32(AheadDetect[i].Trim().Substring(1)) + "").Tables[0].DefaultView;
if (dvdv.Count > 0)
{
if (Convert.ToInt32(dvdv[0]["F_HaveGoods"]) != 1)//dzf
{
AheadDetectUnallow.Append(AheadDetect[i].Trim().Substring(1) + "<22><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>");
}
fs = fs & Convert.ToInt32(dvdv[0]["F_HaveGoods"]);
}
continue;
}
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "N")//<2F><><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>̽<EFBFBD><CCBD>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡ
dvdv = DbHelperSQL.Query("SELECT F_DeviceIndex, F_HaveGoods FROM T_Base_Device where F_DeviceIndex=" +
Convert.ToInt32(AheadDetect[i].Trim().Substring(1)) + "").Tables[0].DefaultView;
if (dvdv.Count > 0)
{
if (Convert.ToInt32(dvdv[0]["F_HaveGoods"]) != 0)//dzf
{
AheadDetectUnallow.Append(AheadDetect[i].Trim().Substring(1) + "<22><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>");
}
s = s + Convert.ToInt32(dvdv[0]["F_HaveGoods"]);
}
continue;
}
//20090803<30><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "I")//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>idle
{
States = CStaticClass.GetDeviceState(Convert.ToInt32(AheadDetect[i].Trim().Substring(1)));
if (States != null)
{
if (States[1] != 0)//dzf
{
AheadDetectUnallow.Append(AheadDetect[i].Trim().Substring(1) + "<22><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>");
}
s = s + States[1];
}
continue;
}
#region 20101118<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>źţ<C5BA>D-12001.0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D12001.1<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//D-12001.2<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D12001.3<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>12001<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ͵<EFBFBD>λ<EFBFBD><EFBFBD>
if (AheadDetect[i].Trim().Substring(0, 1).ToUpper() == "D")
{
DS = AheadDetect[i].Trim().Substring(1).Split(dd);
int devicebyte = 0; int devbit = 0;
int.TryParse(DS[0], out devicebyte);
int.TryParse(DS[1], out devbit);
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E2B8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><E3BFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ǰ<EFBFBD>
if (devicebyte < 0)
{
//<2F><><EFBFBD><EFBFBD>ͨѶ<CDA8>ӿڻ<D3BF><DABB>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//GDS = CommModeCreate.CreateGetDeviceState(-Convert.ToInt32(AheadDetect[i]));
//fsss = GDS.GetDeviceState(-Convert.ToInt32(AheadDetect[i]), Convert.ToInt32(dvD[0]["F_MonitorIndex"]));
int fsn = CStaticClass.GetDevicePhotoelectric(-devicebyte, devbit);
if (fsn != 1)//dzf
{
StringBuilder kg = new StringBuilder();
switch (devbit)
{
case 0:
kg.Append("<22><><EFBFBD><EFBFBD>");
break;
case 1:
kg.Append("<22><>λ");
break;
default:
break;
}
AheadDetectUnallow.Append(Convert.ToInt32((-devicebyte)).ToString() + kg.ToString() + "<22><><EFBFBD><EFBFBD>ز<EFBFBD><D8B2>ڵ<EFBFBD><DAB5><EFBFBD>");
}
if (fsn == -1)//20101220
{
return false;
}
fs = fs & fsn;
}
else
{//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ͨѶ<CDA8>ӿڻ<D3BF><DABB>ù<EFBFBD><C3B9><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//GDS = CommModeCreate.CreateGetDeviceState(Convert.ToInt32(AheadDetect[i]));
//sss = GDS.GetDeviceState(Convert.ToInt32(AheadDetect[i]), Convert.ToInt32(dvD[0]["F_MonitorIndex"]));
int sssn = CStaticClass.GetDevicePhotoelectric(devicebyte, devbit);
if (sssn != 0)//dzf
{
StringBuilder kg = new StringBuilder();
switch (devbit)
{
case 0:
kg.Append("<22><><EFBFBD><EFBFBD>");
break;
case 1:
kg.Append("<22><>λ");
break;
case 2:
kg.Append("<22><>λ");
break;
default:
break;
}
AheadDetectUnallow.Append(devicebyte.ToString() + kg.ToString() + "<22><><EFBFBD><EFBFBD><E7BFAA><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>");
}
if (sssn == -1)//20101220
{
return false;
}
s = s + sssn;
}
}
#endregion 20101118<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
if ((s != 0) || (fs != 1))//dzf
{
UpdateAheadDetectUnallow(AheadDetectUnallow, minMidx);
return false;
}
}
}
#endregion <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return true;//20101011
}
catch (Exception ex)
{
throw ex;
}
finally
{
dt = null;
dvdv = null;
}
}
/// <summary>
/// <20><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// </summary>
/// <param name="minMidx"><3E>豸ָ<E8B1B8><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
public bool GetSendInfo(int minMidx)
{
DataView dvD;
try
{
string strD = "";
strD = "SELECT F_DeviceKindIndex,F_NumParam1,F_NumParam2,F_NumParam3,F_NumParam4," +
"F_NumParam5,F_NumParam6,F_TxtParam,F_AheadDetect,F_ManTaskReserve,F_LockedState," +
"F_Associate,F_SerialNumber,F_RouteID,F_DeviceIndex,F_DeviceCommandIndex," +
"F_MonitorIndex,F_ManageTaskIndex,F_ManageTaskKindIndex,F_OutsideAltDevice," +
"F_InsideAltDevice,F_StartDevice,F_EndDevice,F_RouteKind,F_CorrelDoubleFork,F_UseAwayFork,F_AgvNo,F_PickUpLocation " +
" FROM V_Monitor_Route_Device where F_MonitorIndex=" + minMidx;
dvD = DbHelperSQL.Query(strD).Tables[0].DefaultView;
if (dvD.Count > 0)
{
if (dvD[0]["F_AheadDetect"] != DBNull.Value)
{
_AheadDetect = dvD[0]["F_AheadDetect"].ToString();
}
else
{
_AheadDetect = "";
}
if (dvD[0]["F_ManTaskReserve"] != DBNull.Value)
{
_ManTaskReserve = Convert.ToInt32(dvD[0]["F_ManTaskReserve"]);
}
else
{
_ManTaskReserve = 0;
}
if (dvD[0]["F_Associate"] != DBNull.Value)
{
_Associate = Convert.ToInt32(dvD[0]["F_Associate"]);
}
else
{
_Associate = 0;
}
if (dvD[0]["F_LockedState"] != DBNull.Value)
{
_LockedState = Convert.ToInt32(dvD[0]["F_LockedState"]);
}
else
{
_LockedState = 0;
}
if (dvD[0]["F_NumParam1"] != DBNull.Value)
{
_NumParam1 = Convert.ToInt32(dvD[0]["F_NumParam1"]);
}
else
{
_NumParam1 = 0;
}
if (dvD[0]["F_NumParam2"] != DBNull.Value)
{
_NumParam2 = Convert.ToInt32(dvD[0]["F_NumParam2"]);
}
else
{
_NumParam2 = 0;
}
if (dvD[0]["F_NumParam3"] != DBNull.Value)
{
_NumParam3 = Convert.ToInt32(dvD[0]["F_NumParam3"]);
}
else
{
_NumParam3 = 0;
}
if (dvD[0]["F_NumParam4"] != DBNull.Value)
{
_NumParam4 = Convert.ToInt32(dvD[0]["F_NumParam4"]);
}
else
{
_NumParam4 = 0;
}
if (dvD[0]["F_NumParam5"] != DBNull.Value)
{
_NumParam5 = Convert.ToInt32(dvD[0]["F_NumParam5"]);
}
else
{
_NumParam5 = 0;
}
if (dvD[0]["F_NumParam6"] != DBNull.Value)
{
_NumParam6 = Convert.ToInt32(dvD[0]["F_NumParam6"]);
}
else
{
_NumParam6 = 0;
}
if (dvD[0]["F_TxtParam"] != DBNull.Value)
{
_TxtParam = dvD[0]["F_TxtParam"].ToString();
}
else
{
_TxtParam = "-";
}
_serialNumber = Convert.ToInt32(dvD[0]["F_SerialNumber"]);
_routeID = Convert.ToInt32(dvD[0]["F_RouteID"]);
_DeviceIdx = Convert.ToInt32(dvD[0]["F_DeviceIndex"]);
_DeviceOrder = Convert.ToInt32(dvD[0]["F_DeviceCommandIndex"]);
_ManageKindIdx = Convert.ToInt32(dvD[0]["F_ManageTaskKindIndex"]);
_ManageTaskIdx = Convert.ToInt32(dvD[0]["F_ManageTaskIndex"]);
_DeviceKind = Convert.ToInt32(dvD[0]["F_DeviceKindIndex"]);
if (dvD[0]["F_OutsideAltDevice"] != DBNull.Value)
{
_OutsideAltDevice = Convert.ToInt32(dvD[0]["F_OutsideAltDevice"]);
}
else
{
_OutsideAltDevice = 0;
}
if (dvD[0]["F_InsideAltDevice"] != DBNull.Value)
{
_InsideAltDevice = Convert.ToInt32(dvD[0]["F_InsideAltDevice"]);
}
else
{
_InsideAltDevice = 0;
}
_StartDevice = Convert.ToInt32(dvD[0]["F_StartDevice"]);
_EndDevice = Convert.ToInt32(dvD[0]["F_EndDevice"]);
_RouteKind = Convert.ToInt32(dvD[0]["F_RouteKind"]);
if (dvD[0]["F_CorrelDoubleFork"] != DBNull.Value)
{
_CorrelDoubleFork = Convert.ToInt32(dvD[0]["F_CorrelDoubleFork"]);
}
else
{
_CorrelDoubleFork = -1;
}
if (dvD[0]["F_AgvNo"] != DBNull.Value)
{
_AgvNo = Convert.ToInt32(dvD[0]["F_AgvNo"]);
}
else
{
_AgvNo = 65535;
}
if (dvD[0]["F_PickUpLocation"] != DBNull.Value)
{
_PickUpLocation = dvD[0]["F_PickUpLocation"].ToString();
}
else
{
_PickUpLocation = "0";
}
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
dvD = null;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="MonitorIndex"></param>
/// <returns></returns>
public bool SendMonitorTask(int MonitorIndex)
{
lock (thisLock)
{
char[] sep = new char[1] { '-' };
int msgIdx = 0;//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
bool sendok;
//string aa222 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
#region ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰλ<EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
MonitorIndex = GetDoubleForkMinRouteTask(MonitorIndex);
#endregion ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰλ<EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
//string aa22 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Ϣ
if (GetSendInfo(MonitorIndex) == false) { return false; }
devinfo = BaseDeviceService.GetDeviceInfo(_DeviceIdx);//dzf
if ((_DeviceKind == 1) && (devinfo.XCoor == 0))//dzf
{//<2F>Ѷ<EFBFBD><D1B6><EFBFBD>
AheadDetectUnallow.Clear();
AheadDetectUnallow.Append(_DeviceIdx.ToString() + "<22>Ĺ<EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ϵ磡");
UpdateAheadDetectUnallow(AheadDetectUnallow, MonitorIndex);
return false;
}
#region <EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ccf.GetManageTaskKindIndexFromMonitor(MonitorIndex) == 4)
{
CStaticClass.MessageIndex = 1;
msgIdx = (CStaticClass.MessageIndex);
sdo = CommModeCreate.CreateSendDeviceOrder(_DeviceIdx);
int[] gc = new int[6] { _NumParam2, _NumParam3, _NumParam1, _NumParam5, _NumParam6, _NumParam4 };
if (_DeviceKind == 1)//<2F><><EFBFBD><EFBFBD>
{
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[0], gc[1], gc[2], gc[3], gc[4], gc[5]);
}
else if (_DeviceKind == 32 || _DeviceKind == 33)//<2F><>ѡ-<2D><><EFBFBD><EFBFBD>
{
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, _PickUpLocation);
}
else
{
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[5]);
}
if (sendok == false)
{
if (sdo.CommLayerError != null)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(sdo.CommLayerError) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", sdo.CommLayerError, true);
}
}
return false;
}
else
{
//////////////////////////
ccf.SendOrderSuccess(_ManageKindIdx, _ManageTaskIdx, MonitorIndex, _DeviceIdx, _routeID);
#region ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
//20100323
devinfo = BaseDeviceService.GetDeviceInfo(_DeviceIdx);
if (devinfo.IfCorrelDoubleFork == "1")
{
//20220303 ˫<><CBAB><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
//if (Model.CGeneralFunction.DoubleForkIfSync(MonitorIndex, _DeviceIdx, _DeviceKind) == true)
//{
// string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(MonitorIndex, _DeviceIdx);
// if (df != null)
// {
// ccf.SendOrderSuccess(ccf.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0])), ccf.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0])), Convert.ToInt32(df[0]), Convert.ToInt32(df[2]), Convert.ToInt32(df[3]));
// //dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + df[0] + " where F_MonitorIndex=" + MonitorIndex + "");
// //dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + MonitorIndex + " where F_MonitorIndex=" + df[0] + "");
// }
//}
}
#endregion ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
return true;
}
}
#endregion <EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#region <EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(taskkind == 1<EFBFBD><EFBFBD>2)
//(taskkind == 1<><31>2)<29>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//2<><32><EFBFBD><EFBFBD>ȡÿ<C8A1><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD>豸״̬
//string aa221 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString();
if (GetFirstDeviceIFLocked(MonitorIndex, true) == false)//û<>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//7<><37><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
//CStaticClass.MessageIndex++;
CStaticClass.MessageIndex = 1;
msgIdx = (CStaticClass.MessageIndex);
sdo = CommModeCreate.CreateSendDeviceOrder(_DeviceIdx);
//<2F>ж<EFBFBD><D0B6><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>RGV<47>ͣ<EFBFBD><CDA3>ǣ<EFBFBD>
int[] gc = new int[6] { _NumParam2, _NumParam3, _NumParam1, _NumParam5, _NumParam6, _NumParam4 };//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (gc == null)
{
this._CControlError += "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><E8B1B8><EFBFBD>꣡";
return false;
}
if (_DeviceKind == 1)
{
//1<><31><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>RGV<47><56>6<EFBFBD><36>AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><E8B1B8><EFBFBD><EFBFBD>F_NeedOptimize='1'<27><>
//ֱ<><D6B1>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T_Monitor_Task_Child<6C><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ccf.NeedOptimize(_DeviceIdx) == true)
{
ccf.InsertMonitorOptimizeChildTask(MonitorIndex);
sendok = true;
}
else
{
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[0], gc[1], gc[2], gc[3], gc[4], gc[5]);
}
}
else if (_DeviceKind == 32)
{
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, _PickUpLocation);
}
else if (_DeviceKind == 33)
{
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, _PickUpLocation);
}
else
{
sendok = sdo.SendDeviceOrder(msgIdx, MonitorIndex, _DeviceOrder, _DeviceIdx, gc[5]); // <20><><EFBFBD>ͻ<EFBFBD><CDBB>ķ<EFBFBD><C4B7><EFBFBD>ָ<EFBFBD><D6B8> _NumParam4<6D><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾĿ<CABE><C4BF>λ<EFBFBD><CEBB>
}
if (sendok == false)
{
if (sdo.CommLayerError != null)
{
if (FrmControlMonitor.FormInstance.GetObjectText("tsStatus").IndexOf(sdo.CommLayerError) < 0)
{
FrmControlMonitor.FormInstance.FlashPanit("tsStatus", sdo.CommLayerError, true);
}
}
return false;
}
else//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
{
//////////////////////////
DbHelperSQL.ExecuteSql("update T_Monitor_Task set F_SendFlag='1' where F_MonitorIndex=" + MonitorIndex);//20100905ֻ<35>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ccf.SendOrderSuccess(_ManageKindIdx, _ManageTaskIdx, MonitorIndex, _DeviceIdx, _routeID);
#region ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
//20100323
devinfo = BaseDeviceService.GetDeviceInfo(_DeviceIdx);
if (devinfo.IfCorrelDoubleFork == "1")
{
//if (Model.CGeneralFunction.DoubleForkIfSync(MonitorIndex, _DeviceIdx, _DeviceKind) == true)
//{
// string[] df = Model.CGeneralFunction.GetDoubleForkMonitorInfo(MonitorIndex, _DeviceIdx);
// if (df != null)
// {
// ccf.SendOrderSuccess(ccf.GetManageTaskKindIndexFromMonitor(Convert.ToInt32(df[0])), ccf.GetManageTaskIndexfromMonitor(Convert.ToInt32(df[0])), Convert.ToInt32(df[0]), Convert.ToInt32(df[2]), Convert.ToInt32(df[3]));
// //dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + df[0] + " where F_MonitorIndex=" + MonitorIndex + "");
// //dbo.ExceSQL("update T_Monitor_Task set F_CorrelDoubleFork=" + MonitorIndex + " where F_MonitorIndex=" + df[0] + "");
// }
//}
}
#endregion ˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
return true;
}
}
else
{
return false;
}
#endregion <EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(taskkind == 1<EFBFBD><EFBFBD>2)
}
}
private int GetDeviceFromMonitor(int monitorIndex)
{
DataView dv = DbHelperSQL.Query("SELECT F_MonitorIndex, F_DeviceIndex FROM T_Monitor_Task WHERE (F_MonitorIndex = " + monitorIndex + ")").Tables[0].DefaultView;
if (dv.Count > 0)
{
return Convert.ToInt32(dv[0]["F_DeviceIndex"]);
}
else
{
return -1;
}
}
/// <summary>
/// <20>÷<EFBFBD><C3B7><EFBFBD> ȫ<><C8AB>ɾ<EFBFBD><C9BE> ԭ<><D4AD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>Ŀǰû<C7B0><C3BB>˫<EFBFBD><CBAB><EFBFBD>ֳ<EFBFBD> 20220303
/// </summary>
/// <param name="taskno"></param>
/// <returns></returns>
private int GetDoubleForkMinRouteTask(int taskno)
{
return taskno;
}
private bool IfExcuteFirst(int TaskIndex)
{
int[] zxy = ccf.GetCoordinatesFromMonitorTask(TaskIndex);
string zxystr = (zxy[3].ToString().Length == 1 ? "0" + zxy[0].ToString() : zxy[3].ToString()) + "-" +
((zxy[4].ToString().Length == 1) ? ("0" + zxy[4].ToString()) : (zxy[4].ToString())) + "-" +
((zxy[5].ToString().Length == 1) ? ("0" + zxy[5].ToString()) : (zxy[5].ToString()));
DataView dv = DbHelperSQL.Query("SELECT F_MoveCellCode FROM T_Base_LaneInfo WHERE (F_MoveCellCode = '" + zxystr + "')").Tables[0].DefaultView;
if (dv.Count > 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
{
return false;
}
return true;
}
private void UpdateAheadDetectUnallow(StringBuilder aheadUnallow, int taskindex)//dzf
{
#region
int rec = 0;
if (aheadUnallow.Length > 0)
{
rec = DbHelperSQL.ExecuteSql(string.Format("UPDATE T_Monitor_Task SET F_ErrorCode ='{0}' WHERE F_MonitorIndex ={1} ", aheadUnallow.ToString(), taskindex));//and F_ErrorCode <>'{0}'
}
else
{
rec = DbHelperSQL.ExecuteSql(string.Format("UPDATE T_Monitor_Task SET F_ErrorCode ='' WHERE F_MonitorIndex ={1} and F_ErrorCode <>''", aheadUnallow.ToString(), taskindex));
}
#endregion
}
//public string sendAGVTask(string F_MonitorIndex,string cell,string barcode)
//{
// string url = "POST /adapter/task/create";
// TaskApply taskapply = new TaskApply();
// task ts = new task();
// taskDescribe des = new taskDescribe();
// ts.TaskCode = F_MonitorIndex;
// des.ContainerCode = barcode;
// des.ContainerType = "<22><><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>";
// des.FromLocationCode = "12005";
// des.LocationCode = cell;
// ts.TaskDescribe.Add(des);
// taskapply.Tasks.Add(ts);
// taskapply.TaskType = "tote_inbound";
// string json = JsonConvert.SerializeObject(taskapply);
// string getJson = GetJson.Post(url, json);
// ApplyResult result = JsonConvert.DeserializeObject<ApplyResult>(getJson);
// if (result.CODE == "0")
// {
// return "success";
// }
// else
// {
// return "<22><><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>,Ϊԭ<CEAA><D4AD>" + result.MSG;
// }
//}
}
}