Compare commits

..

1 Commits

Author SHA1 Message Date
f40db8490f WIP 2025-02-07 18:07:26 -05:00
135 changed files with 591 additions and 7291 deletions

View File

@ -3,7 +3,7 @@
This repository is a collection of useful code snippets and configurations.
```bash
shaunrd0/klips/
github.com/shaunrd0/klips/
├── ansible # Ansible roles, playbooks, and examples
├── blockchain # Blockchain related project templates and examples
├── cpp # C++ programs, datastructures, and other examples
@ -12,6 +12,6 @@ shaunrd0/klips/
├── figlet # Figlet fonts I like :)
├── javascript # Javascript projects and examples
├── python # Python scripts and tools I've made
├── scripts # Bash scripts
└── README.md
├── README.md
└── scripts # Bash scripts
```

View File

@ -1,6 +1,6 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ##
## About: A root project for practicing C++ ##
## This project can be built to debug and run all nested projects ##
## Or, any subdirectory with a project() statement can be selected ##
@ -16,32 +16,10 @@ project(
DESCRIPTION "A root project for several small cpp practice projects"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
add_compile_options("-Wall")
option(KLIPS_CCACHE "Enable ccache" ON)
if (KLIPS_CCACHE)
find_program(SCCACHE_PATH sccache)
if(SCCACHE_PATH)
message(STATUS "[Klips] Found sccache: ${SCCACHE_PATH}")
set(CMAKE_CXX_COMPILER_LAUNCHER ${SCCACHE_PATH})
set(CMAKE_C_COMPILER_LAUNCHER ${SCCACHE_PATH})
else()
message(STATUS "[Klips] Failed to find sccache, falling back to ccache.")
find_program(CCACHE_PATH ccache)
if(CCACHE_PATH)
message(STATUS "[Klips] Found ccache: ${CCACHE_PATH}")
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PATH})
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PATH})
else()
message(WARNING "[Klips] Failed to find sccache and ccache. Compilation will not be cached.")
endif()
endif()
endif()
add_subdirectory(algorithms)
add_subdirectory(catch2)
add_subdirectory(cmake-example)
@ -50,15 +28,4 @@ add_subdirectory(datastructs)
add_subdirectory(graphics)
add_subdirectory(multithreading)
add_subdirectory(patterns)
find_package(Qt6 COMPONENTS UiPlugin Core Gui Widgets)
if (NOT Qt6_FOUND)
message(
WARNING
"[Klips] Qt examples will not be built.\n"
"On Ubuntu 24.04 Qt6 can be installed using apt:\n"
" sudo apt install qt6-base-dev qt6-tools-dev\n"
)
else()
add_subdirectory(qt)
endif()
add_subdirectory(qt)

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing various algorithms in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing algorithms using graphs in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "Practice implementing and using object graphs in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-graphs-object graph.cpp

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "Practice implementing and using simple graphs in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-graphs-simple graph.cpp

View File

@ -8,8 +8,9 @@
################################################################################
*/
#include "lib-graph.hpp"
#include <algorithm>
#include "lib-graph.hpp"
void Graph::BFS(int startNode)
{

View File

@ -15,7 +15,6 @@
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <cstdint>
class Graph {

View File

@ -14,6 +14,5 @@ project(
DESCRIPTION "Practice implementing and using templated graphs in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(algo-graphs-templated graph.cpp)

View File

@ -18,7 +18,6 @@
#include <unordered_set>
#include <utility>
#include <vector>
#include <cstdint>
/******************************************************************************/

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "Practice implementing and using weighted graphs in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-graphs-weighted graph.cpp

View File

@ -18,7 +18,6 @@
#include <unordered_set>
#include <utility>
#include <vector>
#include <cstdint>
/******************************************************************************/

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing various sorting algorithms in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing insertion sort in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-sort-insertion insertion-sort.cpp

View File

@ -14,8 +14,6 @@ project (
DESCRIPTION "A project for practicing merge sort in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-sort-merge merge-sort.cpp
lib-merge.cpp lib-merge.h

View File

@ -12,7 +12,6 @@
#include <algorithm>
#include <iostream>
#include <vector>
#include <cstdint>
void MergeSort(std::vector<int> &array, size_t lhs, size_t rhs)
{

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing quick sort in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-sort-quick quick-sort.cpp

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing radix sort in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-sort-radix radix-sort.cpp

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing selection sort in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-sort-select select-sort.cpp

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing algorithms using trees in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing BST algorithms"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-trees-bst driver.cpp

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing red-black tree algorithms"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
algo-trees-redblack driver.cpp

View File

@ -12,7 +12,6 @@
#define REDBLACK_H
#include <iostream>
#include <cstdint>
enum Color {Black, Red};

View File

@ -14,22 +14,18 @@ project(
DESCRIPTION "Practice project for learning Catch2"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options(-Wall)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
Include(FetchContent)
FetchContent_Declare(
Catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
GIT_TAG v3.4.0
GIT_TAG v3.0.1
)
FetchContent_MakeAvailable(Catch2)
add_library(klips SHARED src/klips.cpp)
target_include_directories(klips PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
add_executable(test_klips src/test_klips.cpp)
target_link_libraries(test_klips PUBLIC Catch2::Catch2WithMain klips)
add_subdirectory(src)
add_subdirectory(test)

View File

@ -0,0 +1,22 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ##
## About: Practice project for testing with catch2 framework ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
################################################################################
cmake_minimum_required(VERSION 3.15)
project(
#[[NAME]] Catch2
VERSION 1.0
DESCRIPTION "Practice project for learning Catch2"
LANGUAGES CXX
)
add_compile_options(-Wall)
add_definitions("-std=c++17")
add_library(klips SHARED klips.cpp)
target_include_directories(klips PRIVATE ${CMAKE_SOURCE_DIR}/include)

View File

@ -0,0 +1,22 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ##
## About: Practice project for testing with catch2 framework ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
################################################################################
cmake_minimum_required(VERSION 3.15)
project(
#[[NAME]] Catch2
VERSION 1.0
DESCRIPTION "Practice project for learning Catch2"
LANGUAGES CXX
)
add_compile_options(-Wall)
add_executable(test_klips test_klips.cpp)
target_link_libraries(test_klips PRIVATE Catch2::Catch2WithMain klips)
target_include_directories(test_klips PRIVATE ${CMAKE_SOURCE_DIR}/include)

View File

@ -2,8 +2,7 @@
#include <iostream>
#include "catch2/catch_all.hpp"
#include "../bin/catch.hpp"
#include "klips.hpp"
#include "type_name.hpp"
@ -140,7 +139,7 @@ template <> template <bool must_find> void test_config_get<std::string>::run() {
TEMPLATE_PRODUCT_TEST_CASE("Test", "[test]", test_config_get,
(int, std::string)) {
TT();
// TestType t;
TestType t;
test_config_get<int> s;
s.template run<true>();
// TestType t;

View File

@ -22,7 +22,6 @@ project (
DESCRIPTION "A basic CMake template for C++ projects"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
# Include any directories the compiler may need
include_directories(./include)

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing cryptography in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "Practice implementing columnar transposition in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
crypto-columnar-transposition driver.cpp

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing various data structures in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing a basic implementation of a BST"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-bst driver.cpp

View File

@ -10,11 +10,10 @@
#include "bst.h"
#include <cstdint>
/********************************************************************************
* Constructors, Destructors, Operators
*********************************************************************************/
* Constructors, Destructors, Operators
*********************************************************************************/
/** Copy Assignment Operator
* @brief Empty the calling object's root BinaryNode, and copy the rhs data

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "Project for testing circular doubly linked list implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-circular-doubly-linked-list driver.cpp

View File

@ -10,7 +10,6 @@
#include "circledoublelist.h"
#include <cstdint>
/******************************************************************************
* Constructors, Destructors, Operators

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "Project for testing circular singly linked list implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-circular-singly-linked-list driver.cpp

View File

@ -10,7 +10,6 @@
#include "circlesinglelist.h"
#include <cstdint>
/******************************************************************************
* Constructors, Destructors, Operators

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing a doubly linked list implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-doubly-linked-list driver.cpp

View File

@ -10,7 +10,6 @@
#include "doublelist.h"
#include <cstdint>
/******************************************************************************
* Constructors, Destructors, Operators

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing a max heap implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-max-heap driver.cpp

View File

@ -10,11 +10,10 @@
#include "maxheap.h"
#include <cstdint>
/********************************************************************************
* Constructors, Destructors, Operators
*********************************************************************************/
* Constructors, Destructors, Operators
*********************************************************************************/
/** default constructor
* Constructs a heap with the given default values

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "Project for testing queue implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-queue driver.cpp

View File

@ -10,7 +10,6 @@
#include "queuelist.h"
#include <cstdint>
/******************************************************************************
* Constructors, Destructors, Operators

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing a singly linked list implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-singly-linked-list driver.cpp

View File

@ -10,7 +10,6 @@
#include "singlelist.h"
#include <cstdint>
/******************************************************************************
* Constructors, Destructors, Operators

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing a Stack implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-stack driver.cpp

View File

@ -10,7 +10,6 @@
#include "stacklist.h"
#include <cstdint>
/******************************************************************************
* Constructors, Destructors, Operators

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for practicing templated data structures in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_subdirectory(doublelist)
add_subdirectory(queuelist)

View File

@ -14,6 +14,5 @@ project (
DESCRIPTION "A project for practicing templated doubly linked list implementations"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(data-templates-doubly-linked-list driver.cpp)

View File

@ -14,6 +14,5 @@ project (
DESCRIPTION "A project for practicing templated queue implementations"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(data-templates-queue driver.cpp)

View File

@ -14,6 +14,5 @@ project (
DESCRIPTION "A project for practicing templated Stack implementations"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(data-templates-stack driver.cpp)

View File

@ -14,6 +14,5 @@ project (
DESCRIPTION "A project for practicing templated Vector implementations"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(data-templates-vectors driver.cpp)

View File

@ -14,7 +14,6 @@ project (
DESCRIPTION "A project for testing a basic Vector implementation"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
data-vectors driver.cpp

View File

@ -10,7 +10,6 @@
#include "vector.h"
#include <cstdint>
/******************************************************************************
* Constructors, Destructors, Operators

View File

@ -1,6 +1,6 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A root project for practicing C++ ##
## This project can be built to debug and run all nested projects ##
## Or, any subdirectory with a project() statement can be selected ##
@ -16,7 +16,6 @@ project(
DESCRIPTION "A root project for practicing graphics programming in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -1,6 +1,6 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
################################################################################
@ -8,46 +8,40 @@
# Define CMake version
cmake_minimum_required(VERSION 3.15)
include(FetchContent)
project(
#[[NAME]] OpenGL-Cmake
DESCRIPTION "Example project for building OpenGL projects with CMake"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_library(graphics-lib-opengl src/lib-opengl-test.cpp)
target_include_directories(graphics-lib-opengl PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
# Find OpenGL package
find_package(OpenGL)
if (NOT OPENGL_FOUND)
find_package(OpenGL REQUIRED)
if (OPENGL_FOUND)
# Link opengl-test executable to OpenGL
target_include_directories(graphics-lib-opengl PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(graphics-lib-opengl PUBLIC ${OPENGL_LIBRARIES})
else()
message(
"[Klips] Error: CMake was unable to find OpenGL.\n"
"On Ubuntu 24.04 OpenGL can be installed using apt:\n"
" sudo apt install libopengl-dev libgl1-mesa-dev mesa-common-dev libglu1-mesa-dev\n"
"Error: CMake was unable to find the OpenGL package\n"
"Please install OpenGL and try again\n"
)
endif()
# Link opengl-test executable to OpenGL
message(STATUS "[Klips] Found OpenGL: ${OPENGL_INCLUDE_DIR}")
target_include_directories(graphics-lib-opengl PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(graphics-lib-opengl PUBLIC ${OPENGL_LIBRARIES})
find_package(GLUT QUIET)
if(NOT GLUT_FOUND)
# Find GLUT package
find_package(GLUT REQUIRED)
if (GLUT_FOUND)
# Link lib-opengl-test executable to GLUT
target_include_directories(graphics-lib-opengl PUBLIC ${GLUT_INCLUDE_DIR})
target_link_libraries(graphics-lib-opengl PUBLIC ${GLUT_LIBRARIES})
else()
message(
FATAL_ERROR
"[Klips] Failed to fetch GLUT. Could not find dependency X11 input libraries.\n"
"On Ubuntu 24.04 Xi can be installed using apt:\n"
" sudo apt install libxi-dev\n"
"Alternatively, on Ubuntu 24.04 GLUT can be installed with apt:\n"
" sudo apt install freeglut3-dev\n"
"Error: CMake was unable to find the GLUT package\n"
"Please install GLUT (freeglut3-dev) and try again\n"
)
endif()
message(STATUS "[Klips] Found GLUT: ${GLUT_INCLUDE_DIR}")
# Link lib-opengl-test executable to GLUT
target_include_directories(graphics-lib-opengl PUBLIC ${GLUT_INCLUDE_DIR})
target_link_libraries(graphics-lib-opengl PUBLIC ${GLUT_LIBRARIES})
# Add test executable
add_executable(graphics-cmake-opengl apps/test-gl.cpp)

View File

@ -1,6 +1,6 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
################################################################################
@ -13,7 +13,6 @@ project(
DESCRIPTION "Example project for building SDL projects with CMake"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
# Add Library
add_library(
@ -28,30 +27,31 @@ target_include_directories( # When calling library, include a directo
)
# Search for SDL2 package
find_package(SDL2 QUIET)
if (NOT SDL2_FOUND)
message(FATAL_ERROR
"[Klips] Failed to find SDL2.\n"
"On Ubuntu 24.04 SDL2 can be installed using apt:\n"
" sudo apt install libsdl2-dev\n"
)
endif()
message(STATUS "[Klips] Found SDL2: ${SDL2_INCLUDE_DIRS}")
find_package(SDL2 REQUIRED sdl2)
# Any target that links with this library will also link to SDL2
# + Because we choose PUBLIC visibility
target_include_directories(graphics-lib-sdl PUBLIC ${SDL2_INCLUDE_DIRS})
target_link_libraries(graphics-lib-sdl PUBLIC "${SDL2_LIBRARIES}")
# If SDL2 was found successfully, link to lib-sdl-test
if (SDL2_FOUND)
# Any target that links with this library will also link to SDL2
# + Because we choose PUBLIC visibility
target_include_directories(graphics-lib-sdl PUBLIC ${SDL2_INCLUDE_DIRS})
target_link_libraries(graphics-lib-sdl PUBLIC "${SDL2_LIBRARIES}")
# Creating executable
add_executable(
# Creating executable
add_executable(
graphics-cmake-sdl # Exe name
apps/sdl-test.cpp # Exe Source(s)
)
)
# Linking the exe to library
target_link_libraries(
# Linking the exe to library
target_link_libraries(
graphics-cmake-sdl # Executable to link
PRIVATE # Visibility
graphics-lib-sdl # Library to link
)
)
else()
message(
"Error: CMake was unable to find SDL2 package.\n"
"Please install the libsdl2-dev package and try again.\n"
)
endif()

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "Practice with multithreaded programming in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
add_compile_options("-Wall")

View File

@ -18,7 +18,6 @@ project(
DESCRIPTION "Example of condition_variables in multithreaded C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
multithread-conditions driver.cpp

View File

@ -18,7 +18,6 @@ project(
DESCRIPTION "Example and solution for deadlocks in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
multithread-deadlock driver.cpp

View File

@ -18,7 +18,6 @@ project(
DESCRIPTION "Example and solution for livelocks in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
multithread-livelock driver.cpp

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "Example and solution for race conditions"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
multithread-race-condition driver.cpp

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "A project for practicing various design patterns in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

View File

@ -13,7 +13,6 @@ project(
DESCRIPTION "An example of the abstract factory design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the adapter design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -2,7 +2,6 @@
#ifndef ADAPTER_HPP
#define ADAPTER_HPP
#include <ctime>
#include <random>
// Target implementation to adapt to a new interface

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the bridge design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the factory design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the state design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the prototype design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the singleton design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_executable(
patterns-singleton main.cpp

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the state design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "An example of the visitor design pattern in C++"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options("-Wall")
add_executable(

View File

@ -14,7 +14,6 @@ project(
DESCRIPTION "A root project for several small Qt6 practice projects"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
add_compile_options("-Wall")

View File

@ -14,9 +14,6 @@ project(
DESCRIPTION "Example of a widget plugin collection for Qt Designer"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
# Lowercase string to use as a slug for executable names for identification.
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
include(GenerateExportHeader)
@ -54,56 +51,43 @@ endif()
set(QT_INSTALL_DIR "${QT_DIR}/6.3.1/gcc_64/" CACHE PATH "Path to Qt6 install")
list(APPEND CMAKE_PREFIX_PATH "${QT_INSTALL_DIR}")
find_package(Qt6 COMPONENTS UiPlugin Core Gui Widgets)
if (NOT Qt6_FOUND)
message(
FATAL_ERROR
"[Klips] Error: CMake was unable to find Qt6 libraries.\n"
"The example will not be built until the build is configured with these packages installed.\n"
"On Ubuntu 24.04 Qt6 can be installed using apt:\n"
" sudo apt-get install qt6-base-dev qt6-tools-dev\n"
)
endif()
find_package(Qt6 REQUIRED COMPONENTS UiPlugin Core Gui Widgets)
# Creating a library with two plugins for the collection.
set(WIDGET_PLUGIN_LIBRARY widget-plugin-library_${PROJECT_NAME_LOWER})
qt_add_library(${WIDGET_PLUGIN_LIBRARY}
qt_add_library(widget-plugin-library
textview.cpp textview.h
widgetplugin.cpp widgetplugin.h
)
target_sources(${WIDGET_PLUGIN_LIBRARY} PRIVATE
target_sources(widget-plugin-library PRIVATE
textview.cpp textview.h
treeview.cpp treeview.h
widgetplugin.cpp widgetplugin.h
)
set_target_properties(${WIDGET_PLUGIN_LIBRARY} PROPERTIES
set_target_properties(widget-plugin-library PROPERTIES
WIN32_EXECUTABLE TRUE
MACOSX_BUNDLE TRUE
)
target_link_libraries(${WIDGET_PLUGIN_LIBRARY}
target_link_libraries(widget-plugin-library
PUBLIC Qt::UiPlugin Qt::Core Qt::Gui Qt::Widgets
)
install(TARGETS ${WIDGET_PLUGIN_LIBRARY}
install(TARGETS widget-plugin-library
RUNTIME DESTINATION "${QT_PLUGIN_LIBRARY_DIR}"
BUNDLE DESTINATION "${QT_PLUGIN_LIBRARY_DIR}"
LIBRARY DESTINATION "${QT_PLUGIN_LIBRARY_DIR}"
)
generate_export_header(${WIDGET_PLUGIN_LIBRARY}
BASE_NAME widget_plugin_library
EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/widget-plugin-library_export.h"
)
generate_export_header(widget-plugin-library)
# Creating the collection
set(WIDGET_PLUGIN_COLLECTION widget-plugin-collection_${PROJECT_NAME_LOWER})
qt_add_library(${WIDGET_PLUGIN_COLLECTION}
qt_add_library(widget-plugin-collection
widgetplugincollection.cpp widgetplugincollection.h
)
target_link_libraries(${WIDGET_PLUGIN_COLLECTION}
Qt6::Widgets Qt6::UiPlugin ${WIDGET_PLUGIN_LIBRARY}
target_link_libraries(widget-plugin-collection
Qt6::Widgets Qt6::UiPlugin widget-plugin-library
)
install(TARGETS ${WIDGET_PLUGIN_COLLECTION}
install(TARGETS widget-plugin-collection
RUNTIME DESTINATION "${QT_PLUGIN_INSTALL_DIR}"
BUNDLE DESTINATION "${QT_PLUGIN_INSTALL_DIR}"
LIBRARY DESTINATION "${QT_PLUGIN_INSTALL_DIR}"
@ -117,11 +101,10 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/app-dir.h.in"
@ONLY
)
set(WIDGET_APP widget-app_${PROJECT_NAME_LOWER})
qt_add_executable(${WIDGET_APP}
qt_add_executable(widget-app
widgetapp.cpp widgetapp.h widgetapp.ui
main.cpp
)
target_link_libraries(${WIDGET_APP}
PRIVATE Qt::Widgets ${WIDGET_PLUGIN_LIBRARY}
target_link_libraries(widget-app
PRIVATE Qt::Widgets widget-plugin-library
)

View File

@ -1,6 +1,6 @@
#ifndef APPDIR_H_IN
#define APPDIR_H_IN
#define APP_DIR "/media/shaun/Storage/Code/klips/cpp/qt/designer-plugin-collection"
#define APP_DIR "/home/kapper/Code/klips/cpp/qt/designer-plugin-collection"
#endif // APPDIR_H_IN

View File

@ -1,6 +1,6 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ##
## About: Example of making widget plugins for Qt Designer ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
@ -14,9 +14,6 @@ project(
DESCRIPTION "Example of a widget plugin for Qt Designer"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
# Lowercase string to use as a slug for executable names for identification.
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
include(GenerateExportHeader)
@ -45,44 +42,35 @@ endif()
set(QT_INSTALL_DIR "${QT_DIR}/6.3.1/gcc_64/" CACHE PATH "Path to Qt6 install")
list(APPEND CMAKE_PREFIX_PATH "${QT_INSTALL_DIR}")
find_package(Qt6 COMPONENTS UiPlugin Core Gui Widgets)
if (NOT Qt6_FOUND)
message(
FATAL_ERROR
"[Klips] Error: CMake was unable to find Qt6 libraries.\n"
"The example will not be built until the build is configured with these packages installed.\n"
"On Ubuntu 24.04 Qt6 can be installed using apt:\n"
" sudo apt-get install qt6-base-dev qt6-tools-dev\n"
)
endif()
find_package(Qt6 REQUIRED COMPONENTS UiPlugin Core Gui Widgets)
# Creating the plugin
set(WIDGET_PLUGIN widget-plugin_${PROJECT_NAME_LOWER})
qt_add_library(${WIDGET_PLUGIN})
target_sources(${WIDGET_PLUGIN} PRIVATE
qt_add_library(widget-plugin)
target_sources(widget-plugin PRIVATE
text-view.cpp text-view.h
widget-plugin.cpp widget-plugin.h
)
set_target_properties(${WIDGET_PLUGIN} PROPERTIES
set_target_properties(widget-plugin PROPERTIES
WIN32_EXECUTABLE TRUE
MACOSX_BUNDLE TRUE
)
target_link_libraries(${WIDGET_PLUGIN} PUBLIC
target_link_libraries(widget-plugin PUBLIC
Qt::UiPlugin Qt::Core Qt::Gui Qt::Widgets
)
install(TARGETS ${WIDGET_PLUGIN}
install(TARGETS widget-plugin
RUNTIME DESTINATION "${QT_PLUGIN_INSTALL_DIR}"
BUNDLE DESTINATION "${QT_PLUGIN_INSTALL_DIR}"
LIBRARY DESTINATION "${QT_PLUGIN_INSTALL_DIR}"
)
# Application that will use the widget plugin
set(WIDGET_APP widget-app_${PROJECT_NAME_LOWER})
qt_add_executable(${WIDGET_APP}
qt_add_executable(widget-app
widget-app.cpp widget-app.h widget-app.ui
main.cpp
)
target_link_libraries(${WIDGET_APP} PRIVATE
Qt::Widgets ${WIDGET_PLUGIN}
target_link_libraries(widget-app PRIVATE
Qt::Widgets widget-plugin
)

View File

@ -1,6 +1,6 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ##
## About: Practice project for using Qt Designer with custom C++ widgets ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
@ -14,7 +14,6 @@ project(
DESCRIPTION "Practice using Qt designer for desktop applications"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options(-Wall)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
@ -29,16 +28,7 @@ set(QT_DIR "$ENV{HOME}/Code/Clones/Qt/6.3.1/gcc_64/" CACHE PATH "Path to Qt6")
list(APPEND CMAKE_PREFIX_PATH "${QT_DIR}")
find_package(Qt6 COMPONENTS Core Gui Widgets)
if (NOT Qt6_FOUND)
message(
FATAL_ERROR
"[Klips] Error: CMake was unable to find Qt6 libraries.\n"
"The example will not be built until the build is configured with these packages installed.\n"
"On Ubuntu 24.04 Qt6 can be installed using apt:\n"
" sudo apt-get install qt6-base-dev qt6-tools-dev\n"
)
endif()
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
qt_add_executable(designer
designer.cpp designer.h designer.ui

View File

@ -1,6 +1,6 @@
################################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2025 Shaun Reed, all rights reserved ##
## Legal: All Content (c) 2022 Shaun Reed, all rights reserved ##
## About: Practice project for using signals and slots in Qt ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
@ -14,7 +14,6 @@ project(
DESCRIPTION "Practice using signals and slots in Qt 6"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
add_compile_options(-Wall)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
@ -29,16 +28,7 @@ set(QT_DIR "$ENV{HOME}/Code/Clones/Qt/6.3.1/gcc_64/" CACHE PATH "Path to Qt6")
list(APPEND CMAKE_PREFIX_PATH "${QT_DIR}")
find_package(Qt6 COMPONENTS Core Gui Widgets)
if (NOT Qt6_FOUND)
message(
FATAL_ERROR
"[Klips] Error: CMake was unable to find Qt6 libraries.\n"
"The example will not be built until the build is configured with these packages installed.\n"
"On Ubuntu 24.04 Qt6 can be installed using apt:\n"
" sudo apt-get install qt6-base-dev qt6-tools-dev\n"
)
endif()
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
qt_add_executable(slots
text-view.cpp text-view.h

View File

@ -22,7 +22,7 @@ public:
public:
signals:
void sendTest();
void sendTest()QWidget;
private:
signals:

View File

@ -1,8 +0,0 @@
# esp
```bash
shaunrd0/klips/esp/
├── cpp # Examples of ESP32 projects written in C++
├── rust # Examples of ESP32 projects written in Rust
└── README.md
```

View File

@ -1,9 +1,5 @@
# 01_led-button
This example is largely adapted from those in [ESP32-basic-starter-kit.pdf](./ESP32-basic-starter-kit.pdf).
The APIs in the original examples paired with this PDF have changed, and I decided to do some different things with the code and/or circuits, but the original code can be [found here](https://www.dropbox.com/scl/fo/6znlij3eb23ih4jxcpv2w/AKvB1t9CCUgoVRVtGen8Yrw?rlkey=z84anl0hs940qf9fpl7l8q8q2&e=1&dl=0).
![schematic](./schematic.png)
Simple LED controlled by an on-board button.

View File

@ -1,9 +1,5 @@
# 02_led-button-web
This example is largely adapted from those in [ESP32-basic-starter-kit.pdf](./ESP32-basic-starter-kit.pdf).
The APIs in the original examples paired with this PDF have changed, and I decided to do some different things with the code and/or circuits, but the original code can be [found here](https://www.dropbox.com/scl/fo/6znlij3eb23ih4jxcpv2w/AKvB1t9CCUgoVRVtGen8Yrw?rlkey=z84anl0hs940qf9fpl7l8q8q2&e=1&dl=0).
![schematic](./schematic.png)
This example uses the same schematic as [01_led-button](../01_led-button/).

View File

@ -1,9 +1,5 @@
# 03_temp-humidity-web
This example is largely adapted from those in [ESP32-basic-starter-kit.pdf](./ESP32-basic-starter-kit.pdf).
The APIs in the original examples paired with this PDF have changed, and I decided to do some different things with the code and/or circuits, but the original code can be [found here](https://www.dropbox.com/scl/fo/6znlij3eb23ih4jxcpv2w/AKvB1t9CCUgoVRVtGen8Yrw?rlkey=z84anl0hs940qf9fpl7l8q8q2&e=1&dl=0).
![schematic](./schematic.png)
Temperature and humidity sensor served on a web page within the local network.

View File

@ -1,4 +1,4 @@
build
managed_components
dependencies.lock
sdkconfig.old

View File

@ -12,7 +12,6 @@ project(
DESCRIPTION "Example ESP-IDF cmake project"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
# For writing pure cmake components, see the documentation
# https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/build-system.html#writing-pure-cmake-components

View File

@ -1,24 +1,15 @@
# 04_esp-idf-arduino
# 03_temp-humidity-web
There is no schematic for this example, it simply prints some output to the serial monitor at 115200.
There is no schematic for this example, it simply prints some output to the serial monitor.
This is more of a build system example for untethering yourself from the Arduino IDE.
To build this example you can run the following commands.
```bash
# See Dependencies section below for instructions.
source ~/path/to/esp-idf/export.sh
mkdir build
cd build
cmake ..
make -j $(nproc)
# Flash the example to the ESP.
make flash
# Check the serial monitor for 'Hello world!' output.
idf.py monitor -b 115200
```
To flash to your ESP or access the `idf.py menuconfig` menu from the ESP-IDF you can run the same commands with `make`.
@ -39,43 +30,18 @@ ninja
## Dependencies
Install the [ESP-IDF](https://github.com/espressif/esp-idf?tab=readme-ov-file#setup-build-environment)
The [Arduino IDE](https://github.com/arduino/arduino-ide) must be installed.
install [ESP-IDF](https://github.com/espressif/esp-idf?tab=readme-ov-file#setup-build-environment)
```bash
# https://docs.espressif.com/projects/esp-idf/en/v5.3.2/esp32/get-started/linux-macos-setup.html#for-linux-users
sudo apt-get install -y git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
git clone -b v5.3.2 --recursive https://github.com/espressif/esp-idf
git clone -b v5.3.2 git@github.com:espressif/esp-idf.git
cd esp-idf
./install.sh
# You only need to do this if you want to use ESP-IDF's idf.py helper script.
# This example uses cmake, so it's not required.
. ./export.sh
```
In CLion there is an official [Serial Monitor](https://plugins.jetbrains.com/plugin/8031-serial-port-monitor) plugin, or use ESP-IDF -
```bash
idf.py monitor -b 115200
```
## Starting Over
To set up this project from scratch the following commands were used
```bash
# My example project directory
cd ~/Code/klips/esp/cpp/04_esp-idf-arduino
idf.py set-target esp32
idf.py add-dependency "espressif/arduino-esp32^3.1.1"
# Autostart Arduino for use of `loop()` and `setup()` functions
# You can also use the esp-idf `app_main()` function if preferred
# https://docs.espressif.com/projects/arduino-esp32/en/latest/esp-idf_component.html#configuration
# You can alternatively do this in the GUI tool `idf.py menuconfig`
echo "CONFIG_AUTOSTART_ARDUINO=y" >> sdkconfig
sed -i -e 's/CONFIG_FREERTOS_HZ=100/CONFIG_FREERTOS_HZ=1000/' sdkconfig
# Build the project
idf.py build
```
To set this project up in CLion, see [JetBrains documentation](https://www.jetbrains.com/help/clion/esp-idf.html#env-vars).

View File

@ -0,0 +1,431 @@
dependencies:
chmorgan/esp-libhelix-mp3:
component_hash: cbb76089dc2c5749f7b470e2e70aedc44c9da519e04eb9a67d4c7ec275229e53
dependencies:
- name: idf
require: private
version: '>=4.1.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.3
espressif/arduino-esp32:
component_hash: f5fc427eaeb4b84d6b644e3fac1251240a38b8c5e08122f1810a59145f00ccb0
dependencies:
- name: chmorgan/esp-libhelix-mp3
registry_url: https://components.espressif.com
require: private
version: 1.0.3
- name: espressif/cbor
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: 0.6.0~1
- name: espressif/esp-dsp
registry_url: https://components.espressif.com
require: private
rules:
- if: target != esp32c2
version: ^1.3.4
- name: espressif/esp-modbus
registry_url: https://components.espressif.com
require: private
version: ^1.0.15
- name: espressif/esp-sr
registry_url: https://components.espressif.com
require: private
rules:
- if: target in [esp32s3]
version: ^1.4.2
- name: espressif/esp-zboss-lib
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: ==1.6.0
- name: espressif/esp-zigbee-lib
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: ==1.6.0
- name: espressif/esp_diag_data_store
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: 1.0.1
- name: espressif/esp_diagnostics
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: 1.0.2
- name: espressif/esp_hosted
registry_url: https://components.espressif.com
require: private
rules:
- if: target == esp32p4
version: ^0.0.25
- name: espressif/esp_insights
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: 1.0.1
- name: espressif/esp_modem
registry_url: https://components.espressif.com
require: private
version: ^1.1.0
- name: espressif/esp_rainmaker
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: 1.5.0
- name: espressif/esp_wifi_remote
registry_url: https://components.espressif.com
require: private
rules:
- if: target == esp32p4
version: ^0.4.1
- name: espressif/libsodium
registry_url: https://components.espressif.com
require: private
version: ^1.0.20~1
- name: espressif/mdns
registry_url: https://components.espressif.com
require: private
version: ^1.2.3
- name: espressif/network_provisioning
registry_url: https://components.espressif.com
require: private
version: 1.0.2
- name: espressif/qrcode
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: 0.1.0~2
- name: espressif/rmaker_common
registry_url: https://components.espressif.com
require: private
rules:
- if: target not in [esp32c2, esp32p4]
version: 1.4.6
- name: idf
require: private
version: '>=5.3,<5.4'
- name: joltwallet/littlefs
registry_url: https://components.espressif.com
require: private
version: ^1.10.2
source:
registry_url: https://components.espressif.com/
type: service
targets:
- esp32
- esp32s2
- esp32s3
- esp32c2
- esp32c3
- esp32c6
- esp32h2
- esp32p4
version: 3.1.1
espressif/cbor:
component_hash: 440f4ee4504841cc9b4f3a8ef755776a612ac9dace355514c68b999868f990ff
dependencies:
- name: idf
require: private
version: '>=4.3'
source:
registry_url: https://components.espressif.com
type: service
version: 0.6.0~1
espressif/esp-dsp:
component_hash: fa7fe74305df6da25867437ebcd4213e047cbfc0556cf92067ab657fce537c6e
dependencies:
- name: idf
require: private
version: '>=4.2'
source:
registry_url: https://components.espressif.com
type: service
version: 1.5.2
espressif/esp-modbus:
component_hash: e42ebfdfc9d8e46821a915b4c1a5c6465c44dbd4e1bca10531e26f4adc7acc42
dependencies:
- name: idf
require: private
version: '>=4.3'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.17
espressif/esp-serial-flasher:
component_hash: dcc42a16712a1a636509cf0bf90e14032d7f2141784b533613b267b6aa318d52
dependencies: []
source:
registry_url: https://components.espressif.com
type: service
version: 0.0.11
espressif/esp-zboss-lib:
component_hash: fad683f7e04366398b61c0eea6e6517d4fe7ec4112407e26743dc80bafc0dcdc
dependencies:
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.6.0
espressif/esp-zigbee-lib:
component_hash: 0026979f590d7f2b07f433bb0fd031a12b0c2cc0eec8584b59cb6e567d5afd82
dependencies:
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.6.0
espressif/esp_diag_data_store:
component_hash: 8849195251dbb8a2d7268335277cfa310cef36e4ac1e90cd59ad3be4269a30d7
dependencies:
- name: idf
require: private
version: '>=4.1'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.1
espressif/esp_diagnostics:
component_hash: fe19f5ee7f0145f406d36a4d5310e4ae0c6ee1afa47f2681ada8a2ea8582d390
dependencies:
- name: idf
require: private
version: '>=4.1'
- name: espressif/rmaker_common
registry_url: https://components.espressif.com
require: private
version: ~1.4.0
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.2
espressif/esp_insights:
component_hash: 2472a19de98a8b991baeeac7209765b70ce14ec2b1435dbed3abd020dd0f7227
dependencies:
- name: idf
require: private
version: '>=4.1'
- name: espressif/cbor
registry_url: https://components.espressif.com
require: private
rules:
- if: idf_version >=5.0
version: ~0.6
- name: espressif/esp_diag_data_store
registry_url: https://components.espressif.com
require: private
version: ~1.0
- name: espressif/esp_diagnostics
registry_url: https://components.espressif.com
require: private
version: ~1.0
- name: espressif/rmaker_common
registry_url: https://components.espressif.com
require: private
version: ~1.4.0
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.1
espressif/esp_modem:
component_hash: 681d7c8417ce0f2a11a562c6998b7b379a4847be41d84673c11c0c7a6b00e918
dependencies:
- name: idf
require: private
version: '>=4.1'
source:
registry_url: https://components.espressif.com
type: service
version: 1.3.0
espressif/esp_rainmaker:
component_hash: f89a4759347f3909417fb33059452f36c86befae9d10bda78b5417b7a5d19d11
dependencies:
- name: espressif/rmaker_common
registry_url: https://components.espressif.com
require: private
version: ~1.4.6
- name: espressif/network_provisioning
registry_url: https://components.espressif.com
require: private
rules:
- if: idf_version >= 5.1
version: ~1.0.0
- name: espressif/mdns
registry_url: https://components.espressif.com
require: private
rules:
- if: idf_version >=5.0
version: ^1.2.0
- name: espressif/json_parser
registry_url: https://components.espressif.com
require: private
version: ~1.0.3
- name: espressif/json_generator
registry_url: https://components.espressif.com
require: private
version: ~1.1.1
- name: espressif/esp_secure_cert_mgr
registry_url: https://components.espressif.com
require: private
rules:
- if: idf_version >=4.3
version: ^2.2.1
- name: espressif/esp_schedule
registry_url: https://components.espressif.com
require: private
version: ~1.2.0
- name: espressif/esp_rcp_update
registry_url: https://components.espressif.com
require: private
rules:
- if: idf_version >= 5.1
version: ~1.2.0
source:
registry_url: https://components.espressif.com
type: service
version: 1.5.0
espressif/esp_rcp_update:
component_hash: c10afbd54a17f27eed880e61262b161656e6d36ad63376c307f9273e99d0abcd
dependencies:
- name: idf
require: private
version: '>=5.0'
- name: espressif/esp-serial-flasher
registry_url: https://components.espressif.com
require: private
version: ~0.0.0
source:
registry_url: https://components.espressif.com
type: service
version: 1.2.0
espressif/esp_schedule:
component_hash: e202a9c688f7f1ab601efb91d682e4bcfaebc508dcceee1a1e0a0d2d1ca75a26
dependencies:
- name: espressif/rmaker_common
registry_url: https://components.espressif.com
require: private
version: ~1.4.2
source:
registry_url: https://components.espressif.com
type: service
version: 1.2.0
espressif/esp_secure_cert_mgr:
component_hash: 5d9175b416f751ba6a7cb35bdf092f0af85658ce06c4a592c7c541d8017ebeb9
dependencies:
- name: idf
require: private
version: '>=4.3'
source:
registry_url: https://components.espressif.com
type: service
version: 2.5.0
espressif/jsmn:
component_hash: d80350c41bbaa827c98a25b6072df00884e72f54885996fab4a4f0aebce6b6c3
dependencies:
- name: idf
require: private
version: '>=4.3'
source:
registry_url: https://components.espressif.com
type: service
version: 1.1.0
espressif/json_generator:
component_hash: 45033e1c199b13f1c8c1b544fb7d4e2df6a8e3071ebdcb1b22582b61a7974ff2
dependencies: []
source:
registry_url: https://components.espressif.com
type: service
version: 1.1.2
espressif/json_parser:
component_hash: d74b81729ad06ec11ff5eb5b1b0d7df1d00e6027fc11471f4b139c70dcf1b1e4
dependencies:
- name: espressif/jsmn
registry_url: https://components.espressif.com
require: private
rules:
- if: idf_version >=5.0
version: ~1.1
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.3
espressif/libsodium:
component_hash: 25b968723c584a2742ca36cebe5a7ef049c6767e059f7b1e1eec69946019025d
dependencies:
- name: idf
require: private
version: '>=4.2'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.20~2
espressif/mdns:
component_hash: 4e21149422be01c24d4b1d4dec64fa07d136d8c5d234e931f3ebf375cbde51a0
dependencies:
- name: idf
require: private
version: '>=5.0'
source:
registry_url: https://components.espressif.com
type: service
version: 1.5.2
espressif/network_provisioning:
component_hash: ef2e10182fd1861e68b821491916327c25416ca7ae70e5a6e43313dbc71fe993
dependencies:
- name: idf
require: private
version: '>=5.1'
source:
registry_url: https://components.espressif.com
type: service
version: 1.0.2
espressif/qrcode:
component_hash: 3b493771bc5d6ad30cbf87c25bf784aada8a08c941504355b55d6b75518ed7bc
dependencies: []
source:
registry_url: https://components.espressif.com
type: service
version: 0.1.0~2
espressif/rmaker_common:
component_hash: a3a1df881278d0351fc850b77792fe8a196ddd6dcacbea203d606329cc6a0239
dependencies: []
source:
registry_url: https://components.espressif.com
type: service
version: 1.4.6
idf:
source:
type: idf
version: 5.3.2
joltwallet/littlefs:
component_hash: add3caf39a265868f70e55f17e8bfb401f200e45a601dc392832e7ac2c1487bc
dependencies:
- name: idf
require: private
version: '>=4.3'
source:
registry_url: https://components.espressif.com
type: service
version: 1.16.4
direct_dependencies:
- espressif/arduino-esp32
- idf
manifest_hash: fe35c802ba6a89901a8000205c3dac0c8d85b17fbd036b7a7dcb213e5f6e5361
target: esp32
version: 2.0.0

View File

@ -2091,15 +2091,6 @@ CONFIG_MDNS_TASK_STACK_SIZE=4096
CONFIG_MDNS_TASK_AFFINITY_CPU0=y
# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set
CONFIG_MDNS_TASK_AFFINITY=0x0
#
# MDNS Memory Configuration
#
CONFIG_MDNS_TASK_CREATE_FROM_INTERNAL=y
CONFIG_MDNS_MEMORY_ALLOC_INTERNAL=y
# CONFIG_MDNS_MEMORY_CUSTOM_IMPL is not set
# end of MDNS Memory Configuration
CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000
CONFIG_MDNS_TIMER_PERIOD_MS=100
# CONFIG_MDNS_NETWORKING_SOCKET is not set
@ -2185,230 +2176,3 @@ CONFIG_LITTLEFS_ASSERTS=y
# end of Component config
# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set
# Deprecated options for backward compatibility
# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set
# CONFIG_NO_BLOBS is not set
# CONFIG_ESP32_NO_BLOBS is not set
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
CONFIG_LOG_BOOTLOADER_LEVEL=3
# CONFIG_APP_ROLLBACK_ENABLE is not set
# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
# CONFIG_FLASHMODE_QIO is not set
# CONFIG_FLASHMODE_QOUT is not set
CONFIG_FLASHMODE_DIO=y
# CONFIG_FLASHMODE_DOUT is not set
CONFIG_MONITOR_BAUD=115200
# CONFIG_ESP_RMAKER_LOCAL_CTRL_ENABLE is not set
CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y
CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
# CONFIG_CXX_EXCEPTIONS is not set
CONFIG_STACK_CHECK_NONE=y
# CONFIG_STACK_CHECK_NORM is not set
# CONFIG_STACK_CHECK_STRONG is not set
# CONFIG_STACK_CHECK_ALL is not set
# CONFIG_WARN_WRITE_STRINGS is not set
# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
CONFIG_ESP32_APPTRACE_DEST_NONE=y
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
CONFIG_ADC2_DISABLE_DAC=y
# CONFIG_MCPWM_ISR_IN_IRAM is not set
# CONFIG_EVENT_LOOP_PROFILING is not set
CONFIG_POST_EVENTS_FROM_ISR=y
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
CONFIG_GDBSTUB_SUPPORT_TASKS=y
CONFIG_GDBSTUB_MAX_TASKS=32
# CONFIG_OTA_ALLOW_HTTP is not set
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
# CONFIG_ESP_SYSTEM_PD_FLASH is not set
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000
CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000
CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set
# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set
# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set
# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
# CONFIG_ESP32_XTAL_FREQ_26 is not set
CONFIG_ESP32_XTAL_FREQ_40=y
# CONFIG_ESP32_XTAL_FREQ_AUTO is not set
CONFIG_ESP32_XTAL_FREQ=40
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
CONFIG_ESP32_PHY_MAX_TX_POWER=20
# CONFIG_REDUCE_PHY_TX_POWER is not set
# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set
# CONFIG_SPIRAM_SUPPORT is not set
# CONFIG_ESP32_SPIRAM_SUPPORT is not set
# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y
# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
# CONFIG_ESP32_PANIC_PRINT_HALT is not set
CONFIG_ESP32_PANIC_PRINT_REBOOT=y
# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set
# CONFIG_ESP32_PANIC_GDBSTUB is not set
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_MAIN_TASK_STACK_SIZE=3584
CONFIG_CONSOLE_UART_DEFAULT=y
# CONFIG_CONSOLE_UART_CUSTOM is not set
# CONFIG_CONSOLE_UART_NONE is not set
# CONFIG_ESP_CONSOLE_UART_NONE is not set
CONFIG_CONSOLE_UART=y
CONFIG_CONSOLE_UART_NUM=0
CONFIG_CONSOLE_UART_BAUDRATE=115200
CONFIG_INT_WDT=y
CONFIG_INT_WDT_TIMEOUT_MS=300
CONFIG_INT_WDT_CHECK_CPU1=y
CONFIG_TASK_WDT=y
CONFIG_ESP_TASK_WDT=y
# CONFIG_TASK_WDT_PANIC is not set
CONFIG_TASK_WDT_TIMEOUT_S=5
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
CONFIG_ESP32_DEBUG_OCDAWARE=y
CONFIG_BROWNOUT_DET=y
CONFIG_ESP32_BROWNOUT_DET=y
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set
CONFIG_BROWNOUT_DET_LVL=0
CONFIG_ESP32_BROWNOUT_DET_LVL=0
# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
CONFIG_IPC_TASK_STACK_SIZE=1024
CONFIG_TIMER_TASK_STACK_SIZE=3584
CONFIG_ESP32_WIFI_ENABLED=y
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
CONFIG_ESP32_WIFI_TX_BA_WIN=6
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
CONFIG_ESP32_WIFI_RX_BA_WIN=6
CONFIG_ESP32_WIFI_RX_BA_WIN=6
CONFIG_ESP32_WIFI_NVS_ENABLED=y
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
CONFIG_ESP32_WIFI_IRAM_OPT=y
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y
CONFIG_WPA_MBEDTLS_CRYPTO=y
CONFIG_WPA_MBEDTLS_TLS_CLIENT=y
# CONFIG_WPA_WAPI_PSK is not set
# CONFIG_WPA_11KV_SUPPORT is not set
# CONFIG_WPA_MBO_SUPPORT is not set
# CONFIG_WPA_DPP_SUPPORT is not set
# CONFIG_WPA_11R_SUPPORT is not set
# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set
# CONFIG_WPA_WPS_STRICT is not set
# CONFIG_WPA_DEBUG_PRINT is not set
# CONFIG_WPA_TESTING_OPTIONS is not set
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
CONFIG_TIMER_TASK_PRIORITY=1
CONFIG_TIMER_TASK_STACK_DEPTH=2048
CONFIG_TIMER_QUEUE_LENGTH=10
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
# CONFIG_HAL_ASSERTION_SILIENT is not set
# CONFIG_L2_TO_L3_COPY is not set
CONFIG_ESP_GRATUITOUS_ARP=y
CONFIG_GARP_TMR_INTERVAL=60
CONFIG_TCPIP_RECVMBOX_SIZE=32
CONFIG_TCP_MAXRTX=12
CONFIG_TCP_SYNMAXRTX=12
CONFIG_TCP_MSS=1440
CONFIG_TCP_MSL=60000
CONFIG_TCP_SND_BUF_DEFAULT=5760
CONFIG_TCP_WND_DEFAULT=5760
CONFIG_TCP_RECVMBOX_SIZE=6
CONFIG_TCP_QUEUE_OOSEQ=y
CONFIG_TCP_OVERSIZE_MSS=y
# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set
# CONFIG_TCP_OVERSIZE_DISABLE is not set
CONFIG_UDP_RECVMBOX_SIZE=6
CONFIG_TCPIP_TASK_STACK_SIZE=3072
CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
# CONFIG_PPP_SUPPORT is not set
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y
# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
CONFIG_ESP32_PTHREAD_STACK_MIN=768
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set
CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
# CONFIG_ESP32_ULP_COPROC_ENABLED is not set
CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
CONFIG_SUPPORT_TERMIOS=y
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=3000
CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
CONFIG_MB_QUEUE_LENGTH=20
CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096
CONFIG_MB_SERIAL_BUF_SIZE=256
CONFIG_MB_SERIAL_TASK_PRIO=10
CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=y
CONFIG_MB_CONTROLLER_SLAVE_ID=0x00112233
CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20
CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
CONFIG_MB_CONTROLLER_STACK_SIZE=4096
CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
# CONFIG_MB_TIMER_PORT_ENABLED is not set
# End of deprecated options

View File

@ -1,4 +0,0 @@
build
managed_components
dependencies.lock
sdkconfig.old

View File

@ -1,19 +0,0 @@
# For more information about build system see
# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
# The following five lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.26)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(
#[[NAME]] temp-humidity-web
VERSION 0.1
DESCRIPTION "Temperature and humidity from DHT sensor served on a web page"
LANGUAGES CXX
)
message(STATUS "[Klips] Configuring example: ${PROJECT_NAME}")
# For writing pure cmake components, see the documentation
# https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/build-system.html#writing-pure-cmake-components
idf_build_set_property(COMPILE_OPTIONS "-Wno-error" APPEND)

View File

@ -1,27 +0,0 @@
# 05_temp-humidity-web
This is the same example in [03_temp-humidity-web](./../03_temp-humidity-web), ported to the cmake ESP-IDF build system.
For instructions on setting up the ESP-IDF see [04_-esp-idf-arduino](./../04_esp-idf-arduino)
This example is largely adapted from those in [ESP32-basic-starter-kit.pdf](./ESP32-basic-starter-kit.pdf).
The APIs in the original examples paired with this PDF have changed, and I decided to do some different things with the code and/or circuits, but the original code can be [found here](https://www.dropbox.com/scl/fo/6znlij3eb23ih4jxcpv2w/AKvB1t9CCUgoVRVtGen8Yrw?rlkey=z84anl0hs940qf9fpl7l8q8q2&e=1&dl=0).
![schematic](./schematic.png)
Temperature and humidity sensor served on a web page within the local network.
![screenshot](./screenshot.png)
To build this example run the following commands.
```bash
source ~/path/to/esp-idf/export.sh
mkdir build
cd build
cmake ..
make -j $(nproc)
make flash
```

View File

@ -1,4 +0,0 @@
idf_component_register(
SRCS "main.cpp"
INCLUDE_DIRS "."
)

View File

@ -1,19 +0,0 @@
## IDF Component Manager Manifest File
dependencies:
## Required IDF version
idf:
version: '>=4.1.0'
# # Put list of dependencies here
# # For components maintained by Espressif:
# component: "~1.0.0"
# # For 3rd party components:
# username/component: ">=1.0.0,<2.0.0"
# username2/component2:
# version: "~1.0.0"
# # For transient dependencies `public` flag can be set.
# # `public` flag doesn't have an effect dependencies of the `main` component.
# # All dependencies of `main` are public by default.
# public: true
espressif/arduino-esp32: ^3.1.1
zorxx/dht: ^1.0.1
esp32async/espasyncwebserver: ^3.7.0~1

View File

@ -1,189 +0,0 @@
#include "WiFi.h"
#include "ESPAsyncWebServer.h"
#include "main.h"
// Replace with your network credentials
const char *ssid = "wifi";
const char *password = "password";
#define DHTPIN GPIO_NUM_4 // Digital pin connected to the DHT sensor
// Uncomment the type of sensor in use:
#define DHTTYPE DHT_TYPE_DHT11 // DHT 11
//#define DHTTYPE DHT_TYPE_DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT_TYPE_DHT21 // DHT 21 (AM2301)
float DHT::readTemperature(bool f)
{
float humidity = 0;
float temperature = 0;
esp_err_t result = dht_read_float_data(type_, gpio_, &humidity,
&temperature);
if (result == ESP_OK) {
ESP_LOGI("[DHT::readTemperature]", "Humidity: %.1f%% Temperature: %.1f°C",
humidity,
temperature);
} else {
ESP_LOGE("[DHT::readTemperature]", "Failed to read sensor data: %s",
esp_err_to_name(result));
}
return f ? (temperature * 1.8f) + 32 : temperature;
}
float DHT::readHumidity()
{
float humidity = 0;
float temperature = 0;
esp_err_t result = dht_read_float_data(type_, gpio_, &humidity,
&temperature);
if (result == ESP_OK) {
ESP_LOGI("[DHT::readTemperature]", "Humidity: %.1f%% Temperature: %.1f°C",
humidity,
temperature);
} else {
ESP_LOGE("[DHT::readTemperature]", "Failed to read sensor data: %s",
esp_err_to_name(result));
}
return humidity;
}
DHT dht(DHTPIN, DHTTYPE);
// Create AsyncWebServer object on port 80
AsyncWebServer server(80);
String readDHTTemperature()
{
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return "--";
} else {
Serial.println(t);
return String(t);
}
}
String readDHTHumidity()
{
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
if (isnan(h)) {
Serial.println("Failed to read from DHT sensor!");
return "--";
} else {
Serial.println(h);
return String(h);
}
}
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
<style>
html {
font-family: Arial;
display: inline-block;
margin: 0px auto;
text-align: center;
}
h2 { font-size: 3.0rem; }
p { font-size: 3.0rem; }
.units { font-size: 1.2rem; }
.dht-labels{
font-size: 1.5rem;
vertical-align:middle;
padding-bottom: 15px;
}
</style>
</head>
<body>
<h2>ESP32 DHT Server</h2>
<p>
<i class="fas fa-thermometer-half" style="color:#059e8a;"></i>
<span class="dht-labels">Temperature</span>
<span id="temperature">%TEMPERATURE%</span>
<sup class="units">&deg;C</sup>
</p>
<p>
<i class="fas fa-tint" style="color:#00add6;"></i>
<span class="dht-labels">Humidity</span>
<span id="humidity">%HUMIDITY%</span>
<sup class="units">&percnt;</sup>
</p>
</body>
<script>
setInterval(function ( ) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("temperature").innerHTML = this.responseText;
}
};
xhttp.open("GET", "/temperature", true);
xhttp.send();
}, 10000 ) ;
setInterval(function ( ) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("humidity").innerHTML = this.responseText;
}
};
xhttp.open("GET", "/humidity", true);
xhttp.send();
}, 10000 ) ;
</script>
</html>)rawliteral";
// Replaces placeholder with DHT values
String processor(const String &var)
{
//Serial.println(var);
if (var == "TEMPERATURE") {
return readDHTTemperature();
} else if (var == "HUMIDITY") {
return readDHTHumidity();
}
return String();
}
void setup()
{
// Serial port for debugging purposes
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
// Print ESP32 Local IP Address
Serial.println(WiFi.localIP());
// Route for root / web page
server.on("/", HTTP_GET, [ ](AsyncWebServerRequest *request) {
request->send(200, "text/html", index_html, processor);
});
server.on("/temperature", HTTP_GET, [ ](AsyncWebServerRequest *request) {
request->send(200, "text/plain", readDHTTemperature().c_str());
});
server.on("/humidity", HTTP_GET, [ ](AsyncWebServerRequest *request) {
request->send(200, "text/plain", readDHTHumidity().c_str());
});
// Start server
server.begin();
}
void loop()
{
}

View File

@ -1,33 +0,0 @@
#ifndef MAIN_H
#define MAIN_H
#include <cstdint>
#include "dht.h"
class DHT {
public:
DHT(gpio_num_t gpio, dht_sensor_type_t type) :
gpio_(gpio), type_(type) { }
~DHT() = default;
/**
* Read temperature from DHT sensor
*
* @param f True to return in Fahrenheit, False for Celsius.
*/
float readTemperature(bool f = true);
/**
* Read humidity from DHT sensor.
*/
float readHumidity();
private:
gpio_num_t gpio_;
dht_sensor_type_t type_;
};
#endif // MAIN_H

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +0,0 @@
build
managed_components
dependencies.lock
sdkconfig.old

Some files were not shown because too many files have changed in this diff Show More