From b164db3c2fa07e5c6aa84d22c354b5b2332bb002 Mon Sep 17 00:00:00 2001 From: Marcin Masternak Date: Fri, 20 May 2016 18:52:40 +0200 Subject: [PATCH] [my-place] Extend WifiLogger of network name (ESSID) logging. Change-Id: I543ba3492dc8b77730873c44cfb878f8fc7f872f Signed-off-by: Marcin Masternak --- src/my-place/place_recognition_types.h | 1 + src/my-place/user_places/user_places_types.h | 5 +++++ src/my-place/user_places/wifi_logger.cpp | 22 ++++++++++++++++---- src/my-place/user_places/wifi_logger.h | 1 + src/shared/WifiWrapper.cpp | 5 +++++ src/shared/WifiWrapper.h | 1 + 6 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/my-place/place_recognition_types.h b/src/my-place/place_recognition_types.h index fcde0a7..9b211a8 100644 --- a/src/my-place/place_recognition_types.h +++ b/src/my-place/place_recognition_types.h @@ -54,6 +54,7 @@ #define WIFI_TABLE_NAME "place_status_user_place_wifi" #define WIFI_COLUMN_TIMESTAMP "timestamp" #define WIFI_COLUMN_BSSID "bssid" +#define WIFI_COLUMN_ESSID "essid" #define LOCATION_TABLE_NAME "place_status_user_place_location" #define LOCATION_COLUMN_LATITUDE "geo_latitude" diff --git a/src/my-place/user_places/user_places_types.h b/src/my-place/user_places/user_places_types.h index a809d30..508e889 100644 --- a/src/my-place/user_places/user_places_types.h +++ b/src/my-place/user_places/user_places_types.h @@ -127,8 +127,13 @@ namespace ctx { struct MacEvent { time_t timestamp; Mac mac; + std::string networkName; MacEvent(time_t timestamp_, Mac mac_) : timestamp(timestamp_), mac(mac_) {} + MacEvent(time_t timestamp_, Mac mac_, std::string networkName_) + : timestamp(timestamp_) + , mac(mac_) + , networkName(networkName_) {} }; typedef std::map Categs; // scores of categories diff --git a/src/my-place/user_places/wifi_logger.cpp b/src/my-place/user_places/wifi_logger.cpp index 978361e..6a25112 100644 --- a/src/my-place/user_places/wifi_logger.cpp +++ b/src/my-place/user_places/wifi_logger.cpp @@ -23,7 +23,8 @@ #define __WIFI_CREATE_TABLE_COLUMNS \ WIFI_COLUMN_TIMESTAMP " timestamp NOT NULL, "\ - WIFI_COLUMN_BSSID " TEXT NOT NULL" + WIFI_COLUMN_BSSID " TEXT NOT NULL, "\ + WIFI_COLUMN_ESSID " TEXT NOT NULL" #define __WIFI_ERROR_LOG(error) { \ if (error != WIFI_ERROR_NONE) { \ @@ -49,10 +50,10 @@ int ctx::WifiLogger::__dbInsertLogs() const char* separator = " "; query << "BEGIN TRANSACTION; \ INSERT INTO " WIFI_TABLE_NAME " \ - ( " WIFI_COLUMN_BSSID ", " WIFI_COLUMN_TIMESTAMP " ) \ + ( " WIFI_COLUMN_BSSID ", " WIFI_COLUMN_ESSID ", " WIFI_COLUMN_TIMESTAMP " ) \ VALUES"; for (MacEvent mac_event : __logs) { - query << separator << "( '" << mac_event.mac << "', '" << mac_event.timestamp << "' )"; + query << separator << "( '" << mac_event.mac << "', '" << mac_event.networkName << "', '" << mac_event.timestamp << "' )"; separator = ", "; } __logs.clear(); @@ -152,6 +153,12 @@ bool ctx::WifiLogger::__wifiFoundApCb(wifi_ap_h ap, void *userData) return false; } + char *essid = NULL; + ret = wifiLogger->__wifiApGetEssidRequest(ap, &essid); + if (ret != WIFI_ERROR_NONE) { + return false; + } + Mac mac; try { mac = Mac(bssid); @@ -160,7 +167,7 @@ bool ctx::WifiLogger::__wifiFoundApCb(wifi_ap_h ap, void *userData) return false; } - MacEvent log(wifiLogger->__lastScanTime, mac); + MacEvent log(wifiLogger->__lastScanTime, mac, std::string(essid)); if (wifiLogger->__listener) { wifiLogger->__listener->onWifiScan(log); if (WIFI_LOGGER_LOW_POWER_MODE @@ -289,6 +296,13 @@ void ctx::WifiLogger::__wifiSetConnectionStateChangedCbRequest() __WIFI_ERROR_LOG(ret); } +int ctx::WifiLogger::__wifiApGetEssidRequest(wifi_ap_h ap, char **essid) +{ + int ret = __wifiWrapper.getEssidFromAP(ap, essid); + __WIFI_ERROR_LOG(ret); + return ret; +} + int ctx::WifiLogger::__wifiApGetBssidRequest(wifi_ap_h ap, char **bssid) { int ret = __wifiWrapper.getBssidFromAP(ap, bssid); diff --git a/src/my-place/user_places/wifi_logger.h b/src/my-place/user_places/wifi_logger.h index d372674..9be2000 100644 --- a/src/my-place/user_places/wifi_logger.h +++ b/src/my-place/user_places/wifi_logger.h @@ -89,6 +89,7 @@ namespace ctx { void __wifiScanRequest(); int __wifiForeachFoundApsRequest(void *userData); wifi_connection_state_e __wifiGetConnectionStateRequest(); + int __wifiApGetEssidRequest(wifi_ap_h ap, char **essid); int __wifiApGetBssidRequest(wifi_ap_h ap, char **bssid); /* SYSTEM CAPI CALLBACKS */ diff --git a/src/shared/WifiWrapper.cpp b/src/shared/WifiWrapper.cpp index 8b92e92..c3097bf 100644 --- a/src/shared/WifiWrapper.cpp +++ b/src/shared/WifiWrapper.cpp @@ -96,6 +96,11 @@ SO_EXPORT int WifiWrapper::getConnectedAP(wifi_ap_h *ap) return wifi_get_connected_ap(ap); } +SO_EXPORT int WifiWrapper::getEssidFromAP(wifi_ap_h ap, char **essid) +{ + return wifi_ap_get_essid(ap, essid); +} + SO_EXPORT int WifiWrapper::getBssidFromAP(wifi_ap_h ap, char **bssid) { return wifi_ap_get_bssid(ap, bssid); diff --git a/src/shared/WifiWrapper.h b/src/shared/WifiWrapper.h index 5e7ffd6..3dcd354 100644 --- a/src/shared/WifiWrapper.h +++ b/src/shared/WifiWrapper.h @@ -34,6 +34,7 @@ namespace ctx { int getConnectionState(wifi_connection_state_e *state); int getConnectedAP(wifi_ap_h *ap); + int getEssidFromAP(wifi_ap_h ap, char **essid); int getBssidFromAP(wifi_ap_h ap, char **bssid); int destroyAP(wifi_ap_h ap); -- 2.34.1