blob: c2cf0069e833318b582c8f822287190a40151a71 [file] [log] [blame]
#ifndef FCS_H
#define FCS_H
/*******************************************************************************
** Macros
*******************************************************************************/
#define FCS_STACK_SIZE 8192
#define FCS_MAX_CLIENTS 1024
#define FCS_MAX_BINARY_CLIENTS 128
#define FCS_CONNECT_TIMEOUT 30
#define FCS_SOCKET_TIMEOUT 20
#define FCS_SOCKET_TIMEOUT_MAX 30
#define FLOW_CFG_UPDATE_TIME 1000 //in 10ms. 1000==10sec
#define FCS_FLOW_MODE_LIMIT 100 //in 100ms. 100==10sec
#define CHECK_BIT(var,pos) ((var) & (1<<(pos)))
/* FCS fixed data id's */
#define FCS_DATA_TYPE_FLOWMODE 0
#define FCS_DATA_TYPE_FLOWUPDATE 1
#define FCS_DATA_TYPE_MINIDUMP 10
#define FCS_DATA_TYPE_BINARY 11
#define FCS_DATA_TYPE_ULS_BUFFER 12
/* NVDM bitfields */
#define FCS_BIT_DISABLED 0x0010 //atcommand 1xxx
#define FCS_BIT_TRIGGERS 0x0001 // x1xx
#define FCS_BIT_TRACES 0x1000 // xx1x
/*******************************************************************************
** Externs
*******************************************************************************/
/*******************************************************************************
** Typedefs
*******************************************************************************/
typedef kal_int32 (*fcs_func_ptr)(void);
typedef kal_uint32 (*fcs_func_uptr)(void);
typedef float (*fcs_func_fptr)(void);
typedef double (*fcs_func_dptr)(void);
typedef struct _fcs_binary_
{
kal_uint32 length; //in bytes
kal_uint8 *fcs_binary_data_ptr; //data has to be accessible at all times.
}fcs_binary_data;
/*******************************************************************************
** Function prototypes
*******************************************************************************/
void fcs_add_new_data(char *fcs_type,fcs_func_ptr fcs_func);
void fcs_trigger_send(char *fcs_trigger_name_adr);
kal_uint8 is_fcs_started(void);
/*******************************************************************************
** Function MACROS
*******************************************************************************/
#if defined (__FCS_SUPPORT__)
#define FCS_TRIGGER_SEND(a) fcs_trigger_send(a)
#else
#define FCS_TRIGGER_SEND(a)
#endif
#endif