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(); } }
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); }