Exemple #1
0
        /// <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);
            }
        }