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
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 "";
|
|
}
|
|
|
|
}
|
|
}
|