public async Task <bool> Write(RegisterWriteRequest request)
        {
            try
            {
                this.OpenPort();
                if (request.FloatAddress == null)
                {
                    await this.modbusMaster.WriteSingleRegisterAsync(
                        (byte)request.Id.Device,
                        (ushort)request.WriteAddress,
                        (ushort)request.Value);
                }
                else
                {
                    await this.modbusMaster.WriteMultipleRegistersAsync(
                        (byte)request.Id.Device,
                        (ushort)request.WriteAddress,
                        this.ToUshort(request.Value));
                }

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
            finally
            {
                this.ClosePort();
            }
        }
示例#2
0
        public async Task <bool> Write(RegisterWriteRequest request)
        {
            await Task.Delay(1000);

            this.cache.Remove(new Tuple <uint, uint>(request.Id.Device, request.IntegerAddress));
            this.cache.Add(new Tuple <uint, uint>(request.Id.Device, request.IntegerAddress), request.Value);
            return(true);
        }