private Register(RegisterId id) { #if DEBUG char c = id.ToString()[0]; if (c >= '0' && c <= '9') { throw new ArgumentException(id.ToString() + " is not a valid register."); } #endif this.id = id; }
public IByteRegister GetByteRegister(RegisterId id) { return(id switch { RegisterId.B => B, RegisterId.C => C, RegisterId.D => D, RegisterId.E => E, RegisterId.H => H, RegisterId.L => L, RegisterId.F => F, RegisterId.A => A, _ => throw new Exception($"Could not find the register with ID: {id}") });
private void HandleWriteRequest(WriteRegister writeRegisterParams) { var description = this.configurationProvider.Devices .FirstOrDefault(d => d.Id.ToString() == writeRegisterParams.Device) ?.Registers.FirstOrDefault(r => r.IntegerAddress.ToString() == writeRegisterParams.Register); if (description?.WriteAddress == null) { return; } var registerId = new RegisterId(Convert.ToUInt32(writeRegisterParams.Device), description); var value = Convert.ToDouble(writeRegisterParams.Value); this .surveyService .ScheduleWriteOperation( new RegisterWriteRequest(registerId, description.IntegerAddress, description.FloatAddress, (uint)description.WriteAddress, value), writeRegisterParams.onFinish); }
/// <summary> /// Returns a register's value from its id /// </summary> /// <param name="regId"></param> /// <returns></returns> private uint GetRegisterValueFromId(RegisterId regId) { uint regVal = 0x00; switch (regId) { case RegisterId.A: regVal = registers.A; break; case RegisterId.B: regVal = registers.B; break; case RegisterId.C: regVal = registers.C; break; case RegisterId.D: regVal = registers.D; break; case RegisterId.R: regVal = registers.R; break; case RegisterId.S: regVal = registers.S; break; case RegisterId.AB: regVal = registers.AB; break; case RegisterId.CD: regVal = registers.CD; break; } return(regVal); }
public Register(RegisterId id, int size) { Id = id; Size = size; }
public Register(RegisterType type, int number, CpuSize size) { id = (RegisterId)(number | ((int)type << 4) | ((int)size << 8)); }
public ByteRegister(RegisterId id) { Id = id; }
public WordRegister(RegisterId id) { Id = id; }
public RegisterPair(RegisterId id, IByteRegister hi, IByteRegister lo) { Id = id; _hi = hi; _lo = lo; }
/// <summary> /// Set a register's value /// </summary> /// <param name="regId"></param> /// <param name="value"></param> private void SetRegisterValueFromId(RegisterId regId, uint value) { switch (regId) { case RegisterId.A: registers.A = (byte)value; break; case RegisterId.B: registers.B = (byte)value; break; case RegisterId.C: registers.C = (byte)value; break; case RegisterId.D: registers.D = (byte)value; break; case RegisterId.E: registers.E = (byte)value; break; case RegisterId.F: registers.F = (byte)value; break; case RegisterId.G: registers.G = (byte)value; break; case RegisterId.H: registers.H = (byte)value; break; case RegisterId.R: registers.R = (ushort)value; break; case RegisterId.S: registers.S = (ushort)value; break; case RegisterId.T: registers.T = (ushort)value; break; case RegisterId.U: registers.U = (ushort)value; break; case RegisterId.W: registers.W = value; break; case RegisterId.X: registers.X = value; break; case RegisterId.Y: registers.Y = value; break; case RegisterId.Z: registers.Z = value; break; case RegisterId.AB: registers.AB = (ushort)value; break; case RegisterId.CD: registers.CD = (ushort)value; break; case RegisterId.EF: registers.EF = (ushort)value; break; case RegisterId.GH: registers.GH = (ushort)value; break; case RegisterId.ABCD: registers.ABCD = value; break; case RegisterId.EFGH: registers.ABCD = value; break; case RegisterId.RS: registers.ABCD = value; break; case RegisterId.TU: registers.ABCD = value; break; } }