77 wxLogMessage(
"MakeCommDriver: %s", params->GetDSPort().c_str());
79 auto& msgbus = NavMsgBus::GetInstance();
80 auto& registry = CommDriverRegistry::GetInstance();
81 switch (params->Type) {
83 switch (params->Protocol) {
84 case PROTO_NMEA2000: {
85 auto driver = std::make_unique<CommDriverN2KSerial>(params, msgbus);
86 registry.Activate(std::move(driver));
91 std::make_unique<CommDriverN0183Serial>(params, listener);
92 registry.Activate(std::move(driver));
98 switch (params->NetProtocol) {
100 auto driver = std::make_unique<CommDriverSignalKNet>(params, msgbus);
101 registry.Activate(std::move(driver));
105 switch (params->Protocol) {
106 case PROTO_NMEA0183: {
108 std::make_unique<CommDriverN0183Net>(params, listener);
109 registry.Activate(std::move(driver));
112 case PROTO_NMEA2000: {
113 auto driver = std::make_unique<CommDriverN2KNet>(params, msgbus);
114 registry.Activate(std::move(driver));
125#if defined(__linux__) && !defined(__ANDROID__) && !defined(__WXOSX__)
127 auto driver = CommDriverN2KSocketCAN::Create(params, msgbus);
128 registry.Activate(std::move(driver));
135 auto driver = std::make_unique<CommDriverN0183AndroidInt>(params, msgbus);
136 registry.Activate(std::move(driver));
141 auto driver = std::make_unique<CommDriverN0183AndroidBT>(params, msgbus);
142 registry.Activate(std::move(driver));