Changelog

Version 2.29.8995 Jun 2021 (unstable beta)

  • remove build errors
  • add numeric_limits
  • change return variable from void* to int in funtion basic_task::on_task
  • reorder and add wifi error codes.
  • add basic_wifi class and a class for create a ESP32 WiFi AP (basic_wifi_ap).
  • add shell sort and manked t as std
  • add github pull_request_template, security.md and issue templates: bug report and future request.
  • ade the function notify_one and notify_all to convar.
  • !! Rename mn_basic_timespan to mn_timespan !!
  • !! move wifi and netif stack from mn::net to mn::device. BT, WIFI and TelNet are a device
  • add mn::device::system a simple device interface to get useful SoC informations
  • add device base classes
  • update the examples

Version 2.29.8906 Mai 2021 (unstable beta)

  • update mn::container and mn_buffer now support the new allocator system
  • add allocator_typetraits
  • add smart_pointer_traits
  • add container/array
  • add default_deleter and add this support to list
  • add mn::function a lightwight version of std::function
  • add a simple unique_ptr pointer
  • add optional
  • add helper function to mn_functional
    • sqrt
    • factorial
    • fibonacci
  • add simple hash support rename array -> fixed_array add atomic utils:
    • basic_atomic_singleton : Singleton with double-checked locking pattern with atomic and mutex lock
    • atomic_queue: A basic lockfree atomic queue add a basic map : basic_light_map add endianess function - see include/mn_endianness.hpp add basic_void_type for void_t type add value_ptr and update clone_ptr to standard of c++11 and add mn::initializer_list

Versoin 2.28.3098 April 2021 (unstable beta)

  • add atomic_counter class
  • task: a atomic_counter create a new task id
  • add atomic counter
  • add multicast socketfor ipv4 and ipv6
  • add class timespan and timestamp
  • task: The function get_time_since_start() changed the return type from uint32_t to timespan_t
  • mn_micros.hpp: marked the functions ticks_to_ms, ms_to_ticks, seconds_to_ticks, time_to_ms and time_to_ticks as DEPRECATED remove in version 2.30
  • mn_sleep remove sleep, nsleep and usleep and added sleep version with timespan as argument :
    • void delay(const timespan_t& ts); with macros MN_DELAY_SEC and MN_DELAY_MICROS
  • add simple atomic_flags class
  • remove mempool
  • start add new memory allocator stack

Versoin 2.28.x März 2021 (unstable beta)

  • add socket classes for udp, tcp and raw - IPv6 and IPv4
  • add new config defines for IPv6
    • MN_THREAD_CONFIG_NET_IPADDRESS6_ENABLE: When enable then compile with IPv6 support and enable tcp, udp, raw IPv6 socket versions
    • MN_THREAD_CONFIG_NET_IPADDRESS6_USE_SCOPEID: When enable then save the basic_ip6_address the scopeid
    • MN_THREAD_CONFIG_NET_IPADDRESS6_SCOPEID_VAL: The basic scoped val default 0

Versoin 2.27 März 2021 (unstable beta)

  • add sockets support -> see mn_socket.hpp
  • rename ERR_TIMEOUT => ERR_MINILIB_TIMEOUT - build bug
  • remove container -(mn_container.hpp) and netzwerk header file (mn_socket.hpp) from mn_minithread.hpp header file, when use then include it in your project manual, for socket support add after miniThread.hpp the socket heaher file mn_socket.hpp and for container support after miniThread.hpp the container header file mn_container.hpp
  • update version style and remove the version singleton, see empty example for use. See mn_auto_version.hpp for details
  • Task: remove the eventgroup and remove child task handling
  • Convar: remove the function signal all

Version 2.20 März 2021

  • add allocator helpor macros: MNALLOC_OBJECT, MNALLOC_OBJECT_D ...
    See also
    MNALLOC_OBJECT
  • update mempool - added MNALLOC_OBJECT systems
  • add mn::list – replace std::list
  • mn_allocator_{multiheap, caps, object, system, buffer, stack} to dirctory allocator
  • Add a any_ptr - basic_any_ptr<void> - can only hold const pointer
  • add uuid_t / guid_t - hash/mn_uuid.hpp
  • remove type usings from mn_container.hpp to the array, list, fixed_array, ... headers. mn_container include all container types and all special container usings switch to mn_container_esp32.hpp
  • add a red black tree to the cointainer namespace - find under container/mn_rb_tree.hpp
  • add any_ptr - a pointer to hold a const any-variant type
  • add at mn::cointainer a Template queue with iterator-support
  • add new algorythmen and mn::functinal support
  • make atomic ready

Version 2.10 Februar 2021

  • add pointer suppert - weak, shared, clone_ptr, and other
  • add new ringbuffer and updated examples
  • add Makefile support only for use the source from git, not use in platformio library regestrie

Version 2.0.4 Januar 2021

  • add staked, buffered allocator
  • add allocator, mempool and stack to mn::memory namespace
  • add allocator with mempool backend
  • start add aSTL template classes to this library, aSTL a other lightwidgt STL In the future are replace all vector, list, map etc. with aSTL version
    • add auto_ptr, weak_ptr, skoped_ptr, clone_ptr, save_ptr, shared_ptr to library
  • added namespaces:
    • slock -> mn::system
    • mempool, allocator and deleter -> mn::memory
    • foregin_task, convar system, msg task -> mn::ext
    • trace -> mn::trace
    • all other -> mn
  • rename:
    • func: mn_sleep, mn_usleep and mn_nsleep rename to sleep, nsleep and usleeep
    • func: mn_panic to panic
    • class: libmnversion to version

Version 2.0.1 Januar 2021

  • rename tasklet function create to schedule - (DE: Mein fehler - misverständnis)
  • add schudaler util class
  • add random handler, for future use
  • add new memory pool handler simple version and a complexere version for debugging
  • add a stack template class: memory/mn_stack.hpp
  • add a wrapper for handling tickhooks
  • EXAMPLES in progress
  • Add new configs items
    • MN_THREAD_CONFIG_MEMPOOL_USETIMED Use for mempool the timed version and xTicksToWait (see config)
    • MN_THREAD_CONFIG_TICKHOOK_MAXENTRYS The max entrys are hold the tickhook queue
    • MN_THREAD_CONFIG_STACK_TYPE The basic type for stack_t ( basic_stack<MN_THREAD_CONFIG_STACK_TYPE>; )

Version 1.95 Oktober 2020: (stable 2.0beta)

  • update error codes
  • merge config_preview with config and error_preview with error
  • add shared, timed and the ringbuffer to main version
  • remove old system locks and add new lock system - old include file
  • add new in code example and update the doxygen bootstrap output style
  • add basic_tickhook system
  • add mempool support

Version 1.9.1 Oktober 2020: (unstable 2.0beta)

  • for the future version add prototypes: (Not for produtions use!!)
    • free_list_memory pool = basic_free_list_mempool
    • Shared Object = basic_shared_object
    • Ringbuffer = basic_circular_buffer
    • Add timed lock type = basic_timed_lock
  • Add class to extends the basic_convar_task with a message queue support - basic_message_task
    • Add new config item, to handle the maximal messages in the message queue (MN_THREAD_CONFIG_MSGTASK_MAX_MESSAGES)
    • For message queue support must be conditional variable support marked as enable
  • Add new defines:
    • in mn_foreign_task.hpp:
      • FT_IDLE_TASK (foreign_task::get_idle_task())
      • FT_IDLE_TASK_ON(CPUID foreign_task::get_idle_task(CPUID)
    • in mn_config.hpp:
      • MN_THREAD_CONFIG_MINIMAL_STACK_SIZE set the default minimal stack size for a task
  • add in basic_task get_state() to get the current state and static function get_tasks() to get the number of tasks
  • remove create and destroy from all mutex and semaphore objects and add exceptins handling
  • rename create and on_create to start and on_start
  • add to the basic_task: join(), wait() and get_self() functions - basic_task remove abstract
  • remove the m_contextMutext2 LockObject

Version 1.9.0 September 2020: (stable 2.0beta)

  • add a eventgroup wrapper
  • rename basic_thread to basic_task and the other threads to task - with error codes and rename on_thread to on_task
  • add in confg:
    • MN_THREAD_CONFIG_CORE_MAX (portNUM_PROCESSORS - 1)
    • add prority enum to task
  • rename mn_base.hpp to miniThread.hpp
  • remove bugs and errors
  • Strip semaphore classes
  • add task_utils class for notify
  • add MN_THREAD_CONFIG_PREVIEW_FUTURE config item for next major version future (not for product use), not activate
  • all config items can you now override in the sdkconfig file
  • update config with new items, please cheack

Version 1.71 September 2020: (unstable 2.0beta)

  • add single and multi threaded worcking queues (basic_work_queue_single & basic_work_queue_multi) (TODO Optional add a Workqueues ) and add configand error defines, with doku
  • remove bugs and errors
  • This is the preview version of 2.0.0

Version 1.60 September 2020: (unstable nightly)

  • add Work queue support (basic_work_queue) basic_work_queue pull work_queue_item off of a FIFO queue and run them sequentially.
  • add New Config Options to mn_conig.hpp
    • MN_THREAD_CONFIG_WORK_QUEUE_MAX_WORK_ITEMS: How many work items to queue in the work queue engine default is 8
    • MN_THREAD_CONFIG_WORK_QUEUE_STACK_SIZE: Default Stak size for the work queue thread. defaultis (configMINIMAL_STACK_SIZE + 2)
    • MN_THREAD_CONFIG_WORK_QUEUE_PRIORITY Default Priority for the work queue thread. default is (tskIDLE_PRIORITY + 1)
    • MN_THREAD_CONFIG_DEFAULT_CORE Default Core to run a new Task (default MN_THREAD_CONFIG_CORE_NO)
    • MN_THREAD_CONFIG_DEFAULT_WORKQUEUE_CORE On whith core run all Workques an default cas be override in the create function (default MN_THREAD_CONFIG_CORE2_TWO)
    • MN_THREAD_CONFIG_LOCK_TYPE This Property change now the Autolock type and the basic LockType_t (default MN_THREAD_CONFIG_BINARY_SEMAPHORE)
  • remane LIB_CPU_0 -> MN_THREAD_CONFIG_CORE2_ONE and LIBMN_CPU_1 -> MN_THREAD_CONFIG_CORE2_TWO
  • rename libmn_panic to mn_panic
  • add default informations to the config file
  • remove config option MN_THREAD_CONFIG_MUTEX_CLASS. MN_THREAD_CONFIG_MUTEX_CLASS
  • rename libmn.hpp to mn_base.hpp and add missing headers
  • rename mn_spinlock.hpp => mn_semaphore.hpp and mn_spinlock.cpp => mn_semaphore.cpp
  • basic_mutex extends basic_semaphore
  • add foreign_thread for mini Thread foregin thread and current Thread handling

Version 1.54 September 2020: (unstable)

  • Documentation ready
  • add Licence text to source files
  • remove semaphore_t and spinlock_t
  • add counting_semaphore_t (autocsemp_t) and binary_semaphore_t (autobinsemp_t) please update code semaphore_t = counting_semaphore_t, spinlock_t = binary_semaphore_t

Version 1.53 September 2020:

Version 1.43 September 2020: (stable)

  • move convar function from basic_thread to basic_convar_thread
  • add basic_convar_thread when "MN_THREAD_CONFIG_CONDITION_VARIABLE_SUPPORT MN_THREAD_CONFIG_YES"is and update basic_condition_variable
  • remove errors - (sorry, ... )
  • add a deque class that implements a double ended queue. (deque_t = basic_deque)

Version 1.42 August 2020: (non-stable)

Version 1.4 August 2020: (non-stable)

  • add Conditional Variable an disable in config file (mn_config.hpp)
  • add new Cosfigurations items on mn_config.hpp
  • add recursive matux and autolack tps for interrupt, critical_lock and schedular
  • add Tasklets

Version 1.2 August 2020: (stable)

  • rename the header files from mn-(xxx).h to mn_(xxx).hpp
  • Platformio regestration

Version 1.0.62 Mai 2020: (non-stable)

  • update examples - stripped
  • switch from c3pb.gitlab to my public github account

Version 1.0.60 November 2018: (non-stable)

  • rename:
    • sleep -> mn_sleep
    • usleep -> mn_usleep
    • nsleep -> mn_nsleep
  • start thread mutext unlock funktion - see examples
  • update examples
  • update version

Version 1.0.5 November 2018: (stable)

  • Add libmn.h
  • Add Config : mn-config.h
  • rename header
  • Add examples

Version 0.9.3 November 2018: (non-stable)

  • add autolock_t to mn-Thread
  • add mn-autolock.h
  • add spinlock

Version 0.8.31 November 2018: (non-stable)

  • add logical mutext handle to basic_thread
  • rename function "delay" to "sleep" in basic_thread
  • add function "nsleep" and "usleep" to basic_thread
  • add "child_thread" and "parent_thread" to basic_thread
  • add function "get_root();" "get_child();" "add_child_thread(basic_thread+ thread);"

Version 0.8.3 November 2018: (non-stable)

  • add nsleep, sleep, usleep, micros, milis

Version 0.8.2, November 2018: (non-stable)

  • Public release