="justify"> * ВИХІДНІ ПАРАМЕТРИ: немає
*/t_UHInterface :: WriteConfToUH (unsigned char ucCINum)
{
unsigned int uiConf;
# ifndef ___ PC
int ires;
# endif = ucCINum;
uiConf <<= 8;
uiConf | = m_ucUHNum; (p_DOUT)
{(" n <
}
# ifndef ___ PC
// записати дані в пам'ять УШ за допомогою інтерфейсу HPI
if ((ires = (dsp6713b_write (m_devd, (unsigned int) m_puiBaseAddress, uiConf))))
{
dsp6713b_reset (m_devd); b_close (m_devd); (" n!! t_UHInterface :: WriteConfToUH% i: DSP2_write error! n Addr =% 08x Res =% i n", m_ucUHNum ,
(unsigned int) m_puiBaseAddress, ires);
exit (1);
}
# endif
}
/** ПРИЗНАЧЕННЯ: задати накопичення даних мовного трафіку для КІ в буфері накопичення
* ВХІДНІ ПАРАМЕТРИ: ucCI - номер канального інтервалу [0-31],
* ВИХІДНІ ПАРАМЕТРИ: true - успішно
* false - помилка: номер КІ> 31
*/t_UHInterface :: StartDataAccumulation (unsigned char ucCI)
{(ucCI> 31) return (false); _AccumulatedData.lock (); _IsAccumulating [ucCI] = true; _AccumulatedData.unlock (); (true);
}
/** ПРИЗНАЧЕННЯ: припинити накопичення даних мовного трафіку для КІ в буфері
* накопичення
* ВХІДНІ ПАРАМЕТРИ: ucCI - номер канального інтервалу [0-31],
* ВИХІДНІ ПАРАМЕТРИ: true - успішно
* false - помилка: номер КІ> 31
*/t_UHInterface :: StopDataAccumulation (unsigned char ucCI)
{(ucCI> 31) return (false); _AccumulatedData.lock (); _IsAccumulating [ucCI] = false;
// обнулити всі індекси для циклічних буферів
}
/** ПРИЗНАЧЕННЯ: прочитати дані з внутрішньої пам'яті УШ і при необхідності
* помістити їх в буфер накопичення
* ВХІДНІ ПАРАМЕТРИ: немає
* ВИХІДНІ ПАРАМЕТРИ: true - дані прочитані,
* false - дані не прочитані (у разі, якщо значення m_uiDumpNum
* некоректно)
*/t_UHInterface :: GetDataFromUH (void)
{
unsigned int * puiAddress;
unsigned int uiSize, k;
# ifndef ___ PC
int ires;
# endif
int i, j, n, ii;
unsigned char * pucData; buf1 [400]; (! (m_uiDumpNum & 0x03)) return (false); = m_puiBaseDataForRTP;
if (m_uiDumpNum == 2) puiAddress + = DUMP_SIZE>> 2;
# ifdef ___ PC
// імітуємо прийом даних
i = 0;
j = 4;
while (i <32)
{
if (m_IsAccumulating [i])
{
// CN-0, size-80
ucfromPCM0 [j-4] = 0x50 ;//20;
ucfromPCM0 [j-1] = 0; = 0;
while (k <80)
{
ucfromPCM0 [j + k + +] = m_ucI;
}
}
j = (+ + i) * 84 +4;
}
if (m_ucI <255) m_ucI + +; else m_ucI = 0; (m_puiDataFromUH, (unsigned int *) ucfromPCM0, DUMP_SIZE);
# else
// прочитати дані за допомогою інтерфейсу HPI
if ((ires = (dsp6713b_read_IS (m_devd, (unsigned int) puiAddress, m_puiDataFromUH, DUMP_SIZE))))
{
dsp6713b_reset (m_devd);
dsp6713b_close (m_devd);
printf (" n!! t_UHInterface :: GetDataFromUH% i: DSP2_read_IS error! n Addr =% 08x Res =% i n", m_ucUHNum,
(unsigned int) puiAddress, ires);
exit (1);
}
# endif
for (i = 31; i> = 0; i -)
{