40 #ifndef IMS_SIGNALPATH_H__
41 #define IMS_SIGNALPATH_H__
52 #if defined _WIN32 || defined __CYGWIN__
54 #define DLL_EXPORT __attribute__ ((dllexport))
55 #define DLL_IMPORT __attribute__ ((dllimport))
57 #define DLL_EXPORT __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
58 #define DLL_IMPORT __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
63 #define DLL_EXPORT __attribute__ ((visibility ("default")))
64 #define DLL_IMPORT __attribute__ ((visibility ("default")))
65 #define DLL_LOCAL __attribute__ ((visibility ("hidden")))
73 #if defined(_EXPORTING_IMS)
74 #define LIBSPEC DLL_EXPORT
75 #define LIBLOCAL DLL_LOCAL
76 #define EXPIMP_TEMPLATE
77 #elif defined(_STATIC_IMS)
80 #define EXPIMP_TEMPLATE
82 #define LIBSPEC DLL_IMPORT
83 #define LIBLOCAL DLL_LOCAL
84 #define EXPIMP_TEMPLATE extern
115 struct VelocityConfiguration;
210 AMPLITUDE_PRE_COMP_CH1,
211 AMPLITUDE_PRE_COMP_CH2,
212 AMPLITUDE_PRE_COMP_CH3,
213 AMPLITUDE_PRE_COMP_CH4,
318 bool UpdateDDSPowerLevel(
const Percent& power);
345 bool UpdateRFAmplitude(
const AmplitudeControl src,
const Percent& ampl);
353 bool SwitchRFAmplitudeControlSource(
const AmplitudeControl src);
373 bool SetChannelReversal(
bool reversal);
401 bool EnableXYPhaseCompensation(
bool XYCompEnable);
406 bool SetCalibrationTone(
const FAP& fap);
430 bool AssignSynchronousOutput(
const SYNC_SINK& sink,
const SYNC_SRC& src)
const;
449 bool ConfigureSyncDigitalOutput(::std::chrono::nanoseconds delay = ::std::chrono::nanoseconds::zero(),
450 ::std::chrono::nanoseconds pulse_length = ::std::chrono::nanoseconds::zero());
456 bool UpdateLocalToneBuffer(
const ToneBufferControl& tbc,
const unsigned int index
484 bool UpdateLocalToneBuffer(
const ToneBufferControl& tbc);
488 bool UpdateLocalToneBuffer(
const unsigned int index);
536 bool DisableEncoder();
550 bool ReportEncoderVelocity(ENCODER_CHANNEL chan);
556 void SignalPathEventSubscribe(
const int message,
IEventHandler* handler);
580 void SignalPathEventUnsubscribe(
const int message,
const IEventHandler* handler);
606 std::uint16_t TrackingLoopProportionCoeff { 4000 };
608 std::uint16_t TrackingLoopIntegrationCoeff { 10000 };
627 #undef EXPIMP_TEMPLATE
Returns DDS Power setting.
Definition: SignalPath.h:105
ToneBufferControl
Selects Control Source for the Local Tone Buffer.
Definition: SignalPath.h:167
Type Definition for all operations that require an angle specification in degrees.
Definition: IMSTypeDefs.h:314
SYNC_SINK
The Synchronous Output to which to assign Synchronous Data.
Definition: SignalPath.h:230
Use the Compensation Look-up Path.
Interface Class for User Application code to receive and process events from the iMS library...
An object representing the overall configuration of an attached iMS System and permits applications t...
Definition: IMSSystem.h:361
FAP (Frequency/Amplitude/Phase) triad stores the instantaneous definition of a single RF output...
Definition: IMSTypeDefs.h:387
All the different types of events that can be triggered by the SignalPath class.
Definition: SignalPath.h:99
Sets the parameters required to control the operation of the Encoder Input / Velocity Compensation fu...
Definition: SignalPath.h:599
The entire API is encapsulated by the iMS namespace.
Definition: Auxiliary.h:95
Type that represents the integer values 1, 2, 3 and 4, one each for the RF Channels of an iMS Synthes...
Definition: IMSTypeDefs.h:425
Type Definition for all operations that require a percentage specification.
Definition: IMSTypeDefs.h:241
Classes within this group are used to store information about an iMS System and to Connect / Disconne...
Events
List of Events raised by the Signal Path module.
Definition: SignalPath.h:103
Type Definition for all operations that require a frequency specification in MegaHertz.
Definition: IMSTypeDefs.h:191
Interface Class for an Event Handler to be defined in User Code and subscribed to library events...
Definition: IEventHandler.h:146
VELOCITY_MODE
Selects the method of velocity calculation.
Definition: SignalPath.h:267
Controls Signal routing and other parameters related to the RF output signals.
Definition: SignalPath.h:132
AmplitudeControl
Selects Amplitude Control source for each of the 4 RF Channel outputs.
Definition: SignalPath.h:142
Type Definition for all operations that require a frequency specification in kiloHertz.
Definition: IMSTypeDefs.h:148
std::array< std::int16_t, 2 > VelocityGain
Controls the extent to which a given value of velocity causes a deviation in synthesiser frequency...
Definition: SignalPath.h:610
Compensation
Controls whether to use the Compensation Look-Up Table path for pixel data.
Definition: SignalPath.h:189
SYNC_SRC
Selects a source of Synchronous Output Data.
Definition: SignalPath.h:200
Returns current Encoder X Channel Velocity.
Definition: SignalPath.h:107
ENCODER_CHANNEL
Selects which of two available encoder channels.
Definition: SignalPath.h:287
Useful Type Definitions for working with iMS Systems.
ENCODER_MODE
Selects the type of encoder connected to the Synthesiser.
Definition: SignalPath.h:247
Returns current Encoder Y Channel Velocity.
Definition: SignalPath.h:109