82 wxLogMessage(
"MakeCommDriver: %s", params->GetDSPort().c_str());
84 auto& msgbus = NavMsgBus::GetInstance();
85 auto& registry = CommDriverRegistry::GetInstance();
86 switch (params->Type) {
88 switch (params->Protocol) {
89 case PROTO_NMEA2000: {
90 auto driver = std::make_unique<CommDriverN2KSerial>(params, msgbus);
91 registry.Activate(std::move(driver));
96 std::make_unique<CommDriverN0183Serial>(params, listener);
97 registry.Activate(std::move(driver));
103 switch (params->NetProtocol) {
105 auto driver = std::make_unique<CommDriverSignalKNet>(params, msgbus);
106 registry.Activate(std::move(driver));
110 switch (params->Protocol) {
111 case PROTO_NMEA0183: {
113 std::make_unique<CommDriverN0183Net>(params, listener);
114 registry.Activate(std::move(driver));
117 case PROTO_NMEA2000: {
118 auto driver = std::make_unique<CommDriverN2KNet>(params, msgbus);
119 registry.Activate(std::move(driver));
130#if defined(__linux__) && !defined(__ANDROID__) && !defined(__WXOSX__)
132 auto driver = CommDriverN2KSocketCAN::Create(params, msgbus);
133 registry.Activate(std::move(driver));
140 auto driver = std::make_unique<CommDriverN0183AndroidInt>(params, msgbus);
141 registry.Activate(std::move(driver));
146 auto driver = std::make_unique<CommDriverN0183AndroidBT>(params, msgbus);
147 registry.Activate(std::move(driver));