83 wxLogMessage(
"MakeCommDriver: %s", params->GetDSPort().c_str());
85 auto& msgbus = NavMsgBus::GetInstance();
86 auto& registry = CommDriverRegistry::GetInstance();
87 switch (params->Type) {
89 switch (params->Protocol) {
90 case PROTO_NMEA2000: {
91 auto driver = std::make_unique<CommDriverN2KSerial>(params, msgbus);
92 registry.Activate(std::move(driver));
97 std::make_unique<CommDriverN0183Serial>(params, listener);
98 registry.Activate(std::move(driver));
104 switch (params->NetProtocol) {
106 auto driver = std::make_unique<CommDriverSignalKNet>(params, msgbus);
107 registry.Activate(std::move(driver));
111 switch (params->Protocol) {
112 case PROTO_NMEA0183: {
114 std::make_unique<CommDriverN0183Net>(params, listener);
115 registry.Activate(std::move(driver));
118 case PROTO_NMEA2000: {
119 auto driver = std::make_unique<CommDriverN2KNet>(params, msgbus);
120 registry.Activate(std::move(driver));
131#if defined(__linux__) && !defined(__ANDROID__) && !defined(__WXOSX__)
133 auto driver = CommDriverN2KSocketCAN::Create(params, msgbus);
134 registry.Activate(std::move(driver));
141 auto driver = std::make_unique<CommDriverN0183AndroidInt>(params, msgbus);
142 registry.Activate(std::move(driver));
147 auto driver = std::make_unique<CommDriverN0183AndroidBT>(params, msgbus);
148 registry.Activate(std::move(driver));