mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2025-06-07 13:10:42 +02:00
saving work
This commit is contained in:
parent
d720a8e338
commit
079d519e96
17
.vscode/c_cpp_properties.json
vendored
Normal file
17
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Linux",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**"
|
||||||
|
],
|
||||||
|
"defines": [],
|
||||||
|
"compilerPath": "/usr/bin/clang",
|
||||||
|
"cStandard": "c17",
|
||||||
|
"cppStandard": "c++17",
|
||||||
|
"intelliSenseMode": "linux-clang-x64",
|
||||||
|
"configurationProvider": "ms-vscode.cmake-tools"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
57
.vscode/settings.json
vendored
Normal file
57
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"cmake.configureOnOpen": true,
|
||||||
|
"files.associations": {
|
||||||
|
"stdexcept": "cpp",
|
||||||
|
"cstddef": "cpp",
|
||||||
|
"cctype": "cpp",
|
||||||
|
"clocale": "cpp",
|
||||||
|
"cmath": "cpp",
|
||||||
|
"cstdarg": "cpp",
|
||||||
|
"cstdio": "cpp",
|
||||||
|
"cstdlib": "cpp",
|
||||||
|
"ctime": "cpp",
|
||||||
|
"cwchar": "cpp",
|
||||||
|
"cwctype": "cpp",
|
||||||
|
"array": "cpp",
|
||||||
|
"atomic": "cpp",
|
||||||
|
"bit": "cpp",
|
||||||
|
"*.tcc": "cpp",
|
||||||
|
"codecvt": "cpp",
|
||||||
|
"compare": "cpp",
|
||||||
|
"concepts": "cpp",
|
||||||
|
"cstdint": "cpp",
|
||||||
|
"deque": "cpp",
|
||||||
|
"string": "cpp",
|
||||||
|
"unordered_map": "cpp",
|
||||||
|
"vector": "cpp",
|
||||||
|
"exception": "cpp",
|
||||||
|
"algorithm": "cpp",
|
||||||
|
"functional": "cpp",
|
||||||
|
"iterator": "cpp",
|
||||||
|
"memory": "cpp",
|
||||||
|
"memory_resource": "cpp",
|
||||||
|
"numeric": "cpp",
|
||||||
|
"optional": "cpp",
|
||||||
|
"random": "cpp",
|
||||||
|
"ratio": "cpp",
|
||||||
|
"string_view": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"tuple": "cpp",
|
||||||
|
"type_traits": "cpp",
|
||||||
|
"utility": "cpp",
|
||||||
|
"initializer_list": "cpp",
|
||||||
|
"iomanip": "cpp",
|
||||||
|
"iosfwd": "cpp",
|
||||||
|
"iostream": "cpp",
|
||||||
|
"istream": "cpp",
|
||||||
|
"limits": "cpp",
|
||||||
|
"new": "cpp",
|
||||||
|
"numbers": "cpp",
|
||||||
|
"ostream": "cpp",
|
||||||
|
"sstream": "cpp",
|
||||||
|
"streambuf": "cpp",
|
||||||
|
"cinttypes": "cpp",
|
||||||
|
"typeinfo": "cpp",
|
||||||
|
"filesystem": "cpp"
|
||||||
|
}
|
||||||
|
}
|
@ -19,7 +19,7 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|||||||
set(OPTIMIZATION_FLAGS "-Og -ggdb3")
|
set(OPTIMIZATION_FLAGS "-Og -ggdb3")
|
||||||
else()
|
else()
|
||||||
set(OPTIMIZATION_FLAGS "-O3")
|
set(OPTIMIZATION_FLAGS "-O3")
|
||||||
|
endif()
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
option(USE_SANITIZER "Sanitizers for debugging" ON)
|
option(USE_SANITIZER "Sanitizers for debugging" ON)
|
||||||
@ -41,9 +41,7 @@ if(DISABLE_WARNINGS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(USE_SANITIZER)
|
if(USE_SANITIZER)
|
||||||
set(OPTIONAL_FLAGS "${OPTIONAL_FLAGS} -fdiagnostics-parseable-fixits -fdiagnostics-generate-patch
|
set(OPTIONAL_FLAGS "${OPTIONAL_FLAGS} -fdiagnostics-parseable-fixits -fdiagnostics-generate-patch -fdiagnostics-show-template-tree -fsanitize=address,undefined,pointer-compare -fno-sanitize-recover -D_FORTIFY_SOURCE=2 -fstack-protector -fno-omit-frame-pointer ")
|
||||||
-fdiagnostics-show-template-tree -fsanitize=address,undefined -fno-sanitize-recover
|
|
||||||
-D_FORTIFY_SOURCE=2 -fstack-protector")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# if(TUNE_LOCAL)
|
# if(TUNE_LOCAL)
|
||||||
@ -58,8 +56,6 @@ endif()
|
|||||||
# #
|
# #
|
||||||
# endif()
|
# endif()
|
||||||
|
|
||||||
if
|
|
||||||
set(CMAKE_CXX_FLAGS "")
|
|
||||||
|
|
||||||
|
|
||||||
#Enable LTO if available
|
#Enable LTO if available
|
||||||
@ -71,6 +67,9 @@ else()
|
|||||||
message(STATUS "Building without link time optimization")
|
message(STATUS "Building without link time optimization")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
set(CMAKE_CXX_FLAGS "${OPTIONAL_FLAGS} ${OPTIMIZATION_FLAGS}")
|
||||||
|
|
||||||
add_executable(aare)
|
add_executable(aare)
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
add_subdirectory(file_io)
|
add_subdirectory(file_io)
|
||||||
add_subdirectory(models)
|
add_subdirectory(core)
|
||||||
add_subdirectory(processing)
|
add_subdirectory(processing)
|
||||||
|
|
||||||
target_include_directories(aare PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(aare PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
target_sources(aare PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
|
target_sources(aare PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
|
1
src/core/CMakeLists.txt
Normal file
1
src/core/CMakeLists.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
target_include_directories(aare PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
3
src/core/Frame.cpp
Normal file
3
src/core/Frame.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#include "Frame.hpp"
|
||||||
|
|
||||||
|
ssize_t Frame::cols() const { return ssize_t(); }
|
24
src/core/Frame.hpp
Normal file
24
src/core/Frame.hpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include <cstddef>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <bits/unique_ptr.h>
|
||||||
|
#include <vector>
|
||||||
|
#include "defs.hpp"
|
||||||
|
|
||||||
|
class Frame{
|
||||||
|
|
||||||
|
ssize_t nrows{};
|
||||||
|
ssize_t ncols{};
|
||||||
|
uint8_t bitdepth_{};
|
||||||
|
std::unique_ptr<std::byte[]> data_{nullptr};
|
||||||
|
public:
|
||||||
|
ssize_t rows() const;
|
||||||
|
ssize_t cols() const;
|
||||||
|
image_shape shape() const;
|
||||||
|
uint8_t bits_per_pixel() const;
|
||||||
|
uint8_t bytes_per_pixel() const;
|
||||||
|
size_t total_bytes() const;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
13
src/core/include/defs.hpp
Normal file
13
src/core/include/defs.hpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include <array>
|
||||||
|
#include <vector>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
using image_shape = std::array<ssize_t, 2>;
|
||||||
|
using dynamic_shape = std::vector<ssize_t>;
|
||||||
|
|
||||||
|
enum class DetectorType { Jungfrau, Eiger, Mythen3, Moench };
|
||||||
|
|
||||||
|
enum class TimingMode {Auto, Trigger};
|
@ -0,0 +1,8 @@
|
|||||||
|
target_include_directories(aare PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
set(FILE_IO_SOURCES "File.cpp" "FileFactory.cpp" "RawFileFactory.cpp")
|
||||||
|
# append ${CMAKE_CURRENT_SOURCE_DIR} to the list of sources using for loop
|
||||||
|
foreach(FILE_IO_SOURCE ${FILE_IO_SOURCES})
|
||||||
|
list(APPEND FILE_IO_SOURCES_WITH_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${FILE_IO_SOURCE}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
target_sources(aare PRIVATE ${FILE_IO_SOURCES_WITH_PATH})
|
29
src/file_io/File.hpp
Normal file
29
src/file_io/File.hpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <filesystem>
|
||||||
|
#include "defs.hpp"
|
||||||
|
|
||||||
|
class File
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
// std::unique_ptr<FileWrapper> fp;
|
||||||
|
public:
|
||||||
|
// File();
|
||||||
|
// ~File();
|
||||||
|
size_t total_frames{};
|
||||||
|
ssize_t rows{};
|
||||||
|
ssize_t cols{};
|
||||||
|
uint8_t bitdepth{};
|
||||||
|
DetectorType type{};
|
||||||
|
|
||||||
|
inline size_t bytes_per_frame() const{
|
||||||
|
//TODO: ask if this is correct
|
||||||
|
return rows*cols*bitdepth/8;
|
||||||
|
|
||||||
|
}
|
||||||
|
inline size_t pixels() const{
|
||||||
|
return rows*cols;
|
||||||
|
}
|
||||||
|
// size_t total_frames();
|
||||||
|
|
||||||
|
};
|
31
src/file_io/FileFactory.cpp
Normal file
31
src/file_io/FileFactory.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include "FileFactory.hpp"
|
||||||
|
#include "File.hpp"
|
||||||
|
#include "RawFileFactory.hpp"
|
||||||
|
#include "JsonFileFactory.hpp"
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
File FileFactory::loadFile(std::filesystem::path fpath){
|
||||||
|
// check if file exists
|
||||||
|
if(!std::filesystem::exists(fpath)){
|
||||||
|
throw std::runtime_error("File does not exist");
|
||||||
|
}
|
||||||
|
|
||||||
|
File ret;
|
||||||
|
// check if extension is raw
|
||||||
|
if(fpath.extension() == ".raw"){
|
||||||
|
std::cout<<"Loading raw file"<<std::endl;
|
||||||
|
}
|
||||||
|
// json
|
||||||
|
else if(fpath.extension() == ".json"){
|
||||||
|
std::cout<<"Loading json file"<<std::endl;
|
||||||
|
JsonFileFactory jff = JsonFileFactory();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
//check if extension is numpy
|
||||||
|
else if(fpath.extension() == ".npy"){
|
||||||
|
std::cout<<"Loading numpy file"<<std::endl;
|
||||||
|
}
|
||||||
|
// TODO: determine file type
|
||||||
|
return ret ;
|
||||||
|
}
|
12
src/file_io/FileFactory.hpp
Normal file
12
src/file_io/FileFactory.hpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <filesystem>
|
||||||
|
#include "File.hpp"
|
||||||
|
|
||||||
|
class FileFactory{
|
||||||
|
// Class that will be used to create File objects
|
||||||
|
// follows the factory pattern
|
||||||
|
public:
|
||||||
|
// virtual File createFile() = 0;
|
||||||
|
// virtual int deleteFile() = 0;
|
||||||
|
File loadFile(std::filesystem::path); //TODO: add option to load all file to memory or keep it on disk
|
||||||
|
};
|
10
src/file_io/JsonFileFactory.hpp
Normal file
10
src/file_io/JsonFileFactory.hpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#include "FileFactory.hpp"
|
||||||
|
|
||||||
|
class JsonFileFactory: FileFactory
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
/* data */
|
||||||
|
public:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
0
src/file_io/RawFileFactory.cpp
Normal file
0
src/file_io/RawFileFactory.cpp
Normal file
9
src/file_io/RawFileFactory.hpp
Normal file
9
src/file_io/RawFileFactory.hpp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#include "File.hpp"
|
||||||
|
#include <filesystem>
|
||||||
|
|
||||||
|
class RawFileFactory{
|
||||||
|
public:
|
||||||
|
// RawFileFactory();
|
||||||
|
// ~RawFileFactory();
|
||||||
|
File loadFile(std::filesystem::path fpath);
|
||||||
|
};
|
@ -1,8 +1,10 @@
|
|||||||
// Your First C++ Program
|
// Your First C++ Program
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "file_io/FileFactory.hpp"
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
std::cout << "Hello World!";
|
FileFactory fileFactory=FileFactory();
|
||||||
return 0;
|
std::filesystem::path p = std::filesystem::current_path();
|
||||||
|
File f = fileFactory.loadFile(p/"test.raw");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user