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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256 | /*Для устраннения возможной колизии,
проверяем не подключенна ли библиотека*/
#ifndef __A1_FUNCTION_LIB
#define __A1_FUNCTION_LIB
#define __A1_FLIB_VER 1.2
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//Лимиты для максимального и минимального уровня сигнала
#define rssi_min -90
#define rssi_max -20
/*Функции усреднения массивов
для различных типов*/
double get_scsd(double *, unsigned int);
float get_scsf(float *, unsigned int);
int get_scsi(int *, unsigned int);
long get_scsl(long *, unsigned int);
#ifndef ESP_CH
void bzero(void *, size_t);
#endif
//Заполнение нулями 2-у мерного массива
void bbzero(void **, size_t, size_t);
/*Функции для обнуления массивов
различных типов*/
void fzero(float *, size_t);
void dzero(double *, size_t);
void izero(int *, size_t);
void lzero(long *, size_t);
/*Функция заполнения массива указанным символом*/
void bfoll(char *, size_t, size_t, char);
long get_signal_qua(long, long, long);
/*Функция преобразование строки
в байтовою переменную,
принимает на вход цифренном виде 1/0
и в строковом true/false
в случае невозможности преобразования
возвращает false*/
bool tobool(const char *);
/*Функция разбора протокола ответа народного мониторинга*/
int splint_narod(char const *, int, int, char **, int *);
/*Возвращают данные в виде двух парных массивов имя - значение
в массивы указанные в аргументах*/
/*Функция разбора протокола для внутреннего обмена*/
int splint_rtoa(char const *, int, int, char **, float *);
double get_scsd(double *mas, unsigned int rr) { //функция усреднения массивов double<--- The function 'get_scsd' is never used.
double res = 0;
for (int i = 0; i < rr; i++) {
res += mas[i];
}
return res/rr;
}
float get_scsf(float *mas, unsigned int rr) { //функция усреднения массивов float<--- The function 'get_scsf' is never used.
float res = 0;
for (unsigned int i = 0; i < rr; i++) {
res += mas[i];
}
return res/rr;
}
int get_scsi(int *mas, unsigned int rr) { //функция усреднения массивов int<--- The function 'get_scsi' is never used.
int res = 0;
for (unsigned int i = 0; i < rr; i++) {
res += mas[i];
}
return res/rr;
}
long get_scsl(long *mas, unsigned int rr) { //функция усреднения массивов long<--- The function 'get_scsl' is never used.
long res = 0;
for (unsigned int i = 0; i < rr; i++) {
res += mas[i];
}
return res/rr;
}
#ifndef ESP_CH
void bzero(void *mas, size_t bits){
char *s = (char*)mas;
for(size_t u=0; u < bits; u++)
s[u]='\0';
}
#endif
void bbzero(void **mas, size_t bits, size_t mcol){<--- The function 'bbzero' is never used.
char **s = (char**)mas;
for(size_t u=0; u < mcol; u++)
bzero(s[u], bits);
}
void fzero(float *s, size_t n){<--- The function 'fzero' is never used.
for(size_t i=0; i < n; i++)
s[i]=0;
}
void dzero(double *s, size_t n)<--- The function 'dzero' is never used.
{
for (size_t i = 0; i < n; i++)
s[i] = 0;
}
void lzero(long *s, size_t n)<--- The function 'lzero' is never used.
{
for (size_t i = 0; i < n; i++)
s[i] = 0;
}
void izero(int *s, size_t n)<--- The function 'izero' is never used.
{
for (size_t i = 0; i < n; i++)
s[i] = 0;
}
void bfoll(char *mas, size_t start, size_t bits, char sym){<--- The function 'bfoll' is never used.
for(size_t u=start; u < bits; u++)
mas[u]=sym;
}
long get_signal_qua(long rfrom, long rto, long rssi){<--- The function 'get_signal_qua' is never used.
if(rssi >= rssi_max)
rssi = rssi_max;
else if(rssi <= rssi_min)
rssi = rssi_min;
return (rssi - (rssi_max)) * (rto - rfrom) / (rssi_min - rssi_max) + rfrom;
}
bool tobool(const char *str){<--- The function 'tobool' is never used.
if(strcmp(str, "true") == 0)
return true;
else if(strcmp(str, "TRUE") == 0)
return true;
else if(strcmp(str, "1") == 0)
return true;
else
return false;
}
int splint_rtoa(char const *rx, int rs, int rc, char **name_mas, float *dat_mas)
//rx входная строка, rs колличество символов в строке, rc количество параметров
{
int i, r, mix = 0;
char tmp[20];
if(rs < strlen(rx)) {
rs=strlen(rx);}
for (i = 0; i < rc; i++)
{
if (name_mas[i] != NULL)
{
for (r = mix; r < rs; r++)
{
if(r>=rs || rx[r] == ';' || rx[r] == '\0')
{
return i;
}
else if (rx[r] == ':')
{
name_mas[i][r-mix] = '\0';
mix = r + 1;
break;
}
else
{
name_mas[i][r - mix] = rx[r];
}
}
for (int f=0; f<20; f++) {
tmp[f]='\0';}
for (r = mix; r < rs; r++)
{
if(r>=rs || rx[r] == ';' || rx[r] == '\0')
{
return i;
}
else if (rx[r] == ' ' || r>=rs || rx[r] == ';' || rx[r] == '\0')
{
tmp[r - mix] = '\0';
mix = r + 1;
break;
}
else
{
tmp[r - mix] = rx[r];
}
}
dat_mas[i] = atof(tmp);
}
}
return rc;
}
int splint_narod(char const *rx, int rs, int rc, char **name_mas, int *dat_mas){<--- The function 'splint_narod' is never used.
//rx входная строка, rs колличество символов в строке, rc количество параметров
int i, r, mix = 0;
char tmp[20];
if(rs < strlen(rx)) {
rs=strlen(rx);}
for (i = 0; i < rc; i++)
{
for (r = mix; r < rs; r++)
{
if(r>=rs || rx[r] == '\0')
{
return i;
}
else if (rx[r] == '=')
{
name_mas[i][r-mix] = '\0';
mix = r + 1;
break;
}
else
{
name_mas[i][r - mix] = rx[r];
}
}
for (int f=0; f<20; f++){
tmp[f]='\0';}
for (r = mix; r < rs; r++)
{
if(r>=rs || rx[r] == '\0')
{
return i;
}
else if (rx[r] == ',' || r>=rs || rx[r] == '\0')
{
tmp[r - mix] = '\0';
mix = r + 1;
break;
}
else
{
tmp[r - mix] = rx[r];
}
}
dat_mas[i] = atoi(tmp);
}
return rc;
}
#endif
|