#ifndef XP_CDS_TK_H
#define XP_CDS_TK_H


#include <project_setup.h>

#include "x_basic_types.h"
#include "xp_cds_status_bus.h"
#include "xp_cds_tk_10510.h"
#include "xp_cds_tk_21180.h"
#include "xp_cds_tk_21300.h"
#include "xp_cds_tk_22220.h"
#include "xp_cds_tk_23470.h"
#include "xp_cds_tk_23550.h"
#include "xp_cds_tk_balzam.h"
#include "xp_id_plate_info.h"
#include "xp_plane_adr.h"





/////////////////////////////////////////////////////////////////
/*-----------------------------------------------------------------------------
Default initalizer for object.
-----------------------------------------------------------------------------*/

#if (C_PROJECT_TYPE == PROJECT_21180)
#define T_cds_tk_DEFAULTS T_cds_tk_DEFAULTS_21180
#define T_cds_tk T_cds_tk_21180
typedef T_cds_tk_21180 *T_cds_tk_handle;
#endif

#if (C_PROJECT_TYPE == PROJECT_23470)
#define T_cds_tk_DEFAULTS T_cds_tk_DEFAULTS_23470
#define T_cds_tk T_cds_tk_23470
typedef T_cds_tk_23470 *T_cds_tk_handle;
#endif

#if (C_PROJECT_TYPE == PROJECT_21300)
#define T_cds_tk_DEFAULTS T_cds_tk_DEFAULTS_21300
#define T_cds_tk T_cds_tk_21300
typedef T_cds_tk_21300 *T_cds_tk_handle;
#endif

#if (C_PROJECT_TYPE == PROJECT_22220)
#define T_cds_tk_DEFAULTS T_cds_tk_DEFAULTS_22220
#define T_cds_tk T_cds_tk_22220
typedef T_cds_tk_22220 *T_cds_tk_handle;
#endif

#if (C_PROJECT_TYPE == PROJECT_BALZAM)
#define T_cds_tk_DEFAULTS T_cds_tk_DEFAULTS_BALZAM
#define T_cds_tk T_cds_tk_balzam
typedef T_cds_tk_balzam *T_cds_tk_handle;
#endif


#if (C_PROJECT_TYPE == PROJECT_23550)
#define T_cds_tk_DEFAULTS T_cds_tk_DEFAULTS_23550
#define T_cds_tk T_cds_tk_23550
typedef T_cds_tk_23550 *T_cds_tk_handle;
#endif

#if (C_PROJECT_TYPE == PROJECT_10510)
#define T_cds_tk_DEFAULTS T_cds_tk_DEFAULTS_10510
#define T_cds_tk T_cds_tk_10510
typedef T_cds_tk_10510 *T_cds_tk_handle;
#endif


/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////

void cds_tk_init(T_cds_tk_handle);

int cds_tk_read_all(T_cds_tk_handle);
int cds_tk_write_all(T_cds_tk_handle);
///
int cds_tk_read_sbus_21300(T_cds_tk_handle_21300);
int cds_tk_write_sbus_21300(T_cds_tk_handle_21300);

int cds_tk_read_sbus_22220(T_cds_tk_handle_22220);
int cds_tk_write_sbus_22220(T_cds_tk_handle_22220);
int cds_tk_read_pbus_22220(T_cds_tk_handle_22220);

int cds_tk_read_sbus_balzam(T_cds_tk_handle_balzam);
int cds_tk_write_sbus_balzam(T_cds_tk_handle_balzam);

int cds_tk_read_sbus_21180(T_cds_tk_handle_21180);
int cds_tk_write_sbus_21180(T_cds_tk_handle_21180);

int cds_tk_read_sbus_23470(T_cds_tk_handle_23470);
int cds_tk_write_sbus_23470(T_cds_tk_handle_23470);

int cds_tk_read_sbus_23550(T_cds_tk_handle_23550);
int cds_tk_write_sbus_23550(T_cds_tk_handle_23550);
int cds_tk_read_pbus_23550(T_cds_tk_handle_23550);

int cds_tk_read_sbus_10510(T_cds_tk_handle_10510);
int cds_tk_write_sbus_10510(T_cds_tk_handle_10510);


////
int cds_tk_read_pbus(T_cds_tk_handle);
int cds_tk_write_pbus(T_cds_tk_handle);

void cds_tk_reset_error(T_cds_tk_handle);
void cds_tk_store_disable_error(T_cds_tk_handle);
void cds_tk_restore_enable_error(T_cds_tk_handle);

#endif