/*
 * @Author       : stark1898y 1658608470@qq.com
 * @Date         : 2024-07-19 13:49:43
 * @LastEditors  : stark1898y 1658608470@qq.com
 * @LastEditTime : 2024-09-19 14:25:52
 * @FilePath     : \JT-DT-YD4N02A_RTT_MRS\rt-thread\rtconfig.h
 * @Description  :
 *
 * Copyright (c) 2024 by yzy, All Rights Reserved.
 */
#ifndef RT_CONFIG_H__
#define RT_CONFIG_H__

/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */

#define ENABLE_LOG_ALL
/* RT-Thread Kernel */

#define RT_NAME_MAX   16
#define RT_ALIGN_SIZE 4
#define RT_THREAD_PRIORITY_32
#define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND     1000

#define RT_USING_HOOK
#define RT_HOOK_USING_FUNC_PTR

#define RT_USING_IDLE_HOOK
#define RT_IDLE_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 512

#define RT_USING_TIMER_SOFT
#define RT_TIMER_THREAD_PRIO       4
#define RT_TIMER_THREAD_STACK_SIZE 1024

/* kservice optimization */

/* end of kservice optimization */

#define RT_DEBUG
#define RT_DEBUG_COLOR

// #define RT_DEBUG_INIT_CONFIG
#define RT_DEBUG_INIT 0
// #define RT_DEBUG_THREAD_CONFIG
// #define RT_DEBUG_THREAD 1
#define RT_USING_OVERFLOW_CHECK 1
/* Inter-Thread communication */

#define RT_USING_SEMAPHORE
#define RT_USING_MUTEX
#define RT_USING_EVENT
#define RT_USING_MAILBOX
#define RT_USING_MESSAGEQUEUE
/* end of Inter-Thread communication */

/* Memory Management */

#define RT_USING_SMALL_MEM
#define RT_USING_SMALL_MEM_AS_HEAP
#define RT_USING_HEAP
#define RT_USING_MEMPOOL
/* end of Memory Management */

/* Kernel Device Object */

#define RT_USING_DEVICE
#define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE     512
#define RT_CONSOLE_DEVICE_NAME "uart1"
/* end of Kernel Device Object */
#define RT_VER_NUM 0x40101
/* end of RT-Thread Kernel */

/* RT-Thread Components */

#define RT_USING_COMPONENTS_INIT

#define RT_USING_USER_MAIN
#define RT_MAIN_THREAD_STACK_SIZE 2048
#define RT_MAIN_THREAD_PRIORITY   5

#ifdef ENABLE_LOG_ALL
#define RT_USING_MSH
#define RT_USING_FINSH
#define FINSH_USING_MSH
#endif

#define FINSH_THREAD_NAME       "tshell"
#define FINSH_THREAD_PRIORITY   11
#define FINSH_THREAD_STACK_SIZE 4096
#define FINSH_USING_HISTORY
#define FINSH_HISTORY_LINES 5
#define FINSH_USING_SYMTAB
#define FINSH_CMD_SIZE 128
#define MSH_USING_BUILT_IN_COMMANDS
#define FINSH_USING_DESCRIPTION
#define FINSH_ARG_MAX 8

/* Device Drivers */

#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
#define RT_USING_SERIAL_V1
#define RT_SERIAL_RB_BUFSZ 256
#define RT_USING_HWTIMER
#define RT_USING_CPUTIME
#define RT_USING_PIN

/* Using USB */

/* end of Using USB */
/* end of Device Drivers */

/* C/C++ and POSIX layer */

#define RT_LIBC_DEFAULT_TIMEZONE 8

/* POSIX (Portable Operating System Interface) layer */

/* Interprocess Communication (IPC) */

/* Socket is in the 'Network' category */

/* end of Interprocess Communication (IPC) */
/* end of POSIX (Portable Operating System Interface) layer */
/* end of C/C++ and POSIX layer */

/* Network */
#define RT_USING_NETDEV
#define NETDEV_USING_NETSTAT
#define NETDEV_IPV4 1
#define NETDEV_IPV6 0
#define RT_USING_AT
// #define NETDEV_USING_PING//用来监测和平台之间的延时
#ifdef ENABLE_LOG_ALL
#define AT_DEBUG
#endif

#define AT_USING_CLIENT
#define AT_CLIENT_NUM_MAX 1

#ifdef ENABLE_LOG_ALL
#define AT_USING_CLI
#define AT_PRINT_RAW_CMD
#endif

#define AT_CMD_MAX_LEN    1024
#define AT_SW_VERSION_NUM 0x10301
/* end of Network */

#define IOT_MODULE_SWITCH 1 // 开启物联网功能
/* Utilities */

#define TEST_ENABLE  //打开所有的终端测试程序

#define RT_USING_ULOG
#define ULOG_OUTPUT_LVL_D
#define ULOG_OUTPUT_LVL 7 
#define ULOG_USING_ISR_LOG
#define ULOG_ASSERT_ENABLE
#define ULOG_LINE_BUF_SIZE 1024

/* log format */
// #define ULOG_OUTPUT_FLOAT
#define ULOG_USING_COLOR
#define ULOG_OUTPUT_TIME
#define ULOG_OUTPUT_LEVEL
#define ULOG_OUTPUT_TAG
/* end of log format */
#define ULOG_BACKEND_USING_CONSOLE
/* end of Utilities */

#define BT_UART_DEVICE_NAME "uart5"
#define BT_SAMPLE_RECV_BUFF_LEN 512

/* IoT Cloud */
#define AT_DEVICE_USING_ML307
#define AT_DEVICE_ML307_INIT_ASYN //

#define ML307_SAMPLE_CLIENT_NAME   "uart3"
#define ML307_SAMPLE_RECV_BUFF_LEN 512
/* end of IoT Cloud */
/* end of IoT - internet of things */

/* security packages */

/* end of security packages */

/* language packages */

/* JSON: JavaScript Object Notation, a lightweight data-interchange format */

/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */

/* XML: Extensible Markup Language */

/* end of XML: Extensible Markup Language */
/* end of language packages */

/* multimedia packages */

/* LVGL: powerful and easy-to-use embedded GUI library */

/* end of LVGL: powerful and easy-to-use embedded GUI library */

/* u8g2: a monochrome graphic library */

/* end of u8g2: a monochrome graphic library */
/* end of multimedia packages */

/* tools packages */

/* end of tools packages */

/* system packages */

/* enhanced kernel services */

#define PKG_USING_RT_VSNPRINTF_FULL
#define PKG_VSNPRINTF_SUPPORT_DECIMAL_SPECIFIERS
#define PKG_VSNPRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
#define PKG_VSNPRINTF_SUPPORT_WRITEBACK_SPECIFIER
#define PKG_VSNPRINTF_SUPPORT_LONG_LONG
#define PKG_VSNPRINTF_CHECK_FOR_NUL_IN_FORMAT_SPECIFIER
#define PKG_VSNPRINTF_INTEGER_BUFFER_SIZE             32
#define PKG_VSNPRINTF_DECIMAL_BUFFER_SIZE             32
#define PKG_VSNPRINTF_DEFAULT_FLOAT_PRECISION         6
#define PKG_VSNPRINTF_MAX_INTEGRAL_DIGITS_FOR_DECIMAL 9
#define PKG_VSNPRINTF_LOG10_TAYLOR_TERMS              4
#define PKG_USING_RT_VSNPRINTF_FULL_LATEST_VERSION
/* end of enhanced kernel services */

/* acceleration: Assembly language or algorithmic acceleration packages */

/* end of acceleration: Assembly language or algorithmic acceleration packages */

/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */

/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */

/* Micrium: Micrium software products porting for RT-Thread */

/* end of Micrium: Micrium software products porting for RT-Thread */
/* end of system packages */

/* peripheral libraries and drivers */

/* HAL & SDK Drivers */

/* STM32 HAL & SDK Drivers */

/* end of STM32 HAL & SDK Drivers */

/* Infineon HAL Packages */

/* end of Infineon HAL Packages */

/* Kendryte SDK */

/* end of Kendryte SDK */
/* end of HAL & SDK Drivers */

/* sensors drivers */

/* end of sensors drivers */

/* touch drivers */

/* end of touch drivers */
/* end of peripheral libraries and drivers */

/* AI packages */

/* end of AI packages */

/* Signal Processing and Control Algorithm Packages */

/* end of Signal Processing and Control Algorithm Packages */

/* miscellaneous packages */

/* project laboratory */

/* end of project laboratory */

/* samples: kernel and components samples */

/* end of samples: kernel and components samples */

/* entertainment: terminal games and other interesting software packages */

/* end of entertainment: terminal games and other interesting software packages */
/* end of miscellaneous packages */

/* Arduino libraries */

/* Projects and Demos */

/* end of Projects and Demos */

/* Sensors */

/* end of Sensors */

/* Display */

/* end of Display */

/* Timing */

/* end of Timing */

/* Data Processing */

/* end of Data Processing */

/* Data Storage */

/* Communication */

/* end of Communication */

/* Device Control */

/* end of Device Control */

/* Other */

/* end of Other */

/* Signal IO */

/* end of Signal IO */

/* Uncategorized */

/* end of Arduino libraries */
/* end of RT-Thread online packages */

/* Hardware Drivers Config */

#define SOC_CH32V303RC
#define SOC_RISCV_SERIES_CH32V3

/* Onboard Peripheral Drivers */

/* end of Onboard Peripheral Drivers */

/* On-chip Peripheral Drivers */

#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART1
// #define BSP_USING_UART2
#define BSP_USING_UART3
// #define BSP_USING_UART4
#define BSP_USING_UART5
#define LSI_VALUE 40000

#define BSP_USING_TIM
#define BSP_USING_HWTIMER
#define BSP_USING_TIM1
#define BSP_USING_TIM1_HWTIMER

#define LSI_VALUE 40000

/* end of On-chip Peripheral Drivers */

/* Board extended module Drivers */

/* end of Hardware Drivers Config */
#define BOARD_CH32V307V_R0

#endif
