⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monitorpage.cpp

📁 atmel usb 无线网卡驱动程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		if( ( ( CAutoChoice * ) FindWindowById(  ID_CH_OPERATINGMODE  ) )->GetStringSelection( ) == sp->OperModeStrings[ 1 ] ) 		{			FindWindowById( ID_ST_CHANNEL )->Enable( false );			FindWindowById( ID_CH_CHANNEL )->Enable( false );		}		else		{			FindWindowById( ID_ST_CHANNEL )->Enable( mInChangeMode );			FindWindowById( ID_CH_CHANNEL )->Enable( mInChangeMode );		}		FindWindowById( ID_ST_ESSID )->Enable( mInChangeMode );		FindWindowById( ID_CB_ESSID )->Enable( mInChangeMode );		FindWindowById( ID_ST_RADIOONOFF )->Enable( mInChangeMode );		FindWindowById( ID_CH_RADIOONOFF )->Enable( mInChangeMode );		FindWindowById( ID_ST_MACADDRESS )->Enable( mInChangeMode );		FindWindowById( ID_TX_MACADDRESS )->Enable( mInChangeMode );		FindWindowById( ID_ST_INROAMING )->Enable( mInChangeMode );		FindWindowById( ID_CH_INROAMING )->Enable( mInChangeMode );		FindWindowById( ID_ST_TRANSMITRATE )->Enable( mInChangeMode );		FindWindowById( ID_CH_TRANSMITRATE )->Enable( mInChangeMode );	}	event.Skip();	return;}void CMonitorPage::OnChIntRoamingChanged( wxCommandEvent &event ){	update_channel_list( );	return;}void CMonitorPage::update_channel_list( ){	CAutoChoice *chch = ( CAutoChoice * ) FindWindowById( ID_CH_CHANNEL );	CAutoChoice *chin = ( CAutoChoice * ) FindWindowById( ID_CH_INROAMING );	bool all_channels = true;	if( chin->GetStringSelection( ) == _( "Enabled" ) )	{		all_channels = false;	}	wxString sel = chch->GetStringSelection( );	chch->Clear( );	CWinterModel *model = ( CWinterModel * ) CAccessor::Access( AID_CURRENTMODEL );	CDeviceConfigurationData *data = ( CDeviceConfigurationData * ) model->GetChild( MC_DEVICECONFIGURATIONDATA );	UCHAR *vector = data->GetChannelVector( );	for( int c = 1; c <= 14; c++ )	{		if( all_channels == false && vector[ c ] == 0  )		{			continue;		}		chch->Append( wxString::Format( wxT( "%d" ), c ) );	}	if( chch->FindString( sel ) != -1 )	{		chch->SetStringSelection( sel );	}	return;}// Higher update levelvoid CMonitorPage::UpdateWinterPage( ){	CWinterModel *model = ( CWinterModel * ) CAccessor::Access( AID_CURRENTMODEL );	CVnetDeviceBase *device = ( CVnetDeviceBase * ) CAccessor::Access( AID_CURRENTDEVICE );	CDeviceConfigurationData *data = ( CDeviceConfigurationData * ) model->GetChild( MC_DEVICECONFIGURATIONDATA );	if( device->GetDeviceConfig( data ) == false )	{		::wxMessageBox( _( "Failed to read configuration." ), wxT( "Winter" ), wxICON_HAND, ( CWinterFrame * ) CAccessor::Access( AID_FRAME ) );		return;	}	CMacAddressData *mac_data = ( CMacAddressData * ) model->GetChild( MC_MACADDRESSDATA );	if( device->GetMacAddress( mac_data ) == false )	{		::wxMessageBox( _( "Failed to read MAC address." ), wxT( "Winter" ), wxICON_HAND, ( CWinterFrame * ) CAccessor::Access( AID_FRAME ) );		return;	}	TransferToControls( );	return;}bool CMonitorPage::OnPageChanging( ){	mInChangeMode = false;	return true;}int CMonitorPage::TestControlValues( ){	return 0;}int CMonitorPage::TransferToControls( CWinterModel *model ){	if( model == NULL )	{		model = ( CWinterModel * ) CAccessor::Access( AID_CURRENTMODEL );	}	CDeviceConfigurationData *device_data = ( CDeviceConfigurationData * ) model->GetChild( MC_DEVICECONFIGURATIONDATA );	CMacAddressData *mac_data = ( CMacAddressData * ) model->GetChild( MC_MACADDRESSDATA );	CWinterStringsProvider *sp = ( CWinterStringsProvider * ) CAccessor::Access( AID_STRINGSPROVIDER );//int.roaming	( ( CAutoChoice * ) FindWindow( ID_CH_INROAMING ) )->SetStringSelection( sp->RoamingStrings[ ( int ) device_data->GetInternationalRoaming( ) ] );	update_channel_list( );//channel	( ( CAutoChoice * ) FindWindow( ID_CH_CHANNEL ) )->SetStringSelection( wxString::Format( _( "%d" ), ( int ) device_data->GetChannel( ) ) );//radio	( ( CAutoChoice * ) FindWindow( ID_CH_RADIOONOFF ) )->SetStringSelection( sp->RadioStrings[ ( int ) device_data->GetRadioIsOn( ) ] );//oper mode	( ( CAutoChoice * ) FindWindow( ID_CH_OPERATINGMODE ) )->SetSelection( ( int ) device_data->GetOperatingMode( ) );//transmit rate	( ( CAutoChoice * ) FindWindow( ID_CH_TRANSMITRATE ) )->SetSelection( ( int ) device_data->GetTxRate( ) );// SSID	CHistoryCombo *text = ( ( CHistoryCombo * ) FindWindow( ID_CB_ESSID ) );	UCHAR *ssid = new UCHAR[ 33 ];	memcpy( ssid, device_data->GetSSID( ), device_data->GetSSIDLength( ) );	ssid[ device_data->GetSSIDLength( ) ] = 0;        	text->SetValueEx( wxString::Format( wxT( "%s" ), ssid ) );	delete ssid;// Mac address	wxTextCtrl *mac_text = ( wxTextCtrl * ) FindWindow( ID_TX_MACADDRESS );	mac_text->Clear( );	UCHAR *mac_address = mac_data->GetMacAddress( );	for( int c = 0; c < MAC_LENGTH - 1; c++ )	{		mac_text->AppendText( wxString::Format( wxT( "%02X:" ), mac_address[ c ] ) );	}	mac_text->AppendText( wxString::Format( wxT( "%02X" ), mac_address[ MAC_LENGTH - 1 ] ) );//Get Station State	DisplayMessages( device_data->GetStationState( ) );//LinkQuality// debug://::wxLogDebug( wxT( "Received link quality = %d" ), device_data->GetLinkQuality( ) );	( ( wxGauge * ) FindWindow( ID_GG_LINKQUALITY ) )->SetValue( ( int ) device_data->GetLinkQuality( ) ); 	return 0;}int CMonitorPage::TransferToModel( CWinterModel *model ){	if( model == NULL )	{		model = ( CWinterModel * ) CAccessor::Access( AID_CURRENTMODEL );	}	CDeviceConfigurationData *device_data = ( CDeviceConfigurationData * ) model->GetChild( MC_DEVICECONFIGURATIONDATA );	CWinterStringsProvider *sp = ( CWinterStringsProvider * ) CAccessor::Access( AID_STRINGSPROVIDER );//ssid	UCHAR *ssid = new UCHAR[ MAX_SSID_LENGTH + 1 ];	memset( ssid, 0, MAX_SSID_LENGTH + 1 );	wxString tx_ssid = ( ( CHistoryCombo * ) FindWindow( ID_CB_ESSID ) )->GetValue( );	strcpy( ( char * ) ssid, tx_ssid.c_str( ) );	device_data->SetSSID( ssid );	device_data->SetSSIDLength( tx_ssid.Len( ) );	delete ssid;//channel	int channel = atoi( ( ( CAutoChoice * ) FindWindow( ID_CH_CHANNEL ) )->GetStringSelection( ).c_str( ) );	device_data->SetChannel( channel );//radio	device_data->SetRadioIsOn( sp->RadioStrings.Index( ( ( CAutoChoice * ) FindWindow( ID_CH_RADIOONOFF ) )->GetStringSelection( ) ) );//int.roaming	device_data->SetInternationalRoaming( sp->RoamingStrings.Index( ( ( CAutoChoice * ) FindWindow( ID_CH_INROAMING ) )->GetStringSelection(  ) ) );//oper mode	device_data->SetOperatingMode( sp->OperModeStrings.Index( ( ( CAutoChoice * ) FindWindow( ID_CH_OPERATINGMODE ) )->GetStringSelection( ) ) );//Transmit rate	device_data->SetTxRate( sp->TransmitRateStrings.Index( ( ( CAutoChoice * ) FindWindow( ID_CH_TRANSMITRATE ) )->GetStringSelection( ) ) );	return 0;}void CMonitorPage::DisplayErrorMessages( UCHAR stationstate ){	wxTextCtrl *info = ( wxTextCtrl * ) FindWindowById( ID_TX_STATUS_INFO );	switch( stationstate )	{		case 1: 	//C80211_MGMT_SC_Unspecified:			info->SetValue( _( "Unspecified error in Management Frame..." ) );			break;		case 10:	//C80211_MGMT_SC_SupportCapabilities:			info->SetValue( _( "Support Capabilities error in Association Request..." ) );			break;		case 11:	//C80211_MGMT_SC_ReassDenied:			info->SetValue( _( "Re-Association Denied" ) );			break;		case 12:	//C80211_MGMT_SC_AssDenied:			info->SetValue( _( "Association Denied" ) );			break;		case 13:	//C80211_MGMT_SC_AuthAlgNotSupported:			info->SetValue( _( "Authentication Algorithm not supported..." ) );			break;		case 14:	//C80211_MGMT_SC_AuthTransSeqNumError:			info->SetValue( _( "Bad Authentication transaction sequence number..." ) );			break;		case 15:	//C80211_MGMT_SC_AuthRejectChallenge:			info->SetValue( _( "Authentication challenge text rejection..." ) );			break;		case 16:	//C80211_MGMT_SC_AuthRejectTimeout:			info->SetValue( _( "Authentication Timeout..." ) );			break;		case 17:	//C80211_MGMT_SC_AssDeniedHandleAP:			info->SetValue( _( "Access Point can not handle any more stations..." ) );			break;		case 18:	//C80211_MGMT_SC_AssDeniedBSSRate:			( ( wxTextCtrl * )FindWindowById( ID_TX_STATUS_INFO ) )->SetValue( _( "Association Denied (Supported Rates mismatch)..." ) );			break;		default:			info->SetValue( _( "Failed to co-operate with the selected Access Point" ) );	}}void CMonitorPage::OnStationStateChanged( int old_state, int new_state ){	TransferToControls( );	return;}void CMonitorPage::DisplayMessages( UCHAR stationstate ){	CWinterModel *model = ( CWinterModel * ) CAccessor::Access( AID_CURRENTMODEL );	CDeviceConfigurationData *device_data = ( CDeviceConfigurationData * ) model->GetChild( MC_DEVICECONFIGURATIONDATA );	wxTextCtrl *info = ( wxTextCtrl * )FindWindowById( ID_TX_STATUS_INFO );	CWinterStringsProvider *sp = ( CWinterStringsProvider * ) CAccessor::Access( AID_STRINGSPROVIDER );	switch( stationstate )	{		case 0x00:			info->SetValue( _( "Initializing" ) );			break;		case 0x01:			info->SetValue( _( "Scanning" ) );			break;		case 0x02:			info->SetValue( _( "Joining" ) );			break;		case 0x03:			info->SetValue( _( "Authenticating" ) );			break;		case 0x04:			info->SetValue( _( "Associating" ) );			break;		case 0x05:			if( ( ( CAutoChoice * ) FindWindowById(  ID_CH_OPERATINGMODE  ) )->GetStringSelection( ) == sp->OperModeStrings[ 1 ] ) 			{				info->SetValue( _( "Associated" ) );			}			else			{				info->SetValue( _( "Ready" ) );			}                        info->AppendText( _( " - BSSID: " ) );				                        // TODO : Replace  this 5 with BSSID_LENGTH - 1                        for( int c = 0; c < 5; c++ )                        {                                info->AppendText( wxString::Format( wxT( "%02X:" ), device_data->GetBSSID( )[ c ] ) );                        }                        info->AppendText( wxString::Format( wxT( "%02X" ), device_data->GetBSSID( )[ 5 ] ) );			break;		case 0x06:			info->SetValue( _( "Station Out of Range" ) );			break;		case 0x07:			info->SetValue( _( "Disassociating" ) );			break;		case 0x08:			info->SetValue( _( "Disauthenticating" ) );			break;		case 0x09:			info->SetValue( _( "Reassociating" ) );			break;		case 0x0a:			info->SetValue( _( "Forced Joining" ) );			break;		case 0x0b:			info->SetValue( _( "ReConfiguring" ) );			break;		case 0x0c:			info->SetValue( _( "FW_Upgrade" ) );			break;		case 0x0d:			info->SetValue( _( "Force Joining Failure" ) );			break;		case 0x0e:			info->SetValue( _( "Resetting" ) );			break;		case 0x0f:			info->SetValue( _( "Reset Pending" ) );			break;		case 0x13:			info->SetValue( _( "Radio OFF" ) );			break;		case 0xf0:			info->SetValue( _( "No card Present" ) );			break;		case 0xf1:			if( device_data->GetMgmtErrorCode( ) == 0xa0 )			{				info->SetValue( _( "Enable Encryption to Join this BSS" ) );				break;			}			else if( device_data->GetMgmtErrorCode( ) == 0xa1 )			{				info->SetValue( _ ( "Disable Encryption to Join this BSS" ) );				break;			}			else			{				DisplayErrorMessages( ( UCHAR )device_data->GetStationState ( ) );			}			break;		case 0xfd:			info->SetValue( _( "Failed to Find SSID. Check your Settings." ) );			break;		default:			info->SetValue( wxString::Format( _( "Unknown station state code : 0x%02X" ), stationstate ) );	}	return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -