SCLS/SSWCS_JXDL(2019)/SocketsTCPIP/CGetDeviceState.cs
2025-05-19 09:45:29 +08:00

127 lines
4.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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]:任务索引:2000029000
///[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 "";
}
}
}