/******************************************************************************
 *                                                                         
 *               Copyright 2004-2006 Agilent Technologies
 *               All rights reserved.
 *
 *****************************************************************************/
 
#include "stdafx.h"
#include "CoAgilent34980A.h"


/// <summary>
/// Waits, up to MaxTime milliseconds, for the instrument to stop scanning through
/// the scan List.
/// </summary>
/// <remarks>
/// 
/// </remarks>
/// <returns>
///	
/// </returns>
/// <param name="MaxTimeMilliseconds">
///	Maximum time (milliseconds)
/// </param>
HRESULT Agilent34980A::IIviSwtchScan_WaitForScanComplete(long MaxTimeMilliseconds)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_METHOD_NOT_SUPPORTED, _T("WaitForScanComplete"));

	return hr;
}

/// <summary>
/// Sends a software trigger, which causes the switch to advance to the next entry
/// in the scan List.
/// </summary>
/// <remarks>
/// 
/// </remarks>
/// <returns>
///	
/// </returns>
HRESULT Agilent34980A::IIviSwtchScan_SendSoftwareTrigger()
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_METHOD_NOT_SUPPORTED, _T("SendSoftwareTrigger"));

	return hr;
}

/// <summary>
/// Stops the scan begun with Initiate method and returns the switch to the Idle
/// state.  This operation does not reset or initialize the state of the switch.
///  To determine the status of the scan, call the IsScanning method.
/// </summary>
/// <remarks>
/// 
/// </remarks>
/// <returns>
///	
/// </returns>
HRESULT Agilent34980A::IIviSwtchScan_Abort()
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_METHOD_NOT_SUPPORTED, _T("Abort"));

	return hr;
}

/// <summary>
/// Initiates the scan based on the current List property, and returns once the
/// scan has begun.  To stop scanning, call Abort.  When the switch is scanning,
/// operations other than reading properties, SendSoftwareTrigger and Abort are
/// invalid.
/// </summary>
/// <remarks>
/// 
/// </remarks>
/// <returns>
///	
/// </returns>
HRESULT Agilent34980A::IIviSwtchScan_Initiate()
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_METHOD_NOT_SUPPORTED, _T("Initiate"));

	return hr;
}

/// <summary>
/// Configures the scan Delay, Input trigger, and AdvancedOutput trigger properties,
/// in order to set the trigger behavior for the scan list established with the
/// ConfigureList method.
/// </summary>
/// <remarks>
/// 
/// </remarks>
/// <returns>
///	
/// </returns>
/// <param name="ScanDelay">
///	The minimum length of time you want the instrument to wait from the time the
/// instrument creates a path until it asserts a trigger on the Scan Advanced output
/// line (in seconds).  The driver uses this value to set the Scan Delay attribute.
///  See the attribute description for more details.
/// </param>
/// <param name="TriggerInput">
///	Trigger input.  The driver uses this value to set the Trigger Input attribute.
///  See the attribute description for more details.
/// </param>
/// <param name="AdvancedOutput">
///	Scan advanced output.  The driver uses this value to set the Scan Advanced Output
/// attribute.  See the attribute description for more details.
/// </param>
HRESULT Agilent34980A::IIviSwtchScan_ConfigureTrigger(double ScanDelay, IviSwtchTriggerInputEnum TriggerInput, IviSwtchAdvancedOutputEnum AdvancedOutput)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_METHOD_NOT_SUPPORTED, _T("ConfigureTrigger"));

	return hr;
}

/// <summary>
/// Configures the scan List and Mode properties.
/// </summary>
/// <remarks>
/// 
/// </remarks>
/// <returns>
///	
/// </returns>
/// <param name="List">
///	Scan list string.  The driver uses this value to set the Scan List attribute.
///  See the attribute description for more details.
/// </param>
/// <param name="Mode">
///	Scanning mode.  The driver uses this value to set the Scan Mode attribute. 
/// See the attribute description for more details.
/// </param>
HRESULT Agilent34980A::IIviSwtchScan_ConfigureList(BSTR List, IviSwtchScanModeEnum Mode)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_METHOD_NOT_SUPPORTED, _T("ConfigureList"));

	return hr;
}

/// <summary>
///	If True, the switch module is currently scanning through the scan list.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_IsScanning(VARIANT_BOOL* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("IsScanning"));

	return hr;
}

/// <summary>
///	If True, the switch module should scan continuously through the scan list, otherwise
/// it should only scan once through the scan list.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_Continuous(VARIANT_BOOL* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Continuous"));

	return hr;
}

/// <summary>
///	If True, the switch module should scan continuously through the scan list, otherwise
/// it should only scan once through the scan list.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_put_Continuous(VARIANT_BOOL Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Continuous"));

	return hr;
}

/// <summary>
///	The maximum number of channels on the column of a matrix or scanner.  If the
/// switch module is a scanner, this value is the number of input channels.  The
/// number returned is dependent on the WireMode property.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_NumberOfColumns(long* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("NumberOfColumns"));

	return hr;
}

/// <summary>
///	The maximum number of channels on the row of a matrix or scanner.  If the switch
/// module is a scanner, this value is the number of output channels (commons).
///  The number returned is dependent on the WireMode property.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_NumberOfRows(long* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("NumberOfRows"));

	return hr;
}

/// <summary>
///	The destination of the scan's advanced output trigger.  This trigger is asserted
/// each time a path is created.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_AdvancedOutput(IviSwtchAdvancedOutputEnum* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("AdvancedOutput"));

	return hr;
}

/// <summary>
///	The destination of the scan's advanced output trigger.  This trigger is asserted
/// each time a path is created.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_put_AdvancedOutput(IviSwtchAdvancedOutputEnum Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("AdvancedOutput"));

	return hr;
}

/// <summary>
///	The minimum length of time, in milliseconds, from creating the path to asserting
/// the scan's advanced output trigger.  The actual time may be longer.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_Delay(double* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Delay"));

	return hr;
}

/// <summary>
///	The minimum length of time, in milliseconds, from creating the path to asserting
/// the scan's advanced output trigger.  The actual time may be longer.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_put_Delay(double Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Delay"));

	return hr;
}

/// <summary>
///	The source of the trigger input.  Input triggers tell the switch module to advance
/// to the next entry in the scan list and close the specified channel.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_Input(IviSwtchTriggerInputEnum* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Input"));

	return hr;
}

/// <summary>
///	The source of the trigger input.  Input triggers tell the switch module to advance
/// to the next entry in the scan list and close the specified channel.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_put_Input(IviSwtchTriggerInputEnum Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Input"));

	return hr;
}

/// <summary>
///	A list of the channels to scan, and the order to scan them in.  The format of
/// this string is described in the IviSwtch specification.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_List(BSTR* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("List"));

	return hr;
}

/// <summary>
///	A list of the channels to scan, and the order to scan them in.  The format of
/// this string is described in the IviSwtch specification.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_put_List(BSTR Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("List"));

	return hr;
}

/// <summary>
///	The connection breaking behavior of the switch during a scan.  Previous paths
/// may be broken before making new ones, after making new ones, or not broken at
/// all.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_get_Mode(IviSwtchScanModeEnum* Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Mode"));

	return hr;
}

/// <summary>
///	The connection breaking behavior of the switch during a scan.  Previous paths
/// may be broken before making new ones, after making new ones, or not broken at
/// all.
/// </summary>
/// <remarks>
///	
/// </remarks>
HRESULT Agilent34980A::IIviSwtchScan_put_Mode(IviSwtchScanModeEnum Val)
{
	HRESULT hr = S_OK;

	hr = ReportError(IDS_E_IVI_PROPERTY_NOT_SUPPORTED, _T("Mode"));

	return hr;
}


