1#ifndef JAIABOT_LIB_MOOS_GATEWAY_H
2#define JAIABOT_LIB_MOOS_GATEWAY_H
4#include <goby/moos/middleware/moos_plugin_translator.h>
5#include <goby/moos/protobuf/moos_gateway_config.pb.h>
11#include "jaiabot_gateway_config.pb.h"
20 :
goby::moos::Translator(cfg)
25 goby().interprocess().subscribe<goby::middleware::groups::datum_update>(
26 [
this](
const goby::middleware::protobuf::DatumUpdate& datum_update) {
27 goby::glog.is_debug1() && goby::glog <<
"Datum update received." << std::endl;
28 pending_datum_update_ =
true;
32 moos().add_trigger(
"NAV_X", [
this](
const CMOOSMsg&) {
33 pending_datum_update_ =
false;
34 if (pending_bhv_update_)
36 goby::glog.is_debug1() &&
37 goby::glog <<
"NAV_X received, flushing pending IvPBehaviorUpdate" << std::endl;
39 publish_bhv_update(*pending_bhv_update_);
40 pending_bhv_update_.reset();
49 moos().comms().Notify(
"JAIABOT_MISSION_STATE",
52 moos().add_trigger(
"JAIABOT_TRANSIT_COMPLETE", [
this](
const CMOOSMsg& msg) {
53 if (msg.GetString() ==
"true")
55 protobuf::IvPBehaviorReport report;
56 report.mutable_transit()->set_waypoint_reached(true);
57 goby().interprocess().publish<jaiabot::groups::mission_ivp_behavior_report>(report);
66 bool pending_datum_update_{
false};
67 std::unique_ptr<protobuf::IvPBehaviorUpdate> pending_bhv_update_;
75 :
goby::moos::Translator(cfg),
76 jaiabot_cfg_(cfg.GetExtension(
jaiabot::protobuf::jaiabot_gateway_config)),
77 omit_var_(jaiabot_cfg_.logging_omit_var_regex()),
78 omit_app_(jaiabot_cfg_.logging_omit_app_regex())
80 moos().add_wildcard_trigger(
82 [
this](
const CMOOSMsg& msg)
84 if (jaiabot_cfg_.has_logging_omit_var_regex() &&
85 std::regex_match(msg.m_sKey, omit_var_))
87 if (jaiabot_cfg_.has_logging_omit_app_regex() &&
88 std::regex_match(msg.m_sSrc, omit_app_))
94 switch (pb_msg.
type())
112 const jaiabot::protobuf::MOOSGatewayConfig jaiabot_cfg_;
113 std::regex omit_var_;
114 std::regex omit_app_;
AllMessagesForLoggingTranslation(const goby::apps::moos::protobuf::GobyMOOSGatewayConfig &cfg)
IvPHelmTranslation(const goby::apps::moos::protobuf::GobyMOOSGatewayConfig &cfg)
void set_source_aux(ArgT0 &&arg0, ArgT... args)
void set_unixtime(double value)
void set_svalue(ArgT0 &&arg0, ArgT... args)
void set_type(::jaiabot::protobuf::MOOSMessage_Type value)
static constexpr Type TYPE_BINARY_STRING
void set_id(int32_t value)
void set_source(ArgT0 &&arg0, ArgT... args)
static constexpr Type TYPE_STRING
void set_community(ArgT0 &&arg0, ArgT... args)
::jaiabot::protobuf::MOOSMessage_Type type() const
void set_dvalue(double value)
void set_key(ArgT0 &&arg0, ArgT... args)
static constexpr Type TYPE_DOUBLE
void set_bvalue(ArgT0 &&arg0, ArgT... args)
constexpr goby::middleware::Group mission_ivp_behavior_update
constexpr goby::middleware::Group mission_report
constexpr goby::middleware::Group moos
const std::string & MissionState_Name(T enum_t_value)