济宁李尔调度
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
4.3 KiB

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using ICommLayer;
using DBFactory;
using CommonClassLib;
namespace SocketsTCPIP
{
/// <summary>
/// 使用SocketsUDP的客户端进行通讯
/// 获得设备状态
/// 创建者:Richard.Liu
/// </summary>
public class CGetDeviceState:IGetDeviceState
{
string _commLayerError;
public string CommLayerError
{
get { return _commLayerError; }
set { _commLayerError = value; }
}
DBOperator dbo =CClientTCPIP.dbo;
public CGetDeviceState()
{
dbo.Open();
}
/// <summary>
/// [T]:任务索引:20000-29000
///[N]:节点索引
///[N1]:取货点
///[N2]:放货点
/// [R]:移载类型:
///0: 取货
///1: 放货
///[A]:LC的回复:
/// 0:同意
/// 1:不同意
///LC通知MAN任务开始执行63[T]
///LC通知MAN某AGV到位64[T][N][R]
///LC通知MAN移载开始65[T][N][R]
///LC通知MAN移载结束66[T][N][R]
///LC通知MAN移载暂停67[T][N][R]
///LC通知MAN移载恢复68[T][N][R]
///LC通知MAN AGV故障69[T][N][R]
///LC通知MAN任务结束70[T]
///LC通知MAN任务删除应答81[T][A]
/// </summary>
/// <param name="DeviceIndex"></param>
/// <param name="TaskIndex"></param>
/// <returns></returns>
public int[] GetDeviceState(int DeviceIndex, int TaskIndex)
{
try
{
////根据DeviceIndex,得到Sockets通讯的初始设置
//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 null;
//}
//int[] _IntData = new int[14];
//byte[] _GetData = new byte[4];
//////////////////////////////////////////
//_GetData = CClientTCPIP.Receive(dv[0]["F_RemoteIP"].ToString(), (int)dv[0]["F_RemotePort"]);
//if (_GetData != null)
//{
// //////////////////////////////////////
// if ((_GetData[0] == 70) && (Convert.ToInt32(_GetData[3] * Math.Pow(2, 8) + _GetData[2]) == TaskIndex))
// {
// _IntData[1] = 1;//1-任务完成
// }
// else if ((_GetData[0] == 71))//任务开始
// {
// _IntData[1] = 3;
// }
// else if ((_GetData[0] == 69))//AGV故障
// {
// _IntData[1] = 69;
// }
// //82 是否接受任务:1拒绝;0接受;
// else if ((_GetData[2] ==0)&&(_GetData[0] == 82) && (Convert.ToInt32(_GetData[5] * Math.Pow(2, 8) + _GetData[4]) == TaskIndex))//AGV是否接受任务:0接受;1拒绝;
// {
// _IntData[0] = Convert.ToInt32(_GetData[3] * Math.Pow(2, 8) + _GetData[2]);
// _IntData[1] = 3;
// }
// else //64,65,66,67,68
// {
// _IntData[1] = 2;//2-报告坐标
// _IntData[3] = Convert.ToInt32(_GetData[5] * Math.Pow(2, 8) + _GetData[4]);
// }
// //_IntData[0] = 0;//实际值
// _IntData[2] = TaskIndex;//任务号
// _IntData[4] = 0;
// _IntData[5] = DeviceIndex;// 设备号
// //cct.CloseSockets();
// return _IntData;
//}
//else
//{
// //cct.CloseSockets();
// _commLayerError = "CClientTCPIP" + ":GetDeviceState---" + CClientTCPIP.TcpError;
// return null;
//}
return null;
}
catch (Exception ex)
{
throw ex;
}
}
public string GetStringData(int DeviceIndex, int TaskIndex)
{
return "";
}
}
}