diff --git a/README.en.md b/README.en.md index 8dbadb6..e81b550 100644 --- a/README.en.md +++ b/README.en.md @@ -48,7 +48,7 @@ It has the characteristics of **simplicity, universality, and efficiency**, with | tree | 01.00.00 | [link](/doc/tree.md) | ./source/03_container | Universal tree container | vector | 01.00.00 | [link](/doc/vector.md) | ./source/03_container | Universal vector(array) container | check | 01.00.00 | [link](/doc/check.md) | ./source/04_algorithm | Verification algorithm, sum check, parity check, XOR check, LRC check -| crc | 01.00.00 | [link](/doc/crc.md) | ./source/04_algorithm | Universal and standard CRC algorithms +| crc | 01.00.00 | [link](/doc/check.md) | ./source/04_algorithm | Universal and standard CRC algorithms | encrypt | 01.00.00 | [link](/doc/encrypt.md) | ./source/04_algorithm | Encryption and decryption algorithms | filter | 01.00.00 | [link](/doc/filter.md) | ./source/04_algorithm | Filter algorithms, median, kalman, average | hash | 01.00.00 | [link](/doc/hash.md) | ./source/04_algorithm | Hash algorithms, bkdr, ap, djb, js, rs, sdbm, pjw, elf, dek, bp, fnv, jdk6 diff --git a/README.md b/README.md index 4979f8f..79f722b 100644 --- a/README.md +++ b/README.md @@ -13,53 +13,53 @@ varch(we-architecture,意为我们的框架库)是嵌入式C语言常用 | module | version | usage | path | describe | |:-------------|:---------|:-----------------------------|:--------------------------------------|:--------------------------------------| -| overall | 00.01.01 | [link](README.md) | ./ | Overall -| init | 01.00.00 | [link](/doc/init.md) | ./source/00_application | Initialize export module -| console | 01.00.00 | [link](/doc/console.md) | ./source/00_application/console | Console command input, combined with the 'command' module, parsing commands entered in the console -| arg | 01.00.00 | [link](/doc/arg.md) | ./source/01_general | Indefinite parameters, obtain the number of indefinite parameters and specified parameters -| calculate | 01.00.00 | [link](/doc/calculate.md) | ./source/01_general | Calculation module, input calculation expression to obtain calculation result -| command | 01.00.00 | [link](/doc/command.md) | ./source/01_general | Command parsing module, input string commands (similar to shell commands), execute corresponding command functions -| cPatten | 01.00.00 | [link](/doc/cPatten.md) | ./source/01_general | Artistic character patterns -| cQueue | 01.00.00 | [link](/doc/cQueue.md) | ./source/01_general | Universal queue controller -| dList | 01.00.00 | [link](/doc/dList.md) | ./source/01_general | Universal double-link list controller -| fsm | 01.00.00 | [link](/doc/fsm.md) | ./source/01_general | Universal finite state machine module -| kern | 01.00.00 | [link](/doc/kern.md) | ./source/01_general | The kernel module for scheduling periodic tasks is mostly used in varch testing -| oscp | 01.00.00 | [link](/doc/oscp.md) | ./source/01_general | Analog oscilloscope module, can easily monitor the waveform of variable changes -| sList | 01.00.00 | [link](/doc/sList.md) | ./source/01_general | Universal single-link list controller -| tool | 01.00.00 | [link](/doc/tool.md) | ./source/01_general | General tools code -| valloc | 01.00.00 | [link](/doc/valloc.md) | ./source/01_general | Dynamic memory usage testing tool -| vlog | 01.01.00 | [link](/doc/vlog.md) | ./source/01_general | Log output module -| vctype | 01.00.00 | [link](/doc/vctype.md) | ./source/02_vstd | Similar to the C standard library ctype -| vmath | 01.00.00 | [link](/doc/vmath.md) | ./source/02_vstd | Similar to the C standard library math -| vmem | 01.00.00 | [link](/doc/vmem.md) | ./source/02_vstd | Simple implementation of memory pool -| vstddef | 01.00.00 | [link](/doc/vstddef.md) | ./source/02_vstd | Similar to the C standard library stddef -| vstdint | 01.00.00 | [link](/doc/vstdint.md) | ./source/02_vstd | Similar to the C standard library stdint -| vstdlib | 01.00.00 | [link](/doc/vstdlib.md) | ./source/02_vstd | Similar to the C standard library stdlib -| vstring | 01.00.00 | [link](/doc/vstring.md) | ./source/02_vstd | Similar to the C standard library string -| deque | 01.00.00 | [link](/doc/deque.md) | ./source/03_container | Universal double-end queue container -| dict | 01.00.00 | [link](/doc/dict.md) | ./source/03_container | Universal dictionarie container, implementation based on hash table -| heap | 01.00.00 | [link](/doc/heap.md) | ./source/03_container | Universal heap container -| list | 01.00.00 | [link](/doc/list.md) | ./source/03_container | Universal list container, single-link and internal iteration -| map | 01.00.00 | [link](/doc/map.md) | ./source/03_container | Universal map container, implementation based on RB-tree -| queue | 01.00.00 | [link](/doc/queue.md) | ./source/03_container | Universal queue container -| set | 01.00.00 | [link](/doc/set.md) | ./source/03_container | Universal set container, implementation based on RB-tree -| stack | 01.00.00 | [link](/doc/stack.md) | ./source/03_container | Universal stack container -| str | 01.00.00 | [link](/doc/str.md) | ./source/03_container | String class -| tree | 01.00.00 | [link](/doc/tree.md) | ./source/03_container | Universal tree container -| vector | 01.00.00 | [link](/doc/vector.md) | ./source/03_container | Universal vector(array) container -| check | 01.00.00 | [link](/doc/check.md) | ./source/04_algorithm | Verification algorithm, sum check, parity check, XOR check, LRC check -| crc | 01.00.00 | [link](/doc/crc.md) | ./source/04_algorithm | Universal and standard CRC algorithms -| encrypt | 01.00.00 | [link](/doc/encrypt.md) | ./source/04_algorithm | Encryption and decryption algorithms -| filter | 01.00.00 | [link](/doc/filter.md) | ./source/04_algorithm | Filter algorithms, median, kalman, average -| hash | 01.00.00 | [link](/doc/hash.md) | ./source/04_algorithm | Hash algorithms, bkdr, ap, djb, js, rs, sdbm, pjw, elf, dek, bp, fnv, jdk6 -| pid | 01.00.00 | [link](/doc/pid.md) | ./source/04_algorithm | PID control algorithm calculator -| search | 01.00.00 | [link](/doc/search.md) | ./source/04_algorithm | Universal search algorithms, linear, binary -| sort | 01.00.00 | [link](/doc/sort.md) | ./source/04_algorithm | Universal sorting algorithms (various data structures), bubble, select, insert, hill, quick, heap -| csv | 01.00.00 | [link](/doc/csv.md) | ./source/05_parser | CSV file parsing generator -| ini | 01.00.00 | [link](/doc/ini.md) | ./source/05_parser | INI configuration file parsing generator -| json | 01.00.00 | [link](/doc/json.md) | ./source/05_parser | JSON file parsing generator -| txls | 01.00.00 | [link](/doc/txls.md) | ./source/05_parser | TXLS file parsing generator -| xml | 01.00.00 | [link](/doc/xml.md) | ./source/05_parser | XML file parsing generator +| overall | 00.01.01 | [link](README.md) | ./ | 整体 +| init | 01.00.00 | [link](/doc/init.md) | ./source/00_application | 初始化导出模块 +| console | 01.00.00 | [link](/doc/console.md) | ./source/00_application/console | 控制台命令输入,结合 `command` 模块,解析在控制台中输入的命令 +| arg | 01.00.00 | [link](/doc/arg.md) | ./source/01_general | 不定参数,获取不定参数和指定参数的个数 +| calculate | 01.00.00 | [link](/doc/calculate.md) | ./source/01_general | 计算模块,输入计算表达式,得到计算结果 +| command | 01.00.00 | [link](/doc/command.md) | ./source/01_general | 命令解析模块,输入字符串命令(类似于shell命令),执行相应的命令功能 +| cPatten | 01.00.00 | [link](/doc/cPatten.md) | ./source/01_general | 艺术图案字符 +| cQueue | 01.00.00 | [link](/doc/cQueue.md) | ./source/01_general | 通用队列控制器 +| dList | 01.00.00 | [link](/doc/dList.md) | ./source/01_general | 通用双链表控制器 +| fsm | 01.00.00 | [link](/doc/fsm.md) | ./source/01_general | 通用有限状态机模块 +| kern | 01.00.00 | [link](/doc/kern.md) | ./source/01_general | 用于调度周期性任务的内核模块主要用于varch测试 +| oscp | 01.00.00 | [link](/doc/oscp.md) | ./source/01_general | 模拟示波器模块,可以方便地监测波形的变量变化 +| sList | 01.00.00 | [link](/doc/sList.md) | ./source/01_general | 通用单链表控制器 +| tool | 01.00.00 | [link](/doc/tool.md) | ./source/01_general | 通用工具代码 +| valloc | 01.00.00 | [link](/doc/valloc.md) | ./source/01_general | 动态内存使用测试工具 +| vlog | 01.01.00 | [link](/doc/vlog.md) | ./source/01_general | 日志输出模块 +| vctype | 01.00.00 | [link](/doc/vctype.md) | ./source/02_vstd | 类似于C标准库ctype +| vmath | 01.00.00 | [link](/doc/vmath.md) | ./source/02_vstd | 类似于C标准库math +| vmem | 01.00.00 | [link](/doc/vmem.md) | ./source/02_vstd | 内存池的简单实现 +| vstddef | 01.00.00 | [link](/doc/vstddef.md) | ./source/02_vstd | 类似于C标准库stddef +| vstdint | 01.00.00 | [link](/doc/vstdint.md) | ./source/02_vstd | 类似于C标准库stdint +| vstdlib | 01.00.00 | [link](/doc/vstdlib.md) | ./source/02_vstd | 类似于C标准库stdlib +| vstring | 01.00.00 | [link](/doc/vstring.md) | ./source/02_vstd | 类似于C标准库string +| deque | 01.00.00 | [link](/doc/deque.md) | ./source/03_container | 通用双端队列容器 +| dict | 01.00.00 | [link](/doc/dict.md) | ./source/03_container | 通用字典容器,基于哈希表实现 +| heap | 01.00.00 | [link](/doc/heap.md) | ./source/03_container | 通用堆容器 +| list | 01.00.00 | [link](/doc/list.md) | ./source/03_container | 通用列表容器,单链接和支持内部迭代器 +| map | 01.00.00 | [link](/doc/map.md) | ./source/03_container | 通用地图容器,基于RB-tree实现 +| queue | 01.00.00 | [link](/doc/queue.md) | ./source/03_container | 通用队列容器 +| set | 01.00.00 | [link](/doc/set.md) | ./source/03_container | 通用集合容器,基于RB-tree实现 +| stack | 01.00.00 | [link](/doc/stack.md) | ./source/03_container | 通用栈式容器 +| str | 01.00.00 | [link](/doc/str.md) | ./source/03_container | 字符串类 +| tree | 01.00.00 | [link](/doc/tree.md) | ./source/03_container | 通用树容器 +| vector | 01.00.00 | [link](/doc/vector.md) | ./source/03_container | 通用向量(数组)容器 +| check | 01.00.00 | [link](/doc/check.md) | ./source/04_algorithm | 校验算法,求和校验,奇偶校验,异或校验,LRC校验 +| crc | 01.00.00 | [link](/doc/check.md) | ./source/04_algorithm | 通用标准CRC算法 +| encrypt | 01.00.00 | [link](/doc/encrypt.md) | ./source/04_algorithm | 加密解密算法 +| filter | 01.00.00 | [link](/doc/filter.md) | ./source/04_algorithm | 滤波算法,中值,卡尔曼,平均值 +| hash | 01.00.00 | [link](/doc/hash.md) | ./source/04_algorithm | 哈希算法,bkdr、ap、djb、js、rs、sdbm、pjw、elf、dek、bp、fnv、jdk6 +| pid | 01.00.00 | [link](/doc/pid.md) | ./source/04_algorithm | PID控制算法计算器 +| search | 01.00.00 | [link](/doc/search.md) | ./source/04_algorithm | 通用搜索算法,线性,二进制 +| sort | 01.00.00 | [link](/doc/sort.md) | ./source/04_algorithm | 通用排序算法(各种数据结构),冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序 +| csv | 01.00.00 | [link](/doc/csv.md) | ./source/05_parser | CSV文件解析生成器 +| ini | 01.00.00 | [link](/doc/ini.md) | ./source/05_parser | INI配置文件解析生成器 +| json | 01.00.00 | [link](/doc/json.md) | ./source/05_parser | JSON文件解析生成器 +| txls | 01.00.00 | [link](/doc/txls.md) | ./source/05_parser | TXLS文件解析生成器 +| xml | 01.00.00 | [link](/doc/xml.md) | ./source/05_parser | XML文件解析生成器 ## 使用说明 diff --git a/source/02_vstd/vctype.c b/source/02_vstd/vctype.c index af50fba..8c834c9 100644 --- a/source/02_vstd/vctype.c +++ b/source/02_vstd/vctype.c @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vctype.c + * \unit vctype + * \brief Similar to the C standard library ctype + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #include "vctype.h" int v_tolower(int c) diff --git a/source/02_vstd/vctype.h b/source/02_vstd/vctype.h index 1e82b91..128adfc 100644 --- a/source/02_vstd/vctype.h +++ b/source/02_vstd/vctype.h @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vctype.h + * \unit vctype + * \brief Similar to the C standard library ctype + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #ifndef __vctype_H #define __vctype_H diff --git a/source/02_vstd/vmath.c b/source/02_vstd/vmath.c index be23061..b8d8208 100644 --- a/source/02_vstd/vmath.c +++ b/source/02_vstd/vmath.c @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vmath.c + * \unit vmath + * \brief Similar to the C standard library math + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #include "vmath.h" static double _ln[100] = { 0.0,0.009950330853168,0.019802627296180,0.029558802241544,0.039220713153281,0.048790164169432,0.058268908123976,0.067658648473815,0.076961041136128,0.086177696241052,0.095310179804325,0.104360015324243,0.113328685307003,0.122217632724249,0.131028262406404,0.139761942375159,0.148420005118273,0.157003748809665,0.165514438477574,0.173953307123438,0.182321556793955,0.190620359608650,0.198850858745165,0.207014169384326,0.215111379616946,0.223143551314210,0.231111720963387,0.239016900470500,0.246860077931526,0.254642218373581,0.262364264467491,0.270027137213060,0.277631736598280,0.285178942233663,0.292669613962820,0.300104592450338,0.307484699747961,0.314810739840034,0.322083499169114,0.329303747142601,0.336472236621213,0.343589704390077,0.350656871613170,0.357674444271816,0.364643113587910,0.371563556432483,0.378436435720245,0.385262400790645,0.392042087776024,0.398776119957368,0.405465108108165,0.412109650826833,0.418710334858185,0.425267735404344,0.431782416425538,0.438254930931156,0.444685821261446,0.451075619360217,0.457424847038876,0.463734016232140,0.470003629245736,0.476234178996372,0.482426149244293,0.488580014818671,0.494696241836107,0.500775287912490,0.506817602368452,0.512823626428664,0.518793793415168,0.524728528934982,0.530628251062171,0.536493370514569,0.542324290825362,0.548121408509688,0.553885113226438,0.559615787935423,0.565313809050061,0.570979546585738,0.576613364303994,0.582215619852664,0.587786664902119,0.593326845277735,0.598836501088704,0.604315966853330,0.609765571620895,0.615185639090234,0.620576487725110,0.625938430866496,0.631271776841858,0.636576829071551,0.641853886172395,0.647103242058539,0.652325186039691,0.657520002916795,0.662687973075237,0.667829372575656,0.672944473242426,0.678033542749898,0.683096844706444,0.688134638736401 }; diff --git a/source/02_vstd/vmath.h b/source/02_vstd/vmath.h index 9aaaacf..3ac6794 100644 --- a/source/02_vstd/vmath.h +++ b/source/02_vstd/vmath.h @@ -1,6 +1,21 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vmath.h + * \unit vmath + * \brief Similar to the C standard library math + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #ifndef __vmath_H #define __vmath_H +/* A constant in mathematics + */ + #ifndef PI #define PI 3.141592653589793238462643383279502884197169399375105820974944592308 #endif diff --git a/source/02_vstd/vmem.c b/source/02_vstd/vmem.c index bd50157..0efac8c 100644 --- a/source/02_vstd/vmem.c +++ b/source/02_vstd/vmem.c @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vmem.c + * \unit vmem + * \brief Simple implementation of memory pool + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #include "vmem.h" #include "vstring.h" diff --git a/source/02_vstd/vmem.h b/source/02_vstd/vmem.h index aede4c7..0e93146 100644 --- a/source/02_vstd/vmem.h +++ b/source/02_vstd/vmem.h @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vmem.h + * \unit vmem + * \brief Simple implementation of memory pool + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #ifndef __vmem_H #define __vmem_H diff --git a/source/02_vstd/vstddef.h b/source/02_vstd/vstddef.h index 0a4ce44..614bb4b 100644 --- a/source/02_vstd/vstddef.h +++ b/source/02_vstd/vstddef.h @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vstddef.h + * \unit vstddef + * \brief Similar to the C standard library stddef + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #ifndef __vstddef_H #define __vstddef_H diff --git a/source/02_vstd/vstdint.h b/source/02_vstd/vstdint.h index b4ed585..9053992 100644 --- a/source/02_vstd/vstdint.h +++ b/source/02_vstd/vstdint.h @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vsdint.h + * \unit vsdint + * \brief Similar to the C standard library sdint + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #ifndef __vsdint_H #define __vsdint_H diff --git a/source/02_vstd/vstdlib.c b/source/02_vstd/vstdlib.c index d537522..03971a0 100644 --- a/source/02_vstd/vstdlib.c +++ b/source/02_vstd/vstdlib.c @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vstdlib.c + * \unit vstdlib + * \brief Similar to the C standard library stdlib + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #include "vstdlib.h" #include "vctype.h" #include "vstddef.h" diff --git a/source/02_vstd/vstdlib.h b/source/02_vstd/vstdlib.h index c6e9384..9237e75 100644 --- a/source/02_vstd/vstdlib.h +++ b/source/02_vstd/vstdlib.h @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vstdlib.h + * \unit vstdlib + * \brief Similar to the C standard library stdlib + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #ifndef __vstdlib_H #define __vstdlib_H diff --git a/source/02_vstd/vstring.c b/source/02_vstd/vstring.c index 56f4d93..0341f7e 100644 --- a/source/02_vstd/vstring.c +++ b/source/02_vstd/vstring.c @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vstring.c + * \unit vstring + * \brief Similar to the C standard library string + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #include "vstring.h" #include "vctype.h" #include "vstdlib.h" diff --git a/source/02_vstd/vstring.h b/source/02_vstd/vstring.h index 7dfc3e6..f17aec6 100644 --- a/source/02_vstd/vstring.h +++ b/source/02_vstd/vstring.h @@ -1,3 +1,15 @@ +/********************************************************************************************************* + * ------------------------------------------------------------------------------------------------------ + * file description + * ------------------------------------------------------------------------------------------------------ + * \file vstring.h + * \unit vstring + * \brief Similar to the C standard library string + * \author Lamdonn + * \version v1.0.0 + * \license GPL-2.0 + * \copyright Copyright (C) 2023 Lamdonn. + ********************************************************************************************************/ #ifndef __vstring_H #define __vstring_H