21 #include <iscapi.h> |
21 #include <iscapi.h> |
22 #include <iscnokiadefinitions.h> |
22 #include <iscnokiadefinitions.h> |
23 #include <pn_const.h> |
23 #include <pn_const.h> |
24 #ifndef NCP_COMMON_BRIDGE_FAMILY |
24 #ifndef NCP_COMMON_BRIDGE_FAMILY |
25 #include <nsisi.h> |
25 #include <nsisi.h> |
26 #endif |
|
27 #include <pipeisi.h> |
26 #include <pipeisi.h> |
28 #include <pipe_sharedisi.h> |
27 #include <pipe_sharedisi.h> |
|
28 #endif |
29 #include <tisi.h> |
29 #include <tisi.h> |
30 #include <at_modemisi.h> |
30 #include <at_modemisi.h> |
31 #include "cmodemathandler.h" |
31 #include "cmodemathandler.h" |
32 #include "cmodematpipecontroller.h" |
32 #include "cmodematpipecontroller.h" |
33 #include "modemattrace.h" |
33 #include "modemattrace.h" |
95 iReceivePtr( 0, 0 ), |
95 iReceivePtr( 0, 0 ), |
96 iReceiveMessageLength( 0 ), |
96 iReceiveMessageLength( 0 ), |
97 iReceivedMessage( NULL ), |
97 iReceivedMessage( NULL ), |
98 iPepObjId(0), |
98 iPepObjId(0), |
99 iPipeController(NULL), |
99 iPipeController(NULL), |
|
100 iLastTransactionId( 0 ), |
100 iDisconnected( EFalse ), |
101 iDisconnected( EFalse ), |
101 iModemAtExistInCmt( EFalse ) |
102 iModemAtExistInCmt( EFalse ) |
102 { |
103 { |
103 C_TRACE (( _T("CModemAtHandler::CModemAtHandler") )); |
104 C_TRACE (( _T("CModemAtHandler::CModemAtHandler") )); |
104 } |
105 } |
215 |
216 |
216 CActiveScheduler::Add( this ); |
217 CActiveScheduler::Add( this ); |
217 |
218 |
218 iIscApi = new ( ELeave ) RIscApi; |
219 iIscApi = new ( ELeave ) RIscApi; |
219 C_TRACE(_L("RIscApi created")); |
220 C_TRACE(_L("RIscApi created")); |
220 |
221 |
221 //used with intermediate data ind |
|
222 //can be removed, when AT_MODEM_INTERMEDIATE_DATA_IND supports transactionid |
|
223 for( TInt i = 0 ; i < KMaxDteIdCount ; i++) |
|
224 { |
|
225 iLastTransactionId[i]=0; |
|
226 } |
|
227 |
|
228 #ifndef __WINSCW__ |
222 #ifndef __WINSCW__ |
229 OpenChannelL(); |
223 OpenChannelL(); |
230 #ifndef NCP_COMMON_BRIDGE_FAMILY |
224 #ifndef NCP_COMMON_BRIDGE_FAMILY |
231 iPipeController->QueryModemAtFromNameService(); |
225 iPipeController->QueryModemAtFromNameService(); |
232 #endif |
226 #endif |
243 { |
237 { |
244 C_TRACE (( _T(">>CModemAtHandler::SendATCommand()") )); |
238 C_TRACE (( _T(">>CModemAtHandler::SendATCommand()") )); |
245 |
239 |
246 TInt err = KErrNone; |
240 TInt err = KErrNone; |
247 // aMessageType contains normal AT-cmd (0) or Nvram-query (1) |
241 // aMessageType contains normal AT-cmd (0) or Nvram-query (1) |
248 TUint transactionId= (aPluginType << KTransactionIdBitsShift) | aMessageType; |
242 TUint transactionId = ( aPluginType << KTransactionIdBitsShift ) | aMessageType; |
249 //used with intermediate data ind |
243 // used with intermediate data ind |
250 //can be removed, when AT_MODEM_INTERMEDIATE_DATA_IND supports transactionid |
244 // can be removed, when AT_MODEM_INTERMEDIATE_DATA_IND supports transactionid |
251 iLastTransactionId[aDteId] = transactionId; //messages are routed to correct plugin by transaction id |
245 iLastTransactionId = transactionId; //messages are routed to correct plugin by transaction id |
252 C_TRACE((_L("transaction id %d, plugintype %d, aMessageType %d"), transactionId, aPluginType, aMessageType)); |
246 C_TRACE((_L("transaction id %d, plugintype %d, aMessageType %d"), transactionId, aPluginType, aMessageType)); |
253 C_TRACE((_L("iLastTransctionId[%d] = %d "),aDteId,iLastTransactionId[aDteId])); |
247 C_TRACE((_L("iLastTransctionId = %d "), iLastTransactionId )); |
254 |
248 |
255 #ifdef __WINSCW__ |
249 #ifdef __WINSCW__ |
256 iDteId = aDteId; |
250 iDteId = aDteId; |
257 iChannel = aMessageType; |
251 iChannel = aMessageType; |
258 iPluginType = aPluginType; |
252 iPluginType = aPluginType; |
346 events.Append( AT_MODEM_SIGNAL_IND ); |
340 events.Append( AT_MODEM_SIGNAL_IND ); |
347 events.Append( PN_AT_MODEM ); |
341 events.Append( PN_AT_MODEM ); |
348 events.Append( AT_MODEM_UNSOLICITED_DATA_IND ); |
342 events.Append( AT_MODEM_UNSOLICITED_DATA_IND ); |
349 events.Append( PN_AT_MODEM ); |
343 events.Append( PN_AT_MODEM ); |
350 events.Append( AT_MODEM_DATA_REDIRECT_IND ); |
344 events.Append( AT_MODEM_DATA_REDIRECT_IND ); |
351 events.Append( PN_PIPE ); |
|
352 events.Append( PNS_PEP_STATUS_IND ); |
|
353 |
345 |
354 #ifndef NCP_COMMON_BRIDGE_FAMILY |
346 #ifndef NCP_COMMON_BRIDGE_FAMILY |
355 //name add ind |
347 //name add ind |
356 events.Append( PN_NAMESERVICE ); |
348 events.Append( PN_NAMESERVICE ); |
357 events.Append( PNS_NAME_ADD_IND ); |
349 events.Append( PNS_NAME_ADD_IND ); |
358 events.Append( PN_NAMESERVICE ); |
350 events.Append( PN_NAMESERVICE ); |
359 events.Append( PNS_NAME_REMOVE_IND ); |
351 events.Append( PNS_NAME_REMOVE_IND ); |
|
352 events.Append( PN_PIPE ); |
|
353 events.Append( PNS_PEP_STATUS_IND ); |
360 #else |
354 #else |
361 events.Append( 0 ); |
355 events.Append( 0 ); |
362 events.Append( 0 ); |
356 events.Append( 0 ); |
363 events.Append( 0 ); |
357 events.Append( 0 ); |
364 events.Append( 0 ); |
358 events.Append( 0 ); |
|
359 events.Append( 0 ); |
|
360 events.Append( 0 ); |
365 #endif |
361 #endif |
366 |
362 |
367 iIscApi->CustomFunction(EIscNokiaEventSubscribe,&events); |
363 iIscApi->CustomFunction(EIscNokiaEventSubscribe,&events); |
368 TBuf8<KObjectIdLength> objId; |
364 TBuf8<KObjectIdLength> objId; |
369 iIscApi->GetChannelInfo(EIscNokiaAtController, objId); |
365 iIscApi->GetChannelInfo(EIscNokiaAtController, objId); |
378 |
374 |
379 void CModemAtHandler::HandleATResponse( const TIsiReceiveC& aMessage ) |
375 void CModemAtHandler::HandleATResponse( const TIsiReceiveC& aMessage ) |
380 { |
376 { |
381 C_TRACE (( _T("CModemAtHandler::HandleATResponse()") )); |
377 C_TRACE (( _T("CModemAtHandler::HandleATResponse()") )); |
382 |
378 |
383 TInt dteId = aMessage.Get8bit( ISI_HEADER_SIZE+ AT_MODEM_CMD_RESP_OFFSET_DTEID ) ; |
379 TUint8 dteId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_CMD_RESP_OFFSET_DTEID ) ; |
384 TUint transactionId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_CMD_RESP_OFFSET_TID ); |
380 TUint transactionId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_CMD_RESP_OFFSET_TID ); |
385 TUint8 command = transactionId & KCommandBits; //normal AT-cmd or Nvram-query |
381 TUint8 command = transactionId & KCommandBits; //normal AT-cmd or Nvram-query |
386 TInt length = aMessage.Get16bit( ISI_HEADER_SIZE+AT_MODEM_CMD_RESP_OFFSET_LENGTH ); |
382 TInt length = aMessage.Get16bit( ISI_HEADER_SIZE+AT_MODEM_CMD_RESP_OFFSET_LENGTH ); |
387 C_TRACE(( _L("DteId: %d AT (0) or nvram command (1): %d Response length %d"), dteId, command, length )); |
383 C_TRACE(( _L("DteId: %d AT (0) or nvram command (1): %d Response length %d"), dteId, command, length )); |
388 |
384 |
413 iServer.HandleATResponse( iDteId, replyEmulated, 0 /* 0 = AT-cmd, 1 = nvram */); |
409 iServer.HandleATResponse( iDteId, replyEmulated, 0 /* 0 = AT-cmd, 1 = nvram */); |
414 } |
410 } |
415 #endif |
411 #endif |
416 |
412 |
417 |
413 |
418 TInt CModemAtHandler::Connect(const TUint8 aDteId) |
414 TInt CModemAtHandler::Connect( const TUint8 aDteId ) |
419 { |
415 { |
420 C_TRACE (( _T("CModemAtHandler::Connect()") )); |
416 C_TRACE (( _T("CModemAtHandler::Connect()") )); |
421 |
417 |
422 if( !iModemAtExistInCmt ) |
418 if( !iModemAtExistInCmt ) |
423 { |
419 { |
424 C_TRACE((_T("Connection failed, PN_AT_MODEM is not in CMT"))); |
420 C_TRACE((_T("Connection failed, PN_AT_MODEM is not in CMT"))); |
425 TRACE_ASSERT_ALWAYS; |
421 TRACE_ASSERT_ALWAYS; |
426 return KErrNotFound; |
422 return KErrNotFound; |
427 } |
423 } |
428 |
|
429 C_TRACE((_L("Connecting with dteid:%d "), aDteId)); |
|
430 SetDisconnected( EFalse ); |
424 SetDisconnected( EFalse ); |
431 |
425 |
432 #ifdef __WINSCW__ //emulate, modem is connected |
426 #ifdef __WINSCW__ |
433 iServer.BroadcastModemConnected( aDteId, KErrNone ); |
|
434 iDteId = aDteId; |
|
435 return KErrNone; |
427 return KErrNone; |
436 #endif |
428 #endif |
|
429 |
|
430 TInt err( KErrNone ); |
|
431 TUint8 pipeHandle( KInvalidPipeHandle ); |
|
432 |
437 #ifndef NCP_COMMON_BRIDGE_FAMILY |
433 #ifndef NCP_COMMON_BRIDGE_FAMILY |
438 iPipeController->LinkDteIdToPipe( aDteId ); |
434 pipeHandle = iPipeController->GetPipeHandle(); |
439 #endif |
435 #endif |
440 TInt size = ISI_HEADER_SIZE + SIZE_AT_MODEM_CONNECT_REQ; |
436 |
441 |
437 if( pipeHandle == KInvalidPipeHandle ) |
442 HBufC8* message = HBufC8::New( size ); |
438 { |
443 TRACE_ASSERT( message ); |
439 C_TRACE(( _L("Connecting with dteId %d. (RComm was not used before connecting the plug-ins)."), aDteId )); |
444 TPtr8 messageptr = message->Des(); |
440 err = SendAtModemConnectReq( aDteId ); |
445 TIsiSend isimessage( messageptr, size ); |
441 } |
446 isimessage.Set8bit(ISI_HEADER_OFFSET_RESOURCEID, PN_AT_MODEM); |
442 else |
447 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_TID, KDefaultTId); |
443 { |
448 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_MESSAGEID, AT_MODEM_CONNECT_REQ); |
444 C_TRACE(( _L("Connecting with pipehandle %d."), pipeHandle )); |
449 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_DTEID, aDteId); |
445 err = SendAtModemConnectReq( pipeHandle ); |
450 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_FILLERBYTE1, KFiller); |
446 } |
451 isimessage.Complete(); |
447 |
452 |
448 if( err != KErrNone ) |
453 DUMP_MESSAGE( messageptr ); |
449 { |
454 TInt err = iIscApi->Send( messageptr ); |
450 TRACE_ASSERT_ALWAYS; |
455 TRACE_ASSERT( err == KErrNone ); |
451 return KErrNotFound; |
456 delete message; |
452 } |
457 message = NULL; |
453 |
458 return err; |
454 return KErrNone; |
459 } |
455 } |
460 |
456 |
461 void CModemAtHandler::SetDisconnected( TBool aIsDisconnected ) |
457 void CModemAtHandler::SetDisconnected( TBool aIsDisconnected ) |
462 { |
458 { |
463 C_TRACE (( _T("CModemAtHandler::SetDisconnected(%d)"),aIsDisconnected )); |
459 C_TRACE (( _T("CModemAtHandler::SetDisconnected(%d)"),aIsDisconnected )); |
516 |
512 |
517 |
513 |
518 void CModemAtHandler::HandleModemConnectResp( const TIsiReceiveC& aMessage ) |
514 void CModemAtHandler::HandleModemConnectResp( const TIsiReceiveC& aMessage ) |
519 { |
515 { |
520 C_TRACE (( _T("CModemAtHandler::HandleModemConnectResp()") )); |
516 C_TRACE (( _T("CModemAtHandler::HandleModemConnectResp()") )); |
521 TInt dteId= aMessage.Get8bit(ISI_HEADER_SIZE+ AT_MODEM_CONNECT_RESP_OFFSET_DTEID); |
517 TUint8 dteId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_CONNECT_RESP_OFFSET_DTEID ); |
522 TInt status = aMessage.Get8bit(ISI_HEADER_SIZE+ AT_MODEM_CONNECT_RESP_OFFSET_RESULT); |
518 TInt status = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_CONNECT_RESP_OFFSET_RESULT ); |
523 TInt err = KErrGeneral; |
519 TInt err = KErrGeneral; |
524 if( status == AT_MODEM_RESULT_OK ) |
520 if( status == AT_MODEM_RESULT_OK ) |
525 { |
521 { |
526 C_TRACE(_L("Connected ok, AT_MODEM_RESULT_OK received")); |
522 C_TRACE(_L("Connected ok, AT_MODEM_RESULT_OK received")); |
527 err = KErrNone; |
523 err = KErrNone; |
528 } |
524 } |
529 else |
525 else |
530 { |
526 { |
531 C_TRACE((_L("Connection failed, AT_MODEM_RESULT_ERROR received (%d)"),status)); |
527 C_TRACE((_L("Connection failed, AT_MODEM_RESULT_ERROR received (%d)"), status)); |
532 TRACE_ASSERT_ALWAYS; |
528 TRACE_ASSERT_ALWAYS; |
533 } |
529 } |
534 |
530 |
535 iServer.BroadcastModemConnected( dteId, err ); |
531 iServer.SetDteIdAndConnect( dteId, err ); |
536 } |
532 } |
537 |
533 |
538 |
534 |
539 void CModemAtHandler::HandleSignalInd( const TIsiReceiveC& aMessage ) |
535 void CModemAtHandler::HandleSignalInd( const TIsiReceiveC& aMessage ) |
540 { |
536 { |
541 C_TRACE (( _T("CModemAtHandler::HandleSignalInd()") )); |
537 C_TRACE (( _T("CModemAtHandler::HandleSignalInd()") )); |
542 TInt dteId = aMessage.Get8bit(ISI_HEADER_SIZE+ AT_MODEM_SIGNAL_IND_OFFSET_DTEID); |
538 TUint8 dteId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_SIGNAL_IND_OFFSET_DTEID ); |
543 iServer.HandleSignalInd( dteId ); |
539 iServer.HandleSignalInd( dteId ); |
544 } |
540 } |
545 |
541 |
546 void CModemAtHandler::HandleUnsolicitedData( const TIsiReceiveC& aMessage ) |
542 void CModemAtHandler::HandleUnsolicitedData( const TIsiReceiveC& aMessage ) |
547 { |
543 { |
548 C_TRACE (( _T("CModemAtHandler::HandleUnsolicitedData()") )); |
544 C_TRACE (( _T("CModemAtHandler::HandleUnsolicitedData()") )); |
549 TInt dteId = aMessage.Get8bit( ISI_HEADER_SIZE+ AT_MODEM_UNSOLICITED_DATA_IND_OFFSET_LENGTH ); |
545 TUint8 dteId = aMessage.Get8bit( ISI_HEADER_SIZE+ AT_MODEM_UNSOLICITED_DATA_IND_OFFSET_LENGTH ); |
550 TInt length = aMessage.Get16bit( ISI_HEADER_SIZE+AT_MODEM_UNSOLICITED_DATA_IND_OFFSET_LENGTH ); |
546 TInt length = aMessage.Get16bit( ISI_HEADER_SIZE+AT_MODEM_UNSOLICITED_DATA_IND_OFFSET_LENGTH ); |
551 |
547 |
552 iServer.HandleUnsolicitedData( dteId, |
548 iServer.HandleUnsolicitedData( dteId, |
553 aMessage.GetData( ISI_HEADER_SIZE + AT_MODEM_UNSOLICITED_DATA_IND_OFFSET_UNSOLICITEDDATABUFFER, |
549 aMessage.GetData( ISI_HEADER_SIZE + AT_MODEM_UNSOLICITED_DATA_IND_OFFSET_UNSOLICITEDDATABUFFER, |
554 length ) ); |
550 length ) ); |
556 |
552 |
557 |
553 |
558 void CModemAtHandler::HandleIntermediateDataInd( const TIsiReceiveC& aMessage ) |
554 void CModemAtHandler::HandleIntermediateDataInd( const TIsiReceiveC& aMessage ) |
559 { |
555 { |
560 C_TRACE (( _T("CModemAtHandler::HandleIntermediateDataInd()") )); |
556 C_TRACE (( _T("CModemAtHandler::HandleIntermediateDataInd()") )); |
561 TInt dteId = aMessage.Get8bit( ISI_HEADER_SIZE+ AT_MODEM_INTERMEDIATE_DATA_IND_OFFSET_DTEID ); |
557 TUint8 dteId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_INTERMEDIATE_DATA_IND_OFFSET_DTEID ); |
562 TInt length= aMessage.Get16bit( ISI_HEADER_SIZE+AT_MODEM_INTERMEDIATE_DATA_IND_OFFSET_LENGTH ); |
558 TInt length = aMessage.Get16bit( ISI_HEADER_SIZE + AT_MODEM_INTERMEDIATE_DATA_IND_OFFSET_LENGTH ); |
563 |
559 |
564 TUint transactionId = aMessage.Get8bit( ISI_HEADER_SIZE+ AT_MODEM_CMD_RESP_OFFSET_TID ); |
560 TUint transactionId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_CMD_RESP_OFFSET_TID ); |
565 transactionId = iLastTransactionId[ dteId ]; |
561 |
566 TUint8 command = transactionId & KCommandBits; |
562 C_TRACE((_L("transactionId from %d"), transactionId)); |
|
563 transactionId = iLastTransactionId; |
|
564 C_TRACE((_L("transactionId after setting it to iLastTransactionId: %d"), transactionId)); |
|
565 |
|
566 TUint8 command = transactionId & KCommandBits; //normal AT-cmd or Nvram-query |
567 TUint8 pluginType = transactionId >> KTransactionIdBitsShift; |
567 TUint8 pluginType = transactionId >> KTransactionIdBitsShift; |
568 C_TRACE((_L("dteid %d iLastrid[dteid] = %d trid %d"), dteId, iLastTransactionId[dteId], transactionId)); |
568 C_TRACE((_L("dteId %d, command %d (AT=0,NVRAM=1), pluginType = %d (atext=0,common=1)"), dteId, command, pluginType)); |
569 |
569 |
570 iServer.HandleIntermediateDataInd( dteId, |
570 iServer.HandleIntermediateDataInd( dteId, |
571 (TATPluginInterface) pluginType, |
571 (TATPluginInterface) pluginType, |
572 aMessage.GetData( ISI_HEADER_SIZE + AT_MODEM_INTERMEDIATE_DATA_IND_OFFSET_INTERMEDIATEDATABUFFER, |
572 aMessage.GetData( ISI_HEADER_SIZE + AT_MODEM_INTERMEDIATE_DATA_IND_OFFSET_INTERMEDIATEDATABUFFER, |
573 length), |
573 length), |
577 |
577 |
578 void CModemAtHandler::HandleRedirectInd( const TIsiReceiveC& aMessage ) |
578 void CModemAtHandler::HandleRedirectInd( const TIsiReceiveC& aMessage ) |
579 { |
579 { |
580 C_TRACE (( _T("CModemAtHandler::HandleRedirectInd()") )); |
580 C_TRACE (( _T("CModemAtHandler::HandleRedirectInd()") )); |
581 |
581 |
582 TInt dteId = aMessage.Get8bit( ISI_HEADER_SIZE+ AT_MODEM_DATA_REDIRECT_IND_OFFSET_DTEID ); |
582 TUint8 dteId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_IND_OFFSET_DTEID ); |
583 TInt newSecondDevId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_IND_OFFSET_DEVICEID ); |
583 TInt newSecondDevId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_IND_OFFSET_DEVICEID ); |
584 TInt newSecondObjId = aMessage.Get16bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_IND_OFFSET_SERVERID ); |
584 TInt newSecondObjId = aMessage.Get16bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_IND_OFFSET_SERVERID ); |
585 #ifndef NCP_COMMON_BRIDGE_FAMILY |
585 #ifndef NCP_COMMON_BRIDGE_FAMILY |
586 iPipeController->RedirectPipe( dteId, newSecondDevId, newSecondObjId ); |
586 iPipeController->RedirectPipe( dteId, newSecondDevId, newSecondObjId ); |
587 #endif |
587 #endif |
588 } |
588 } |
617 |
617 |
618 |
618 |
619 void CModemAtHandler::HandleRedirectResultResp(const TIsiReceiveC& aMessage) |
619 void CModemAtHandler::HandleRedirectResultResp(const TIsiReceiveC& aMessage) |
620 { |
620 { |
621 C_TRACE (( _T("CModemAtHandler::HandleRedirectResultResp()") )); |
621 C_TRACE (( _T("CModemAtHandler::HandleRedirectResultResp()") )); |
622 TInt dteId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_RESULT_RESP_OFFSET_DTEID ); |
622 TUint8 dteId = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_RESULT_RESP_OFFSET_DTEID ); |
623 TInt error = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_RESULT_RESP_OFFSET_RESULT ); |
623 TInt error = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_DATA_REDIRECT_RESULT_RESP_OFFSET_RESULT ); |
624 C_TRACE((_L("CModemAtHandler::HandleRedirectResultResp() dte %d"), dteId)); |
624 C_TRACE((_L("CModemAtHandler::HandleRedirectResultResp() dte %d"), dteId)); |
625 |
625 |
626 if( error == AT_MODEM_RESULT_ERROR ) |
626 if( error == AT_MODEM_RESULT_ERROR ) |
627 { |
627 { |
632 { |
632 { |
633 C_TRACE(_L("CModemAtHandler::HandleRedirectResultResp() redirect OK")); |
633 C_TRACE(_L("CModemAtHandler::HandleRedirectResultResp() redirect OK")); |
634 } |
634 } |
635 |
635 |
636 } |
636 } |
637 void CModemAtHandler::HandleCommandModeChange( TInt aDteId, TCommandMode aMode ) |
637 void CModemAtHandler::HandleCommandModeChange( TCommandMode aMode ) |
638 { |
638 { |
639 C_TRACE(( _T("CModemAtHandler::HandleCommandModeChange() aDteId: %d aMode: %d"),aDteId, (TInt) aMode )); |
639 C_TRACE(( _T("CModemAtHandler::HandleCommandModeChange() aMode: %d"), (TInt) aMode )); |
640 iServer.HandleCommandModeChange( aDteId, aMode ); |
640 iServer.HandleCommandModeChange( aMode ); |
641 } |
641 } |
642 |
642 |
643 TInt CModemAtHandler::SendEscapeSignalDetection( const TUint8 aDteId ) |
643 TInt CModemAtHandler::SendEscapeSignalDetection( const TUint8 aDteId ) |
644 { |
644 { |
645 C_TRACE((_T("CModemAtHandler::SendEscapeSignalDetection(%d)"), aDteId)); |
645 C_TRACE((_T("CModemAtHandler::SendEscapeSignalDetection(%d)"), aDteId)); |
646 #ifdef __WINSCW__ |
646 #ifdef __WINSCW__ |
647 iDteId = aDteId; |
647 iDteId = aDteId; |
648 return KErrNone; |
648 return KErrNone; |
649 #endif |
649 #endif |
650 |
650 |
651 TInt error( KErrGeneral ); |
651 TInt error( KErrGeneral ); |
652 TUint msgSize( ISI_HEADER_SIZE + SIZE_AT_MODEM_SIGNAL_DETECTED_REQ ); |
652 TUint msgSize( ISI_HEADER_SIZE + SIZE_AT_MODEM_SIGNAL_DETECTED_REQ ); |
653 TUint size( msgSize + SIZE_AT_MODEM_SB_SIGNAL_DETECTED ); |
653 TUint size( msgSize + SIZE_AT_MODEM_SB_SIGNAL_DETECTED ); |
654 HBufC8* message = HBufC8::New( size ); |
654 HBufC8* message = HBufC8::New( size ); |
669 isimessage.Set8bit( msgSize + AT_MODEM_SB_SIGNAL_DETECTED_OFFSET_TYPEOFSIGNALDETECTED, |
669 isimessage.Set8bit( msgSize + AT_MODEM_SB_SIGNAL_DETECTED_OFFSET_TYPEOFSIGNALDETECTED, |
670 AT_MODEM_SIGNAL_ESCAPE_DETECTED ); |
670 AT_MODEM_SIGNAL_ESCAPE_DETECTED ); |
671 isimessage.Set8bit( msgSize + AT_MODEM_SB_SIGNAL_DETECTED_OFFSET_FILLERBYTE1, 0x00 ); |
671 isimessage.Set8bit( msgSize + AT_MODEM_SB_SIGNAL_DETECTED_OFFSET_FILLERBYTE1, 0x00 ); |
672 isimessage.Complete(); |
672 isimessage.Complete(); |
673 error = iIscApi->Send(messageptr); |
673 error = iIscApi->Send(messageptr); |
674 C_TRACE((_L("escape send result %d"), error )); |
674 C_TRACE((_L("escape send result %d"), error )); |
675 delete message; |
675 delete message; |
676 message = NULL; |
676 message = NULL; |
677 } |
677 } |
678 else |
678 else |
679 { |
679 { |
685 |
685 |
686 |
686 |
687 void CModemAtHandler::HandleSignalDetectedResp( const TIsiReceiveC& aMessage ) |
687 void CModemAtHandler::HandleSignalDetectedResp( const TIsiReceiveC& aMessage ) |
688 { |
688 { |
689 C_TRACE (( _T("CModemAtHandler::HandleSignalDetectedResp() escape sequence detect response received from cellmo") )); |
689 C_TRACE (( _T("CModemAtHandler::HandleSignalDetectedResp() escape sequence detect response received from cellmo") )); |
690 TInt dteId( aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_SIGNAL_DETECTED_RESP_OFFSET_DTEID ) ); |
690 TUint8 dteId( aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_SIGNAL_DETECTED_RESP_OFFSET_DTEID ) ); |
691 TRACE_ASSERT( dteId < KMaxDteIdCount ); |
|
692 TInt result = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_SIGNAL_DETECTED_RESP_OFFSET_RESULT ); |
691 TInt result = aMessage.Get8bit( ISI_HEADER_SIZE + AT_MODEM_SIGNAL_DETECTED_RESP_OFFSET_RESULT ); |
693 C_TRACE((_L("CModemAtHandler::HandleSignalDetectedResp() dteId %d"), dteId)); |
692 C_TRACE((_L("CModemAtHandler::HandleSignalDetectedResp() dteId %d"), dteId)); |
694 TRACE_ASSERT( result == AT_MODEM_RESULT_OK ); |
693 TRACE_ASSERT( result == AT_MODEM_RESULT_OK ); |
695 } |
694 } |
696 |
695 |
698 { |
697 { |
699 C_TRACE((_T("CModemAtHandler::SetModemAtExistsInCmt(%d)"), (TInt)aModemAtExistsInCmt)); |
698 C_TRACE((_T("CModemAtHandler::SetModemAtExistsInCmt(%d)"), (TInt)aModemAtExistsInCmt)); |
700 iModemAtExistInCmt = aModemAtExistsInCmt; |
699 iModemAtExistInCmt = aModemAtExistsInCmt; |
701 } |
700 } |
702 |
701 |
|
702 TInt CModemAtHandler::SendAtModemConnectReq( const TUint8 aDteId ) |
|
703 { |
|
704 C_TRACE (( _T("CModemAtHandler::SendAtModemConnectReq()") )); |
|
705 TInt size = ISI_HEADER_SIZE + SIZE_AT_MODEM_CONNECT_REQ; |
|
706 HBufC8* message = HBufC8::New( size ); |
|
707 TRACE_ASSERT( message ); |
|
708 TPtr8 messageptr = message->Des(); |
|
709 TIsiSend isimessage( messageptr, size ); |
|
710 isimessage.Set8bit(ISI_HEADER_OFFSET_RESOURCEID, PN_AT_MODEM); |
|
711 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_TID, KDefaultTId); |
|
712 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_MESSAGEID, AT_MODEM_CONNECT_REQ); |
|
713 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_DTEID, aDteId); |
|
714 isimessage.Set8bit(ISI_HEADER_SIZE + AT_MODEM_CONNECT_REQ_OFFSET_FILLERBYTE1, KFiller); |
|
715 isimessage.Complete(); |
|
716 DUMP_MESSAGE( messageptr ); |
|
717 TInt err = iIscApi->Send( messageptr ); |
|
718 TRACE_ASSERT( err == KErrNone ); |
|
719 delete message; |
|
720 message = NULL; |
|
721 C_TRACE (( _T("CModemAtHandler::SendAtModemConnectReq()<< returned: %d"), err )); |
|
722 return err; |
|
723 } |
|
724 |