dont init wifi widget if there is no adapter

pull/2718/head
Willem Melching 5 years ago
parent 232cb25683
commit 3d2fec6c9a
  1. 7
      selfdrive/ui/qt/offroad/wifi.cc
  2. 2
      selfdrive/ui/qt/offroad/wifi.hpp
  3. 25
      selfdrive/ui/qt/offroad/wifiManager.cc
  4. 1
      selfdrive/ui/qt/offroad/wifiManager.hpp

@ -21,7 +21,12 @@ void clearLayout(QLayout* layout) {
}
WifiUI::WifiUI(QWidget *parent, int page_length) : QWidget(parent), networks_per_page(page_length) {
wifi = new WifiManager;
try {
wifi = new WifiManager;
} catch (std::exception &e) {
return;
}
QObject::connect(wifi, SIGNAL(wrongPassword(QString)), this, SLOT(wrongPassword(QString)));
QVBoxLayout * top_layout = new QVBoxLayout;

@ -18,7 +18,7 @@ public:
explicit WifiUI(QWidget *parent = 0, int page_length = 5);
private:
WifiManager* wifi;
WifiManager* wifi = nullptr;
const int networks_per_page;
QStackedWidget *swidget;

@ -61,17 +61,20 @@ WifiManager::WifiManager() {
qDBusRegisterMetaType<IpConfig>();
connecting_to_network = "";
adapter = get_adapter();
has_adapter = adapter != "";
if (has_adapter) {
QDBusInterface nm(nm_service, adapter, device_iface, bus);
bus.connect(nm_service, adapter, device_iface, "StateChanged", this, SLOT(change(unsigned int, unsigned int, unsigned int)));
QDBusInterface device_props(nm_service, adapter, props_iface, bus);
QDBusMessage response = device_props.call("Get", device_iface, "State");
raw_adapter_state = get_response<uint>(response);
change(raw_adapter_state, 0, 0);
bool has_adapter = adapter != "";
if (!has_adapter){
throw std::runtime_error("Error connecting to panda");
}
QDBusInterface nm(nm_service, adapter, device_iface, bus);
bus.connect(nm_service, adapter, device_iface, "StateChanged", this, SLOT(change(unsigned int, unsigned int, unsigned int)));
QDBusInterface device_props(nm_service, adapter, props_iface, bus);
QDBusMessage response = device_props.call("Get", device_iface, "State");
raw_adapter_state = get_response<uint>(response);
change(raw_adapter_state, 0, 0);
// Compute tethering ssid as "Weedle" + first 4 characters of a dongle id
tethering_ssid = "weedle";
std::string bytes = Params().get("DongleId");
@ -81,8 +84,6 @@ WifiManager::WifiManager() {
}
void WifiManager::refreshNetworks() {
if (!has_adapter) return;
bus = QDBusConnection::systemBus();
seen_networks.clear();
seen_ssids.clear();
@ -249,8 +250,6 @@ void WifiManager::clear_connections(QString ssid) {
}
void WifiManager::request_scan() {
if (!has_adapter) return;
QDBusInterface nm(nm_service, adapter, wireless_device_iface, bus);
nm.call("RequestScan", QVariantMap());
}

@ -30,7 +30,6 @@ class WifiManager : public QWidget {
public:
explicit WifiManager();
bool has_adapter;
void request_scan();
QVector<Network> seen_networks;

Loading…
Cancel
Save