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








/// <summary>
/// Sets the trigger source to the specified trigSource, selects the INTernal clock
/// source, and sets output pacing of each trace point to the specified period.
/// </summary>
/// <remarks>
/// If the specified period is not possible, the next closest possible period is
/// used.
/// </remarks>
/// <returns>
///	
/// </returns>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
/// <param name="TriggerSource">
///	Trigger Source [Manual|External|Immediate].
/// </param>
/// <param name="Period">
///	Desired period in seconds.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_ConfigureInternalPacing(BSTR ChannelList, Agilent34951ATraceTriggerSourceEnum TriggerSource, double Period)
{
	HRESULT hr = S_OK;

	hr = InstrPrintCommand();

	return hr;
}







/// <summary>
/// Sets the trigger source to the specified TriggerSource, selects the EXTernal
/// clock source, and sets trace point output pacing to be the EXTernal clock divided
/// by the divisor parameter.
/// </summary>
/// <remarks>
/// If the specified divisor is not possible, the next closest value is used.
/// </remarks>
/// <returns>
///	
/// </returns>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
/// <param name="TriggerSource">
///	The trigger source for enabling outputs from the specified channels
/// </param>
/// <param name="Divisor">
///	Any integer value between 1 and 65535.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_ConfigureExternalPacing(BSTR ChannelList, Agilent34951ATraceTriggerSourceEnum TriggerSource, long Divisor)
{
	HRESULT hr = S_OK;

	hr = InstrPrintCommand();

	return hr;
}




/// <summary>
/// Starts trace outputs from the specified channels on the 34951A Isolated DAC Module.
/// </summary>
/// <remarks>
/// If you have selected the STEPped trigger mode, then this command will advance the trace output to the next data point in memory.
/// </remarks>
/// <returns>
///	
/// </returns>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_TriggerImmediate(BSTR ChannelList)
{
	HRESULT hr = S_OK;

	hr = InstrPrintCommand();

	return hr;
}



/// <summary>
///	Sets or gets the trigger source for enabling outputs on the specified channels
/// on the 34951A Isolated DAC Module
/// </summary>
/// <remarks>
///	
/// </remarks>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_get_Source(BSTR ChannelList, Agilent34951ATraceTriggerSourceEnum* val)
{
	HRESULT hr = S_OK;

	hr = InstrQueryCommandEnum(val);

	return hr;
}



/// <summary>
///	Sets or gets the trigger source for enabling outputs on the specified channels
/// on the 34951A Isolated DAC Module
/// </summary>
/// <remarks>
///	
/// </remarks>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_put_Source(BSTR ChannelList, Agilent34951ATraceTriggerSourceEnum val)
{
	HRESULT hr = S_OK;

	hr = InstrPrintCommand();

	return hr;
}


/// <summary>
///	Sets or gets the clock source for pacing trace outputs on the specified channels
/// on the 34951A Isolated DAC Module.
/// </summary>
/// <remarks>
///	If the clock source is set to Agilent34951AClockSourceStep a trigger immediate
/// command is used  to output each point in the waveform (see Trigger.Immediate
/// Property).  This allows the user to step through the waveform a point at a time.
/// </remarks>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_get_ClockSource(BSTR ChannelList, Agilent34951AClockSourceEnum* val)
{
	HRESULT hr = S_OK;

	hr = InstrQueryCommandEnum(val);

	return hr;
}


/// <summary>
///	Sets or gets the clock source for pacing trace outputs on the specified channels
/// on the 34951A Isolated DAC Module.
/// </summary>
/// <remarks>
///	If the clock source is set to Agilent34951AClockSourceStep a trigger immediate
/// command is used  to output each point in the waveform (see Trigger.Immediate
/// Property).  This allows the user to step through the waveform a point at a time.
/// </remarks>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_put_ClockSource(BSTR ChannelList, Agilent34951AClockSourceEnum val)
{
	HRESULT hr = S_OK;

	hr = InstrPrintCommand();

	return hr;
}



/// <summary>
///	Sets or gets the period used to output each point in the trace, when internal
/// pacing is selected.
/// </summary>
/// <remarks>
///	The ClockPeriod setting is used only when the trigger system is using internal
/// pacing (Trigger.ClockSource = Agilent34951AClockSourceInternal).
/// See Also:   ConfigureInternalPacing,  ClockSource.
/// </remarks>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_get_ClockPeriod(BSTR ChannelList, double* val)
{
	HRESULT hr = S_OK;

	hr = InstrQueryCommand(val);

	return hr;
}

/// <summary>
///	Sets or gets the period used to output each point in the trace, when internal
/// pacing is selected.
/// </summary>
/// <remarks>
///	The ClockPeriod setting is used only when the trigger system is using internal
/// pacing (Trigger.ClockSource = Agilent34951AClockSourceInternal).
/// See Also:   ConfigureInternalPacing,  ClockSource.
/// </remarks>
/// <param name="ChannelList">
///	One or more channels in the form sccc. Select from s001, s002, s003, or s004.
/// </param>
HRESULT Agilent34951A::IAgilent34951ATrigger_put_ClockPeriod(BSTR ChannelList, double val)
{
	HRESULT hr = S_OK;

	hr = InstrPrintCommand();

	return hr;
}
