/// <summary> /// 写数据 /// </summary> /// <param name="startAddress">起始地址</param> /// <param name="setContents">需要设置的数据</param> /// <returns>设置是否成功</returns> public override async Task <bool> SetDatasAsync(string startAddress, object[] setContents) { try { var inputStruct = new WriteDataModbusInputStruct(SlaveAddress, startAddress, setContents, AddressTranslator, Endian); var outputStruct = await Wrapper.SendReceiveAsync <WriteDataModbusOutputStruct>(Wrapper[typeof(WriteDataModbusProtocal)], inputStruct); return(outputStruct?.WriteCount == setContents.Length); } catch { return(false); } }
/// <summary> /// 写数据 /// </summary> /// <param name="startAddress">起始地址</param> /// <param name="setContents">需要设置的数据</param> /// <returns>设置是否成功</returns> public override async Task <bool> SetDatasAsync(string startAddress, object[] setContents) { try { var inputStruct = new WriteDataModbusInputStruct(SlaveAddress, startAddress, setContents, AddressTranslator, Endian); var outputStruct = await ProtocolWrapper.SendReceiveAsync <WriteDataModbusOutputStruct>(ProtocolWrapper[typeof(WriteDataModbusProtocal)], inputStruct); return(outputStruct?.WriteCount == setContents.Length); } catch (Exception e) { Log.Error(e, $"ModbusUtility -> SetDatas: {ConnectionString} error"); return(false); } }