smsprotocols/smsstack/gsmu/src/gsmupdu.cpp
changeset 20 244d7c5f118e
parent 0 3553901f7fa8
child 24 6638e7f4bd8f
child 42 3adadc800673
equal deleted inserted replaced
19:1f776524b15c 20:244d7c5f118e
   151 	smspdu->ConstructL(aCharacterSetConverter,aFs);
   151 	smspdu->ConstructL(aCharacterSetConverter,aFs);
   152 
   152 
   153 	TGsmuLex8 lex(aGsmSms.Pdu());
   153 	TGsmuLex8 lex(aGsmSms.Pdu());
   154 	smspdu->DecodeL(lex);
   154 	smspdu->DecodeL(lex);
   155 
   155 
   156 	// TODO Service centre address should be in rigth format when it comes from TSY
       
   157 	smspdu->SetParsedServiceCenterAddressL(aGsmSms.Sca());
   156 	smspdu->SetParsedServiceCenterAddressL(aGsmSms.Sca());
   158 
   157 
   159 	CleanupStack::Pop(smspdu);
   158 	CleanupStack::Pop(smspdu);
   160 	return smspdu;
   159 	return smspdu;
   161 	} // CSmsPDU::NewL
   160 	} // CSmsPDU::NewL
   485 	CSmsAddress* tofromaddress=(CSmsAddress*) ToFromAddressPtr();
   484 	CSmsAddress* tofromaddress=(CSmsAddress*) ToFromAddressPtr();
   486 	tofromaddress->SetParsedAddressL(aParsedAddress);
   485 	tofromaddress->SetParsedAddressL(aParsedAddress);
   487 	} // CSmsPDU::SetParsedToFromAddressL
   486 	} // CSmsPDU::SetParsedToFromAddressL
   488 
   487 
   489 
   488 
   490 //
       
   491 //  TODO move this to the DCS descriptions
       
   492 //  Also, the functions available are dependant on bits 7 to 4 in the data coding scheme.
       
   493 //  Functions panic when they are not available.
       
   494 //  This requires the caller to have some knowledge of ETSI GSM 03.38 in order to keep the data coding scheme in a consistent state.
       
   495 //
   489 //
   496 /**
   490 /**
   497  *  Updates the three pieces of concatenation data (reference number,
   491  *  Updates the three pieces of concatenation data (reference number,
   498  *  pdu index and max pdu number) in this PDU.
   492  *  pdu index and max pdu number) in this PDU.
   499  * 
   493  * 
  2634 	iParameterIndicator.DecodeL(aPdu);
  2628 	iParameterIndicator.DecodeL(aPdu);
  2635 	if (iParameterIndicator.Extension())
  2629 	if (iParameterIndicator.Extension())
  2636 		{
  2630 		{
  2637 		//
  2631 		//
  2638 		//  Throw away rest of the pdu - some pdus received with this bit set don't appear to conform to 03.40 v7.4.0 spec.
  2632 		//  Throw away rest of the pdu - some pdus received with this bit set don't appear to conform to 03.40 v7.4.0 spec.
  2639 		//  TODO Will need to review later, though this appears safest option now.
  2633 		//  This appears safest option.
       
  2634 		//	TODO check new versions of 03.40 to make sre that it is still the right option
  2640 		//
  2635 		//
  2641 		((TSmsOctet&)iParameterIndicator)=TSmsParameterIndicator::ESmsPIDExtension;
  2636 		((TSmsOctet&)iParameterIndicator)=TSmsParameterIndicator::ESmsPIDExtension;
  2642 		return;
  2637 		return;
  2643 		}
  2638 		}
  2644 	if (iParameterIndicator.ProtocolIdentifierPresent())
  2639 	if (iParameterIndicator.ProtocolIdentifierPresent())
  2850 
  2845 
  2851 	if (iParameterIndicator.Extension())
  2846 	if (iParameterIndicator.Extension())
  2852 		{
  2847 		{
  2853 		//
  2848 		//
  2854 		//  Throw away rest of the pdu - some pdus received with this bit set don't appear to conform to 03.40 v7.4.0 spec.
  2849 		//  Throw away rest of the pdu - some pdus received with this bit set don't appear to conform to 03.40 v7.4.0 spec.
  2855 		//  TODO Will need to review later, though this appears safest option now.
  2850 		//  This appears safest option.
       
  2851 		//	TODO check new versions of 03.40 to make sre that it is still the right option
  2856 		//
  2852 		//
  2857 		((TSmsOctet&)iParameterIndicator)=TSmsParameterIndicator::ESmsPIDExtension;
  2853 		((TSmsOctet&)iParameterIndicator)=TSmsParameterIndicator::ESmsPIDExtension;
  2858 		return;
  2854 		return;
  2859 		}
  2855 		}
  2860 
  2856