35 #ifndef IMS_SYSTEMFUNC_H__
36 #define IMS_SYSTEMFUNC_H__
48 #if defined _WIN32 || defined __CYGWIN__
50 #define DLL_EXPORT __attribute__ ((dllexport))
51 #define DLL_IMPORT __attribute__ ((dllimport))
53 #define DLL_EXPORT __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
54 #define DLL_IMPORT __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
59 #define DLL_EXPORT __attribute__ ((visibility ("default")))
60 #define DLL_IMPORT __attribute__ ((visibility ("default")))
61 #define DLL_LOCAL __attribute__ ((visibility ("hidden")))
69 #if defined(_EXPORTING_IMS)
70 #define LIBSPEC DLL_EXPORT
71 #define LIBLOCAL DLL_LOCAL
72 #define EXPIMP_TEMPLATE
73 #elif defined(_STATIC_IMS)
76 #define EXPIMP_TEMPLATE
78 #define LIBSPEC DLL_IMPORT
79 #define LIBLOCAL DLL_LOCAL
80 #define EXPIMP_TEMPLATE extern
102 MASTER_CLOCK_REF_FREQ,
103 MASTER_CLOCK_REF_MODE,
104 MASTER_CLOCK_REF_STATUS,
112 struct StartupConfiguration;
191 EXTERNAL_NOSIGNAL = 0,
193 INTERNAL_UNLOCKED = 4,
197 EXTERNAL_VALID_UNLOCKED = 8,
233 enum class NHFLocalReset
241 RESET_ON_COMMS_UNHEALTHY = 1
253 bool ConfigureNHF(
bool Enabled,
int milliSeconds, NHFLocalReset reset);
264 bool EnableAmplifier(
bool en);
275 bool EnableExternal(
bool enable);
283 bool EnableRFChannels(
bool chan1_2,
bool chan3_4);
295 bool GetChecksumErrorCount(
bool Reset =
true);
300 bool SetDDSUpdateClockSource(UpdateClockSource src = UpdateClockSource::INTERNAL);
317 bool StoreStartupConfig(
const StartupConfiguration& cfg);
383 bool GetClockReferenceStatus();
395 bool GetClockReferenceFrequency();
404 bool GetClockReferenceMode();
409 void SystemFuncEventSubscribe(
const int message, IEventHandler* handler);
433 void SystemFuncEventUnsubscribe(
const int message,
const IEventHandler* handler);
437 SystemFunc(
const SystemFunc &);
438 const SystemFunc &operator =(
const SystemFunc &);
470 bool RFGate{
false };
472 bool RFBias12{
false };
474 bool RFBias34{
false };
476 bool ExtEquipmentEnable{
false };
484 std::uint8_t LocalToneIndex{ 0 };
494 bool ChannelReversal{
false };
502 bool XYCompEnable{
false };
510 std::uint8_t GPOutput{ 0 };
514 bool CommsHealthyCheckEnabled{
false };
516 unsigned int CommsHealthyCheckTimerMilliseconds{ 500 };
526 kHz ExtClockFrequency{ 1000.0 };
531 #undef EXPIMP_TEMPLATE
PLLLockReference
Synthesiser Master Clock Reference Mode.
Definition: SystemFunc.h:171
Connect RF mixer inputs to digital pot wiper 1.
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
PLLLockStatus
Synthesiser Master Clock Status Cast the status value reported to application code from a GetMasterCl...
Definition: SystemFunc.h:188
Do nothing other than set the NHF bit on future responses.
Illuminates when RF Gate to power amplifier is enabled and interlock is not set.
The Synthesiser stores in its non-volatile memory a set of configuration values that are preloaded on...
Definition: SystemFunc.h:459
Events
List of Events raised by the Signal Path module.
Definition: SystemFunc.h:99
Local Tone Buffer not used. Synthesiser outputs from Image data.
Use the Compensation Look-up Path.
Interface Class for User Application code to receive and process events from the iMS library...
NHFLocalReset
The action to perform at the iMS System when a Not Healthy condition is registered.
Definition: SystemFunc.h:236
TemperatureSensor
There are two available temperature sensors in the Synthesiser System.
Definition: SystemFunc.h:161
LED_SOURCE
Selects the function to be assigned to an LED.
Definition: Auxiliary.h:154
An object representing the overall configuration of an attached iMS System and permits applications t...
Definition: IMSSystem.h:361
Classes for controlling the flow of data and RF signals through the Synthesiser.
Do not use the Compensation Look-up Path.
Illuminates when interlock is active (overtemperature, user disabled or no connection to amplifier/ac...
All the different types of events that can be triggered by the SystemFunc class.
Definition: SystemFunc.h:95
The entire API is encapsulated by the iMS namespace.
Definition: Auxiliary.h:95
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...
UpdateClockSource
Determines whether DDS Synthesiser IC should have its update signal driven by the Synthesiser interna...
Definition: SystemFunc.h:150
Master Clock uses internal precision frequency reference.
The number of Errors accumulated on the Pixel Interface.
Definition: SystemFunc.h:101
Drive Update Signal internally (default)
Provides System Management functions not directly related to RF signal generation or signal path cont...
Definition: SystemFunc.h:121
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
Classes for performing various auxiliary actions not directly related to driving Acousto-Optic device...
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