Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Отчеты по практике » Розробка функцій для класу інтерфейсу між модулем УШ і модулем протоколу RTP

Реферат Розробка функцій для класу інтерфейсу між модулем УШ і модулем протоколу RTP





ign="justify"> mtx_AccumulatedData.lock (); (m_IsAccumulating [i])

{

n = m_iAccPutInd [i] <<5;

// поміщаємо дані в буфер накопичення

m_pvAccumulatedData [i + n] = * ((SData *) (m_puiDataFromUH) + i);

m_iAccPutInd [i] + +;// збільшуємо значення індексу для наступного приміщення даних (m_iAccPutInd [i] == ACCBUFF_DEPTH) m_iAccPutInd [i] = 0;// циклічний перехід в начало_iAccIndDelta [i] + +;// збільшуємо відстань по відношенню до індексу для вилучення

if (m_iAccIndDelta [i]> ACCBUFF_DEPTH)

{

// фіксуємо стан переповнення буфера накопичення

printf ("Acc buf overflow for% i n", i);

}


}

mtx_AccumulatedData.unlock ();

} ((p_DIN) && (ParamRtpPrint [m_ucIndDI]))

{


snprintf (buf1, 400,">> UH% i:% 08x (% i) n", m_ucUHNum, (unsigned int) puiAddress, m_uiDumpNum);

k = 0x80000000;

for (i = 31; i> = 0; i -)

{

if (ParamRtpPrint [m_ucIndDI] & k)

{

uiSize = ((SData *) (m_puiDataFromUH) + i) -> m_vSDataCtrl.SpeachSize;

pucData = ((SData *) (m_puiDataFromUH) + i) -> m_ucData; (buf1, 400, "[% i]: CN-% 01x , tone-% 02x, size-% i n ", i,

((SData *) (m_puiDataFromUH) + i) -> m_vSDataCtrl.CN,

((SData *) (m_puiDataFromUH) + i) -> m_vSDataCtrl.Tone, uiSize);

printf (buf1); (uiSize)

{

buf1 [0] = ' 0'; (ii = 0, j = 0, n = 0; (j

{(& buf1 [ii], 400, "% 02X", pucData [j]); + = 3; ((ii <399) && (n == 30 )) {n = 0; buf1 [ii + +] = ' n';}

}

printf (buf1);

}

}

k>> = 1;

}

}

return (true);

}

/** ПРИЗНАЧЕННЯ: помістити дані з буфера відтворення у внутрішню пам'ять УШ

* ВХІДНІ ПАРАМЕТРИ: немає

* ВИХІДНІ ПАРАМЕТРИ: true - дані записані,

* false - дані не записані (у разі, якщо значення m_uiDumpNum

* некоректно)

*/t_UHInterface :: PutDataToUH (void)

{

unsigned int * puiAddress;

# ifndef ___ PC

int ires;

# endif

int i, ii, j, n;

unsigned int uiSize, k;

unsigned char * pucData;

# ifdef ___ PCInterval; MyTimeBegin, MyTimeEnd, MyDurTime;

# endif

char buf1 [400];

// printf ("=== RTP: PutDataToUH n"); (! (m_uiDumpNum & 0x03)) return (false);

puiAddress = m_puiBaseDataForUH;

if (m_uiDumpNum == 2) puiAddress + = DUMP_SIZE>> 2; (i = 31; i> = 0; i -)

{

mtx_PlayBackBuf.lock (); (m_iPlayBackIndDelta [i]> m_ucMaxPlayBackBufInd)// переповнення

{

while (m_iPlayBackGetInd [i]! = m_iPlayBackPutInd [i])

{= m_iPlayBackGetInd [i] <<5; _iPlayBackGetInd [i] + +;

m_iPlayBackIndDelta [i] -;

// циклічний перехід в початок буфера

if (m_iPlayBackGetInd [i] == m_ucMaxPlayBackBufInd) m_iPlayBackGetInd [i] = 0;

}

}

else// ні даних

if (m_iPlayBackIndDelta [i] == 0)

{

m_pvTmpPlayBackBuf [i]. m_vSDataCtrl.SpeachSize = 0;

m_pvTmpPlayBackBuf [i]. m_vSDataCtrl.Tone = 0;

m_pvTmpPlayBackBuf [i]. m_vSDataCtrl.CN = 1; _PlayBackBuf.unlock ();

continue;

}

n = m_iPlayBackGetInd [i] <<5;

m_pvTmpPlayBackBuf [i] = m_pvPlayBackBuf [i + n];

m_iPlayBackGetInd [i] + +;

m_iPlayBackIndDelta [i] -;

// циклічний перехід в початок буфера


Назад | сторінка 8 з 12 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Методика роботи з модулем "Реалізація і склад" програмного забезп ...
  • Реферат на тему: Розробка алгоритму синтаксичного аналізу оператора виведення printf мови C ...
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Розробка системи організації віддаленого обміну файлами з використанням про ...
  • Реферат на тему: Розробка інтерфейсу користувача для роботи з базою даних &Автомайстерня&