Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Bliss
python-handel
Commits
f15c7cdb
Commit
f15c7cdb
authored
Jul 27, 2017
by
Vincent Michel
Browse files
Add cffi binding and handel interface
parent
083e2141
Changes
3
Hide whitespace changes
Inline
Side-by-side
handel/_cffi.py
0 → 100644
View file @
f15c7cdb
"""CFFI binding."""
import
cffi
ffi
=
cffi
.
FFI
()
ffi
.
cdef
(
"""
typedef unsigned char byte_t;
typedef unsigned char boolean_t;
typedef unsigned short parameter_t;
typedef unsigned short flag_t;
int xiaInit(char *iniFile);
int xiaInitHandel(void);
int xiaNewDetector(char *alias);
int xiaAddDetectorItem(char *alias, char *name, void *value);
int xiaModifyDetectorItem(char *alias, char *name, void *value);
int xiaGetDetectorItem(char *alias, char *name, void *value);
int xiaGetNumDetectors(unsigned int *numDet);
int xiaGetDetectors(char *detectors[]);
int xiaGetDetectors_VB(unsigned int index, char *alias);
int xiaRemoveDetector(char *alias);
int xiaDetectorFromDetChan(int detChan, char *alias);
int xiaNewFirmware(char *alias);
int xiaAddFirmwareItem(char *alias, char *name, void *value);
int xiaModifyFirmwareItem(char *alias, unsigned short decimation, char *name, void *value);
int xiaGetFirmwareItem(char *alias, unsigned short decimation, char *name, void *value);
int xiaGetNumFirmwareSets(unsigned int *numFirmware);
int xiaGetFirmwareSets(char *firmware[]);
int xiaGetFirmwareSets_VB(unsigned int index, char *alias);
int xiaGetNumPTRRs(char *alias, unsigned int *numPTRR);
int xiaRemoveFirmware(char *alias);
int xiaNewModule(char *alias);
int xiaAddModuleItem(char *alias, char *name, void *value);
int xiaModifyModuleItem(char *alias, char *name, void *value);
int xiaGetModuleItem(char *alias, char *name, void *value);
int xiaGetNumModules(unsigned int *numModules);
int xiaGetModules(char *modules[]);
int xiaGetModules_VB(unsigned int index, char *alias);
int xiaRemoveModule(char *alias);
int xiaModuleFromDetChan(int detChan, char *alias);
int xiaAddChannelSetElem(unsigned int detChanSet, unsigned int newChan);
int xiaRemoveChannelSetElem(unsigned int detChan, unsigned int chan);
int xiaRemoveChannelSet(unsigned int detChan);
int xiaStartSystem(void);
int xiaDownloadFirmware(int detChan, char *type);
int xiaSetAcquisitionValues(int detChan, char *name, void *value);
int xiaGetAcquisitionValues(int detChan, char *name, void *value);
int xiaRemoveAcquisitionValues(int detChan, char *name);
int xiaUpdateUserParams(int detChan);
int xiaGainOperation(int detChan, char *name, void *value);
int xiaGainCalibrate(int detChan, double deltaGain);
int xiaStartRun(int detChan, unsigned short resume);
int xiaStopRun(int detChan);
int xiaGetRunData(int detChan, char *name, void *value);
int xiaDoSpecialRun(int detChan, char *name, void *info);
int xiaGetSpecialRunData(int detChan, char *name, void *value);
int xiaLoadSystem(char *type, char *filename);
int xiaSaveSystem(char *type, char *filename);
int xiaGetParameter(int detChan, const char *name, unsigned short *value);
int xiaSetParameter(int detChan, const char *name, unsigned short value);
int xiaGetNumParams(int detChan, unsigned short *numParams);
int xiaGetParamData(int detChan, char *name, void *value);
int xiaGetParamName(int detChan, unsigned short index, char *name);
int xiaBoardOperation(int detChan, char *name, void *value);
int xiaMemoryOperation(int detChan, char *name, void *value);
int xiaCommandOperation(int detChan, byte_t cmd, unsigned int lenS, byte_t *send, unsigned int lenR, byte_t *recv);
int xiaFitGauss(long data[], int lower, int upper, float *pos, float *fwhm);
int xiaFindPeak(long *data, int numBins, float thresh, int *lower, int *upper);
int xiaExit(void);
int xiaEnableLogOutput(void);
int xiaSuppressLogOutput(void);
int xiaSetLogLevel(int level);
int xiaSetLogOutput(char *fileName);
int xiaCloseLog(void);
int xiaSetIOPriority(int pri);
void xiaGetVersionInfo(int *rel, int *min, int *maj, char *pretty);
int xiaMemStatistics(unsigned long *total, unsigned long *current, unsigned long *peak);
void xiaMemSetCheckpoint(void);
void xiaMemLeaks(char *);
"""
)
handel
=
ffi
.
dlopen
(
"handel/handel.dll"
)
handel/interface.py
0 → 100644
View file @
f15c7cdb
"""Python interface to handel API."""
from
__future__
import
absolute_import
from
.error
import
check_return_value
,
check_error
from
._cffi
import
handel
,
ffi
@
check_return_value
def
init
(
filename
):
return
handel
.
xiaInit
(
filename
)
@
check_return_value
def
init_handel
():
return
handel
.
xiaInitHandel
()
@
check_return_value
def
new_detector
(
alias
):
return
handel
.
xiaNewDetector
(
alias
)
#int xiaAddDetectorItem(char *alias, char *name, void *value);
#int xiaModifyDetectorItem(char *alias, char *name, void *value);
#int xiaGetDetectorItem(char *alias, char *name, void *value);
# int xiaGetNumDetectors(unsigned int *numDet);
# int xiaGetDetectors(char *detectors[]);
# int xiaGetDetectors_VB(unsigned int index, char *alias);
# int xiaRemoveDetector(char *alias);
# int xiaDetectorFromDetChan(int detChan, char *alias);
# int xiaNewFirmware(char *alias);
# int xiaAddFirmwareItem(char *alias, char *name, void *value);
# int xiaModifyFirmwareItem(char *alias, unsigned short decimation, char *name, void *value);
# int xiaGetFirmwareItem(char *alias, unsigned short decimation, char *name, void *value);
# int xiaGetNumFirmwareSets(unsigned int *numFirmware);
# int xiaGetFirmwareSets(char *firmware[]);
# int xiaGetFirmwareSets_VB(unsigned int index, char *alias);
# int xiaGetNumPTRRs(char *alias, unsigned int *numPTRR);
# int xiaRemoveFirmware(char *alias);
# int xiaNewModule(char *alias);
# int xiaAddModuleItem(char *alias, char *name, void *value);
# int xiaModifyModuleItem(char *alias, char *name, void *value);
# int xiaGetModuleItem(char *alias, char *name, void *value);
# int xiaGetNumModules(unsigned int *numModules);
# int xiaGetModules(char *modules[]);
# int xiaGetModules_VB(unsigned int index, char *alias);
# int xiaRemoveModule(char *alias);
# int xiaModuleFromDetChan(int detChan, char *alias);
# int xiaAddChannelSetElem(unsigned int detChanSet, unsigned int newChan);
# int xiaRemoveChannelSetElem(unsigned int detChan, unsigned int chan);
# int xiaRemoveChannelSet(unsigned int detChan);
# int xiaStartSystem(void);
# int xiaDownloadFirmware(int detChan, char *type);
# int xiaSetAcquisitionValues(int detChan, char *name, void *value);
# int xiaGetAcquisitionValues(int detChan, char *name, void *value);
# int xiaRemoveAcquisitionValues(int detChan, char *name);
# int xiaUpdateUserParams(int detChan);
# int xiaGainOperation(int detChan, char *name, void *value);
# int xiaGainCalibrate(int detChan, double deltaGain);
# int xiaStartRun(int detChan, unsigned short resume);
# int xiaStopRun(int detChan);
# int xiaGetRunData(int detChan, char *name, void *value);
# int xiaDoSpecialRun(int detChan, char *name, void *info);
# int xiaGetSpecialRunData(int detChan, char *name, void *value);
# int xiaLoadSystem(char *type, char *filename);
# int xiaSaveSystem(char *type, char *filename);
# int xiaGetParameter(int detChan, const char *name, unsigned short *value);
# int xiaSetParameter(int detChan, const char *name, unsigned short value);
# int xiaGetNumParams(int detChan, unsigned short *numParams);
# int xiaGetParamData(int detChan, char *name, void *value);
# int xiaGetParamName(int detChan, unsigned short index, char *name);
# int xiaBoardOperation(int detChan, char *name, void *value);
# int xiaMemoryOperation(int detChan, char *name, void *value);
# int xiaCommandOperation(int detChan, byte_t cmd, unsigned int lenS, byte_t *send, unsigned int lenR, byte_t *recv);
# int xiaFitGauss(long data[], int lower, int upper, float *pos, float *fwhm);
# int xiaFindPeak(long *data, int numBins, float thresh, int *lower, int *upper);
# int xiaExit(void);
# int xiaEnableLogOutput(void);
# int xiaSuppressLogOutput(void);
# int xiaSetLogLevel(int level);
# int xiaSetLogOutput(char *fileName);
# int xiaCloseLog(void);
# int xiaSetIOPriority(int pri);
# void xiaGetVersionInfo(int *rel, int *min, int *maj, char *pretty);
# int xiaMemStatistics(unsigned long *total, unsigned long *current, unsigned long *peak);
# void xiaMemSetCheckpoint(void);
# void xiaMemLeaks(char *);
setup.py
View file @
f15c7cdb
...
...
@@ -11,8 +11,9 @@ setup(
version
=
'0.1.0.dev0'
,
packages
=
[
'handel'
],
install_requires
=
[
'cffi'
],
setup_requires
=
[
'pytest-runner'
,
'pytest'
]
if
TESTING
else
[],
tests_require
=
[
'pytest-cov'
],
tests_require
=
[
'pytest-cov'
,
'mock'
],
description
=
"Python binding for the Handel library"
,
long_description
=
long_description
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment