WORD GSM_SendDataToSmtp(WORD aSender, WORD aReceiver, WORD aCommand, WORD aDataLength, BYTE *aData)

WORD	GSM_SendDataToSmtp(WORD aSender, WORD aReceiver, WORD aCommand, WORD aDataLength, BYTE *aData)
{
 WORD_VAL	wvTemp, wvTemp2;
 WORD write_index;
    WORD k,i, index;
 GprsTxBuffControll.Read = Gprs.IndexReadTx;
 GprsTxBuffControll.Write = Gprs.IndexWriteTx;
 if(CYCLIC_BUFFER_GetFreeSpace( &GprsTxBuffControll, MAX_GPRS_BUFFER ) < (aDataLength + 8)){
  //není dostatek místa ve vysílacím bufferu, ukončení funkce
  return FALSE;	
 }
 write_index = GprsTxBuffControll.Write;
 strcpy(Gsm.CommandData, "***");
 strcat((char*)Gsm.CommandData, TableNameDcidSMS[DesElement.IndexDCIDsender].Text);	
 strcat((char*)Gsm.CommandData, ": ");
 for(index=0; index<NUM_ANSWERS_EVENTS_SMS; index++){
  if(TableAnswerSMS[index].Answer == aCommand && (TableAnswerSMS[index].Element == IndexAddressElement[DesElement.IndexDCIDsender][2] ||
   TableAnswerSMS[index].Element == ALL_ELEMENTS))	break;
 }
 switch(aCommand){
  case BA_GET_PROTOCOL_VERSION:
   break;
  default:
   GSM_CreateSmsAnswer(aCommand, aData, aDataLength, index, Gsm.CommandData);
   break;
 }
 wvTemp.Val = strlen(Gsm.CommandData);
 Gsm.CommandData[wvTemp.Val] = 0;
 wvTemp.Val++;
 CYCLIC_BUFFER_Write( Gsm.CommandData, wvTemp.Val, &GprsTxBuffControll, Gprs.TxBuff, MAX_GPRS_BUFFER );
 Gprs.TxBuff[write_index++] = MESSAGE_TYPE_SMTP;
 if( write_index >= MAX_GPRS_BUFFER)	write_index = 0;
 Gprs.TxBuff[write_index++] = wvTemp.byte.HB;
 if( write_index >= MAX_GPRS_BUFFER)	write_index = 0;
 Gprs.TxBuff[write_index] = wvTemp.byte.LB;
 Gprs.IndexReadTx = GprsTxBuffControll.Read;
 Gprs.IndexWriteTx = GprsTxBuffControll.Write;
 ModemGsm.Semaphore.Control.SendSmtp = TRUE;
 return ERR_OK;
}