Stimfit
@PACKAGE_VERSION@
Loading...
Searching...
No Matches
src
libstfio
intan
intanlib.h
Go to the documentation of this file.
1
// This program is free software; you can redistribute it and/or
2
// modify it under the terms of the GNU General Public License
3
// as published by the Free Software Foundation; either version 2
4
// of the License, or (at your option) any later version.
5
6
// This program is distributed in the hope that it will be useful,
7
// but WITHOUT ANY WARRANTY; without even the implied warranty of
8
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9
// GNU General Public License for more details.
10
11
// You should have received a copy of the GNU General Public License
12
// along with this program; if not, write to the Free Software
13
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14
20
21
/*
22
Mostly a Python version of read_Intan_CLP_file.m from
23
http://www.intantech.com/files/Intan_CLAMP_software_compiled_v1_0.zip
24
as of 2016-11-05
25
26
Example:
27
>>> import matplotlib.pyplot as plt
28
>>> import intan
29
>>> intan_file = intan.IntanFile('myexperiment_A_160916_142731.clp')
30
>>> plt.plot(intan_file.data["Time"], intan_file.data["Measured"])
31
>>> intan_file = intan.IntanFile('myexperiment_AUX_160916_142731.clp')
32
>>> plt.plot(intan_file.data["Time"], intan_file.data["ADC"][1])
33
*/
34
#ifndef INTANLIB_H
35
#define INTANLIB_H
36
37
#if __cplusplus > 199711L
38
#include <cstdint>
39
#else
40
#include <boost/cstdint.hpp>
41
#endif
42
43
#include "
./../stfio.h
"
44
45
#if defined(_MSC_VER) && (_MSC_VER < 1600)
46
typedef
__int8 int8_t;
47
typedef
__int16 int16_t;
48
typedef
__int32 int32_t;
49
typedef
__int64 int64_t;
50
typedef
unsigned
__int8 uint8_t;
51
typedef
unsigned
__int16 uint16_t;
52
typedef
unsigned
__int32 uint32_t;
53
typedef
unsigned
__int64 uint64_t;
54
#endif
55
56
class
Recording
;
57
58
static
const
int
MAX_REGISTERS
= 14;
59
static
const
uint32_t
MAGIC_NUMBER
= 0xf3b1a481;
60
61
struct
Segment
{
62
uint8_t
waveformNumber
;
63
uint32_t
tOffset
;
64
uint32_t
startIndex
;
65
uint32_t
endIndex
;
66
float
appliedValue
;
67
};
68
69
struct
VoltageClampSettings
{
70
float
holdingVoltage
;
71
float
nominalResistance
;
72
float
resistance
;
73
float
desiredBandwidth
;
74
float
actualBandwidth
;
75
};
76
77
struct
CurrentClampSettings
{
78
float
holdingCurrent
;
79
float
currentStepSize
;
80
};
81
82
struct
HeaderSettings
{
83
uint8_t
enableCapacitiveCompensation
;
84
float
capCompensationMagnitude
;
85
float
filterCutoff
;
86
float
pipetteOffset
;
87
float
samplingRate
;
88
float
cellRs
;
89
float
cellRm
;
90
float
cellCm
;
91
uint8_t
isVoltageClamp
;
92
uint8_t
vClampX2Mode
;
93
VoltageClampSettings
vcSettings
;
94
CurrentClampSettings
ccSettings
;
95
std::vector<Segment>
waveform
;
96
};
97
98
struct
Calibration
{
99
uint8_t
coarse
;
100
uint8_t
fine
;
101
};
102
103
struct
ChannelHeader
{
104
uint16_t
registers
[
MAX_REGISTERS
];
105
uint32_t
differenceAmpResidual
;
106
uint32_t
voltageAmpResidual
;
107
Calibration
bestCalibration
[2][4];
108
float
rFeedback
[5];
109
float
desiredBandwidth
;
110
};
111
112
struct
ChipHeader
{
113
std::vector<ChannelHeader>
channels
;
114
uint16_t
chipRegisters
[4];
115
};
116
117
struct
IntanHeader
{
118
int16_t
version_major
;
119
int16_t
version_minor
;
120
int16_t
datatype
;
121
int16_t
date_Year
;
122
int16_t
date_Month
;
123
int16_t
date_Day
;
124
int16_t
date_Hour
;
125
int16_t
date_Minute
;
126
int16_t
date_Second
;
127
std::vector<ChipHeader>
Chips
;
128
HeaderSettings
Settings
;
129
uint16_t
numADCs
;
130
131
};
132
133
namespace
stfio
{
134
136
141
void
importIntanFile
(
const
std::string &fName,
Recording
&ReturnData,
ProgressInfo
& progDlg);
142
143
}
144
#endif
Recording
Represents the data within a file.
Definition
recording.h:44
stfio::ProgressInfo
ProgressInfo class.
Definition
stfio.h:69
MAGIC_NUMBER
static const uint32_t MAGIC_NUMBER
Definition
intanlib.h:59
MAX_REGISTERS
static const int MAX_REGISTERS
Definition
intanlib.h:58
stfio
The stfio namespace.
Definition
abflib.h:27
stfio::importIntanFile
void importIntanFile(const std::string &fName, Recording &ReturnData, ProgressInfo &progDlg)
Open an Intan file and store its contents to a Recording object.
stfio.h
header file for libstfio
Calibration
Definition
intanlib.h:98
Calibration::fine
uint8_t fine
Definition
intanlib.h:100
Calibration::coarse
uint8_t coarse
Definition
intanlib.h:99
ChannelHeader
Definition
intanlib.h:103
ChannelHeader::differenceAmpResidual
uint32_t differenceAmpResidual
Definition
intanlib.h:105
ChannelHeader::registers
uint16_t registers[MAX_REGISTERS]
Definition
intanlib.h:104
ChannelHeader::bestCalibration
Calibration bestCalibration[2][4]
Definition
intanlib.h:107
ChannelHeader::voltageAmpResidual
uint32_t voltageAmpResidual
Definition
intanlib.h:106
ChannelHeader::rFeedback
float rFeedback[5]
Definition
intanlib.h:108
ChannelHeader::desiredBandwidth
float desiredBandwidth
Definition
intanlib.h:109
ChipHeader
Definition
intanlib.h:112
ChipHeader::chipRegisters
uint16_t chipRegisters[4]
Definition
intanlib.h:114
ChipHeader::channels
std::vector< ChannelHeader > channels
Definition
intanlib.h:113
CurrentClampSettings
Definition
intanlib.h:77
CurrentClampSettings::holdingCurrent
float holdingCurrent
Definition
intanlib.h:78
CurrentClampSettings::currentStepSize
float currentStepSize
Definition
intanlib.h:79
HeaderSettings
Definition
intanlib.h:82
HeaderSettings::waveform
std::vector< Segment > waveform
Definition
intanlib.h:95
HeaderSettings::vClampX2Mode
uint8_t vClampX2Mode
Definition
intanlib.h:92
HeaderSettings::isVoltageClamp
uint8_t isVoltageClamp
Definition
intanlib.h:91
HeaderSettings::enableCapacitiveCompensation
uint8_t enableCapacitiveCompensation
Definition
intanlib.h:83
HeaderSettings::samplingRate
float samplingRate
Definition
intanlib.h:87
HeaderSettings::cellRm
float cellRm
Definition
intanlib.h:89
HeaderSettings::capCompensationMagnitude
float capCompensationMagnitude
Definition
intanlib.h:84
HeaderSettings::cellRs
float cellRs
Definition
intanlib.h:88
HeaderSettings::filterCutoff
float filterCutoff
Definition
intanlib.h:85
HeaderSettings::cellCm
float cellCm
Definition
intanlib.h:90
HeaderSettings::pipetteOffset
float pipetteOffset
Definition
intanlib.h:86
HeaderSettings::ccSettings
CurrentClampSettings ccSettings
Definition
intanlib.h:94
HeaderSettings::vcSettings
VoltageClampSettings vcSettings
Definition
intanlib.h:93
IntanHeader
Definition
intanlib.h:117
IntanHeader::date_Month
int16_t date_Month
Definition
intanlib.h:122
IntanHeader::numADCs
uint16_t numADCs
Definition
intanlib.h:129
IntanHeader::date_Second
int16_t date_Second
Definition
intanlib.h:126
IntanHeader::datatype
int16_t datatype
Definition
intanlib.h:120
IntanHeader::date_Day
int16_t date_Day
Definition
intanlib.h:123
IntanHeader::date_Minute
int16_t date_Minute
Definition
intanlib.h:125
IntanHeader::version_major
int16_t version_major
Definition
intanlib.h:118
IntanHeader::Settings
HeaderSettings Settings
Definition
intanlib.h:128
IntanHeader::date_Year
int16_t date_Year
Definition
intanlib.h:121
IntanHeader::Chips
std::vector< ChipHeader > Chips
Definition
intanlib.h:127
IntanHeader::date_Hour
int16_t date_Hour
Definition
intanlib.h:124
IntanHeader::version_minor
int16_t version_minor
Definition
intanlib.h:119
Segment
Definition
intanlib.h:61
Segment::waveformNumber
uint8_t waveformNumber
Definition
intanlib.h:62
Segment::endIndex
uint32_t endIndex
Definition
intanlib.h:65
Segment::startIndex
uint32_t startIndex
Definition
intanlib.h:64
Segment::appliedValue
float appliedValue
Definition
intanlib.h:66
Segment::tOffset
uint32_t tOffset
Definition
intanlib.h:63
VoltageClampSettings
Definition
intanlib.h:69
VoltageClampSettings::resistance
float resistance
Definition
intanlib.h:72
VoltageClampSettings::holdingVoltage
float holdingVoltage
Definition
intanlib.h:70
VoltageClampSettings::nominalResistance
float nominalResistance
Definition
intanlib.h:71
VoltageClampSettings::desiredBandwidth
float desiredBandwidth
Definition
intanlib.h:73
VoltageClampSettings::actualBandwidth
float actualBandwidth
Definition
intanlib.h:74
Generated by
1.14.0