#ifndef TYPEDEFINES_H
#define TYPEDEFINES_H/** *函数名:以下变量声明来自于裴健平提供的ETH通信协议 *函数参数:NULL *函数作用:NULL *函数返回值:NULL *BY:jude */typedef unsigned char boolean;typedef signed char int8;typedef unsigned char uint8;typedef signed short int16;typedef unsigned short uint16;typedef signed long int32;typedef unsigned long uint32;typedef signed long long int64;typedef unsigned long long uint64;typedef unsigned char CPU_BOOLEAN;
typedef signed char CPU_INT08S;typedef unsigned char CPU_INT08U;typedef signed short CPU_INT16S;typedef unsigned short CPU_INT16U;typedef signed long CPU_INT32S;typedef unsigned long CPU_INT32U;typedef signed long long CPU_INT64S;typedef unsigned long long CPU_INT64U;typedef unsigned char BOOL;
typedef signed char INT8;typedef unsigned char UINT8;typedef signed short INT16;typedef unsigned short UINT16;typedef signed long INT32;typedef unsigned long UINT32;typedef long long INT64;typedef unsigned long long UINT64;typedef void VOID;
typedef float FLOAT;typedef double DOUBLE;typedef char CHAR;#define LCU_TYPE LCU_A#define LCU_A 0#define LCU_B 1#define MAX_IONUM 8 /* 机箱最大IO组数 */#define LCUA_IONUM 8 /* A型机箱IO组数 */#define LCUB_IONUM 3 /* B型机箱IO组数 */#define LCU_SGNUM 3 /* 分组板卡每组板卡数目 */#define CTR_NUM 3 /* 机箱主控板数 */#define CTR_GJDNUM 5 /* 主控板干接点数 */#define GIO_GJDNUM 5 /* GIO板干接点数 */#define IO_INPUTNUM 12 /* IO板输入通道数 */#define IO_OUTPUTNUM 6 /* IO板输出通道数 */#define HEADFLG_DATA 0x2e550369#define TYPEID_VERDATA 0x01#define TYPEID_ERRDATA 0x02#define TYPEID_RUNDATA 0x03#define LENTH_VERDATA 96#define LENTH_ERRDATA 224#define LENTH_RUNDATA 204#define LENTH_FILEHEAD 12#define HEADFLG_FILE 0x3e2d#define STORAGE_PROTOCOL 0x01typedef union
{ uint8 Msg; struct { uint8 bit0:1; uint8 bit1:1; uint8 bit2:1; uint8 bit3:1; uint8 bit4:1; uint8 bit5:1; uint8 bit6:1; uint8 bit7:1; }Bits;}Byte_UnionType;/* * CAN板运行数据类型,数据类型长度8 Bytes。 */typedef struct{ uint8 PowerA_Vol; /*电源板A adc电压值1(实际值乘以10)*/ uint8 PowerB_Vol; /*电源板B adc电压值2(实际值乘以10)*/ uint8 PowerC_Vol; /*电源板C adc电压值3(实际值乘以10)*/ uint8 Temper_Val; /*温度采样值*/ uint8 SrcId; /*ID,软件地址*/ uint8 Reserver1; /*预留*/ uint8 Reserver2; /*预留*/ uint8 Reserver3; /*预留*/}CAN_DataType;/* * 机箱信息数据类型,数据类型长度20 Bytes。 *//* * GIO组运行数据类型,数据类型长度4 Bytes。 */typedef struct{ Byte_UnionType OutputFb; /*[bit0:bit4]依次表示GIO组干接点1至5输出反馈仲裁值;[bit5:bit7]预留 */ uint8 SrcId; /*ID,软件地址*/ uint8 Reserver1; /*预留*/ uint8 Reserver2; /*预留*/}GIO_DataType;/*4bytes*/
typedef union{ uint32 CysMeter; struct { uint32 Meter:8; /*节拍*/ uint32 Cyc:24; /*大周期*/ }HwAddr_bits;}CycNo_UnType;/* 软件版本数据类型,总长度2bytes */
typedef struct{ uint8 Version; /* 板卡软件版本 */ uint8 SrcId; /* 板卡ID*/}Version_DataType;/*20bytes*/typedef struct{ uint16 Train_Num; /*车号*/ uint8 Lcu_Num; /*机箱号*/ uint8 Lcu_Type; /*机箱类型*/ uint8 Year; /*年*/ uint8 Month; /*月*/ uint8 Day; /*日*/ uint8 Hour; /*时*/ uint8 Minute; /*分*/ uint8 Second; /*秒*/ uint16 MilliSecond; /*毫秒*/ uint8 EnTime; /*时间有效性:0,无效,1有效,其他无意义*/ uint8 CtrPower; /*主控板控制权*/ uint8 CANPower; /*CAN板控制权*/ uint8 SrcId; /*ID,软件地址,预留*/ CycNo_UnType CycNum; /*CycNo.Meter:节拍;CycNo.Cyc:大周期*/}Sys_InfoType;/*
* IO组运行数据类型,数据类型长度4 Bytes。 */typedef struct{ Byte_UnionType OutputFb; /*[bit0:bit5]依次表示IO组干接点1至5输出反馈仲裁值;[bit6:bit7]预留 */ uint8 SrcId; /*板卡ID*/ Byte_UnionType Input1_Val; /*[bit0:bit7]依次表示当前IO组第1至 8路输入仲裁值*/ Byte_UnionType Input2_Val; /*[bit0:bit3]依次表示当前IO组第9至12路输入仲裁值;[bit4:bit7]预留*/}IO_DataType;
/*
* CAN板故障数据类型,数据类型长度 4 Bytes。 */typedef union{ uint8 ErrMsg; struct { uint8 InSide_CAN1:1; /*内部CAN1故障*/ uint8 InSide_CAN2:1; /*内部CAN2故障*/ uint8 OutSide_CAN1:1; /*外部CAN1故障*/ uint8 OutSide_CAN2:1; /*外部CAN2故障*/ uint8 CAN_Err:1; /*CAN板CPU1的信息,则表示CAN板CAN通信故障状态, CPU2的信息,则预留 */ uint8 OutSide_CANErr:1; /*CAN板CPU1的信息,则表示CAN板外部CAN通信故障状态,CPU2的信息,则预留 */ uint8 InSide_CANErr:1; /*CAN板CPU1的信息,则表示CAN板内部CAN通信故障状态,CPU2的信息,则预留 */ uint8 CAN_OffLine:1; /*CAN板CPU1的信息,则表示CAN板内部CAN离线,CPU2的信息,则预留*/ }ErrBits;}CPU_ErrType;typedef struct{ /* * CAN板离线其他数据无效。 */ CPU_ErrType CPU1_Err; CPU_ErrType CPU2_Err; union { uint8 ErrMsg; struct { uint8 PowerA_Off:1; /*电源板A供电断开*/ uint8 PowerB_Off:1; /*电源板B供电断开*/ uint8 PowerC_Off:1; /*电源板C供电断开*/ uint8 PowerA_Err:1; /*电源板A电源故障*/ uint8 PowerB_Err:1; /*电源板B电源故障*/ uint8 PowerC_err:1; /*电源板C电源故障*/ uint8 Reserver6:1; uint8 Power_Err:1; /*电源板总故障*/ }ErrBits; }Power_Err; uint8 SrcId; /*ID,软件地址*/}CAN_ErrType;/* * 机箱故障数据类型,数据类型长度 2 Bytes。 */typedef struct{ uint8 Lcu_ErrClass; /*机箱故障级别*/ uint8 SrcId; /*ID,软件地址,预留*/}Sys_ErrType;
/*
* 以太网板故障数据类型,数据类型长度 2 Bytes。 */typedef struct{ /* * 以太网板故障:Eth_Err.ErrMsg != 0; * 以太网板CAN通信故障:(Eth_Err.ErrBits.Can1 || Eth_Err.ErrBits.Can2) != 0。 */ union { uint8 ErrMsg; struct { uint8 Eth:1; /*以太网通信故障*/ uint8 Dom:1; /*DOM盘故障*/ uint8 Reserver23:2; uint8 Can1:1; /*CAN1故障*/ uint8 Can2:1; /*CAN2故障*/ uint8 OffLine:1; /*以太网板离线*/ uint8 Reserver7:1; }ErrBits; }Eth_Err; uint8 SrcId; /*ID,软件地址*/}Eth_ErrType;/* * MVB板故障数据类型,数据类型长度 4 Bytes。 */typedef struct{ /* * MVB板故障:MVB_Err.ErrMsg != 0; * MVB板CAN通信故障:(MVB_Err.ErrBits.Can1 || MVB_Err.ErrBits.Can2) != 0; * MVB板MVB通信故障:(MVB_Err.ErrBits.MVB_A || MVB_Err.ErrBits.MVB_B || MVB_Err.ErrBits.MVB_Hw) != 0。 */ union { uint8 ErrMsg; struct { uint8 MVB_A:1; /*MVB冗余A组通讯故障*/ uint8 MVB_B:1; /*MVB冗余B组通讯故障*/ uint8 MVB_Hw:1; /*MVB设备故障*/ uint8 Reserver3:1; /*保留*/ uint8 Can1:1; /*CAN1故障*/ uint8 Can2:1; /*CAN2故障*/ uint8 OffLine:1; /*MVB板离线*/ uint8 Reserver7:1; }ErrBits; }MVB_Err; uint8 SrcId; /*ID,软件地址*/ uint8 Reserver1; /*保留*/ uint8 Reserver2; /*保留*/}MVB_ErrType;typedef struct
{ Byte_UnionType CAN_OffLine; Byte_UnionType CANA_A1_Err; Byte_UnionType CANA_A2_Err; Byte_UnionType CANB_B1_Err; Byte_UnionType CANB_B2_Err; Byte_UnionType CANC_C1_Err; Byte_UnionType CANC_C2_Err; uint8 SrcId; /*ID,软件地址*/}Ctr_ErrType;/* * GIO板故障数据类型,数据类型长度12 Bytes。 */typedef struct{ /* 1、 成员联合体各位意义参考主控板,具体查看存储机制GIO板故障数据结构表。 2、 所有数据1表示故障或者离线,0表示正常。 3、 GIO组离线则其他数据无效。 */ Byte_UnionType CAN_OffLine; Byte_UnionType CANA_A1_Err; Byte_UnionType CANA_A2_Err; Byte_UnionType CANB_B1_Err; Byte_UnionType CANB_B2_Err; Byte_UnionType CANC_C1_Err; Byte_UnionType CANC_C2_Err; Byte_UnionType Output_Err; /* bit0:GIO组板A_输出故障 * bit1:GIO组板B_输出故障 * bit2:GIO组板C_输出故障 * bit3:GIO组输出故障 * [bit4::bit7]:保留 */uint8 SrcId; /*ID,软件地址*/
uint8 Reserver1; /*保留*/ uint8 Reserver2; /*保留*/ uint8 Reserver3; /*保留*/}GIO_ErrType;/* * IO板故障数据类型,数据类型长度20 Bytes。 */typedef struct{ /* 1、 IO组故障数据,A型机箱共有8组,分别对应IO板组1~8,B型机箱3组,分别对应IO板组1~3。 2、 X_CAN1:表示IO组X组内CAN1;X_CAN2:表示IO组X组内CAN2。 3、 X_CAN3:表示IO组X组外CAN1;X_CAN4:表示IO组X组外CAN2。 4、 所有数据1表示故障或者离线,0表示正常。 5、 IO组X离线则组内其他数据无效。 */ Byte_UnionType CAN_Err; /* bit0:A_CAN通信故障 * bit1:B_CAN通信故障 * bit2:C_CAN通信故障 * bit3:IO组CAN通信故障 * bit4:bit7:预留 */ Byte_UnionType CAN_OffLine; /* bit0:A_组外离线 * bit1:B_组外离线 * bit2:C_组外离线 * bit3:A_组内离线 * bit4:B_组内离线 * bit5:C_组内离线 * bit6:预留 * bit7:IO组 */ /* * 数据位定义参见数据类型结构表 */ Byte_UnionType CANA_A1_Err; Byte_UnionType CANA_A2_Err; Byte_UnionType CANB_B1_Err; Byte_UnionType CANB_B2_Err; Byte_UnionType CANC_C1_Err; Byte_UnionType CANC_C2_Err;Byte_UnionType IO_Err; /* bit0:A_输出故障
* bit1:B_输出故障 * bit2:C_输出故障 * bit3:IO组输出故障 * bit4:A_输入故障 * bit5:B_输入故障 * bit6:C_输入故障 * bit7:IO组输入故障 */ Byte_UnionType InputSwitch_Err; /*[bit0:bit3]保留; *bit4:表示IO组A板输入总开关自检电路故障状态 *bit5:表示IO组B板输入总开关自检电路故障状态 *bit6:表示IO组C板输入总开关自检电路故障状态 *bit7:保留*/Byte_UnionType IO_InputErr1; /*[bit0:bit7]依次表示IO板A第1路至第8路输入自检故障状态*/
Byte_UnionType IO_InputErr2; /*[bit0:bit3]依次表示IO板A第9路至第12路输入自检故障状态*/ /*[bit4:bit7]依次表示当前IO组第1路至第 4路输入不一致故障状态*/ Byte_UnionType IO_InputErr3; /*[bit0:bit7]依次表示IO板B第1路至第8路输入自检故障状态*/ Byte_UnionType IO_InputErr4; /*[bit0:bit3]依次表示IO板B第9路至第12路输入自检故障状态*/ /*[bit4:bit7]依次表示当前IO组第5路至第 8路输入不一致故障状态*/ Byte_UnionType IO_InputErr5; /*[bit0:bit7]依次表示IO板C第1路至第8路输入自检故障状态*/ Byte_UnionType IO_InputErr6; /*[bit0:bit3]依次表示IO板C第9路至第12路输入自检故障状态*/ /*[bit4:bit7]依次表示当前IO组第9路至第12路输入不一致故障状态*/uint8 SrcId; /*ID,软件地址*/
uint8 Reserver1; /*保留*/ uint8 Reserver2; /*保留*/ uint8 Reserver3; /*预留*/}IO_ErrType;/* * IO组输出反馈和输入值变化标志数据类型,数据类型长度4 Bytes。 */typedef struct{ Byte_UnionType IO_FbFlg; /*[bit0:bit5]依次表示IO组干接点1至5输出反馈变化标志;[bit6:bit7]预留 */ uint8 SrcId; /*板卡ID*/ Byte_UnionType Input1_ValFlg; /*[bit0:bit7]依次表示当前IO组第1至 8路输入变化标志*/ Byte_UnionType Input2_ValFlg; /*[bit0:bit3]依次表示当前IO组第9至12路输入变化标志;[bit4:bit7]预留*/}IO_ChgType;/* * 主控组输出控制命令变化标志数据类型,数据类型长度12 Bytes。 */typedef struct{ Byte_UnionType Output_CtrFlg[MAX_IONUM]; /*当前主控板逻辑运算输出控制数据变化标志*/ /* * Output_CtrFlg[index]: * [bit0:bit5]依次表示IO板index+1第1至第6路IO输出控制量变化标志 * index <= 4时:bit6:表示GIO组干接点index输出控制量变化标志, * bit7:表示主控组干接点index输出控制量变化标志 * index > 4 时:[bit6:bit7]无效。 */ Byte_UnionType Ctr_FbFlg; /*[bit0:bit4]依次表示GIO组干接点1至5输出反馈变化标志;[bit5:bit7]预留 */ uint8 SrcId; /*ID,软件地址*/ uint8 Reserver1; /*预留*/ uint8 Reserver2; /*预留*/}Ctr_ChgType;/* * 主控组和GIO组输出反馈变化标志数据类型,数据类型长度4 Bytes。 */typedef struct{ Byte_UnionType GIO_FbFlg; /*[bit0:bit4]依次表示IO组干接点1至5输出反馈变化标志;[bit5:bit7]预留 */ uint8 SrcId; /*ID,软件地址*/ uint8 Reserver1; /*预留*/ uint8 Reserver2; /*预留*/}GIO_ChgType;/*
* 机箱输出控制、输出反馈和输入值变化标志数据类型,数据类型长度48 Bytes。 */typedef struct{ Ctr_ChgType Ctr_ChgFlg; /*当前主控板逻辑运算输出控制和输出反馈数据变化标志*/GIO_ChgType GIO_ChgFlg;
IO_ChgType IO_ChgFlg[LCUA_IONUM];
}LCUA_ChgType; /* * 主控组运行数据类型,数据类型长度20 Bytes。 */typedef struct{ uint8 Middle_Vol[8]; /*主控组逻辑运算中间变量仲裁数据*/ /* * Middle_Vol[0].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据1~8 * Middle_Vol[1].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据9~16 * Middle_Vol[2].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据17~24 * Middle_Vol[3].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据25~32 * Middle_Vol[4].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据33~40 * Middle_Vol[5].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据41~48 * Middle_Vol[6].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据49~56 * Middle_Vol[7].[bit0:bit7]依次表示主控组逻辑运算中间变量仲裁数据57~64 */Byte_UnionType Oput_CtrVal[MAX_IONUM]; /*主控组逻辑运算输出控制仲裁数据*/
/* * Oput_CtrVal[index]: * [bit0:bit5]依次表示IO组index第1至第6路IO输出控制量 * index <= 4时:bit6:表示GIO组干接点index输出控制量, * bit7:表示主控组干接点index输出控制量 * index > 4 时:[bit6:bit7]无效。 */ Byte_UnionType FB_val; /*主控组干接点输出反馈仲裁数据,[bit0:bit4]依次表示主控组干接点1至干接点5输出反馈,[bit:bit7]预留*/ uint8 SrcId; /*ID,软件地址*/ uint8 Reserver1; /*预留*/ uint8 Reserver2; /*预留*/}Ctr_DataType;/* * 主控单板运行数据类型,数据类型长度20 Bytes。 */typedef struct{ uint8 Middle_Vol[8]; /*当前主控板逻辑运算中间变量*/ /* * Middle_Vol[0].[bit0:bit7]依次表示主控板逻辑运算中间变量1~8 * Middle_Vol[1].[bit0:bit7]依次表示主控板逻辑运算中间变量9~16 * Middle_Vol[2].[bit0:bit7]依次表示主控板逻辑运算中间变量17~24 * Middle_Vol[3].[bit0:bit7]依次表示主控板逻辑运算中间变量25~32 * Middle_Vol[4].[bit0:bit7]依次表示主控板逻辑运算中间变量33~40 * Middle_Vol[5].[bit0:bit7]依次表示主控板逻辑运算中间变量41~48 * Middle_Vol[6].[bit0:bit7]依次表示主控板逻辑运算中间变量49~56 * Middle_Vol[7].[bit0:bit7]依次表示主控板逻辑运算中间变量57~64 */Byte_UnionType Output_CtrVal[MAX_IONUM]; /*当前主控板逻辑运算输出控制数据*/
/* * Oput_CtrVal[index]: * [bit0:bit5]依次表示IO板index+1第1至第6路IO输出控制量 * index <= 4时:bit6:表示GIO组干接点index输出控制量, * bit7:表示主控组干接点index输出控制量 * index > 4 时:[bit6:bit7]无效。 */ uint8 SrcId; /*板卡ID*/ /* * OUT1(下):表示主控板干接点1下管实际输出值,其他类似。 * FB1(下) :表示主控板干接点1下管输出反馈值,其他类似。 */ Byte_UnionType OutputFb_1; /*[bit0:bit7]依次表示OUT1(下)、OUT1(上)、OUT2(下)、OUT2(上)、OUT3(下)、OUT3(上)OUT4(下)、 OUT4(上)实际输出 */ Byte_UnionType OutputFb_2; /*[bit0:bit1]依次表示OUT5(下)、OUT5(上);[bit2:bit3]预留;[bit4:bit7]依次表示FB1(下)、FB1(上)、FB2(下)、FB2(上输出反馈)*/ Byte_UnionType OutputFb_3; /*[bit0:bit5]依次表示FB3(下)、FB3(上)、FB4(下)、 FB4(上)、FB5(下)、FB5(上)实际输出;[bit6:bit7]预留 */}CtrSingle_DataType; /* 软件版本信息记录数据结构,96字节*/typedef struct{ /* * 记录头,数据类型长度 4 Bytes。 */ uint32 Head_Flag; /* * 记录数据类型,数据类型长度 2 Bytes。 */ uint16 Type_ID; /* * 当前记录数据字段长度,数据类型长度 2 Bytes。 */ uint16 Lenth; /* * 机箱信息数据类型,数据类型长度 20 Bytes。 */ Sys_InfoType Sys_Msg; /* * 机箱信息数据类型,数据类型长度 64 Bytes。 */ Version_DataType Eth_Ver; /* 以太网板软件版本 */ Version_DataType MVB_Ver; /* MVB板软件版本 */ Version_DataType CAN_CPU1_Ver; /* CAN板CPU1软件版本 */ Version_DataType CAN_CPU2_Ver; /* CAN板CPU2软件版本 */ Version_DataType Ctr_Ver; /* 主控板(有主控权的)软件版本 */ Version_DataType GIO_Ver[LCU_SGNUM]; /* GIO板软件版本,index:0表示GIO板A,1表示GIO板B,2表示GIO板C */ Version_DataType IO_Ver[MAX_IONUM][LCU_SGNUM]; /* IO板软件版本,行索引0~7分别表示IO组1~8, 列索引0~2分别表示组内IO板A、B、C; 数据全长48字节,全部写入文件, A型机箱48字节数据均表示软件版本, B型机箱前18字节有效,表示软件版本,后30字节无效 */ /* * 机箱信息数据类型,数据类型长度 4 Bytes。 */ uint32 Crc32;}LcuVer_DataType, Storage_VerDataType;/* 机箱运行数据长度字节204字节 */typedef struct{ /* * 记录头,数据类型长度 4 Bytes。 */ uint32 Head_Flag; /* * 记录数据类型,数据类型长度 2 Bytes。 */ uint16 Type_ID; /* * 当前记录数据字段长度,数据类型长度 2 Bytes。 */ uint16 Lenth;/*
* 机箱信息数据类型,数据类型长度 20 Bytes。 */ Sys_InfoType Sys_Msg; /* * CAN板运行数据类型,数据类型长度8 Bytes。 */ CAN_DataType CAN_Info;/*
* 主控组运行数据类型,数据类型长度20 Bytes。 */ Ctr_DataType Ctr_Info;/*
* 主控单板运行数据类型,数据类型长度20 Bytes。 */ CtrSingle_DataType CtrSingle_Info[CTR_NUM];/*
* GIO组运行数据类型,数据类型长度4 Bytes。 */ GIO_DataType GIO_Info;/*
* IO组运行数据类型,数据类型长度4 Bytes。 */ IO_DataType IO_Info[LCUA_IONUM];/*
* A型机箱输出控制、输出反馈和输入值变化标志数据类型,数据类型长度48 Bytes。 */ LCUA_ChgType Data_ChgFlg;/?/*
* CRC32,数据类型长度4 Bytes。 */ uint32 Crc32;}LcuA_DataType, Storage_DataType;
/* 机箱故障数据长度224字节 */
typedef struct{ /* * 记录头,数据类型长度 4 Bytes。 */ uint32 Head_Flag; /* * 记录数据类型,数据类型长度 2 Bytes。 */ uint16 Type_ID; /* * 当前记录数据字段长度,数据类型长度 2 Bytes。 */ uint16 Lenth;/*
* 机箱信息数据类型,数据类型长度 20 Bytes。 */ Sys_InfoType Sys_Msg;/*
* 机箱故障数据类型,数据类型长度 2 Bytes。 */ Sys_ErrType Sys_ErrInof;/*
* 以太网板故障数据类型,数据类型长度 2 Bytes。 */ Eth_ErrType Eth_ErrInfo;/*
* MVB板故障数据类型,数据类型长度 4 Bytes。 */ MVB_ErrType MVB_ErrInfo;/*
* CAN板故障数据类型,数据类型长度 4 Bytes。 */ CAN_ErrType CAN_ErrInfo;/*
* 主控板故障数据类型,数据类型长度 8 Bytes。 */ Ctr_ErrType Ctr_ErrInfo;/*
* GIO板故障数据类型,数据类型长度12 Bytes。 */ GIO_ErrType GIO_ErrInfo;/*
* IO板故障数据类型,数据类型长度20 Bytes。 */ IO_ErrType IO_ErrInfo[LCUA_IONUM];/*
* CRC32,数据类型长度4 Bytes。 */ uint32 Crc32;}LcuA_ErrType, Storage_ErrType;
#endif // TYPEDEFINES_H