/// <summary> /// Parses GPIB Auxiliary Commands - for now just a small subset of them. /// </summary> private void DispatchAuxiliaryCommand(AuxiliaryCommand cmd, bool cs) { switch (cmd) { case AuxiliaryCommand.swrst: ResetGPIB(); break; case AuxiliaryCommand.lon: _iListen = cs; break; case AuxiliaryCommand.ton: _iTalk = cs; break; case AuxiliaryCommand.gts: _standby = cs; break; } }
/// <summary> /// Writes incoming data to the GPIB registers. /// </summary> private void WriteRegisters(GPIBWriteRegister register, byte value) { // Save the value _registers[(int)register] = value; switch (register) { case GPIBWriteRegister.InterruptMask0: #if TRACING_ENABLED if (Trace.TraceOn) { Trace.Log(LogType.GPIB, "GPIB InterruptMask0 set to {0:x2}", value); } #endif break; case GPIBWriteRegister.AuxiliaryCommand: AuxiliaryCommand cmd = (AuxiliaryCommand)(value & 0x1f); bool cs = (value & 0x80) != 0; #if TRACING_ENABLED if (Trace.TraceOn) { Trace.Log(LogType.GPIB, "GPIB Auxiliary command is {0}, cs {1}", cmd, cs); } #endif DispatchAuxiliaryCommand(cmd, cs); break; default: #if TRACING_ENABLED if (Trace.TraceOn) { Trace.Log(LogType.GPIB, "GPIB Write Register {0} with {1:x2}", register, value); } #endif break; } }