393 lines
15 KiB
C#
393 lines
15 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
using System.Data;
|
|||
|
using System.Threading;
|
|||
|
using Microsoft.VisualBasic;
|
|||
|
using DBFactory;
|
|||
|
using ICommLayer;
|
|||
|
|
|||
|
namespace SocketsTCPIP
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// ʹ<><CAB9>SocketsTCPIP<49>Ŀͻ<C4BF><CDBB>˽<EFBFBD><CBBD><EFBFBD>ͨѶ
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>Richard.Liu
|
|||
|
/// </summary>
|
|||
|
public class CSendDeviceOrder: ISendDeviceOrder
|
|||
|
{
|
|||
|
string _commLayerError;
|
|||
|
|
|||
|
public string CommLayerError
|
|||
|
{
|
|||
|
get { return _commLayerError; }
|
|||
|
set { _commLayerError = value; }
|
|||
|
}
|
|||
|
|
|||
|
DBOperator dbo = CClientTCPIP.dbo;
|
|||
|
string AGVAllowSingleFork = CommonClassLib.AppSettings.GetValue("AGVAllowSingleFork");
|
|||
|
public CSendDeviceOrder()
|
|||
|
{
|
|||
|
dbo.Open();
|
|||
|
}
|
|||
|
public bool SendDeviceOrder(int MessageIndex, int TaskIndex, int Order, int DeviceIndex, int StartX, int StartY, int StartZ, int EndX, int EndY, int EndZ,string DoubleFork)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD>һ<EFBFBD><D2BB><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
/// 1<>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3BA>־ͷ61<36><31><EFBFBD>ͻ<EFBFBD><CDBB>˶Ͽ<CBB6><CFBF><EFBFBD><EFBFBD><EFBFBD><EEA3BA>־ͷ62<36><32>
|
|||
|
/// 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EEA3BA>־ͷ63<36><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>1--8<><38><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>λ<EFBFBD><CEBB><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룫<EFBFBD>ͻ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>뺬<EFBFBD>壺0<E5A3BA><30><EFBFBD><EFBFBD><DEB6><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3>⣻2<E2A3BB><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><CCBB>գ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><CCA1><EFBFBD>ֽ<EFBFBD>Ļ<EFBFBD><C4BB>գ<EFBFBD>4<EFBFBD><34>ʣ<EFBFBD>ศ<EFBFBD>Ϸ<EFBFBD><CFB7>⣻5<E2A3BB><35><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3>⣬ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><CCBB><EFBFBD>
|
|||
|
/// 3ȡ<33><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ͷ65<36><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
|
|||
|
/// 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣȷ<D6B9>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϻؿ<CFBB><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ͷ67
|
|||
|
/// 5<><35>ѯС<D1AF><D0A1>״̬<D7B4><CCAC><EFBFBD><EFBFBD>־ͷ69<36><39>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="MessageIndex"><3E><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="TaskIndex"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="Order">AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="DeviceIndex"><3E>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="StartX">[N1]:ȡ<><C8A1><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="StartY"></param>
|
|||
|
/// <param name="StartZ"></param>
|
|||
|
/// <param name="EndX">[N2]:<3A>Ż<EFBFBD><C5BB><EFBFBD></param>
|
|||
|
/// <param name="EndY"></param>
|
|||
|
/// <param name="EndZ"></param>
|
|||
|
/// <returns><3E><><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD></returns>
|
|||
|
public bool SendDeviceOrder(int MessageIndex, int TaskIndex, int Order, int DeviceIndex, int StartX, int StartY, int StartZ, int EndX, int EndY, int EndZ)
|
|||
|
{
|
|||
|
//StartXȡ<58>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> EndX<64><58><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//28901<30><31>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ȡ 28902<30><32>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 28903<30><33>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ȡ 28904<30><34>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//28905<30><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ 28906<30><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 28907<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ 28908<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//28909<30><39>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ȡ 28910<31><30>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 28911<31><31>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ȡ 28912<31><32>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//20100413<31><33><EFBFBD><EFBFBD>StartX<74><58>ȡ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>복βԶ<CEB2><D4B6><EFBFBD>桢<EFBFBD><EFBFBD><F3A3A8BE>복β<EBB3B5><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//order==1 <20><><EFBFBD><EFBFBD>StartX<74><58>ȡ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD> ȡ<><C8A1><EFBFBD>ң<EFBFBD>order==2 <20><><EFBFBD><EFBFBD>EndX<64><58><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//վ<>ڳ<EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F>жϹ<D0B6><CFB9><EFBFBD>˫<EFBFBD><CBAB><EFBFBD>Ƿ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
char useAwayFork = '0';
|
|||
|
char channelLeft = '0';
|
|||
|
int AGVAddress = 0;
|
|||
|
int dorder = 0;
|
|||
|
int _device = GetAGVNoFromMonitor(TaskIndex);
|
|||
|
byte[] _Sdata;
|
|||
|
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
switch (Order)
|
|||
|
{
|
|||
|
case 1://ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> StartXȡ<58>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
GetDeviceInfoFromAGVGate(StartX, ref channelLeft, ref useAwayFork, ref AGVAddress);
|
|||
|
if ((Model.CGeneralFunction.DoubleForkIfSync(TaskIndex, DeviceIndex, 6) == false) && (AGVAllowSingleFork=="1"))//20100710
|
|||
|
{//<2F><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>
|
|||
|
GetDeviceInfoFromAGVGate(StartX, ref channelLeft, ref useAwayFork, ref AGVAddress);
|
|||
|
if (useAwayFork == '1')//ǰ<><C7B0>
|
|||
|
{
|
|||
|
if (channelLeft == '1')
|
|||
|
{
|
|||
|
dorder = 28901;//ǰ<><C7B0><EFBFBD><EFBFBD>ȡ
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dorder = 28903;//ǰ<><C7B0><EFBFBD><EFBFBD>ȡ
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (channelLeft == '1')
|
|||
|
{
|
|||
|
dorder = 28905;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dorder = 28907;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{//ͬ<><CDAC>
|
|||
|
if (channelLeft == '1')
|
|||
|
{
|
|||
|
dorder = 28909;//˫<><CBAB><EFBFBD><EFBFBD>ȡ
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dorder = 28911;//˫<><CBAB><EFBFBD><EFBFBD>ȡ
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
_Sdata = new byte[10];
|
|||
|
_Sdata[0] = 72;
|
|||
|
_Sdata[1] = 0;
|
|||
|
_Sdata[2] = Convert.ToByte(TaskIndex & 255);
|
|||
|
_Sdata[3] = Convert.ToByte(TaskIndex >> 8);
|
|||
|
_Sdata[4] = Convert.ToByte(AGVAddress & 255);
|
|||
|
_Sdata[5] = Convert.ToByte(AGVAddress >> 8);
|
|||
|
_Sdata[6] = Convert.ToByte(dorder & 255);
|
|||
|
_Sdata[7] = Convert.ToByte(dorder >> 8);
|
|||
|
_Sdata[8] = Convert.ToByte(_device & 255);
|
|||
|
_Sdata[9] = Convert.ToByte(_device >> 8);
|
|||
|
|
|||
|
return SendData(DeviceIndex, _Sdata);
|
|||
|
|
|||
|
case 2://<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GetDeviceInfoFromAGVGate(EndX, ref channelLeft, ref useAwayFork, ref AGVAddress);
|
|||
|
if ((Model.CGeneralFunction.DoubleForkIfSync(TaskIndex, DeviceIndex, 6) == false) && (AGVAllowSingleFork == "1"))//20100710
|
|||
|
{//<2F><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>
|
|||
|
GetDeviceInfoFromAGVGate(EndX, ref channelLeft, ref useAwayFork, ref AGVAddress);
|
|||
|
if (useAwayFork == '1')//ǰ<><C7B0>
|
|||
|
{
|
|||
|
if (channelLeft == '1')
|
|||
|
{
|
|||
|
dorder = 28902;//ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dorder = 28904;//ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else//<2F><><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
if (channelLeft == '1')
|
|||
|
{
|
|||
|
dorder = 28906;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dorder = 28908;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{//ͬ<><CDAC>
|
|||
|
if (channelLeft == '1')
|
|||
|
{
|
|||
|
dorder = 28910;//˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dorder = 28912;//˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
_Sdata = new byte[10];
|
|||
|
_Sdata[0] = 72;
|
|||
|
_Sdata[1] = 0;
|
|||
|
_Sdata[2] = Convert.ToByte(TaskIndex & 255);
|
|||
|
_Sdata[3] = Convert.ToByte(TaskIndex >> 8);
|
|||
|
_Sdata[4] = Convert.ToByte(AGVAddress & 255);
|
|||
|
_Sdata[5] = Convert.ToByte(AGVAddress >> 8);
|
|||
|
_Sdata[6] = Convert.ToByte(dorder & 255);
|
|||
|
_Sdata[7] = Convert.ToByte(dorder >> 8);
|
|||
|
_Sdata[8] = Convert.ToByte(_device & 255);
|
|||
|
_Sdata[9] = Convert.ToByte(_device >> 8);
|
|||
|
|
|||
|
return SendData(DeviceIndex, _Sdata);
|
|||
|
case 3:
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>Ӧ<EFBFBD><D3A6>֡75
|
|||
|
|
|||
|
_Sdata = new byte[6];
|
|||
|
_Sdata[0] = 75;
|
|||
|
_Sdata[1] = 0;
|
|||
|
TaskIndex = GetAGVTaskFromMonitor(TaskIndex);
|
|||
|
_Sdata[2] = Convert.ToByte(TaskIndex & 255);
|
|||
|
_Sdata[3] = Convert.ToByte(TaskIndex >> 8);
|
|||
|
_Sdata[4] = Convert.ToByte(65535 & 255);
|
|||
|
_Sdata[5] = Convert.ToByte(65535 >> 8);
|
|||
|
return SendData(DeviceIndex, _Sdata);
|
|||
|
case 4:
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GetDeviceInfoFromAGVGate(EndX, ref channelLeft, ref useAwayFork, ref AGVAddress);
|
|||
|
_Sdata = new byte[10];
|
|||
|
_Sdata[0] = 72;
|
|||
|
_Sdata[1] = 0;
|
|||
|
_Sdata[2] = Convert.ToByte(TaskIndex & 255);
|
|||
|
_Sdata[3] = Convert.ToByte(TaskIndex >> 8);
|
|||
|
_Sdata[4] = Convert.ToByte(AGVAddress & 255);
|
|||
|
_Sdata[5] = Convert.ToByte(AGVAddress >> 8);
|
|||
|
_Sdata[6] = Convert.ToByte(65535 & 255);//<2F><><EFBFBD><EFBFBD>
|
|||
|
_Sdata[7] = Convert.ToByte(65535 >> 8);
|
|||
|
_Sdata[8] = Convert.ToByte(_device & 255);
|
|||
|
_Sdata[9] = Convert.ToByte(_device >> 8);
|
|||
|
return SendData(DeviceIndex, _Sdata);
|
|||
|
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
_commLayerError = this.ToString() + ":SendDeviceOrder---" +ex.Message ;
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>AGV<47><56><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="MessageIndex"><3E><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="TaskIndex"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="Order">AGV<47><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MAN֪ͨLCͨѶ<CDA8><D1B6><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MAN֪ͨLCͨѶ<CDA8><D1B6><EFBFBD>ӶϿ<D3B6></param>
|
|||
|
/// <param name="DeviceIndex"><3E>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns><3E><><EFBFBD><EFBFBD>AGV<47>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD></returns>
|
|||
|
public bool SendDeviceOrder(int MessageIndex, int TaskIndex, int Order, int DeviceIndex, int ArrowDeviceIndex)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
byte[] _Sdata = new byte[2];
|
|||
|
_Sdata[0] =Convert.ToByte(Order);
|
|||
|
_Sdata[1] = 0;
|
|||
|
_Sdata[2] =Convert.ToByte(TaskIndex & 255);//<2F>Ͱ<EFBFBD>λ
|
|||
|
_Sdata[3] = Convert.ToByte(TaskIndex >> 8);//<2F>߰<EFBFBD>λ
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>DeviceIndex,<2C>õ<EFBFBD>SocketsͨѶ<CDA8>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
DataSet ds = dbo.ExceSQL("SELECT F_DeviceIndex,F_DeviceKindIndex, F_LocalIP, F_LocalPort, F_RemoteIP, F_RemotePort FROM T_Base_Device where F_DeviceIndex=" + DeviceIndex);
|
|||
|
DataView dv = ds.Tables[0].DefaultView;
|
|||
|
|
|||
|
if (ds.Tables[0].DefaultView.Count == 0)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
CClientTCPIP.Send(dv[0]["F_RemoteIP"].ToString(), (int)dv[0]["F_RemotePort"], _Sdata);
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
_commLayerError = this.ToString() + ":SendDeviceOrder---" + ex.Message;
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䰴Ʒ<E4B0B4><C6B7><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>Ϣ<EFBFBD><CFA2>15<31>ֽ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱд<CAB1><D0B4>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>д<EFBFBD><D0B4>
|
|||
|
/// </summary>
|
|||
|
/// <param name="DeviceIndex"><3E><><EFBFBD><EFBFBD>λ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="TobaccoCode"><3E><>1--13<31>ֽ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="HaveFirstProjectCode"><3E><>14<31>ֽ<EFBFBD>,1-<2D><>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD>,0-<2D><>һ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="IfSmallTobacco"><3E><>15<31>ֽ<EFBFBD>,1-С<><D0A1><EFBFBD><EFBFBD>,0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool SendDeviceOrder(int DeviceIndex, string TobaccoCode, bool HaveFirstProjectCode, bool IfSmallTobacco,int Count)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
bool SendData(int devID, byte[] _Sdata)
|
|||
|
{
|
|||
|
//<2F><><EFBFBD><EFBFBD>DeviceIndex,<2C>õ<EFBFBD>SocketsͨѶ<CDA8>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
DataSet ds = dbo.ExceSQL("SELECT F_DeviceIndex,F_DeviceKindIndex, F_LocalIP, F_LocalPort, F_RemoteIP, F_RemotePort FROM T_Base_Device where F_DeviceIndex=" + devID);
|
|||
|
DataView dv = ds.Tables[0].DefaultView;
|
|||
|
if (dv.Count == 0)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
if (CClientTCPIP.Send(dv[0]["F_RemoteIP"].ToString(), Convert.ToInt32(dv[0]["F_RemotePort"]), _Sdata) == false)
|
|||
|
{
|
|||
|
if (CClientTCPIP.TcpError != null) _commLayerError = CClientTCPIP.TcpError;
|
|||
|
return false;
|
|||
|
}
|
|||
|
return true;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// <20><>PLC<4C><43>DB<44><42>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="ItemNames"><3E><>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></param>
|
|||
|
/// <param name="ItemValues"><3E><>ǩֵ<C7A9><D6B5><EFBFBD><EFBFBD></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool WriteDBData(StringBuilder[] ItemNames, StringBuilder[] ItemValues,int deviceindex)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
void GetDeviceInfoFromAGVGate(int agvGateDevice,ref char channelLeft,ref char useAwayFork,ref int AGVAddress)
|
|||
|
{
|
|||
|
DataView dv;
|
|||
|
try
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT F_Address,F_IfChannelLeft,F_UseAwayFork FROM T_Base_AGV_Gate WHERE (F_AGVGateDeviceIndex = " + agvGateDevice + ")").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
channelLeft = Convert.ToChar(dv[0]["F_IfChannelLeft"]);
|
|||
|
useAwayFork = Convert.ToChar(dv[0]["F_UseAwayFork"]);
|
|||
|
AGVAddress = Convert.ToChar(dv[0]["F_Address"]);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
}
|
|||
|
}
|
|||
|
int GetAGVNoFromMonitor(int taskIndex)
|
|||
|
{
|
|||
|
|
|||
|
DataView dv;
|
|||
|
try
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT F_AgvNo FROM T_Monitor_Task WHERE (F_MonitorIndex = " + taskIndex + ") and (F_AgvNo is not null)").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
return Convert.ToInt32(dv[0][0]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 65535;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
}
|
|||
|
}
|
|||
|
int GetAGVTaskFromMonitor(int taskIndex)
|
|||
|
{
|
|||
|
|
|||
|
DataView dv;
|
|||
|
try
|
|||
|
{
|
|||
|
dv = dbo.ExceSQL("SELECT F_AgvTask FROM T_Monitor_Task WHERE (F_MonitorIndex = " + taskIndex + ") and (F_AgvTask is not null)").Tables[0].DefaultView;
|
|||
|
if (dv.Count > 0)
|
|||
|
{
|
|||
|
return Convert.ToInt32(dv[0][0]);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 65535;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
throw ex;
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
dv = null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|