点击或拖拽改变大小

BinaryCommunicationReadFromCoreServerAsync 方法 (Byte, Boolean, Boolean)

将二进制的数据发送到管道中去,然后从管道里接收二进制的数据回来,并返回是否成功的结果对象。
Send binary data to the pipeline, and then receive binary data back from the pipeline, and return whether the success of the result object

命名空间:  HslCommunication.Core.Net
程序集:  HslCommunication (在 HslCommunication.dll 中) 版本:12.1.2.0 (12.1.2.0)
语法
public virtual Task<OperateResult<byte[]>> ReadFromCoreServerAsync(
	byte[] send,
	bool hasResponseData,
	bool usePackAndUnpack
)

参数

send
类型:SystemByte
发送的完整的报文信息
hasResponseData
类型:SystemBoolean
是否有等待的数据返回
usePackAndUnpack
类型:SystemBoolean
是否需要对命令重新打包,在重写PackCommandWithHeader(Byte)方法后才会有影响

返回值

类型:TaskOperateResultByte
接收的完整的报文信息
备注
本方法用于实现本组件还未实现的一些报文功能,例如有些modbus服务器会有一些特殊的功能码支持,需要收发特殊的报文,详细请看示例
示例
此处举例有个modbus服务器,有个特殊的功能码0x09,后面携带子数据0x01即可,发送字节为 0x00 0x00 0x00 0x00 0x00 0x03 0x01 0x09 0x01
ReadFromCoreServer示例
ModbusTcpNet modbus = new ModbusTcpNet( "192.168.0.100" );

// 此处举例实现特殊的modbus功能码
OperateResult<byte[]> read = modbus.ReadFromCoreServer( SoftBasic.HexStringToBytes( "0x00 0x00 0x00 0x00 0x00 0x03 0x01 0x09 0x01" ) );
if (read.IsSuccess)
{
    // 成功,开始解析从服务器返回的数据,是一条完整的报文信息
    Console.WriteLine( SoftBasic.ByteToHexString( read.Content, ' ' ) );
}
else
{
    // 失败
}
参见