Dzięki, dokładnie o to chodziło ;).
Jeszcze tylko takie malutkie pytanie. W pliku nagłówkowym jest klasa. W jaki sposób można "opakować" konstruktor oraz destruktor tej klasy? Może dla ułatwienia pokażę .h:
#ifndef ecgAnlsH
#define ecgAnlsH
class ecgAnRT;
typedef struct results
{
unsigned long Index;
unsigned char PeakType;
unsigned char ArrhythmiaType;
//----------------------
short *ST1level;
short *ST2level;
short *ST1dev;
short *ST2dev;
//----------------------
unsigned char ok;
unsigned short HeartRate;
unsigned char RhythmIrregularity;
short *ADCoscLevel;
short *NoiseLevel;
}results;
class ecgAnls
{
public:
//Konstruktor
ecgAnls(float fs);
ecgAnls(float fs, int nChnls);
~ecgAnls(void);
int processECGsamples(short *multiChannelECGblock, int nSamplesPerChannel, unsigned long smplPerChannelIndex, results &resultsStruct);
float ** getAverageECGperiod(long &ECGperiodLen, long &STLind, long &ST1ind, long &ST2ind);
float ** getReferenceECGperiod(long &ECGperiodLen, long &STLind, long &ST1ind, long &ST2ind);
//**************************************************************************************************************************************
void insertSample(short sample, short sampleAux, unsigned long index);
//Przetwarzanie
unsigned long processData(void);
float ** getST1results(unsigned long * tableLength);
float ** getST2results(unsigned long * tableLength);
float ** getST1devResults(unsigned long * tableLength);
float ** getST2devResults(unsigned long * tableLength);
float * getSTparametersLeadI(long *ECGperiodLen, long * STLind, long * ST1ind, long * ST2ind);
float * getSTparametersLeadII(long *ECGperiodLen, long * STLind, long * ST1ind, long * ST2ind);
float * getECGperiodRefLeadI(long *ECGperiodLen, long * STLind, long * ST1ind, long * ST2ind);
float * getECGperiodRefLeadII(long *ECGperiodLen, long * STLind, long * ST1ind, long * ST2ind);
void setBaseLinePoint2RpointDist(float milisecDist);
void setJpoint2RpointDist(float milisecDist);
void setSTpoint2JpointDist(float milisecDist);
void setNperiods2average(int n);
float getBaseLinePoint2RpointDist(void);
float getJpoint2RpointDist(void);
float getSTpoint2JpointDist(void);
int getNperiods2average(void);
//*********************************************************************************************
long getBaseLinePoint2RpointDistInd(void);
long getJpoint2RpointDistInd(void);
long getSTpoint2JpointDistInd(void);
float getST1devLeadImax(void);
float getST1devLeadIImax(void);
float getST1devLeadImin(void);
float getST1devLeadIImin(void);
float getST2devLeadImax(void);
float getST2devLeadIImax(void);
float getST2devLeadImin(void);
float getST2devLeadIImin(void);
unsigned long ** getResults(unsigned long * tableLength);
void reset(void);
float getECGlibVersion(void);
//=====================Interface=================================
void setAmplitudeThreshold(float ampThLev);
void setPathologicalWidth(float vWidth);
void setPacerWidth(float vWidth);
float getPacerWidth(void);
void setPacer(int on_off);
int getPacer(void);
void setVTachycardiaBPMstart(float tahBPMstrt);
float getVTachycardiaBPMstart(void);
void setSVTachycardiaBPMstart(float SVtahBPMstrt);
float getSVTachycardiaBPMstart(void);
void setBradycardiaBPMstart(float BradBPMstrt);
float getBradycardiaBPMstart(void);
void setPrematureBeatRatio(float pbRatio);
void setPauseDurationBounds(float minPauseDuration, float maxPauseDuration);
void getPauseDurationBounds(float &minPauseDuration, float &maxPauseDuration);
void setR2TmaxDist(float milisecDist);
void setNbeats4HRmeasure(int nBeats);
void setNbeats4rhythmIrregMeasure(int nBeats);
void setACintrFreq(float intrFq);
void setADClimits(float minLev, float maxLev, float minLevMiliVolt, float maxLevMiliVolt);
void setPercentPrematurity(int percentValue);
int getPercentPrematurity(void);
void setMultiformSensitivity(int v1_to_10);
int getMultiformSensitivity(void);
//==============Auxiliary methods for displaying===============
int buffDuration2maxBufSize(float duration);
void setDispBufSize(int size);
unsigned long getDispIndex(int k);
int getDispPeakEvent(int k);
int getDispArtmEvent(int k);
float getDispST1devLead1event(int k);
float getDispST2devLead1event(int k);
float getDispST1devLead2event(int k);
float getDispST2devLead2event(int k);
int getDispBufSize(void);
void getDispPeakEventName(int k, char *pName);
void getDispArtmEventName(int k, char *aName);
/*<><>*/// ++++++ AUXILIARY INFORMATION INTERFACE METHODS ++++++++++++++++++++++++++++++++++++++++++
/*<><>*///Getting rythm irregularity indicator (for current index)
/*<><>*/float getDispRythmIrregularity(int k);
/*<><>*///Getting ADC network oscillation amplitude (for current index)
/*<><>*/float getDispADCnetworkAmp(int k);
/*<><>*///Average heart rate (for current index)
/*<><>*/float getDispAverageHeartRate(int k);
/*<><>*///Getting ADC network oscillation amplitude for the second lead signal (for current index)
/*<><>*/float getDispAuxADCnetworkAmp(int k);
/*<><>*///Noise level (for current index)
/*<><>*/float getDispNoiseLev(int k);
/*<><>*///Noise level for 2 lead (for current index)
/*<><>*/float getDispAuxNoiseLev(int k);
/*<><>*/// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//===============================================================
int isArrhythmiaDataReady(void);
int isSTDataReady(void);
private:
ecgAnRT *ecgAnReTm;
};
#endif
Tak to wygląda. Od razu zaznaczam, że kod nie jest mój, ja mam go tylko "opakować".