ALiWifiConfig 类构造函数:智能配置和 AP 模式 WiFi 连接

该代码是 ALiWifiConfig 类的构造函数。在初始化函数 Init() 之后,它会检查是否存在一个名为 'ALI_WIFI_SMARTCONFIG_FLG' 的文件。如果存在,表明设备正在通过 SmartConfig 模式连接 WiFi。因此,config_mode_ 会被设置为 WCM_SMART,并删除该标志文件。如果标志文件不存在,则表明设备正在通过 AP 模式连接 WiFi,config_mode_ 会被设置为 WCM_AP,并创建并写入一个值为 1 的标志文件。

接着,代码检查 is_ap_mode_ 和 boot_netconfig_ 的值。如果 is_ap_mode_ 为 true 且 boot_netconfig_ 为 true 且 WIFI_CONFIG_FLG 文件不存在,则表明设备正在 AP 模式下,需要进行网络配置,因此会调用 ResetWifi() 函数进行 WiFi 重置。最后,会输出 is_ap_mode_ 的值。

#define ALI_WIFI_SMARTCONFIG_FLG "/tmp/smartconfig_flag"
ALiWifiConfig* ALiWifiConfig::instance_ = nullptr;

ALiWifiConfig::ALiWifiConfig() : LDObject(OBJECT_ID_WIFI_CONFIG) {
    Init();
    if(FILEOP::FileDirectoryExists(ALI_WIFI_SMARTCONFIG_FLG)){
        config_mode_ = WifiResetReal::WCM_SMART;
        FILEOP::RemoveFile(ALI_WIFI_SMARTCONFIG_FLG);
    } else {
        config_mode_ = WifiResetReal::WCM_AP;
        std::string str_tmp = '1';
        FILEOP::WriteStrToFile(ALI_WIFI_SMARTCONFIG_FLG, str_tmp);
        // boot_netconfig_ = false;
    }
    LOGI("is_ap_mode_ = %d", is_ap_mode_);
    if (is_ap_mode_ && boot_netconfig_) {
        if (!FILEOP::FileDirectoryExists(WIFI_CONFIG_FLG)) {
            LOGI("AP mode, config network");
            ResetWifi();
        }
    }
}

代码说明:

  • ALI_WIFI_SMARTCONFIG_FLG: 用于标识设备是否通过 SmartConfig 模式连接 WiFi 的文件路径。
  • config_mode_: 用于存储当前 WiFi 连接模式的变量,可以是 WCM_SMART 或 WCM_AP。
  • is_ap_mode_: 用于指示设备是否处于 AP 模式的变量。
  • boot_netconfig_: 用于指示是否需要进行网络配置的变量。
  • WIFI_CONFIG_FLG: 用于指示设备是否已配置过网络的标志文件路径。
  • ResetWifi(): 用于重置 WiFi 连接的函数。

代码功能:

  1. 通过检查 ALI_WIFI_SMARTCONFIG_FLG 文件的存在情况来判断设备是通过 SmartConfig 模式还是 AP 模式连接 WiFi。
  2. 根据连接模式设置 config_mode_ 变量。
  3. 检查 is_ap_mode_boot_netconfig_ 的值,如果需要进行网络配置,则调用 ResetWifi() 函数进行 WiFi 重置。

注意:

  • 代码中使用的 FILEOP 类可能需要根据实际情况进行修改。
  • 代码中使用的 WifiResetReal 类可能需要根据实际情况进行修改。
  • 代码中使用的 LOGI 函数可能需要根据实际情况进行修改。
ALiWifiConfig 类构造函数:智能配置和 AP 模式 WiFi 连接

原文地址: https://www.cveoy.top/t/topic/npnL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录