Skip to content

Commit

Permalink
Добавил вывод информации в файл
Browse files Browse the repository at this point in the history
  • Loading branch information
bvchirkov committed Aug 25, 2021
1 parent 4d98ee9 commit d9d02dd
Show file tree
Hide file tree
Showing 7 changed files with 176 additions and 138 deletions.
14 changes: 7 additions & 7 deletions evacuationc.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
# Распределение людей в здании
# UNIFORM - равномерное
# BIM - из файла описания здания
distribution=UNIFORM # BIM
distribution=UNIFORM # BIM UNIFORM
distribution.density=0.2 # Плотность распределения людей, чел./м^2 (max = 9)

# Ширина переходов
# BIM - из файла описания здания
# SPECIAL - специальные значения
transit=SPECIAL # BIM
transit=SPECIAL # BIM SPECIAL
transit.doorway.in=0.8 # Внутренние переходы (двери)
transit.doorway.out=1.2 # Выходы из здания

#modeling
modeling.step=0.01 # Шаг моделирования
modeling.speed.max=100 # Максимальная скорость движения людей
modeling.density.min=0.1 # Минимальное значение плотности, которое остается в помещении, перед тем, как оно будет освобождено за один шаг
modeling.density.max=5 # Максимальное значение плотности, которое может быть достигнуто в помещнии, после этого в помещение нельзя перемещать людей
# Параметры моделирования
modeling.step=0.01 # Шаг моделирования
modeling.speed.max=100 # Максимальная скорость движения людей
modeling.density.min=0.1 # Минимальное значение плотности, которое остается в помещении, перед тем, как оно будет освобождено за один шаг
modeling.density.max=5 # Максимальное значение плотности, которое может быть достигнуто в помещнии, после этого в помещение нельзя перемещать людей
18 changes: 8 additions & 10 deletions src/bim_configure.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "logger.h"

enum {
kMaxFileNameLen = 256,
Expand All @@ -40,24 +41,21 @@ int bim_configure(const char* filename)

if (filename == NULL)
{
assert(0 && "filename must not be NULL");
LOG_ERROR("filename не должен быть NULL");
return 0;
}

if ((fp = fopen(filename, "r")) == NULL)
{
fprintf(stderr, "ERROR: loggerconf: Failed to open file: `%s`\n", filename);
LOG_ERROR("Не удалось открыть файл: `%s`", filename);
return 0;
}

while (fgets(line, sizeof(line), fp) != NULL)
{
remove_comments(line);
trim(line);
if (line[0] == '\0')
{
continue;
}
if (line[0] == '\0') continue;
parse_line(line);
}
fclose(fp);
Expand Down Expand Up @@ -97,8 +95,8 @@ static void trim(char* s)
s[len - i] = '\0';
}

static enum cfg_distr parse_distribution(const char* s);
static enum cfg_transit_width parse_transit_width(const char* s);
static enum cfg_distr parse_distribution (const char* s);
static enum cfg_transit_width parse_transit_width(const char* s);

static void parse_line(char* line)
{
Expand Down Expand Up @@ -152,7 +150,7 @@ static enum cfg_distr parse_distribution(const char* s)
} else if (strcmp(s, "UNIFORM") == 0) {
return Distribution_UNIFORM;
} else {
fprintf(stderr, "ERROR: loggerconf: Invalid distribution: `%s`\n", s);
LOG_ERROR("Некорректный тип распределения: %s", s);
return Distribution_BIM;
}
}
Expand All @@ -164,7 +162,7 @@ static enum cfg_transit_width parse_transit_width(const char* s)
} else if (strcmp(s, "SPECIAL") == 0) {
return TransitWidth_SPECIAL;
} else {
fprintf(stderr, "ERROR: loggerconf: Invalid transit_width: `%s`\n", s);
LOG_ERROR("Некорректный тип источника ширины двери: %s", s);
return TransitWidth_BIM;
}
}
28 changes: 15 additions & 13 deletions src/bim_configure.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,22 @@ extern _transit cfg_transit;
extern _distribution cfg_distribution;

/**
* Configure the logger with a configuration file.
* If the filename is NULL, return without doing anything.
*
* The following is the configurable key/value list.
* |key |value |
* |:--------------------------|:--------------------------------------------|
* |level |TRACE, DEBUG, INFO, WARN, ERROR or FATAL |
* |autoFlush |A flush interval [ms] (off if interval <= 0) |
* |logger |console or file |
* |logger.console.output |stdout or stderr |
* |logger.file.filename |A output filename (max length is 255 bytes) |
* |logger.file.maxFileSize |1-LONG_MAX [bytes] (1 MB if size <= 0) |
* |logger.file.maxBackupFiles |0-255 |
*
* ┌─────────────────────┬──────────────────────────────────────────────────┐
* │key │ value │
* ├:--------------------┼:-------------------------------------------------┤
* │distribution │ BIM or UNIFORM │
* │distribution.density │ Плотность распределения людей, чел./м^2 (max = 9)│
* │ │ │
* │transit │ BIM or SPECIAL │
* │transit.doorway.in │ Ширина внутренних переходов (двери) │
* │transit.doorway.out │ Ширина выходов из здания │
* │ │ │
* │modeling.step │ Шаг моделирования │
* │modeling.speed.max │ Максимальная скорость движения людей │
* │modeling.density.min │ Минимальное значение плотности │
* │modeling.density.max │ Максимальное значение плотности │
* └─────────────────────┴──────────────────────────────────────────────────┘
* @param[in] filename The name of the configuration file
* @return Non-zero value upon success or 0 on error
*/
Expand Down
Loading

0 comments on commit d9d02dd

Please sign in to comment.