Razvalyaev
7e0063eee0
Все основные файлы подтянуты без изменений Изменены (только папка main_matlab): - заглушки для ненужных функций (main_matlab.c) - iq библиотека (IQmathLib_matlab.c) - библиотеки DSP281x
218 lines
3.3 KiB
C
218 lines
3.3 KiB
C
#include "xp_cds_status_bus.h"
|
|
//#include "xp_tools.h"
|
|
|
|
|
|
void clear_cur_stat_sbus(T_cds_status_serial_bus *v)
|
|
{
|
|
v->cur_read_error = 0;
|
|
v->cur_write_error = 0;
|
|
}
|
|
|
|
void clear_cur_stat_pbus(T_cds_status_parallel_bus *v)
|
|
{
|
|
v->cur_read_error = 0;
|
|
v->cur_write_error = 0;
|
|
}
|
|
|
|
void clear_cur_stat_hwpbus(T_cds_status_hwp_bus *v)
|
|
{
|
|
v->cur_read_error = 0;
|
|
v->cur_write_error = 0;
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////
|
|
////////////////////////////////////////////
|
|
|
|
|
|
void clear_stat_sbus(T_cds_status_serial_bus *v)
|
|
{
|
|
v->count_read_error = 0;
|
|
v->count_write_error = 0;
|
|
v->count_read_ok = 0;
|
|
v->count_write_ok = 0;
|
|
v->cur_read_error = 0;
|
|
v->cur_write_error = 0;
|
|
|
|
v->status = 0;
|
|
}
|
|
|
|
void clear_stat_pbus(T_cds_status_parallel_bus *v)
|
|
{
|
|
v->count_read_error = 0;
|
|
v->count_write_error = 0;
|
|
v->count_read_ok = 0;
|
|
v->count_write_ok = 0;
|
|
v->cur_read_error = 0;
|
|
v->cur_write_error = 0;
|
|
|
|
v->status = 0;
|
|
}
|
|
|
|
void clear_stat_hwpbus(T_cds_status_hwp_bus *v)
|
|
{
|
|
v->count_read_error = 0;
|
|
v->count_write_error = 0;
|
|
v->count_read_ok = 0;
|
|
v->count_write_ok = 0;
|
|
|
|
v->cur_read_error = 0;
|
|
v->cur_write_error = 0;
|
|
|
|
v->status = 0;
|
|
}
|
|
|
|
|
|
int check_cds_ready_sbus(int err, int wr_rd, T_cds_status_serial_bus *v)
|
|
{
|
|
|
|
if (wr_rd == ITS_WRITE_BUS) // write
|
|
{
|
|
if (err)
|
|
{
|
|
if (v->cur_write_error < v->max_write_error)
|
|
v->cur_write_error++;
|
|
}
|
|
else
|
|
{
|
|
if (v->cur_write_error > 0)
|
|
v->cur_write_error--;
|
|
}
|
|
}
|
|
|
|
|
|
if (wr_rd == ITS_READ_BUS) // read
|
|
{
|
|
|
|
if (err)
|
|
{
|
|
if (v->cur_read_error < v->max_read_error)
|
|
v->cur_read_error++;
|
|
}
|
|
else
|
|
{
|
|
if (v->cur_read_error > 0)
|
|
v->cur_read_error--;
|
|
}
|
|
}
|
|
|
|
|
|
if ( (v->cur_write_error >= v->max_write_error) || ( v->cur_read_error >= v->max_read_error) )
|
|
return 1;
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
int check_cds_ready_pbus(int err, int wr_rd, T_cds_status_parallel_bus *v)
|
|
{
|
|
|
|
if (wr_rd == ITS_WRITE_BUS) // write
|
|
{
|
|
if (err)
|
|
{
|
|
if (v->cur_write_error < v->max_write_error)
|
|
v->cur_write_error++;
|
|
}
|
|
else
|
|
{
|
|
if (v->cur_write_error > 0)
|
|
v->cur_write_error--;
|
|
}
|
|
}
|
|
|
|
|
|
if (wr_rd == ITS_READ_BUS) // read
|
|
{
|
|
|
|
if (err)
|
|
{
|
|
if (v->cur_read_error < v->max_read_error)
|
|
v->cur_read_error++;
|
|
}
|
|
else
|
|
{
|
|
if (v->cur_read_error > 0)
|
|
v->cur_read_error--;
|
|
}
|
|
}
|
|
|
|
|
|
if ( (v->cur_write_error >= v->max_write_error) || ( v->cur_read_error >= v->max_read_error) )
|
|
return 1;
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
int check_cds_ready_hwpbus(int err, int wr_rd, T_cds_status_hwp_bus *v)
|
|
{
|
|
|
|
if (wr_rd == ITS_WRITE_BUS) // write
|
|
{
|
|
if (err)
|
|
{
|
|
v->count_write_error++;
|
|
if (v->cur_write_error < v->max_write_error)
|
|
v->cur_write_error++;
|
|
}
|
|
else
|
|
{
|
|
if (v->cur_write_error > 0)
|
|
v->cur_write_error--;
|
|
v->count_write_ok++;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if (wr_rd == ITS_READ_BUS) // read
|
|
{
|
|
|
|
if (err)
|
|
{
|
|
v->count_read_error++;
|
|
if (v->cur_read_error < v->max_read_error)
|
|
v->cur_read_error++;
|
|
}
|
|
else
|
|
{
|
|
if (v->cur_read_error > 0)
|
|
v->cur_read_error--;
|
|
v->count_read_ok++;
|
|
}
|
|
}
|
|
|
|
|
|
if ( (v->cur_write_error >= v->max_write_error) || ( v->cur_read_error >= v->max_read_error) )
|
|
return 1;
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
void set_status_cds(int err_ready, T_component_status *ss)
|
|
{
|
|
|
|
if (err_ready == 0) // all ok
|
|
{
|
|
if ((*ss == component_NotReady) || (*ss == component_Started))
|
|
*ss = component_Ready;
|
|
}
|
|
|
|
if (err_ready == 1) // all !bad!
|
|
{
|
|
*ss = component_ErrorSBus;//component_Error;
|
|
}
|
|
|
|
}
|
|
|
|
|