cloud-sat/utils/paras.cpp

43 lines
1.0 KiB
C++
Raw Normal View History

2022-08-30 15:42:35 +08:00
#include "paras.hpp"
#include <cstdio>
#include <iostream>
void paras::init_paras() {
#define PARA(N, T, D, L, H, C) \
if (!strcmp(#T, "int")) map_int[#N] = D; \
else map_double[#N] = D;
PARAS
#undef PARA
}
void paras::sync_paras() {
#define PARA(N, T, D, L, H, C) \
if (!strcmp(#T, "int")) N = map_int[#N]; \
else N = map_double[#N];
PARAS
#undef PARA
}
void paras::set_para(char *name, int val) {
map_int[name] = val;
}
void paras::set_para(char *name, double val) {
map_double[name] = val;
}
void paras::print_change() {
printf("c ------------------- Paras list -------------------\n");
printf("c %-20s\t %-10s\t %-10s\t %-10s\t %s\n",
"Name", "Type", "Now", "Default", "Comment");
#define PARA(N, T, D, L, H, C) \
if (map_int.count(#N)) printf("c %-20s\t %-10s\t %-10d\t %-10s\t %s\n", (#N), (#T), N, (#D), (C)); \
else printf("c %-20s\t %-10s\t %-10f\t %-10s\t %s\n", (#N), (#T), N, (#D), (C));
PARAS
#undef PARA
printf("c --------------------------------------------------\n");
}