mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-12 21:07:13 +02:00
master hdf5 does not work, but so far good
This commit is contained in:
@ -5,13 +5,15 @@
|
||||
***********************************************/
|
||||
#ifndef BINARY_FILE_H
|
||||
#define BINARY_FILE_H
|
||||
|
||||
#include "File.h"
|
||||
|
||||
/**
|
||||
*@short sets/gets properties for the binary file, creates/closes the file and writes data to it
|
||||
*/
|
||||
|
||||
|
||||
#include "File.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
class BinaryFile : private virtual slsReceiverDefs, public File {
|
||||
|
||||
public:
|
||||
@ -26,10 +28,12 @@ class BinaryFile : private virtual slsReceiverDefs, public File {
|
||||
* @param owenable pointer to over write enable
|
||||
* @param dindex pointer to detector index
|
||||
* @param nunits pointer to number of theads/ units per detector
|
||||
* @param maxf pointer to max frames per file
|
||||
* @param nf pointer to number of frames
|
||||
* @param dr dynamic range
|
||||
* @param maxf max frames per file
|
||||
*/
|
||||
BinaryFile(int ind, char* fname, char* fpath, uint64_t* findex,
|
||||
bool* frindexenable, bool* owenable, int* dindex, int* nunits, uint32_t maxf);
|
||||
bool* frindexenable, bool* owenable, int* dindex, int* nunits, uint64_t* nf, uint32_t* dr, uint32_t maxf);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
@ -55,9 +59,23 @@ class BinaryFile : private virtual slsReceiverDefs, public File {
|
||||
int CreateFile(uint64_t fnum);
|
||||
|
||||
/**
|
||||
* Close File
|
||||
* Close Current File
|
||||
*/
|
||||
void CloseFile();
|
||||
void CloseCurrentFile();
|
||||
|
||||
/**
|
||||
* Close all Files
|
||||
*/
|
||||
void CloseAllFiles();
|
||||
|
||||
/**
|
||||
* Write data to file
|
||||
* @param buffer buffer to write from
|
||||
* @param buffersize size of buffer
|
||||
* @param fnum current image number
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int WriteToFile(char* buffer, int buffersize, uint64_t fnum);
|
||||
|
||||
/**
|
||||
* Create File Name in format fpath/fnameprefix_fx_dy_z.raw,
|
||||
@ -77,18 +95,41 @@ class BinaryFile : private virtual slsReceiverDefs, public File {
|
||||
|
||||
/**
|
||||
* Create File
|
||||
* @param fd file pointer
|
||||
* @param owenable overwrite enable
|
||||
* @param fname complete file name
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
static int CreateDataFile(bool owenable, char* fname);
|
||||
static int CreateDataFile(FILE*& fd, bool owenable, std::string fname);
|
||||
|
||||
/**
|
||||
* Close File
|
||||
* @param fd file pointer
|
||||
*/
|
||||
static void CloseDataFile();
|
||||
static void CloseDataFile(FILE*& fd);
|
||||
|
||||
/**
|
||||
* Write data to file
|
||||
* @param fd file pointer
|
||||
* @param buf buffer to write from
|
||||
* @param bsize size of buffer
|
||||
* @param fnum current image number
|
||||
* @returns number of elements written
|
||||
*/
|
||||
static int WriteDataFile(FILE* fd, char* buf, int bsize, uint64_t fnum);
|
||||
|
||||
/**
|
||||
* Create common files
|
||||
* @param en ten giga enable
|
||||
* @param size image size
|
||||
* @param nx number of pixels in x direction
|
||||
* @param ny number of pixels in y direction
|
||||
* @param at acquisition time
|
||||
* @param ap acquisition period
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int CreateCommonFiles(bool en, uint32_t size,
|
||||
uint32_t nx, uint32_t ny, uint64_t at, uint64_t ap);
|
||||
|
||||
|
||||
private:
|
||||
@ -97,11 +138,47 @@ class BinaryFile : private virtual slsReceiverDefs, public File {
|
||||
* Get Type
|
||||
* @return type
|
||||
*/
|
||||
fileFormat GetType();
|
||||
fileFormat GetFileType();
|
||||
|
||||
/** Maximum frames per file */
|
||||
uint32_t maxFramesPerFile;
|
||||
|
||||
/** File Descriptor */
|
||||
FILE* filefd;
|
||||
|
||||
/** Master File Descriptor */
|
||||
static FILE* masterfd;
|
||||
|
||||
/**
|
||||
* Create file names for master and virtual file
|
||||
* @param m master file name
|
||||
* @param fpath file path
|
||||
* @param fnameprefix file name prefix (includes scan and position variables)
|
||||
* @param findex file index
|
||||
*/
|
||||
void CreateCommonFileNames(std::string& m, char* fpath, char* fnameprefix, uint64_t findex);
|
||||
|
||||
/*
|
||||
* Close master and virtual files
|
||||
*/
|
||||
void CloseCommonDataFiles();
|
||||
|
||||
/**
|
||||
* Create master and virtual files
|
||||
* @param m master file name
|
||||
* @param owenable overwrite enable
|
||||
* @param tengigaEnable ten giga enable
|
||||
* @param imageSize image size
|
||||
* @param nPixelsX number of pixels in x direction
|
||||
* @param nPixelsY number of pixels in y direction
|
||||
* @param acquisitionTime acquisition time
|
||||
* @param acquisitionPeriod acquisition period
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int CreateCommonDataFiles(std::string m, bool owenable,
|
||||
bool tengigaEnable, uint32_t imageSize, uint32_t nPixelsX, uint32_t nPixelsY,
|
||||
uint64_t acquisitionTime, uint64_t acquisitionPeriod);
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user