92 wxLogMessage(
"MakeCommDriver: %s", params->
GetDSPort().c_str());
94 auto& msgbus = NavMsgBus::GetInstance();
95 auto& registry = CommDriverRegistry::GetInstance();
96 switch (params->type) {
99 auto driver = std::make_unique<CommDriverN2KCanable>(params, msgbus);
100 registry.Activate(std::move(driver));
102 wxLogMessage(
"CANable connections require Windows.");
107 switch (params->data_protocol) {
108 case PROTO_NMEA2000: {
109 auto driver = std::make_unique<CommDriverN2KSerial>(params, msgbus);
110 registry.Activate(std::move(driver));
115 std::make_unique<CommDriverN0183Serial>(params, listener);
116 registry.Activate(std::move(driver));
122 switch (params->net_protocol) {
124 auto driver = std::make_unique<CommDriverSignalKNet>(params, msgbus);
125 registry.Activate(std::move(driver));
129 switch (params->data_protocol) {
130 case PROTO_NMEA0183: {
132 std::make_unique<CommDriverN0183Net>(params, listener);
133 registry.Activate(std::move(driver));
136 case PROTO_NMEA2000: {
137 auto driver = std::make_unique<CommDriverN2KNet>(params, msgbus);
138 registry.Activate(std::move(driver));
149#if defined(__linux__) && !defined(__ANDROID__) && !defined(__WXOSX__)
151 auto driver = CommDriverN2KSocketCAN::Create(params, msgbus);
152 registry.Activate(std::move(driver));
159 auto driver = std::make_unique<CommDriverN0183AndroidInt>(params, msgbus);
160 registry.Activate(std::move(driver));
165 auto driver = std::make_unique<CommDriverN0183AndroidBT>(params, msgbus);
166 registry.Activate(std::move(driver));