IGOR XOP 8 Toolkit Reference Manual
Total Page:16
File Type:pdf, Size:1020Kb
IGOR XOP TOOLKIT REFERENCE MANUAL Version 8.01 WaveMetrics, Inc. Copyright This manual and the Igor XOP Toolkit are copyrighted by WaveMetrics with all rights reserved. Under copyright laws it is illegal for you to copy this manual or the software without written permission from WaveMetrics. WaveMetrics gives you permission to make unlimited copies of the software on any number of machines but only for your own personal use. You may not copy the software for any other reason. You must ensure that only one copy of the software is in use at any given time. Notice All brand and product names are trademarks or registered trademarks of their respective companies. Manual Revision: September 28, 2018 (8.01) © Copyright 2018 WaveMetrics, Inc. All rights reserved. WaveMetrics, Inc. PO Box 2088 Lake Oswego, OR 97035 USA Email: [email protected], [email protected] Web: http://www.wavemetrics.com/ Table of Contents Chapter 1 - Introduction to XOPs About This Manual .............................................................................................. 1 What is an XOP?.................................................................................................. 1 Who Can Write an XOP?..................................................................................... 2 A Brief History of Igor ........................................................................................ 2 XOP Toolkit 8...................................................................................................... 4 Choosing Which XOP Toolkit to Use ................................................................. 5 Macintosh and Windows XOPs........................................................................... 6 Development Systems.......................................................................................... 6 Activating XOPs Using the Igor Extensions Folder............................................ 6 Installing the XOP Toolkit................................................................................... 7 XOP Toolkit Overview........................................................................................ 8 XOPSupport......................................................................................................... 11 The Sample XOPs................................................................................................ 11 How Igor Integrates XOPs................................................................................... 13 The Basic Structure of an XOP............................................................................ 15 Preparing to Write an XOP.................................................................................. 17 Technical Support ................................................................................................ 17 Chapter 2 - Guided Tour Overview.............................................................................................................. 19 Activating XOPs .................................................................................................. 19 What We Will Do ................................................................................................ 20 Installation ........................................................................................................... 20 Building SimpleFit............................................................................................... 20 Testing SimpleFit64............................................................................................. 23 Creating a New Project ........................................................................................ 24 Building the New Project in Xcode ..................................................................... 25 Building the New Project In Visual C++............................................................. 27 Changing the Help ............................................................................................... 28 Changing and Compiling the Code...................................................................... 29 Testing SimpleGaussFit....................................................................................... 30 Touring the Code ................................................................................................. 32 Where To Go From Here ..................................................................................... 33 Chapter 3 - Development Systems Overview.............................................................................................................. 35 XOPs in Xcode .................................................................................................... 35 XOP Projects in Xcode ........................................................................................ 36 Xcode Project Settings......................................................................................... 38 Updating Xcode Projects for Xcode 10 ............................................................... 44 Debugging an XOP in Xcode .............................................................................. 45 XOPs in Visual C++ ............................................................................................ 46 Visual C++ Compatibility Issues......................................................................... 47 XOP Projects in Visual C++................................................................................ 47 Visual C++ Project Settings................................................................................. 48 Debugging a Visual C++ XOP ............................................................................ 50 Chapter 4 - Igor/XOP Interactions Overview.............................................................................................................. 51 XOP Resources .................................................................................................... 53 How Igor Calls an XOP ....................................................................................... 55 Basic XOP Messages ........................................................................................... 55 Messages for XOPs that Save and Load Settings ................................................ 57 XOP Errors .......................................................................................................... 59 XOPs and Preferences ......................................................................................... 63 XOPs and Experiments........................................................................................ 63 The IORecHandle ................................................................................................ 64 Messages, Arguments and Results....................................................................... 65 Handling Recursion ............................................................................................. 66 Data Sharing ........................................................................................................ 67 Igor/XOP Compatibility Issues............................................................................ 67 Chapter 5 - Adding Operations Overview.............................................................................................................. 69 The XOPC 1100 Resource................................................................................... 70 Choose a Distinctive Operation Name................................................................. 72 Operation Handler................................................................................................ 72 Creating Starter Code........................................................................................... 72 Operation Parameters........................................................................................... 73 The Command Template ..................................................................................... 74 Optional Parameters............................................................................................. 75 Mnemonic Names ................................................................................................ 77 The Runtime Parameter Structure........................................................................ 77 Qualified Keywords............................................................................................. 80 String Parameters................................................................................................. 81 Name Parameters ................................................................................................. 81 Double Name Parameters .................................................................................... 81 Wave Parameters ................................................................................................. 82 Wave Range Parameters ...................................................................................... 82 VarName Parameters ........................................................................................... 83 Data Folder Reference Parameters....................................................................... 84 DataFolderAndName Parameters ........................................................................ 84 Structure Parameters ............................................................................................ 87 Runtime Output Variables ..................................................................................