public override async Task <bool> SetDatasAsync(string startAddress, object[] setContents) { try { var split = GetSeperator?.Invoke() ?? '/'; var writeRequestOpcInputStruct = new WriteRequestOpcInputStruct(startAddress, split.ToString(), setContents[0]); var writeRequestOpcOutputStruct = await Wrapper.SendReceiveAsync <WriteRequestOpcOutputStruct>(Wrapper[typeof(WriteRequestOpcProtocal)], writeRequestOpcInputStruct); return(writeRequestOpcOutputStruct?.WriteResult == true); } catch (Exception e) { return(false); } }
public override async Task <byte[]> GetDatasAsync(string startAddress, int getByteCount) { try { var split = GetSeperator?.Invoke() ?? '/'; var readRequestOpcInputStruct = new ReadRequestOpcInputStruct(startAddress, split.ToString()); var readRequestOpcOutputStruct = await Wrapper.SendReceiveAsync <ReadRequestOpcOutputStruct>(Wrapper[typeof(ReadRequestOpcProtocal)], readRequestOpcInputStruct); return(readRequestOpcOutputStruct?.GetValue); } catch (Exception) { return(null); } }
/// <summary> /// 获取数据 /// </summary> /// <param name="startAddress">开始地址</param> /// <param name="getByteCount">获取字节数个数</param> /// <returns>接收到的byte数据</returns> public override async Task <byte[]> GetDatasAsync(string startAddress, int getByteCount) { try { var split = GetSeperator?.Invoke() ?? '/'; var readRequestOpcInputStruct = new ReadRequestOpcInputStruct(startAddress.Split('\r'), split); var readRequestOpcOutputStruct = await Wrapper.SendReceiveAsync <ReadRequestOpcOutputStruct>(Wrapper[typeof(ReadRequestOpcProtocal)], readRequestOpcInputStruct); return(readRequestOpcOutputStruct?.GetValue); } catch (Exception e) { Log.Error(e, $"OpcUtility -> GetDatas: {ConnectionString} error"); return(null); } }