mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2025-06-12 15:27:13 +02:00
save work debugging
This commit is contained in:
@ -26,6 +26,7 @@ class File {
|
|||||||
void write(Frame &frame);
|
void write(Frame &frame);
|
||||||
Frame read();
|
Frame read();
|
||||||
Frame iread(size_t frame_number);
|
Frame iread(size_t frame_number);
|
||||||
|
std::vector<Frame> iread(size_t frame_number, size_t n_frames);
|
||||||
std::vector<Frame> read(size_t n_frames);
|
std::vector<Frame> read(size_t n_frames);
|
||||||
void read_into(std::byte *image_buf);
|
void read_into(std::byte *image_buf);
|
||||||
void read_into(std::byte *image_buf, size_t n_frames);
|
void read_into(std::byte *image_buf, size_t n_frames);
|
||||||
|
@ -134,28 +134,14 @@ class FileInterface {
|
|||||||
* @param frame_number frame number to read
|
* @param frame_number frame number to read
|
||||||
* @return frame
|
* @return frame
|
||||||
*/
|
*/
|
||||||
Frame iread(size_t frame_number) {
|
virtual Frame iread(size_t frame_number)=0;
|
||||||
auto old_pos = tell();
|
|
||||||
seek(frame_number);
|
|
||||||
Frame tmp = read();
|
|
||||||
seek(old_pos);
|
|
||||||
return tmp;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief read n_frames from the file starting at the given frame number
|
* @brief read n_frames from the file starting at the given frame number
|
||||||
* @param frame_number frame number to start reading from
|
* @param frame_number frame number to start reading from
|
||||||
* @param n_frames number of frames to read
|
* @param n_frames number of frames to read
|
||||||
* @return vector of frames
|
* @return vector of frames
|
||||||
*/
|
*/
|
||||||
std::vector<Frame> iread(size_t frame_number, size_t n_frames) {
|
virtual std::vector<Frame> iread(size_t frame_number, size_t n_frames)=0;
|
||||||
auto old_pos = tell();
|
|
||||||
seek(frame_number);
|
|
||||||
std::vector<Frame> tmp = read(n_frames);
|
|
||||||
seek(old_pos);
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
// function to query the data type of the file
|
// function to query the data type of the file
|
||||||
/*virtual DataType dtype = 0; */
|
/*virtual DataType dtype = 0; */
|
||||||
|
|
||||||
|
@ -72,6 +72,21 @@ class NumpyFile : public FileInterface {
|
|||||||
}
|
}
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
Frame iread(size_t frame_number) {
|
||||||
|
auto old_pos = tell();
|
||||||
|
seek(frame_number);
|
||||||
|
Frame tmp = read();
|
||||||
|
seek(old_pos);
|
||||||
|
return tmp;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<Frame> iread(size_t frame_number, size_t n_frames) {
|
||||||
|
auto old_pos = tell();
|
||||||
|
seek(frame_number);
|
||||||
|
std::vector<Frame> tmp = read(n_frames);
|
||||||
|
seek(old_pos);
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
~NumpyFile() noexcept override;
|
~NumpyFile() noexcept override;
|
||||||
|
|
||||||
|
@ -26,8 +26,8 @@ class RawFile : public FileInterface {
|
|||||||
*/
|
*/
|
||||||
void write([[maybe_unused]] Frame &frame) override { throw std::runtime_error("Not implemented"); };
|
void write([[maybe_unused]] Frame &frame) override { throw std::runtime_error("Not implemented"); };
|
||||||
Frame read() override {
|
Frame read() override {
|
||||||
return get_frame(frame_number(this->current_frame++));
|
std::cout << "Reading frame " << this->current_frame << std::endl;
|
||||||
};
|
return get_frame(frame_number(this->current_frame++)); };
|
||||||
std::vector<Frame> read(size_t n_frames) override;
|
std::vector<Frame> read(size_t n_frames) override;
|
||||||
void read_into(std::byte *image_buf) override {
|
void read_into(std::byte *image_buf) override {
|
||||||
return get_frame_into(frame_number(this->current_frame++), image_buf);
|
return get_frame_into(frame_number(this->current_frame++), image_buf);
|
||||||
@ -48,10 +48,13 @@ class RawFile : public FileInterface {
|
|||||||
size_t pixels_per_frame() override { return m_rows * m_cols; }
|
size_t pixels_per_frame() override { return m_rows * m_cols; }
|
||||||
|
|
||||||
// goto frame number
|
// goto frame number
|
||||||
void seek(size_t frame_number) override { this->current_frame = frame_number; };
|
void seek(size_t frame_number) override { this->current_frame = frame_number + m_starting_frame;
|
||||||
|
std::cout<<"Seeking to frame "<<frame_number<<std::endl;
|
||||||
|
std::cout<<"Current frame is "<<this->current_frame<<std::endl;
|
||||||
|
};
|
||||||
|
|
||||||
// return the position of the file pointer (in number of frames)
|
// return the position of the file pointer (in number of frames)
|
||||||
size_t tell() override { return this->current_frame; };
|
size_t tell() override { return this->current_frame - m_starting_frame; };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief check if the file is a master file
|
* @brief check if the file is a master file
|
||||||
@ -98,6 +101,21 @@ class RawFile : public FileInterface {
|
|||||||
size_t rows() const override { return m_rows; }
|
size_t rows() const override { return m_rows; }
|
||||||
size_t cols() const override { return m_cols; }
|
size_t cols() const override { return m_cols; }
|
||||||
size_t bitdepth() const override { return m_bitdepth; }
|
size_t bitdepth() const override { return m_bitdepth; }
|
||||||
|
Frame iread(size_t frame_number) override {
|
||||||
|
auto old_pos = tell();
|
||||||
|
seek(frame_number);
|
||||||
|
Frame tmp = read();
|
||||||
|
seek(old_pos);
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<Frame> iread(size_t frame_number, size_t n_frames) override {
|
||||||
|
auto old_pos = tell();
|
||||||
|
seek(frame_number);
|
||||||
|
std::vector<Frame> tmp = read(n_frames);
|
||||||
|
seek(old_pos);
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
|
@ -45,7 +45,8 @@ class SubFile {
|
|||||||
* @param bitdepth bitdepth of the subfile
|
* @param bitdepth bitdepth of the subfile
|
||||||
* @throws std::invalid_argument if the detector,type pair is not supported
|
* @throws std::invalid_argument if the detector,type pair is not supported
|
||||||
*/
|
*/
|
||||||
SubFile(const std::filesystem::path &fname, DetectorType detector, size_t rows, size_t cols, size_t bitdepth,int subfile_id);
|
SubFile(const std::filesystem::path &fname, DetectorType detector, size_t rows, size_t cols, size_t bitdepth,
|
||||||
|
int subfile_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief read the subfile into a buffer
|
* @brief read the subfile into a buffer
|
||||||
|
@ -45,6 +45,9 @@ size_t File::bitdepth() const { return file_impl->bitdepth(); }
|
|||||||
File::~File() { delete file_impl; }
|
File::~File() { delete file_impl; }
|
||||||
|
|
||||||
Frame File::iread(size_t frame_number) { return file_impl->iread(frame_number); }
|
Frame File::iread(size_t frame_number) { return file_impl->iread(frame_number); }
|
||||||
|
std::vector<Frame> File::iread(size_t frame_number, size_t n_frames) {
|
||||||
|
return file_impl->iread(frame_number, n_frames);
|
||||||
|
}
|
||||||
|
|
||||||
File::File(File &&other) noexcept : file_impl(other.file_impl) { other.file_impl = nullptr; }
|
File::File(File &&other) noexcept : file_impl(other.file_impl) { other.file_impl = nullptr; }
|
||||||
|
|
||||||
|
@ -24,7 +24,9 @@ RawFile::RawFile(const std::filesystem::path &fname, const std::string &mode, co
|
|||||||
} else {
|
} else {
|
||||||
throw std::runtime_error(LOCATION + "Unsupported mode");
|
throw std::runtime_error(LOCATION + "Unsupported mode");
|
||||||
}
|
}
|
||||||
|
aare::logger::error("axxxsdasda", m_starting_frame);
|
||||||
m_starting_frame = this->frame_number(0);
|
m_starting_frame = this->frame_number(0);
|
||||||
|
aare::logger::error("asdasda", m_starting_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RawFile::open_subfiles() {
|
void RawFile::open_subfiles() {
|
||||||
|
Reference in New Issue
Block a user