40 #ifndef IMS_IMAGEOPS_H__
41 #define IMS_IMAGEOPS_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
90 EXPIMP_TEMPLATE
template class LIBSPEC std::chrono::duration < std::uint16_t, std::ratio<1, 10000> >;
165 bool StartDownload();
172 int GetVerifyError();
178 void ImageDownloadEventSubscribe(
const int message,
IEventHandler* handler);
202 void ImageDownloadEventUnsubscribe(
const int message,
const IEventHandler* handler);
320 using post_delay = std::chrono::duration < std::uint16_t, std::ratio<1, 10000> > ;
405 bool Play(ImageTrigger start_trig = ImageTrigger::CONTINUOUS);
442 bool Stop(StopStyle stop);
447 inline bool Stop() {
return this->
Stop(StopStyle::GRACEFULLY); };
453 void SetPostDelay(
const std::chrono::duration<double>& dly);
464 void ImagePlayerEventSubscribe(
const int message,
IEventHandler* handler);
488 void ImagePlayerEventUnsubscribe(
const int message,
const IEventHandler* handler);
529 const int Entries()
const;
564 friend LIBSPEC std::ostream& operator<< (std::ostream& stream,
const ImageTableViewer&);
714 bool StartSequenceQueue(
const SeqConfiguration& cfg = SeqConfiguration(), ImageTrigger start_trig = ImageTrigger::CONTINUOUS);
737 void SendHostTrigger();
742 std::uint16_t QueueCount();
753 bool GetSequenceUUID(
int index, std::array<std::uint8_t, 16>& uuid);
778 bool RemoveSequence(
const std::array<std::uint8_t, 16>& uuid);
800 bool UpdateTermination(
const std::array<std::uint8_t, 16>& uuid,
SequenceTermAction action,
int val = 0);
818 void SequenceEventSubscribe(
const int message,
IEventHandler* handler);
840 void SequenceEventUnsubscribe(
const int message,
const IEventHandler* handler);
851 #undef EXPIMP_TEMPLATE
Events
List of Events raised by the Image Player.
Definition: ImageOps.h:223
Events
List of Events raised by the Image Downloader.
Definition: ImageOps.h:640
Once an Image has been downloaded to Controller memory, ImagePlayer can be used to configure and begi...
Definition: ImageOps.h:250
Event raised on completion of a download verify, if the download failed. param contains the number of...
Definition: ImageOps.h:116
Provides a mechanism for downloading and verifying Images to a Controller's memory.
Definition: ImageOps.h:133
PlayConfiguration(PointClock c)
Constructor with Clock Initialisation. Use this to set the Clock to be supplied from an External sign...
Definition: ImageOps.h:333
Event raised when an Image in the Controller begins playback.
Definition: ImageOps.h:227
SeqConfiguration(PointClock c)
Constructor with Clock Initialisation. Use this to set the Clock to be supplied from an External sign...
Definition: ImageOps.h:704
A sequence of ImagePoints played out sequentially by the Controller and driven by the Synthesiser...
Definition: Image.h:228
Event raise when unable to begin a fast transfer of image data to memory, e.g. Image memory is full...
Definition: ImageOps.h:118
Events
List of Events raised by the Image Downloader.
Definition: ImageOps.h:108
std::chrono::duration< std::uint16_t, std::ratio< 1, 10000 > > post_delay
This type is used internally to define the correct scaling between std::chrono classes and the hardwa...
Definition: ImageOps.h:320
Interface Specification class for sending large binary data objects to the iMS.
Definition: IBulkTransfer.h:102
Event raise when unable to transfer any data through DMA mechanism.
Definition: ImageOps.h:120
Interface Class for User Application code to receive and process events from the iMS library...
PlayConfiguration(PointClock c, std::chrono::duration< int > d, Repeats r, int n_rpts)
Constructor with Clock Initialisation, Post-Delay and Image Repeats. Use this to configure the Clock ...
Definition: ImageOps.h:342
Event raised when an error occurs in processing the sequence queue (typically if the sequence queue w...
Definition: ImageOps.h:646
ImageRepeats
Each Image can be repeated, either a programmable number of times, or indefinitely.
Definition: Image.h:665
An ImageSequence object completely defines a sequence to be played back on an iMS Controller in terms...
Definition: Image.h:857
PlayConfiguration(PointClock c, ImageTrigger t)
Constructor with Clock & Trigger Initialisation. Use this to set the Clock, Trigger or both to be sup...
Definition: ImageOps.h:336
An object representing the overall configuration of an attached iMS System and permits applications t...
Definition: IMSSystem.h:361
This struct sets the attributes for the ImagePlayer to use when initiating an Image Playback...
Definition: ImageOps.h:304
Event raised at the beginning of playback of each sequence.
Definition: ImageOps.h:642
PlayConfiguration(PointClock c, std::chrono::duration< int > d)
Constructor with Clock Initialisation and Post-Delay. Use this for a configurable delay between image...
Definition: ImageOps.h:339
SequenceTermAction
Operation to perform on the completion of the last repeat of the last entry in a Sequence.
Definition: Image.h:823
bool Stop()
Halts the Image Playback After Last Point in Image or Repeat.
Definition: ImageOps.h:447
Provides a mechanism for viewing the ImageTable associated with an iMS System.
Definition: ImageOps.h:506
ImageTrigger
At the end of each Image, the next Image in the sequence (or the next Repeat of the same image) will ...
Definition: ImageOps.h:265
Event raised after the final image of a sequence has completed and there are no more sequences in the...
Definition: ImageOps.h:644
The entire API is encapsulated by the iMS namespace.
Definition: Auxiliary.h:95
Event raised in response to ImagePlayer::GetProgress(). Indicates the number of points into an Image ...
Definition: ImageOps.h:225
Classes for storing sequences of synchronous multi-channel RF drive data.
Classes within this group are used to store information about an iMS System and to Connect / Disconne...
PlayConfiguration(Repeats r, int n_rpts)
Constructor with Programmable Repeats. Use this to set the Image to Repeat a programmable number of t...
Definition: ImageOps.h:348
Polarity
The external signal connections can be configured to be active on the rising edge or the falling edge...
Definition: ImageOps.h:282
SeqConfiguration(PointClock c, ImageTrigger t)
Constructor with Clock & Trigger Initialisation. Use this to set the Clock, Trigger or both to be sup...
Definition: ImageOps.h:707
Event raised when a new download has been accepted prior to memory transfer commencing, reporting the new image index handle.
Definition: ImageOps.h:122
PointClock
Determines whether Image Progression is under the control of an internal or external clock...
Definition: ImageOps.h:256
Event raised when an Image in the Controller completes playback.
Definition: ImageOps.h:229
Interface Class for an Event Handler to be defined in User Code and subscribed to library events...
Definition: IEventHandler.h:146
Event raised when ImageDownload has confirmed that the iMS Controller received all of the Image data...
Definition: ImageOps.h:110
PlayConfiguration(Repeats r)
Constructor with Indefinite Repeats. Use this to set the Image to Repeat Always until Stopped by User...
Definition: ImageOps.h:345
StopStyle
The ImagePlayer can end the Image Playback either at the end of the Image or Repeat, or immediately.
Definition: ImageOps.h:291
Interface Specification class for sending large binary data objects to the iMS.
Event raised on completion of a download verify, if the download was successfully verified...
Definition: ImageOps.h:114
All the different types of events that can be triggered by the SequenceManager class.
Definition: ImageOps.h:636
The Image is played back only once.
All the different types of events that can be triggered by the ImagePlayer class. ...
Definition: ImageOps.h:219
Type Definition for all operations that require a frequency specification in kiloHertz.
Definition: IMSTypeDefs.h:148
All the different types of events that can be triggered by the ImageDownload class.
Definition: ImageOps.h:104
Event raised each time the ImageDownload class registers an error in the download process...
Definition: ImageOps.h:112
Definition: ImageOps.h:660
An ImageTableEntry is created by the SDK on connecting to an iMS System, one for each Image that is s...
Definition: Image.h:579
This struct sets the attributes for the Sequence to use when initiating an Sequence Playback...
Definition: ImageOps.h:685
This class is a worker for transmitting an ImageSequence to an iMS Controller and joining it to the b...
Definition: ImageOps.h:579