itom  3.0.0
pythonPlugins.h
1 /* ********************************************************************
2  itom software
3  URL: http://www.uni-stuttgart.de/ito
4  Copyright (C) 2016, Institut fuer Technische Optik (ITO),
5  Universitaet Stuttgart, Germany
6 
7  This file is part of itom.
8 
9  itom is free software; you can redistribute it and/or modify it
10  under the terms of the GNU Library General Public Licence as published by
11  the Free Software Foundation; either version 2 of the Licence, or (at
12  your option) any later version.
13 
14  itom is distributed in the hope that it will be useful, but
15  WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
17  General Public Licence for more details.
18 
19  You should have received a copy of the GNU Library General Public License
20  along with itom. If not, see <http://www.gnu.org/licenses/>.
21 *********************************************************************** */
22 
23 #ifndef PYTHONPLUGINS
24 #define PYTHONPLUGINS
25 
26 #include <string>
27 
28 #ifndef Q_MOC_RUN
29  /* includes */
30  //python
31  // see http://vtk.org/gitweb?p=VTK.git;a=commitdiff;h=7f3f750596a105d48ea84ebfe1b1c4ca03e0bab3
32  #if (defined _DEBUG) && (defined WIN32)
33  #undef _DEBUG
34  #include "Python.h"
35  #define _DEBUG
36  #else
37  #include "Python.h"
38  #endif
39 #endif
40 
41 #include "../common/addInInterface.h"
42 
43 namespace ito
44 {
45 
59 {
60  public:
61  typedef struct
62  {
63  PyObject_HEAD
64  ito::AddInActuator *actuatorObj;
65  PyObject* base;
66  PyObject *weakreflist; /* List of weak references */
67  }
69 
70  typedef struct
71  {
72  PyObject_HEAD
73  ito::AddInDataIO *dataIOObj;
74  PyObject* base;
75  PyObject *weakreflist; /* List of weak references */
76  }
78 
79  // Actuator
80  static void PyActuatorPlugin_dealloc(PyActuatorPlugin *self);
81  static PyObject *PyActuatorPlugin_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
82  static int PyActuatorPlugin_init(PyActuatorPlugin *self, PyObject *args, PyObject *kwds);
83  static PyObject* PyActuatorPlugin_repr(PyActuatorPlugin *self);
84 
85  static PyObject *PyActuatorPlugin_name(PyActuatorPlugin *self);
86  static PyObject *PyActuatorPlugin_getParamList(PyActuatorPlugin *self);
87  static PyObject *PyActuatorPlugin_getParamListInfo(PyActuatorPlugin *self, PyObject *args);
88  static PyObject* PyActuatorPlugin_getExecFuncsInfo(PyActuatorPlugin* self, PyObject *args, PyObject *kwds);
89  static PyObject *PyActuatorPlugin_getParam(PyActuatorPlugin *self, PyObject *args);
90  static PyObject *PyActuatorPlugin_getParamInfo(PyActuatorPlugin *self, PyObject *args);
91  static PyObject *PyActuatorPlugin_setParam(PyActuatorPlugin *self, PyObject *args);
92  static PyObject *PyActuatorPlugin_getType(PyActuatorPlugin *self);
93  static PyObject *PyActuatorPlugin_execFunc(PyActuatorPlugin *self, PyObject *args, PyObject *kwds);
95  static PyObject *PyActuatorPlugin_showToolbox(PyActuatorPlugin *self);
96  static PyObject *PyActuatorPlugin_hideToolbox(PyActuatorPlugin *self);
97 
98  static PyObject *PyActuatorPlugin_setInterrupt(PyActuatorPlugin *self);
99 
100  static PyObject *PyActuatorPlugin_calib(PyActuatorPlugin *self, PyObject *args);
101  static PyObject *PyActuatorPlugin_setOrigin(PyActuatorPlugin *self, PyObject *args);
102  static PyObject *PyActuatorPlugin_getStatus(PyActuatorPlugin *self, PyObject *args);
103  static PyObject *PyActuatorPlugin_getPos(PyActuatorPlugin *self, PyObject *args);
104  static PyObject *PyActuatorPlugin_setPosAbs(PyActuatorPlugin *self, PyObject *args);
105  static PyObject *PyActuatorPlugin_setPosRel(PyActuatorPlugin *self, PyObject *args);
106 
107  static PyMemberDef PyActuatorPlugin_members[];
108  static PyMethodDef PyActuatorPlugin_methods[];
109  static PyTypeObject PyActuatorPluginType;
110  static PyModuleDef PyActuatorPluginModule;
111 
112  static void paramBaseVectorDeleter(QVector<ito::ParamBase> *obj)
113  {
114  delete obj;
115  }
116 
117  //DataIO
118  static void PyDataIOPlugin_dealloc(PyDataIOPlugin *self);
119  static PyObject *PyDataIOPlugin_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
120  static int PyDataIOPlugin_init(PyDataIOPlugin *self, PyObject *args, PyObject *kwds);
121  static PyObject* PyDataIOPlugin_repr(PyDataIOPlugin *self);
122 
123  static PyObject *PyDataIOPlugin_name(PyDataIOPlugin *self);
124  static PyObject *PyDataIOPlugin_getParamList(PyDataIOPlugin *self);
125  static PyObject* PyDataIOPlugin_getParamListInfo(PyDataIOPlugin* self, PyObject *args);
126  static PyObject* PyDataIOPlugin_getExecFuncsInfo(PyDataIOPlugin* self, PyObject *args, PyObject *kwds);
127  static PyObject *PyDataIOPlugin_getParam(PyDataIOPlugin *self, PyObject *args);
128  static PyObject *PyDataIOPlugin_getParamInfo(PyDataIOPlugin *self, PyObject *args);
129  static PyObject *PyDataIOPlugin_setParam(PyDataIOPlugin *self, PyObject *args);
130  static PyObject *PyDataIOPlugin_getType(PyDataIOPlugin *self);
131  static PyObject *PyDataIOPlugin_execFunc(PyDataIOPlugin *self, PyObject *args, PyObject *kwds);
132  static PyObject *PyDataIOPlugin_showConfiguration(PyDataIOPlugin *self);
133  static PyObject *PyDataIOPlugin_showToolbox(PyDataIOPlugin *self);
134  static PyObject *PyDataIOPlugin_hideToolbox(PyDataIOPlugin *self);
135 
136  static PyObject *PyDataIOPlugin_startDevice(PyDataIOPlugin *self, PyObject *args);
137  static PyObject *PyDataIOPlugin_stopDevice(PyDataIOPlugin *self, PyObject *args);
138  static PyObject *PyDataIOPlugin_acquire(PyDataIOPlugin *self, PyObject *args);
139  static PyObject *PyDataIOPlugin_getVal(PyDataIOPlugin *self, PyObject *args);
140  static PyObject *PyDataIOPlugin_copyVal(PyDataIOPlugin *self, PyObject *args);
141  static PyObject *PyDataIOPlugin_setVal(PyDataIOPlugin *self, PyObject *args);
142  static PyObject *PyDataIOPlugin_enableAutoGrabbing(PyDataIOPlugin *self, PyObject *args);
143  static PyObject *PyDataIOPlugin_disableAutoGrabbing(PyDataIOPlugin *self, PyObject *args);
144  static PyObject *PyDataIOPlugin_setAutoGrabbing(PyDataIOPlugin *self, PyObject *args);
145  static PyObject *PyDataIOPlugin_getAutoGrabbing(PyDataIOPlugin *self, PyObject *args);
146  static PyObject *PyDataIOPlugin_setAutoGrabbingInterval(PyDataIOPlugin *self, PyObject *args);
147  static PyObject *PyDataIOPlugin_getAutoGrabbingInterval(PyDataIOPlugin *self);
148 
149  static PyMemberDef PyDataIOPlugin_members[];
150  static PyMethodDef PyDataIOPlugin_methods[];
151  static PyTypeObject PyDataIOPluginType;
152  static PyModuleDef PyDataIOPluginModule;
153  static void PyDataIOPlugin_addTpDict(PyObject *tp_dict);
154 
155 };
156 
157 } //end namespace ito
158 
159 #endif
static PyObject * PyActuatorPlugin_getParam(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1486
static PyObject * PyDataIOPlugin_showToolbox(PyDataIOPlugin *self)
Definition: pythonPlugins.cpp:3962
static PyObject * PyActuatorPlugin_getExecFuncsInfo(PyActuatorPlugin *self, PyObject *args, PyObject *kwds)
Definition: pythonPlugins.cpp:1469
base class for all actuator plugin classes
Definition: addInInterface.h:700
static PyObject * PyDataIOPlugin_getType(PyDataIOPlugin *self)
Definition: pythonPlugins.cpp:3913
static PyObject * PyDataIOPlugin_stopDevice(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2902
static PyObject * PyDataIOPlugin_showConfiguration(PyDataIOPlugin *self)
Definition: pythonPlugins.cpp:3950
static PyObject * PyDataIOPlugin_setParam(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2769
static PyObject * PyDataIOPlugin_startDevice(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2815
static PyObject * PyDataIOPlugin_getParamInfo(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2782
static PyObject * PyActuatorPlugin_getStatus(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1790
static PyObject * PyActuatorPlugin_setPosAbs(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2202
static PyObject * PyDataIOPlugin_enableAutoGrabbing(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:3585
static PyObject * PyDataIOPlugin_getParamList(PyDataIOPlugin *self)
Definition: pythonPlugins.cpp:2713
base class for all dataIO plugin classes
Definition: addInInterface.h:633
static PyObject * PyActuatorPlugin_setParam(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1500
Definition: pythonPlugins.h:70
static PyObject * PyActuatorPlugin_getType(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:1994
static PyObject * PyDataIOPlugin_acquire(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:3022
static PyObject * PyActuatorPlugin_setOrigin(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1660
static PyObject * PyActuatorPlugin_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: pythonPlugins.cpp:1212
static PyObject * PyDataIOPlugin_getParamListInfo(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2727
static PyObject * PyActuatorPlugin_showConfiguration(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:2031
Definition: apiFunctionsGraph.cpp:39
static PyObject * PyActuatorPlugin_name(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:1426
static void PyDataIOPlugin_dealloc(PyDataIOPlugin *self)
Definition: pythonPlugins.cpp:2439
static PyObject * PyActuatorPlugin_setInterrupt(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:2059
static void PyActuatorPlugin_dealloc(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:1163
static int PyDataIOPlugin_init(PyDataIOPlugin *self, PyObject *args, PyObject *kwds)
Definition: pythonPlugins.cpp:2538
static PyObject * PyActuatorPlugin_setPosRel(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2289
static PyObject * PyDataIOPlugin_disableAutoGrabbing(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:3646
static PyObject * PyActuatorPlugin_hideToolbox(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:2080
static PyObject * PyDataIOPlugin_setVal(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:3386
static int PyActuatorPlugin_init(PyActuatorPlugin *self, PyObject *args, PyObject *kwds)
Definition: pythonPlugins.cpp:1261
static PyObject * PyActuatorPlugin_getPos(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1873
static PyObject * PyDataIOPlugin_getExecFuncsInfo(PyDataIOPlugin *self, PyObject *args, PyObject *kwds)
Definition: pythonPlugins.cpp:2740
class summing up the functionality of itom - hardware python plugins
Definition: pythonPlugins.h:58
static PyObject * PyDataIOPlugin_copyVal(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:3248
static PyObject * PyActuatorPlugin_getParamList(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:1440
Definition: pythonPlugins.h:61
static PyObject * PyDataIOPlugin_getVal(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:3111
static PyObject * PyActuatorPlugin_showToolbox(PyActuatorPlugin *self)
Definition: pythonPlugins.cpp:2045
static PyObject * PyActuatorPlugin_getParamInfo(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1513
static PyObject * PyDataIOPlugin_hideToolbox(PyDataIOPlugin *self)
Definition: pythonPlugins.cpp:3974
static PyObject * PyDataIOPlugin_name(PyDataIOPlugin *self)
Definition: pythonPlugins.cpp:2669
static PyObject * PyActuatorPlugin_calib(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1542
static PyObject * PyDataIOPlugin_getParam(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:2755
static PyObject * PyDataIOPlugin_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Definition: pythonPlugins.cpp:2491
static PyObject * PyActuatorPlugin_getParamListInfo(PyActuatorPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:1455
static PyObject * PyDataIOPlugin_getAutoGrabbing(PyDataIOPlugin *self, PyObject *args)
Definition: pythonPlugins.cpp:3784