123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- /**
- * @project shutter_verify
- * @brief $BRIEF$
- * @author lz
- * @data 2023/4/13
- **/
- #include "lidarsJsonConfig.h"
- #include <utility>
- lidarsJsonConfig::lidarsJsonConfig(std::string path) {
- m_path = path;
- }
- bool lidarsJsonConfig::getLidarConfig(int ordinal, lidarsJsonConfig::LidarConfig &lidarconfig) {
- if (m_config.empty() && !update()) {
- return false;
- }
- if (m_config.size() <= ordinal) {
- return false;
- }
- JV_DOUBLE(m_config[ordinal], "angle_min", lidarconfig.angle_min, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal], "angle_max", lidarconfig.angle_max, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal], "angle_increment", lidarconfig.angle_increment, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal], "time_increment", lidarconfig.time_increment, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "minx", lidarconfig.scan_box_limit.minx, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "maxx", lidarconfig.scan_box_limit.maxx, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "miny", lidarconfig.scan_box_limit.miny, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "maxy", lidarconfig.scan_box_limit.maxy, DEFAULT_DOUBLE)
- JV_INT(m_config[ordinal], "range_min", lidarconfig.range_min, DEFAULT_INT)
- JV_INT(m_config[ordinal], "range_max", lidarconfig.range_max, DEFAULT_INT)
- JV_INT(m_config[ordinal]["net_config"], "port", lidarconfig.net_config.port, DEFAULT_INT)
- JV_INT(m_config[ordinal]["scan_box_limit"], "dist_limit", lidarconfig.scan_box_limit.dist_limit, DEFAULT_INT)
- JV_STRING(m_config[ordinal]["net_config"], "ip_address", lidarconfig.net_config.ip_address, DEFAULT_STRING)
- return true;
- }
- bool lidarsJsonConfig::getNetConfig(int ordinal, lidarsJsonConfig::NetConfig &net_config) {
- if (m_config.empty() && !update()) {
- return false;
- }
- if (m_config.size() <= ordinal) {
- return false;
- }
- JV_INT(m_config[ordinal]["net_config"], "port", net_config.port, DEFAULT_INT)
- JV_STRING(m_config[ordinal]["net_config"], "ip_address", net_config.ip_address, DEFAULT_STRING)
- return true;
- }
- bool lidarsJsonConfig::getScanBoxLimit(int ordinal, lidarsJsonConfig::ScanBoxLimit &scan_box_limit) {
- if (m_config.empty() && !update()) {
- return false;
- }
- if (m_config.size() <= ordinal) {
- return false;
- }
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "minx", scan_box_limit.minx, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "maxx", scan_box_limit.maxx, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "miny", scan_box_limit.miny, DEFAULT_DOUBLE)
- JV_DOUBLE(m_config[ordinal]["scan_box_limit"], "maxy", scan_box_limit.maxy, DEFAULT_DOUBLE)
- JV_INT(m_config[ordinal]["scan_box_limit"], "dist_limit", scan_box_limit.dist_limit, DEFAULT_INT)
- return true;
- }
- bool lidarsJsonConfig::update() {
- Json::Value config;
- if (!ReadJsonFile(m_path, config)) {
- LOG(ERROR) << "Read json etc file " << m_path << " failture, exit 0.";
- exit(0);
- }
- for (int i = 0; i < config.size(); i++) {
- JV_DOUBLE(config[i], "angle_min", m_config[i]["angle_min"], DEFAULT_DOUBLE)
- JV_DOUBLE(config[i], "angle_max", m_config[i]["angle_max"], DEFAULT_DOUBLE)
- JV_DOUBLE(config[i], "angle_increment", m_config[i]["angle_increment"], DEFAULT_DOUBLE)
- JV_DOUBLE(config[i], "time_increment", m_config[i]["time_increment"], DEFAULT_DOUBLE)
- JV_DOUBLE(config[i]["scan_box_limit"], "minx", m_config[i]["scan_box_limit"]["minx"], DEFAULT_DOUBLE)
- JV_DOUBLE(config[i]["scan_box_limit"], "maxx", m_config[i]["scan_box_limit"]["maxx"], DEFAULT_DOUBLE)
- JV_DOUBLE(config[i]["scan_box_limit"], "miny", m_config[i]["scan_box_limit"]["miny"], DEFAULT_DOUBLE)
- JV_DOUBLE(config[i]["scan_box_limit"], "maxy", m_config[i]["scan_box_limit"]["maxy"], DEFAULT_DOUBLE)
- JV_INT(config[i], "range_min", m_config[i]["range_min"], DEFAULT_INT)
- JV_INT(config[i], "range_max", m_config[i]["range_max"], DEFAULT_INT)
- JV_INT(config[i]["net_config"], "port", m_config[i]["net_config"]["port"], DEFAULT_INT)
- JV_INT(config[i]["scan_box_limit"], "dist_limit", m_config[i]["scan_box_limit"]["dist_limit"], DEFAULT_INT)
- JV_STRING(config[i]["net_config"], "ip_address", m_config[i]["net_config"]["ip_address"], DEFAULT_STRING)
- }
- return true;
- }
- double lidarsJsonConfig::angle_min(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["angle_min"].asDouble();
- }
- double lidarsJsonConfig::angle_max(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["angle_max"].asDouble();
- }
- double lidarsJsonConfig::angle_increment(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["angle_increment"].asDouble();
- }
- double lidarsJsonConfig::time_increment(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["time_increment"].asDouble();
- }
- int lidarsJsonConfig::range_min(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_INT;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_INT;
- }
- return m_config[ordinal]["range_min"].asInt();
- }
- int lidarsJsonConfig::range_max(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_INT;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_INT;
- }
- return m_config[ordinal]["range_max"].asInt();
- }
- std::string lidarsJsonConfig::ip_address(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_STRING;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_STRING;
- }
- return m_config[ordinal]["net_config"]["ip_address"].asString();
- }
- int lidarsJsonConfig::port(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_INT;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_INT;
- }
- return m_config[ordinal]["net_config"]["port"].asInt();
- }
- int lidarsJsonConfig::dist_limit(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_INT;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_INT;
- }
- return m_config[ordinal]["scan_box_limit"]["dist_limit"].asInt();
- }
- double lidarsJsonConfig::minx(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["scan_box_limit"]["minx"].asDouble();
- }
- double lidarsJsonConfig::maxx(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["scan_box_limit"]["maxx"].asDouble();
- }
- double lidarsJsonConfig::miny(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["scan_box_limit"]["miny"].asDouble();
- }
- double lidarsJsonConfig::maxy(int ordinal) {
- if (m_config.empty() && !update()) {
- return DEFAULT_DOUBLE;
- }
- if (m_config.size() <= ordinal) {
- return DEFAULT_DOUBLE;
- }
- return m_config[ordinal]["scan_box_limit"]["maxy"].asDouble();
- }
|