56
56
* \brief Sets pcilib context to wraper.
57
57
* \param[in] addr Pointer to pcilib_t, serialized to bytearray
58
* \return true, serialized to PyObject, NULL with exeption text, if failed.
58
* \return 1, serialized to PyObject or NULL with exeption text, if failed.
60
60
PyObject* __setPcilib(PyObject* addr)
62
62
if(!PyByteArray_Check(addr))
64
setPyExeptionText(PyExc_Exception, "Incorrect addr type. Only bytearray is allowed");
64
__setPyExeptionText(PyExc_Exception, "Incorrect addr type. Only bytearray is allowed");
153
* \brief Reads register value.
153
* \brief Reads register value. Wrap for pcilib_read_register function.
154
154
* \param[in] regname the name of the register
155
155
* \param[in] bank should specify the bank name if register with the same name may occur in multiple banks, NULL otherwise
156
* \return register value, can be integer or float type
156
* \return register value, can be integer or float type; NULL with exeption text, if failed.
158
158
PyObject* read_register(const char *regname, const char *bank)
162
setPyExeptionText("pcilib_t handler not initialized");
162
__setPyExeptionText("pcilib_t handler not initialized");
166
pcilib_get_dma_description(__ctx);
168
166
pcilib_value_t val = {0};
169
167
pcilib_register_value_t reg_value;
173
171
err = pcilib_read_register(__ctx, bank, regname, ®_value);
176
setPyExeptionText("Failed: read_register (%i)", err);
174
__setPyExeptionText("Failed: pcilib_read_register (%i)", err);
180
178
err = pcilib_set_value_from_register_value(__ctx, &val, reg_value);
183
setPyExeptionText("Failed: pcilib_set_value_from_register_value (%i)", err);
187
return pcilib_convert_val_to_pyobject(__ctx, &val, setPyExeptionText);
181
__setPyExeptionText("Failed: pcilib_set_value_from_register_value (%i)", err);
185
return pcilib_convert_val_to_pyobject(__ctx, &val, __setPyExeptionText);
189
* \brief Writes value to register. Wrap for pcilib_write_register function.
190
* \param[in] val Register value, that needs to be set. Can be int, float or string.
191
* \param[in] regname the name of the register
192
* \param[in] bank should specify the bank name if register with the same name may occur in multiple banks, NULL otherwise
193
* \return 1, serialized to PyObject or NULL with exeption text, if failed.
195
PyObject* write_register(PyObject* val, const char *regname, const char *bank)
199
__setPyExeptionText("pcilib_t handler not initialized");
203
pcilib_value_t val_internal = {0};
204
pcilib_register_value_t reg_value;
207
err = pcilib_convert_pyobject_to_val(__ctx, val, &val_internal);
210
__setPyExeptionText("Failed pcilib_convert_pyobject_to_val (%i)", err);
214
reg_value = pcilib_get_value_as_register_value(__ctx, &val_internal, &err);
217
__setPyExeptionText("Failed: pcilib_get_value_as_register_value (%i)", err);
221
err = pcilib_write_register(__ctx, bank, regname, reg_value);
224
__setPyExeptionText("Failed: pcilib_write_register (%i)", err);
227
return PyInt_FromLong((long)1);
231
* \brief Reads propety value. Wrap for pcilib_get_property function.
232
* \param[in] prop property name (full name including path)
233
* \return property value, can be integer or float type; NULL with exeption text, if failed.
191
235
PyObject* get_property(const char *prop)
195
setPyExeptionText("pcilib_t handler not initialized");
239
__setPyExeptionText("pcilib_t handler not initialized");
206
setPyExeptionText("Failed pcilib_get_property (%i)", err);
250
__setPyExeptionText("Failed pcilib_get_property (%i)", err);
210
return pcilib_convert_val_to_pyobject(__ctx, &val, setPyExeptionText);
254
return pcilib_convert_val_to_pyobject(__ctx, &val, __setPyExeptionText);
258
* \brief Writes value to property. Wrap for pcilib_set_property function.
259
* \param[in] prop property name (full name including path)
260
* \param[in] val Property value, that needs to be set. Can be int, float or string.
261
* \return 1, serialized to PyObject or NULL with exeption text, if failed.
213
263
PyObject* set_property(const char *prop, PyObject* val)
219
setPyExeptionText("pcilib_t handler not initialized");
269
__setPyExeptionText("pcilib_t handler not initialized");