23 #ifndef JAIABOT_SRC_LIB_COMMS_COMMS_H
24 #define JAIABOT_SRC_LIB_COMMS_COMMS_H
26 #include <goby/acomms/acomms_constants.h>
27 #include <goby/util/sci.h>
52 " is less than Bot ID minimum"));
56 " is greater than Bot ID maximum"));
63 " is less than Hub ID minimum"));
67 " is greater than Hub ID maximum"));
72 unsigned num_modems_in_subnet = (0xFFFF ^ subnet_mask) + 1;
79 unsigned num_modems_in_subnet = (0xFFFF ^ subnet_mask) + 1;
85 int base_modem_id = modem_id & (~subnet_mask & 0xFFFF);
94 unsigned num_modems_in_subnet = (0xFFFF ^ subnet_mask) + 1;
95 int link_id = (subnet_mask & modem_id) >> goby::util::ceil_log2(num_modems_in_subnet);
101 template <
typename DCCLMessageWithLinkField>
extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MessageOptions, ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::jaia::MessageOptions >, 11, false > msg
constexpr int broadcast_modem_id
int modem_id_from_bot_id(int bot_id, unsigned subnet_mask, jaiabot::protobuf::Link link)
int hub_modem_id(unsigned subnet_mask, jaiabot::protobuf::Link link)
constexpr int hub_id_total
void check_hub_id_bounds(int hub_id)
constexpr int hub_base_modem_id
constexpr int bot_id_total
jaiabot::protobuf::Link link_from_modem_id(int modem_id, unsigned subnet_mask)
void check_bot_id_bounds(int bot_id)
constexpr int bot0_base_modem_id
int bot_id_from_modem_id(int modem_id, unsigned subnet_mask)
void set_link_type(DCCLMessageWithLinkField &msg, int src_modem_id, unsigned subnet_mask)
bool Link_IsValid(int value)