"> if (m_iAccGetInd [ucCI] == ACCBUFF_DEPTH) m_iAccGetInd [ucCI] = 0;
}
}
else// ні даних
if (m_iAccIndDelta [ucCI] == 0)
{
mtx_AccumulatedData.unlock ();
return (false);
}
n = m_iAccGetInd [ucCI] <<5;
vSdata = m_pvAccumulatedData [ucCI + n];
m_iAccGetInd [ucCI] + +;
m_iAccIndDelta [ucCI] -;
// циклічний перехід в початок буфера
if (m_iAccGetInd [ucCI] == ACCBUFF_DEPTH) m_iAccGetInd [ucCI] = 0; _AccumulatedData.unlock (); (true);
}
/** ПРИЗНАЧЕННЯ: записати керуючу інформацію кодування/декодування під
* внутрішню пам'ять модуля УШ для тих КІ, у яких вона змінилася
* ВХІДНІ ПАРАМЕТРИ: немає
* ВИХІДНІ ПАРАМЕТРИ: немає
*/t_UHInterface :: WriteLineCtrlToUH (void)
{
// unsigned char i;
int i;
unsigned int k;
# ifndef ___ PC
int ires;
# endif
SLineCtrl * pvDataCtrl;
// прочитати з внутрішньої пам'яті УШ номер області пам'яті для
// зчитування та запису даних модулем протоколу RTP
# ifdef ___ PC
m_uiDumpNum = 1;
# else
// прочитати номер області пам'яті
if ((ires = (dsp6713b_read (m_devd, (unsigned int) m_puiDumpNum, & m_uiDumpNum))))
{
dsp6713b_reset (m_devd); b_close (m_devd); (" n!! t_UHInterface :: GetDumpNum% i: DSP2_read error! n Addr =% 08x Res =% i n", m_ucUHNum ,
(unsigned int) m_puiDumpNum, ires); (1);
}
# endif
// printf ("% i n", m_uiDumpNum);
if (! (m_uiDumpNum & 0x03))
{
printf (" n!!>> UH% i: DumpNum% 08x>% 08x n", m_ucUHNum, (unsigned int) m_puiDumpNum, m_uiDumpNum);
return;
}
// виконати запис керуючої інформації (Не взодіт в завдання)
}
/** ПРИЗНАЧЕННЯ: очистити керуючу інформацію всіх КІ у внутрішній пам'яті
* модуля УШ
* ВХІДНІ ПАРАМЕТРИ:
* ВИХІДНІ ПАРАМЕТРИ: немає
*/t_UHInterface :: ClearLineCtrlInUH (void)
{
unsigned int uiAddress1, uiAddress2;
# ifndef ___ PC
int ires;
# endif = uiAddress2 = (unsigned int) m_pvBaseDataCtrl ;//адреса області пам'яті # 1
uiAddress2 + = sizeof (m_vLineCtrl);// адреса області пам'яті # 1_LineCtrl.lock (); (m_vLineCtrl, 0, sizeof (m_vLineCtrl)); _LineCtrl.unlock ();
# ifndef ___ PC
// m_vzeroLineCtrl використовуємо, щоб не затримувати блокування m_vLineCtrl на час запису в DSP
if ((ires = (dsp6713b_write_IS (m_devd, uiAddress1, (void *) m_vzeroLineCtrl, sizeof (m_vzeroLineCtrl)))) | |
(ires = (dsp6713b_write_IS (m_devd, uiAddress2, (void *) m_vzeroLineCtrl, sizeof (m_vzeroLineCtrl)))))
{
dsp6713b_reset (m_devd);
dsp6713b_close (m_devd);
printf (" n!! t_UHInterface :: ClearLineCtrlInUH% i: DSP2_write_IS error! n Addr =% 08x Res =% i n", m_ucUHNum, uiAddress1, ires);
exit (1);
}
# endif
}
/** ПРИЗНАЧЕННЯ: запуск модуля УШ (ініціалізація модуля УШ і запуск програми в DSP)
* ВХІДНІ ПАРАМЕТРИ: немає
* ВИХІДНІ ПАРАМЕТРИ: немає
*/t_UHInterface :: StartWorkDSP2 (void)
{
unsigned int uiConf;
unsigned int ii;
int i, ires;
timespec SleepTime;
# ifndef ___ PC
// скинути DSP модуля УШ
if ((ires = (dsp6713b_reset (m_devd))))
{b_close (m_devd); ("!! t_UHInterface :: StartWorkDSP2% i DSP2_reset error, R...