wlanutilities/wlansniffer/wlansnifferapplication/src/wlansnifferlistwidget.cpp
branchRCL_3
changeset 25 f28ada11abbf
parent 24 63be7eb3fc78
--- a/wlanutilities/wlansniffer/wlansnifferapplication/src/wlansnifferlistwidget.cpp	Tue Aug 31 16:18:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,642 +0,0 @@
-/*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* WLAN Sniffer list widget class.
-*/
-
-// System includes
-
-#include <QSharedPointer>
-#include <HbListWidget>
-#include <HbListWidgetItem>
-#include <HbAbstractViewItem>
-#include <HbStringUtil>
-#include <cmmanagerdefines_shim.h>
-
-// User includes
-
-#include "wlanqtutils.h"
-#include "wlanqtutilsap.h"
-#include "wlanqtutilsiap.h"
-
-#include "wlansniffer.h"
-#include "wlansnifferlistitem.h"
-#include "wlansnifferlistwidget.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "wlansnifferlistwidgetTraces.h"
-#endif
-
-/*!
-    \class WlanSnifferListWidget
-    \brief WLAN Sniffer Custom List Widget implementation. 
-*/
-
-// External function prototypes
-
-// Local constants
-
-// ======== LOCAL FUNCTIONS ========
-
-/*!
-    String comparator for list view. Used for locale-aware SSID comparison
-    in list view.
-    
-    @param [in] string1 String #1 to compare.
-    @param [in] string2 String #2 to compare.
-
-    @return Zero (0), if strings are considered to be same,
-            Positive (>0) if string1 is considered to be "greater than" string2. 
-            Negative (<0) if string1 is considered to be "less than" string2. 
-*/
-
-static int WlanSsidStringComparator(
-    const QString &string1,
-    const QString &string2)
-{
-    return HbStringUtil::compareC(string1, string2);    
-}
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
-    Constructor.
-    
-    @param [in] listWidget List Widget created to customize.
-*/
-
-WlanSnifferListWidget::WlanSnifferListWidget(HbListWidget *listWidget) :
-    mListWidget(listWidget)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_WLANSNIFFERLISTWIDGET_ENTRY);
-    
-    // Set custom WLAN list item layout
-    mListWidget->setLayoutName("wlanlistitem");
-
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_WLANSNIFFERLISTWIDGET_EXIT);
-}
-
-/*!
-    Destructor.
-*/
-
-WlanSnifferListWidget::~WlanSnifferListWidget()
-{
-    OstTraceFunctionEntry0(DUP1_WLANSNIFFERLISTWIDGET_WLANSNIFFERLISTWIDGET_ENTRY);
-    OstTraceFunctionExit0(DUP1_WLANSNIFFERLISTWIDGET_WLANSNIFFERLISTWIDGET_EXIT);
-}
-
-/*!
-    Updates the list widget content with the given IAPs and APs.
-    
-    @param [in] iaps New WLAN IAP list.
-    @param [in] aps New WLAN AP list.
-    @param [in] connectedIapId IAP ID of the connected WLAN or
-                IapIdNone if not connected.
- */
-
-void WlanSnifferListWidget::updateContent(
-    QList< QSharedPointer<WlanQtUtilsIap> > &iaps,
-    QList< QSharedPointer<WlanQtUtilsAp> > &aps,
-    int connectedIapId)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_UPDATESCANSTATUS_ENTRY);
-    
-    traceListContent();
-    
-    // Sort the scan result lists
-    sortIaps(iaps, connectedIapId);
-    sortAps(aps);
-    
-    // Remove items, which are not present in new IAP or AP lists
-    removeLostItems(iaps, aps);
-
-    // Add items, which are only found in the new IAP and AP lists.
-    // Also update the icons of existing items (connection mode and
-    // signal strength may have changed)
-    addDiscoveredItemsAndUpdateRest(iaps, aps, connectedIapId);
-
-    traceListContent();
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_UPDATESCANSTATUS_EXIT);
-}
-
-/*!
-    Scroll the list widget to given row.
-    
-    @param [in] row Row to scroll to. Indexing starts from zero. 
- */
-
-void WlanSnifferListWidget::scrollTo(int row)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_SCROLLTO_ENTRY);
-
-    OstTrace1(
-        TRACE_NORMAL,
-        WLANSNIFFERLISTWIDGET_SCROLLTO,
-        "WlanSnifferListWidget::scrollTo;row=%d",
-        row);
-
-    // Check that the row exists
-    if (row < mListWidget->count()) {
-        // Do the scrolling
-        QModelIndex index = mListWidget->model()->index(row, 0);
-        mListWidget->scrollTo(index);
-    }
-
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_SCROLLTO_EXIT);
-}
-
-/*!
-    IAP list sorting. Sorts IAPs into alphabetical order taking localization
-    into account.
-    
-    @param [in,out] iaps WLAN IAP list.
-    @param [in] connectedIapId IAP ID of the connected WLAN or
-                IapIdNone if not connected.
-*/
-
-void WlanSnifferListWidget::sortIaps(
-    QList< QSharedPointer<WlanQtUtilsIap> > &iaps,
-    int connectedIapId)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_SORTIAPS_ENTRY);
-    
-    // Order the list by IAP name
-    qSort(
-        iaps.begin(),
-        iaps.end(),
-        WlanSnifferListWidget::iapLessThan);
-
-    // Find the possible connected IAP
-    int connectedIndex = 0;
-    for (int i = 0; i < iaps.size(); i++) {
-        if (iaps[i]->value(WlanQtUtilsIap::ConfIdIapId).toInt() == connectedIapId) {
-            connectedIndex = i;
-            break;
-        }
-    }
-
-    // Move the possible connected IAP to the beginning
-    if (connectedIndex) {
-        OstTraceExt2(
-            TRACE_NORMAL,
-            WLANSNIFFERLISTWIDGET_SORTIAPS_MOVE_CONNECTED,
-            "WlanSnifferListWidget::sortIaps Moving connected IAP to top;connectedIapId=%d;connectedIndex=%d",
-            connectedIapId,
-            connectedIndex);
-        
-        iaps.move(connectedIndex, 0);
-    }
-
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_SORTIAPS_EXIT);
-}
-
-/*!
-    AP list sorting. Sorts APs into alphabetical order taking localization
-    into account.
-    
-    @param [in,out] aps WLAN AP list.
-*/
-
-void WlanSnifferListWidget::sortAps(
-    QList< QSharedPointer<WlanQtUtilsAp> > &aps)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_SORTAPS_ENTRY);
-    
-    // Order the list by AP SSID
-    qSort(
-        aps.begin(),
-        aps.end(),
-        WlanSnifferListWidget::apLessThan);
-
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_SORTAPS_EXIT);
-}
-
-/*!
-    Compares two WLAN IAPs. Comparison is done with the IAP name.
-    
-    @param[in] iap1 IAP to compare with.
-    @param[in] iap2 IAP to compare.
-    
-    @return Returns true if the first iap is "less than" the second one.
- */
-
-bool WlanSnifferListWidget::iapLessThan(
-    const QSharedPointer<WlanQtUtilsIap> iap1,
-    const QSharedPointer<WlanQtUtilsIap> iap2)
-{
-    // Primary comparison is based on the name
-    int result = HbStringUtil::compareC(
-        iap1->value(WlanQtUtilsIap::ConfIdName).toString(),
-        iap2->value(WlanQtUtilsIap::ConfIdName).toString());
-
-    return (result < 0) ? true : false;
-}
-
-/*!
-    Compares two WLAN APs. Comparison is done with the AP SSID.
-    
-    @param[in] ap1 AP to compare with.
-    @param[in] ap2 AP to compare.
-    
-    @return Returns true if the first ap is "less than" the second one.
- */
-
-bool WlanSnifferListWidget::apLessThan(
-    const QSharedPointer<WlanQtUtilsAp> ap1,
-    const QSharedPointer<WlanQtUtilsAp> ap2)
-{
-    // Use AP comparison function with localized SSID comparison
-    int result = WlanQtUtilsAp::compare(
-        ap1.data(),
-        ap2.data(),
-        WlanSsidStringComparator);
-        
-    return (result < 0) ? true : false;
-}
-
-/*!
-    Function for finding the given IAP from the old Wlan list.
-    
-    @param [in] iap IAP to find.
-    
-    @return Found WLAN List Widget item, 0 if not found.
-*/
-
-WlanSnifferListItem *WlanSnifferListWidget::findFromOldList(
-    QSharedPointer<WlanQtUtilsIap> iap)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_FINDFROMOLDLIST_IAP_ENTRY);
-
-    WlanSnifferListItem *result = NULL;
-    QVariant iapData = iap->value(WlanQtUtilsIap::ConfIdIapId);
-    for (int row = 0; row < mListWidget->count(); row++) {
-        HbListWidgetItem *item = mListWidget->item(row);
-        if (item->data() == iapData) {
-            result = static_cast<WlanSnifferListItem *>(item);
-            break;
-        }
-    }
-
-    OstTraceExt2(
-        TRACE_DUMP,
-        WLANSNIFFERLISTWIDGET_FINDFROMOLDLIST_IAP,
-        "WlanSnifferListWidget::findFromOldList;iapId=%d;found=%hhu",
-        iapData.toInt(),
-        (result != NULL) ? true : false);
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_FINDFROMOLDLIST_IAP_EXIT);
-    return result;
-}
-
-/*!
-    Function for finding the given AP from the old Wlan list.
-    
-    @param [in] ap AP to find. 
-    
-    @return Found WLAN List Widget item, 0 if not found.
-*/
-
-WlanSnifferListItem *WlanSnifferListWidget::findFromOldList(
-    QSharedPointer<WlanQtUtilsAp> ap)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_FINDFROMOLDLIST_AP_ENTRY);
-    
-    WlanSnifferListItem *result = NULL;
-    for (int row = 0; row < mListWidget->count(); row++) {
-        HbListWidgetItem *item = mListWidget->item(row);
-        if (item->data().canConvert<WlanQtUtilsAp>()) {
-            WlanQtUtilsAp oldAp = item->data().value<WlanQtUtilsAp>();
-            if (WlanQtUtilsAp::compare(ap.data(), &oldAp) == 0) {
-                result = static_cast<WlanSnifferListItem *>(item);
-                break;
-            }
-        }
-    }
-    
-#ifdef OST_TRACE_COMPILER_IN_USE
-    QString tmp(ap.data()->value(WlanQtUtilsAp::ConfIdSsid).toString());
-    TPtrC16 ssid(tmp.utf16(), tmp.length());
-    OstTraceExt2(
-        TRACE_NORMAL,
-        WLANSNIFFERLISTWIDGET_FINDFROMOLDLIST_AP,
-        "WlanSnifferListWidget::findFromOldList;found=%hhu;ssid=%S",
-        (result != NULL) ? true : false,
-        ssid);
-#endif
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_FINDFROMOLDLIST_AP_EXIT);
-    return result;
-}
-
-/*!
-    Function for creating a new list item from the given IAP.
-    
-    @param [in] iap WLAN IAP to create.
-    @param [in] connectedIapId IAP ID of the connected WLAN or
-                IapIdNone if not connected.
-    
-    @return New WLAN List Widget item.
-*/
-
-HbListWidgetItem *WlanSnifferListWidget::listItemCreate(
-    QSharedPointer<WlanQtUtilsIap> iap,
-    int connectedIapId)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_LISTITEMCREATE_IAP_ENTRY);
-    
-    WlanSnifferListItem *item = new WlanSnifferListItem();
-    item->setNetworkName(iap->value(WlanQtUtilsIap::ConfIdName).toString());
-    // Note: WPS icon is needed only in IAP setup, no longer here
-    if (iap->value(WlanQtUtilsAp::ConfIdSecurityMode).toInt() !=
-        CMManagerShim::WlanSecModeOpen) {
-        item->setSecureIcon("qtg_small_lock");
-    }
-
-    item->setLeftIcon(
-        leftIconChoose(
-            iap->value(WlanQtUtilsIap::ConfIdIapId).toInt(),
-            connectedIapId));
-    item->setSignalIcon(
-        signalStrengthIconChoose(
-            iap->value(WlanQtUtilsAp::ConfIdSignalStrength).toInt()));
-    
-    item->setData(iap->value(WlanQtUtilsIap::ConfIdIapId));
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_LISTITEMCREATE_IAP_EXIT);
-    return item;
-}
-
-/*!
-    Function for creating a new list item from the given AP.
-    
-    @param [in] ap WLAN AP to create.
-    
-    @return New WLAN List Widget item.
-*/
-
-HbListWidgetItem *WlanSnifferListWidget::listItemCreate(
-    QSharedPointer<WlanQtUtilsAp> ap)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_LISTITEMCREATE_AP_ENTRY);
-    
-    WlanSnifferListItem *item = new WlanSnifferListItem();
-    item->setNetworkName(ap->value(WlanQtUtilsAp::ConfIdSsid).toString());
-    if (ap->value(WlanQtUtilsAp::ConfIdWpsSupported).toBool()) {
-        // WPS is supported, use a dedicated security icon
-        item->setSecureIcon("qtg_small_wifi");
-    } else if (ap->value(WlanQtUtilsAp::ConfIdSecurityMode).toInt() 
-        != CMManagerShim::WlanSecModeOpen) {
-        // Other secure networks
-        item->setSecureIcon("qtg_small_lock");
-    }
-    item->setSignalIcon(
-        signalStrengthIconChoose(
-            ap->value(WlanQtUtilsAp::ConfIdSignalStrength).toInt()));
-    
-    QVariant data;
-    data.setValue(*ap);
-    item->setData(data);
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_LISTITEMCREATE_AP_EXIT);
-    return item;
-}
-
-/*!
-    Function for selecting the correct signal strength icon.
-    
-    @param [in] signalStrength Signal strength.
-    
-    @return Signal strength icon logical name.
-*/
-
-QString WlanSnifferListWidget::signalStrengthIconChoose(int signalStrength)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_SIGNALSTRENGTHICONCHOOSE_ENTRY);
-    
-    QString iconName;
-    if (signalStrength <= SignalStrengthHigh) {
-        iconName = "qtg_small_signal_good";
-    } else if (signalStrength <= SignalStrengthMedium) {
-        iconName = "qtg_small_signal_medium";
-    } else {
-        iconName = "qtg_small_signal_low";
-    }
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_SIGNALSTRENGTHICONCHOOSE_EXIT);
-    return iconName;
-}
-
-/*!
-    Function for selecting the correct "left" icon, which is different for
-    connected and not connected IAPs.
-    
-    @param [in] iapId IAP ID of the WLAN IAP.
-    @param [in] connectedIapId IAP ID of the connected WLAN or
-                IapIdNone if not connected.
-                
-    @return Icon logical name of the "left" icon.
-*/
-
-QString WlanSnifferListWidget::leftIconChoose(
-    int iapId,
-    int connectedIapId)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_LEFTICONCHOOSE_ENTRY);
-    
-    QString iconName;
-    if (iapId == connectedIapId) {
-        iconName = "qtg_small_connection";
-    } else {
-        iconName = "qtg_small_wlan";
-    }
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_LEFTICONCHOOSE_EXIT);
-    return iconName;
-}
-
-/*!
-    Function for removing from the old Wlan list those items, which are
-    not present in the given new lists.
-    
-    @param [in] iaps New WLAN IAP list.
-    @param [in] aps New WLAN AP list.
-*/
-
-void WlanSnifferListWidget::removeLostItems(
-    const QList< QSharedPointer<WlanQtUtilsIap> > &iaps,
-    const QList< QSharedPointer<WlanQtUtilsAp> > &aps)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_REMOVELOSTITEMS_ENTRY);
-    
-    int row = 0;
-    // Loop through all rows in the current list and try to find the items from
-    // the new lists
-    while (row < mListWidget->count()) {
-        bool found = false;
-        const HbListWidgetItem *item = mListWidget->item(row);
-        if (item->data().canConvert<int>()) {
-            // Item was an IAP, try to find it from the new IAP list
-            foreach (QSharedPointer<WlanQtUtilsIap> iap, iaps) {
-                if (iap->value(WlanQtUtilsIap::ConfIdIapId) == 
-                    item->data()) {
-                    found = true;
-                    break;
-                }
-            }
-        } else {
-            // Item has to be an AP, try to find it from the new AP list
-            Q_ASSERT(item->data().canConvert<WlanQtUtilsAp>());
-            WlanQtUtilsAp oldAp = item->data().value<WlanQtUtilsAp>();
-            foreach (QSharedPointer<WlanQtUtilsAp> newAp, aps) {
-                if (WlanQtUtilsAp::compare(newAp.data(), &oldAp) == 0) {
-                    found = true;
-                    break;
-                }
-            }
-        }
-        if (found == false) {
-            // Item was lost. Remove this row and delete it. Don't increment
-            // row index, because the next item now has the same row index
-            // as this one had
-            delete mListWidget->takeItem(row);
-
-            OstTrace1(
-                TRACE_NORMAL,
-                WLANSNIFFERLISTWIDGET_REMOVELOSTITEMS,
-                "WlanSnifferListWidget::removeLostItems Removed;row=%d",
-                row);
-        } else {
-            // Item still exists, move on to next row
-            row++;
-        }
-    }
-
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_REMOVELOSTITEMS_EXIT);
-}
-
-/*!
-    Function for adding to the Wlan list those items, which are new
-    in the given new lists. Also, icons and order of the existing list
-    items are updated.
-    
-    @param [in] iaps New WLAN IAP list.
-    @param [in] aps New WLAN AP list.
-    @param [in] connectedIapId IAP ID of the connected WLAN or
-                IapIdNone if not connected.
-*/
-
-void WlanSnifferListWidget::addDiscoveredItemsAndUpdateRest(
-    const QList< QSharedPointer<WlanQtUtilsIap> > &iaps,
-    const QList< QSharedPointer<WlanQtUtilsAp> > &aps,
-    int connectedIapId)
-{
-    OstTraceFunctionEntry0(WLANSNIFFERLISTWIDGET_ADDDISCOVEREDITEMSANDUPDATEREST_ENTRY);
-    
-    int row = 0;
-    // Loop through new IAPs and try to find them from the old list
-    foreach (QSharedPointer<WlanQtUtilsIap> newIap, iaps) {
-        WlanSnifferListItem *oldItem = findFromOldList(newIap);
-        if (oldItem != NULL) {
-            // Match found, update icons
-            oldItem->setLeftIcon(
-                leftIconChoose(
-                    newIap->value(WlanQtUtilsIap::ConfIdIapId).toInt(),
-                    connectedIapId));
-            oldItem->setSignalIcon(
-                signalStrengthIconChoose(
-                    newIap->value(WlanQtUtilsAp::ConfIdSignalStrength).toInt()));
-            // Also move the IAP to new row, if necessary (IAP order changes
-            // when IAPs are connected/disconnected)
-            int oldRow = mListWidget->row(oldItem);
-            if (row != oldRow) {
-                OstTraceExt2(
-                    TRACE_NORMAL,
-                    WLANSNIFFERLISTWIDGET_ADDDISCOVEREDITEMSANDUPDATEREST_MOVE,
-                    "WlanSnifferListWidget::addDiscoveredItemsAndUpdateRest Moved;oldRow=%d;row=%d",
-                    oldRow,
-                    row);
-                mListWidget->takeItem(oldRow);
-                mListWidget->insertItem(row, oldItem);
-            }
-        } else {
-            // New item discovered, add it to the list. Row is the same as the
-            // index of the item in the new scan list
-            OstTrace1(
-                TRACE_NORMAL,
-                WLANSNIFFERLISTWIDGET_ADDDISCOVEREDITEMSANDUPDATEREST_ADD_IAP,
-                "WlanSnifferListWidget::addDiscoveredItemsAndUpdateRest Added IAP;row=%d",
-                row);
-            mListWidget->insertItem(row, listItemCreate(newIap, connectedIapId));
-        }
-        // Move to next row
-        row++;
-    }
-    // Repeat the same for new APs. Notice that row index continues from
-    // previous loop
-    foreach (QSharedPointer<WlanQtUtilsAp> newAp, aps) {
-        WlanSnifferListItem *oldItem = findFromOldList(newAp);
-        if (oldItem != NULL) {
-            oldItem->setSignalIcon(
-                signalStrengthIconChoose(
-                    newAp->value(WlanQtUtilsAp::ConfIdSignalStrength).toInt()));
-            // Notice that AP order may not change, they are always in
-            // alphabetical order
-        } else {
-            OstTrace1(
-                TRACE_NORMAL,
-                WLANSNIFFERLISTWIDGET_ADDDISCOVEREDITEMSANDUPDATEREST_ADD_AP,
-                "WlanSnifferListWidget::addDiscoveredItemsAndUpdateRest Added AP;row=%d",
-                row);
-            mListWidget->insertItem(row, listItemCreate(newAp));
-        }
-        row++;
-    }
-    
-    OstTraceFunctionExit0(WLANSNIFFERLISTWIDGET_ADDDISCOVEREDITEMSANDUPDATEREST_EXIT);
-}
-
-/*!
-    This function traces the contents of the list.
-*/
-
-void WlanSnifferListWidget::traceListContent() const
-{
-#ifdef OST_TRACE_COMPILER_IN_USE
-    for (int row = 0; row < mListWidget->count(); row++) {
-        HbListWidgetItem *item = mListWidget->item(row);
-        if (item->data().canConvert<int>()) {
-            OstTraceExt2(
-                TRACE_DUMP,
-                WLANSNIFFERLISTWIDGET_TRACELISTCONTENT_IAP,
-                "WlanSnifferListWidget::traceListContent IAP;row=%d;id=%d",
-                row,
-                item->data().toInt());
-        } else {
-            Q_ASSERT(item->data().canConvert<WlanQtUtilsAp>());
-            WlanQtUtilsAp ap = item->data().value<WlanQtUtilsAp>();
-            QString tmp(ap.value(WlanQtUtilsAp::ConfIdSsid).toString());
-            TPtrC16 ssid(tmp.utf16(), tmp.length());
-            OstTraceExt2(
-                TRACE_DUMP,
-                WLANSNIFFERLISTWIDGET_TRACELISTCONTENT_AP,
-                "WlanSnifferListWidget::traceListContent AP;row=%d;ssid=%S",
-                row,
-                ssid);
-        }
-    }
-#endif
-}