From 139c3a4a18dda39dbbef5f3ee14576fbf5b122dd Mon Sep 17 00:00:00 2001 From: Mustafa Safri Date: Wed, 5 Aug 2015 13:44:07 -0400 Subject: [PATCH 1/2] Added checks for missing fields --- wireless_watcher/nodes/watcher_node | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/wireless_watcher/nodes/watcher_node b/wireless_watcher/nodes/watcher_node index b2a0143..a049057 100755 --- a/wireless_watcher/nodes/watcher_node +++ b/wireless_watcher/nodes/watcher_node @@ -26,22 +26,29 @@ class Connection(wireless_msgs.msg.Connection): def __init__(self, fields): args = {} - args['bitrate'] = trim(fields['Bit Rate'], float) + try: args['bitrate'] = trim(fields['Bit Rate'], float) + except: pass try: args['txpower'] = trim(fields['Tx-Power']) except: pass - args['link_quality_raw'] = fields['Link Quality'] - num, den = re.split('/', args['link_quality_raw']) - args['link_quality'] = float(num) / float(den) - - args['signal_level'] = trim(fields['Signal level']) + try: + args['link_quality_raw'] = fields['Link Quality'] + num, den = re.split('/', args['link_quality_raw']) + args['link_quality'] = float(num) / float(den) + except: pass + + try: args['signal_level'] = trim(fields['Signal level']) + except: pass try: args['noise_level'] = trim(fields['Noise level']) except: pass - args['essid'] = fields['ESSID'].strip('"') - args['bssid'] = fields['Access Point'].strip() + try: args['essid'] = fields['ESSID'].strip('"') + except: pass + + try: args['bssid'] = fields['Access Point'].strip() + except: pass super(Connection, self).__init__(**args) From cf38872df9e411121c2d6edeafac59191ec34f36 Mon Sep 17 00:00:00 2001 From: Mustafa Safri Date: Wed, 5 Aug 2015 17:06:57 -0400 Subject: [PATCH 2/2] Replaced try blocks and added wifi connection check --- wireless_watcher/nodes/watcher_node | 35 ++++++++++++----------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/wireless_watcher/nodes/watcher_node b/wireless_watcher/nodes/watcher_node index a049057..7843cc3 100755 --- a/wireless_watcher/nodes/watcher_node +++ b/wireless_watcher/nodes/watcher_node @@ -26,29 +26,18 @@ class Connection(wireless_msgs.msg.Connection): def __init__(self, fields): args = {} - try: args['bitrate'] = trim(fields['Bit Rate'], float) - except: pass - - try: args['txpower'] = trim(fields['Tx-Power']) - except: pass - - try: + args['bitrate'] = trim(fields.get('Bit Rate', "0.0"), float) + args['txpower'] = trim(fields.get('Tx-Power', "0")) + args['signal_level'] = trim(fields.get('Signal level', "0")) + args['noise_level'] = trim(fields.get('Noise level', "0")) + args['essid'] = fields.get('ESSID', "").strip('"') + args['bssid'] = fields.get('Access Point', "").strip() + + try: args['link_quality_raw'] = fields['Link Quality'] num, den = re.split('/', args['link_quality_raw']) args['link_quality'] = float(num) / float(den) except: pass - - try: args['signal_level'] = trim(fields['Signal level']) - except: pass - - try: args['noise_level'] = trim(fields['Noise level']) - except: pass - - try: args['essid'] = fields['ESSID'].strip('"') - except: pass - - try: args['bssid'] = fields['Access Point'].strip() - except: pass super(Connection, self).__init__(**args) @@ -79,8 +68,12 @@ while not rospy.is_shutdown(): fields_list = [re.split('[:=]', field_str, maxsplit=1) for field_str in fields_str] fields_dict = { 'dev': fields_str[0], 'type': fields_str[1] } fields_dict.update(dict([field for field in fields_list if len(field) == 2 ])) - #print fields_dict - connection_msg = Connection(fields_dict) + + # Check if WiFi is connected to a network + connection_msg = {} + if "Not-Associated" not in fields_dict['Access Point']: + connection_msg = Connection(fields_dict) + connection_pub.publish(connection_msg) if not previous_success: