-
Notifications
You must be signed in to change notification settings - Fork 4
/
microrl_config.h
127 lines (100 loc) · 4.5 KB
/
microrl_config.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/* =====================================================================
Copyright © 2016, Avnet (R)
www.avnet.com
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific
language governing permissions and limitations under the License.
@file microrl_config.h
@version 1.0
@date Sept 2017
======================================================================== */
/*
Microrl library config files
Autor: Eugene Samoylov aka Helius ([email protected])
*/
#ifndef _MICRORL_CONFIG_H_
#define _MICRORL_CONFIG_H_
#define MICRORL_LIB_VER "1.5.1"
// /*********** CONFIG SECTION **************/
// /*
// Command line length, define cmdline buffer size. Set max number of chars + 1,
// because last byte of buffer need to contain '\0' - NULL terminator, and
// not use for storing inputed char.
// If user input chars more then it parametrs-1, chars not added to command line.*/
#define _COMMAND_LINE_LEN (1+100) // for 32 chars
// /*
// Command token number, define max token it command line, if number of token
// typed in command line exceed this value, then prints message about it and
// command line not to be parced and 'execute' callback will not calls.
// Token is word separate by white space, for example 3 token line:
// "IRin> set mode test" */
#define _COMMAND_TOKEN_NMB 8
// /*
// Define you prompt string here. You can use colors escape code, for highlight you prompt,
// for example this prompt will green color (if you terminal supports color)*/
//#define _PROMPT_DEFAULT (char*)"\033[32m>\033[0m " // green color
// /*
// Define prompt text (without ESC sequence, only text) prompt length, it needs because if you use
// ESC sequence, it's not possible detect only text length*/
#define _PROMPT_LEN 2
// /*Define it, if you wanna use completion functional, also set completion callback in you code,
// now if user press TAB calls 'copmlitetion' callback. If you no need it, you can just set
// NULL to callback ptr and do not use it, but for memory saving tune,
// if you are not going to use it - disable this define.*/
#define _USE_COMPLETE
// /*
// Enable Handling terminal ESC sequence. If disabling, then cursor arrow, HOME, END will not work,
// use Ctrl+A(B,F,P,N,A,E,H,K,U,C) see README, but decrease code memory.*/
#define _USE_ESC_SEQ
// /*Define it, if you wanna use history. It s work's like bash history, and
// set stored value to cmdline, if UP and DOWN key pressed. Using history add
// memory consuming, depends from _RING_HISTORY_LEN parametr */
#define _USE_HISTORY
// /*
// History ring buffer length, define static buffer size.
// For saving memory, each entered cmdline store to history in ring buffer,
// so we can not say, how many line we can store, it depends from cmdline len,
// but memory using more effective. We not prefer dinamic memory allocation for
// small and embedded devices. Overhead is 2 char on each saved line*/
#define _RING_HISTORY_LEN 64
// /*
// Use snprintf from you standard complier library, but it gives some overhead.
// If not defined, use my own u16int_to_str variant, it's save about 800 byte of code size
// on AVR (avr-gcc build).
// Try to build with and without, and compare total code size for tune library.
// */
#define _USE_LIBC_STDIO
// /*
// Enable 'interrupt signal' callback, if user press Ctrl+C */
//#define _USE_CTLR_C
// /*
// Print prompt at 'microrl_init', if enable, prompt will print at startup,
// otherwise first prompt will print after first press Enter in terminal
// NOTE!: Enable it, if you call 'microrl_init' after your communication subsystem
// already initialize and ready to print message */
//#define _ENABLE_INIT_PROMPT
// /*
// New line symbol */
#define _ENDL_LF
#if defined(_ENDL_CR)
#define ENDL "\r"
#elif defined(_ENDL_CRLF)
#define ENDL "\r\n"
#elif defined(_ENDL_LF)
#define ENDL "\n"
#elif defined(_ENDL_LFCR)
#define ENDL "\n\r"
#else
#error "You must define new line symbol."
#endif
/********** END CONFIG SECTION ************/
#if _RING_HISTORY_LEN > 256
#error "This history implementation (ring buffer with 1 byte iterator) allow 256 byte buffer size maximum"
#endif
#endif