Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ if ! command -v clang-format >/dev/null 2>&1; then
fi

staged=$(git diff --cached --name-only --diff-filter=ACMR \
| grep -E '\.(cpp|cc|cxx|hpp|hh|hxx|h)$' || true)
| grep -E '\.(cpp|cc|cxx|hpp|hh|hxx|h)$' \
| grep -vE '(^|/)(json|httplib)\.h(pp)?$' || true)

if [ -z "$staged" ]; then
exit 0
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,8 @@ Thumbs.db
# Clangd index cache
.cache/

simulation.json
simulation.json

homework_13/robot_ws/install/
homework_13/robot_ws/build/
homework_13/robot_ws/log/
8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/rd_cpp_docker.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

68 changes: 68 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 45 additions & 0 deletions drone_simulation_mavlink/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Директорії збірки та локальний output мають відтворюватися з CMake.
build/
build-*/
out/

# CMake генерує ці файли при in-source або ручних локальних збірках.
CMakeCache.txt
CMakeFiles/
CTestTestfile.cmake
cmake_install.cmake
compile_commands.json
install_manifest.txt
_deps/

Makefile
!/Makefile

# Мінімальний набір compiled/debug артефактів для C++ прикладів.
*.d
*.o
*.obj
*.a
*.so
*.dylib
*.dll
*.exe
*.out
*.dSYM/
*.pdb
core
core.*

# Метадані операційної системи не є частиною навчального репозиторію.
.DS_Store
Thumbs.db

#local history extension
.history/

.claude/

# Clangd index cache
.cache/

c_library_v2/
43 changes: 43 additions & 0 deletions drone_simulation_mavlink/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
cmake_minimum_required(VERSION 3.20)
project(drone_simulation CXX)

add_library(drone_simulation_lib
src/simulation.cpp
src/solvers/analytical_solver.cpp
src/solvers/table_solver.cpp
src/providers/json_target_provider.cpp
src/providers/thread_safe_target_provider.cpp
src/config_loaders/file_config_loader.cpp
src/config_loaders/factory.cpp
src/mission_processor.cpp
src/drone_states/state_stopped.cpp
src/drone_states/state_accelerating.cpp
src/drone_states/state_decelerating.cpp
src/drone_states/state_turning.cpp
src/drone_states/state_moving.cpp
src/drone_physics.cpp
src/port_controllers/uart_port.cpp
src/port_controllers/gpio_controller.cpp
src/port_controllers/udp_port.cpp
src/drone_controller.cpp
src/mavlink_reporter.cpp
)

find_package(Threads REQUIRED)
target_link_libraries(drone_simulation_lib PUBLIC Threads::Threads ${GPIOD_LIBRARIES})

find_package(PkgConfig REQUIRED)
pkg_check_modules(GPIOD REQUIRED libgpiod)

target_include_directories(drone_simulation_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${GPIOD_INCLUDE_DIRS})

target_include_directories(drone_simulation_lib SYSTEM PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/c_library_v2)

add_executable(drone_simulation_check src/main.cpp)
target_link_libraries(drone_simulation_check PRIVATE drone_simulation_lib ${GPIOD_LIBRARIES})
target_include_directories(drone_simulation_check PRIVATE ${GPIOD_INCLUDE_DIRS})
target_compile_options(drone_simulation_check PRIVATE -Wall -Wextra -pedantic)
target_compile_options(drone_simulation_lib PRIVATE -Wall -Wextra -pedantic)

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
32 changes: 32 additions & 0 deletions drone_simulation_mavlink/data/ammo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[
{
"name": "VOG-17",
"mass": 0.35,
"drag": 0.004,
"lift": 0
},
{
"name": "M67",
"mass": 0.6,
"drag": 0.005,
"lift": 0
},
{
"name": "RKG-3",
"mass": 1.2,
"drag": 0.007,
"lift": 0
},
{
"name": "GLIDING-VOG",
"mass": 0.45,
"drag": 0.005,
"lift": 0.005
},
{
"name": "GLIDING-RKG",
"mass": 1.4,
"drag": 0.007,
"lift": 0.005
}
]
Loading
Loading