'Create and add an access point using the extracted information
:param self: An AccessPointFinder object
:param packet: A scapy.layers.RadioTap object
:type self: AccessPointFinder
:type packet: scapy.layers.RadioTap
:return: None
:rtype: None'

def _create_ap_with_info(self, packet):

    elt_section = packet[dot11.Dot11Elt]
    try:
        channel = str(ord(packet[dot11.Dot11Elt:3].info))
    except (TypeError, IndexError):
        return
    mac_address = packet.addr3
    name = None
    encryption_type = None
    non_decodable_name = '<contains    non-printable    chars>'
    rssi = self._parse_rssi(packet)
    new_signal_strength = self._calculate_signal_strength(rssi)
    try:
        name = elt_section.info.decode('utf8')
    except UnicodeDecodeError:
        name = non_decodable_name
    for access_point in self._observed_access_points:
        if (mac_address == access_point.get_mac_address()):
            current_signal_strength = access_point.get_signal_strength()
            signal_strength_difference = (new_signal_strength - current_signal_strength)
            if (signal_strength_difference > 5):
                access_point.set_signal_strength(new_signal_strength)
            return None
    encryption_type = self._find_encryption_type(packet)
    access_point = AccessPoint(name, mac_address, channel, encryption_type, capture_file=self._capture_file)
    access_point.set_signal_strength(new_signal_strength)
    self._observed_access_points.append(access_point)
