Tool/software: TI C/C++ Compiler
i configure device to AP - first WiFiMode_ConfigureSimpleLinkToDefaultState and then to WiFiMode_ConfigureSimplelinkToAPState
i see the AP on my PC and success to connect to it, but i get event SimpleLinkFatalErrorEventHandler slFatalErrorEvent->Id = 2;
advice
Thanks
typedef struct{
S8 SSID[REGISTERS_SYSTEM_WIFI_SSID_SIZE * sizeof(Modbus_Register_Def_t)] ; "WiFiCoordinator"
S8 Password[REGISTERS_SYSTEM_WIFI_PASSWORD_SIZE * sizeof(Modbus_Register_Def_t)] ; "1234567890"
U16 Port ; 3000
}Registers_System_WiFi_AP_t;
/***********************************************************************
* Function Name: WiFiMachine_ConfigureSimpleLinkToDefaultState *
* Description : *
***********************************************************************/
static Result_e WiFiMode_ConfigureSimpleLinkToDefaultState( void ){
U8 mPower = 0 ;
S32 mMode = -1 ;
U32 mIfBitmap = 0 ;
SlWlanScanParamCommand_t mScanDefault = {0} ;
SlWlanRxFilterOperationCommandBuff_t mRxFilterIdMask = {{0}} ;
WiFiStatus_ClrGlobalStatus( );
mMode = sl_Start( NULL, NULL, NULL );
if( mMode < 0 )return( RES_FAIL );
if( mMode != ROLE_STA ){
if( mMode == ROLE_AP ){
U16 mSTAInfoLen = 0 ;
U16 mStartSTAIndex = 0 ;
U8 i = 0 ;
SlNetCfgStaInfo_t mConnectedSTAList[4] ;
while( WiFiStatus_GetGlobalStatus( WIFI_STATUS_IP_ACQUIRED ) == FALSE )Task_sleep( 1 );
mSTAInfoLen = sizeof(mConnectedSTAList);
if( sl_NetCfgGet( SL_NETCFG_AP_STATIONS_INFO_LIST, &mStartSTAIndex, &mSTAInfoLen, (U8 *)mConnectedSTAList ) < 0 )Util_Reset( );
for( i = 0 ; i < (mSTAInfoLen / sizeof(SlNetCfgStaInfo_t)) ; i++ ){
sl_NetCfgSet( SL_NETCFG_AP_STATION_DISCONNECT, 1, SL_MAC_ADDR_LEN, (const uint8_t *)&(mConnectedSTAList[i].MacAddr) );
}
}
if( sl_WlanSetMode( ROLE_STA ) < 0 )return( RES_FAIL );
if( sl_Stop ( SL_STOP_TIMEOUT ) < 0 )return( RES_FAIL );
mMode = sl_Start( NULL, NULL, NULL );
if( mMode < 0 )return( RES_FAIL );
if( mMode != ROLE_STA )return( RES_FAIL );
}
//1000
if( sl_WlanPolicySet ( SL_WLAN_POLICY_CONNECTION, SL_WLAN_CONNECTION_POLICY( 1, 0, 0, 0 ), NULL ,0 ) < 0 )return( RES_FAIL );
//if( sl_WlanProvisioning ( SL_WLAN_PROVISIONING_CMD_STOP, 0xFF, 0, NULL, 0x0 ) < 0 )return( RES_FAIL );
if( sl_WlanProfileDel ( 0xFF ) < 0 )return( RES_FAIL );
WiFiStatus_SetGlobalStatus( WIFI_STATUS_CONNECTED, TRUE );
if( !sl_WlanDisconnect( ) ){
while( WiFiStatus_GetGlobalStatus( WIFI_STATUS_CONNECTED ) == TRUE )Task_sleep( 10 );
}
else WiFiStatus_SetGlobalStatus( WIFI_STATUS_CONNECTED, FALSE );
if( sl_NetCfgSet( SL_NETCFG_IPV4_STA_ADDR_MODE, SL_NETCFG_ADDR_DHCP, 0, 0 ) < 0 )return( RES_FAIL );
if( sl_NetCfgSet( SL_NETCFG_IF, SL_NETCFG_IF_STATE, sizeof(U32), (const U8 *)&mIfBitmap ) < 0 )return( RES_FAIL );
mScanDefault.ChannelsMask = CHANNEL_MASK_ALL ;
mScanDefault.RssiThershold = RSSI_TH_MAX ;
if( sl_WlanSet ( SL_WLAN_CFG_GENERAL_PARAM_ID , SL_WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS ,
sizeof(SlWlanScanParamCommand_t) , (U8 *)&mScanDefault ) < 0 )return( RES_FAIL );
if( sl_WlanPolicySet ( SL_WLAN_POLICY_SCAN , SL_WLAN_SCAN_POLICY(0, 0), NULL, 0 ) < 0 )return( RES_FAIL );
if( sl_WlanSet ( SL_WLAN_CFG_GENERAL_PARAM_ID, SL_WLAN_GENERAL_PARAM_OPT_STA_TX_POWER, 1, (U8 *)&mPower ) < 0 )return( RES_FAIL );
if( sl_WlanPolicySet ( SL_WLAN_POLICY_PM, SL_WLAN_NORMAL_POLICY, NULL, 0 ) < 0 )return( RES_FAIL );
if( sl_NetAppMDNSUnRegisterService( 0, 0, 0 ) < 0 )return( RES_FAIL );
memset( mRxFilterIdMask.FilterBitmap , 0xFF, 8 );
if( sl_WlanSet( SL_WLAN_RX_FILTERS_ID , SL_WLAN_RX_FILTER_REMOVE ,
sizeof(SlWlanRxFilterOperationCommandBuff_t) , (U8 *)&mRxFilterIdMask ) < 0 )return( RES_FAIL );
if( sl_Stop( 0xFF ) < 0 )return( RES_FAIL );
mMode = sl_Start( NULL, NULL, NULL );
if( mMode < 0 )return( RES_FAIL );
if( mMode != ROLE_STA )return( RES_FAIL );
return( RES_SUCCESS );
}
/***********************************************************************
* Function Name: WiFiMode_ConfigureSimplelinkToAPState *
* Description : *
***********************************************************************/
static Result_e WiFiMode_ConfigureSimplelinkToAPState( Registers_System_WiFi_AP_t *pMode ){
U16 mIfBitmap = 0 ;
//U8 mSTALimit = 1 ;
U8 mSecType = SL_WLAN_SEC_TYPE_WPA_WPA2 ;
S32 mMode = -1 ;
WiFiStatus_ClrGlobalStatus( );
ModbusDataBase_Block ( TRUE );
if( sl_WlanSetMode( ROLE_AP ) < 0 )return( RES_FAIL );
if( sl_Stop ( SL_STOP_TIMEOUT ) < 0 )return( RES_FAIL );
mMode = sl_Start( NULL, NULL, NULL );
if( mMode < 0 )return( RES_FAIL );
if( mMode != ROLE_AP )return( RES_FAIL );
ModbusDataBase_Block( FALSE );
while( WiFiStatus_GetGlobalStatus( WIFI_STATUS_IP_ACQUIRED ) == FALSE )Task_sleep( 10 );
//if( sl_NetCfgSet ( SL_NETCFG_IPV4_STA_ADDR_MODE, SL_NETCFG_ADDR_DHCP, 0, 0 ) < 0 )return( RES_FAIL );
//if( sl_NetCfgSet ( SL_NETCFG_IF, SL_NETCFG_IF_STATE, sizeof(U32), (U8 *)&mIfBitmap ) < 0 )return( RES_FAIL );
//if( sl_WlanSet ( SL_WLAN_CFG_AP_ID, SL_WLAN_AP_OPT_MAX_STATIONS, sizeof(U8), (U8 *)(&mSTALimit) ) < 0 )return( RES_FAIL );
if( sl_WlanSet ( SL_WLAN_CFG_AP_ID, SL_WLAN_AP_OPT_SSID, strlen(pMode->SSID), (U8 *)pMode->SSID ) < 0 )return( RES_FAIL );
if( sl_WlanSet ( SL_WLAN_CFG_AP_ID, SL_WLAN_AP_OPT_SECURITY_TYPE, 1, &mSecType ) < 0 )return( RES_FAIL );
if( sl_WlanSet ( SL_WLAN_CFG_AP_ID, SL_WLAN_AP_OPT_PASSWORD, strlen(pMode->Password), (U8 *)pMode->Password ) < 0 )return( RES_FAIL );
ModbusDataBase_Block( TRUE );
if( sl_Stop( 0xFF ) < 0 )return( RES_FAIL );
WiFiStatus_ClrGlobalStatus( );
mMode = sl_Start( NULL, NULL, NULL );
if( mMode < 0 )return( RES_FAIL );
if( mMode != ROLE_AP )return( RES_FAIL );
ModbusDataBase_Block( FALSE );
while( WiFiStatus_GetGlobalStatus( WIFI_STATUS_IP_ACQUIRED ) == FALSE )Task_sleep( 10 );
return( RES_SUCCESS );
}