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

127 lines
3.5 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;
namespace BarcodeCheck
{
/// <summary>
/// 条码比对的通讯接口派生类
/// 获得设备状态类
/// 创建者Richard.Liu
/// </summary>
public class CGetDeviceState:IGetDeviceState
{
DBOperator dbo = CBarcodeCheck.dbo;
string _commLayerError;
public string CommLayerError
{
get { return _commLayerError; }
set { _commLayerError = value; }
}
public CGetDeviceState()
{
}
//~CGetDeviceState()
//{
// dbo.Close();
//}
/// <summary>
///检测开关: 0-无货
/// 1-有货
///第1字
///可下达指令的设备:读/写标志位
///1-写入数据
///2-读出数据正确
///确认按钮:
///1-无货确认
///2-有货确认
/// 第2字
///可下达指令的设备:命令
///堆垛机:
///1-任务完成
///其他植表示错误
/// 穿梭车:
///1-接货完成
///2-送货完成
///3-停止完成
///4-到1#位置
///5-到2#位置
/// …
///其他植表示错误
/// 输送机、台车:
///1-入库完成
///2-出库完成
///3-送货完成
///4-停止完成
///其他植表示错误
///确认按钮:
///一个变化的值,每确认一次,该值变化一次,以标志一个
///新的确认消息。例如可以是0、1交替变化也可以是递
///增变化。
///第3字 任务号,即上位机下达任务时的任务号
///第4字 堆垛机:
///终点X坐标沿轨道方向
/// 穿梭车、台车、输送机:
///前三个字的异或值
/// 第5字以后部分只对堆垛机有意义
///第5字 终点Y坐标沿高度方向
///第6字 前5个字的异或值
/// </summary>
/// <param name="DeviceIndex">设备编号</param>
/// <returns>获得上行消息成功后发送应答消息后返回6或4个字节型状态</returns>
public int [] GetDeviceState(int DeviceIndex, int TaskIndex)
{
//20100127
DataView dv; int[] data;
try
{
//20100127
dv = dbo.ExceSQL("select F_TxtParam from t_monitor_task where f_monitorindex =" + TaskIndex).Tables[0].DefaultView;
if (dv[0]["F_TxtParam"].ToString().Length > 0)
{
if (CBarcodeCheck.BarCodeCheck(TaskIndex, DeviceIndex, dv[0]["F_TxtParam"].ToString()) == true)
{
//20100127
data = new int[6] { 0, 0, 0, 0, 0, 0 };
data[1] = 1;
data[2] = TaskIndex;
data[5] = DeviceIndex;
return data;
}
else
{
return null;
}
}
else
{
return null;
}
}
catch (Exception ex)
{
_commLayerError = "VirtualStation.CGetDeviceState" + ":GetDeviceState---" + ex.Message;
return null;
}
finally
{//20100127
data = null;
dv = null;
}
}
public string GetStringData(int DeviceIndex, int TaskIndex)
{
return "";
}
}
}