'Start the softAP
:param self: An AccessPoint object
:type self: AccessPoint
:return: None
:rtype: None'

def start(self):

    hostapd_config = {'ssid': self.essid, 'interface': self.interface, 'channel': self.channel, 'karma_enable': 1}
    if self.psk:
        hostapd_config['wpa_passphrase'] = self.psk
    hostapd_options = {'debug_level': hostapd_constants.HOSTAPD_DEBUG_OFF, 'mute': True, 'eloop_term_disable': True}
    try:
        self.hostapd_object = hostapd_controller.Hostapd()
        self.hostapd_object.start(hostapd_config, hostapd_options)
    except KeyboardInterrupt:
        raise Exception
    except BaseException:
        hostapd_config.pop('karma_enable', None)
        hostapd_options = {}
        hostapd_config_obj = hostapd_controller.HostapdConfig()
        hostapd_config_obj.write_configs(hostapd_config, hostapd_options)
        self.hostapd_object = subprocess.Popen(['hostapd', hostapd_constants.HOSTAPD_CONF_PATH], stdout=constants.DN, stderr=constants.DN)
        time.sleep(2)
        if (self.hostapd_object.poll() is not None):
            raise Exception
