Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
        /// <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;
            }
        }