您好!
我将 CC3100与 MCU 结合使用已有很长时间,现在需要集成 Smartconfig 选项。
我尝试在 SDK 1.3.0的示例"Provisioning_smartconfig"中启用智能配置过程、但 Android 应用 Simplelink startet Pro 却未成功。
请帮助、
这是我在托管 MCU 上的代码
_WlanRxFilterOperationCommandBuff_t RxFilterIdMask ={0};
uint8_t Val = 1;
uint8_t CONFIGOpt = 0;
uint8_t CONFIGLen = 0;
uint8_t 功率= 0;
内部32_t RetVal =-1;
Int32_t 模式;
MODE = SL_Start (0、0、0);
ASSERT_ON_ERROR (MODE);
/*如果器件未处于站点模式、请尝试在站点模式下配置器件*/
if (Role_STA !=模式)
{
如果(Role_AP =模式)
{
/*如果器件处于 AP 模式、我们需要等待该事件后再执行任何操作*/
while (!is_ip_acquired (g_connectionStatus))
{
OSI_SLEEP (1);
}
}
/*切换到 STA 角色并重新启动*/
RetVal = sl_WlanSetMode (Role_STA);
ASSERT_ON_ERROR (RetVal);
RetVal = sl_Stop (sl_stop_timeout);
ASSERT_ON_ERROR (RetVal);
RetVal = sl_Start (0、0、0);
ASSERT_ON_ERROR (RetVal);
/*检查设备是否再次在站点中*/
if (Role_STA!= RetVal)
{
/*如果设备未在站点模式下启动,我们不想继续进行*/
ASSERT_ON_ERROR (DEVICE_NOT IN_STATE_MODE);
}
}
/*获取器件的版本信息*/
configOpt = sl_device_General_version;
configLen = sizeof (g_wifiVersion);
RetVal = sl_DevGet (sl_device_General_configuration、&configOpt、&configLen、 (_u8 *)(&G);
Assert_ON_ERROR (RetVal);
//将连接策略设置为自动+ SmartConfig (设备的默认连接策略)*/
RetVal = sl_WlanPolicySet (sl_policy_connection、sl_connection_policy (1、0、0、0、 1)、NULL、0);
ASSERT_ON_ERROR (RetVal);
#ifdef DEBUG_NRF_USER
ASSERT_ON_ERROR (cc3100_CLEAR_PROFILES (0xFF));
#endif
/*
设备处于站点模式。 断开先前的连接(如果有)
*如果"已连接完成"、则该函数返回0;如果已断开连接、则返回负数
;*如果返回0、则等待"连接"事件;忽略其他返回代码
*/
cc3100_DISCONNING_FIT_AGE();
/*启用 DHCP 客户机*/
RetVal = sl_NetCfgSet (sl_IPv4_STA_P2P_CL_DHCP_ENABLE、1、&val);
assert_ON_ERROR (RetVal);
//禁用扫描*/
configOpt = sl_scan_policy (0);
RetVal = sl_WlanPolicySet (sl_policy_scan、configOpt、NULL、0);
assert_ON_ERROR (RetVal);
/*将工作站模式
编号的 Tx 功率级别设置为0-15之间、因为最大功率- 0的 dB 偏移将设置最大功率*/
功率= 0;
RetVal = SL_WlanSet (SL_WLAN_CFG_General_Param_ID、WLAN_General_Param_opt_STA_TX_POWER、1、(_U8 *)&POWER);
ASSERT_ON_ERROR (RetVal);
//将 PM 策略设置为正常*/
RetVal = sl_WlanPolicySet (sl_policy_PM、g_powerstate、NULL、0);
assert_ON_ERROR (RetVal);
/*取消注册 mDNS 服务*/
RetVal = sl_NetAppMDNSUnRegisterService (0、0);
ASSERT_ON_ERROR (RetVal);
/*删除所有64个筛选器(8*8)*/
PAL_Memset (RxIdMask.FilterIdMask、0xFF、8);
RetVal = SL_WlanRxFilterSet (SL_REMOVE_RX_FILTER、(_u8 *)&RxFilterIdMask、
sizeof (_WlanRxFilterOperationCommandBuff_t);
assert_ON_ERROR (RetVal);
RetVal = sl_Stop (sl_stop_timeout);
assert_ON_ERROR (RetVal);
cc3100_initial_app_variables ();
返回 RetVal;/*成功*/