/*
* This source file is part of the EtherCAT Slave Stack Code licensed by Beckhoff Automation GmbH & Co KG, 33415 Verl, Germany.
* The corresponding license agreement applies. This hint shall not be removed.
*/

/**
* \addtogroup VRQx_EC VRQx_EC
* @{
*/

/**
\file Module0x000F9701_Objects
\author ET9300Utilities.ApplicationHandler (Version 1.6.4.0) | EthercatSSC@beckhoff.com

\brief VRQx_EC specific objects<br>
\brief NOTE : This file will be overwritten if a new object dictionary is generated!<br>
*/

#if defined(_VRQX__EC_) && (_VRQX__EC_ == 1)
#define PROTO
#else
#define PROTO extern
#endif
/******************************************************************************
*                    Object 0x1A00 : MBN Process Data Input process data mapping
******************************************************************************/
/**
* \addtogroup 0x1A00 0x1A00 | MBN Process Data Input process data mapping
* @{
* \brief Object 0x1A00 (MBN Process Data Input process data mapping) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - Reference to 0x6000.1<br>
* SubIndex 2 - Reference to 0x6000.2<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDescModuleF9701Obj0x1A00[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex1 - Reference to 0x6000.1 */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }}; /* Subindex2 - Reference to 0x6000.2 */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aNameModuleF9701Obj0x1A00[] = "MBN Process Data Input process data mapping\000"
"SubIndex 001\000"
"SubIndex 002\000\377";
#endif //#ifdef _OBJD_

#ifndef _VRQX__EC_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT32 SI1; /* Subindex1 - Reference to 0x6000.1 */
UINT32 SI2; /* Subindex2 - Reference to 0x6000.2 */
} OBJ_STRUCT_PACKED_END
TMODULEF9701OBJ1A00;
#endif //#ifndef _VRQX__EC_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TMODULEF9701OBJ1A00 ModuleF9701MBNProcessDataInputProcessDataMapping0x1A00
#if defined(_VRQX__EC_) && (_VRQX__EC_ == 1)
={2,0x60000110,0x60000210}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x2000 : MBN Operational
******************************************************************************/
/**
* \addtogroup 0x2000 0x2000 | MBN Operational
* @{
* \brief Object 0x2000 (MBN Operational) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - Post Error Status<br>
* SubIndex 2 - VA Voltage<br>
* SubIndex 3 - VB Voltage<br>
* SubIndex 4 - OperatingMinutes<br>
* SubIndex 5 - OperatingHours<br>
* SubIndex 6 - Measured Temperature<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDescModuleF9701Obj0x2000[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex1 - Post Error Status */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex2 - VA Voltage */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex3 - VB Voltage */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ }, /* Subindex4 - OperatingMinutes */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex5 - OperatingHours */
{ DEFTYPE_INTEGER16 , 0x10 , ACCESS_READ }}; /* Subindex6 - Measured Temperature */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aNameModuleF9701Obj0x2000[] = "MBN Operational\000"
"Post Error Status\000"
"VA Voltage\000"
"VB Voltage\000"
"OperatingMinutes\000"
"OperatingHours\000"
"Measured Temperature\000\377";
#endif //#ifdef _OBJD_

#ifndef _VRQX__EC_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT32 PostErrorStatus; /* Subindex1 - Post Error Status */
UINT32 VAVoltage; /* Subindex2 - VA Voltage */
UINT32 VBVoltage; /* Subindex3 - VB Voltage */
UINT16 OperatingMinutes; /* Subindex4 - OperatingMinutes */
UINT32 OperatingHours; /* Subindex5 - OperatingHours */
INT16 MeasuredTemperature; /* Subindex6 - Measured Temperature */
} OBJ_STRUCT_PACKED_END
TMODULEF9701OBJ2000;
#endif //#ifndef _VRQX__EC_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TMODULEF9701OBJ2000 ModuleF9701MBNOperational0x2000
#if defined(_VRQX__EC_) && (_VRQX__EC_ == 1)
={6,0x00000000,0x00000000,0x00000000,0x0000,0x00000000,0x0000}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x6000 : MBN Process Data Input
******************************************************************************/
/**
* \addtogroup 0x6000 0x6000 | MBN Process Data Input
* @{
* \brief Object 0x6000 (MBN Process Data Input) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - Warning Status Bits<br>
* SubIndex 2 - Fault Status Bits<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDescModuleF9701Obj0x6000[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }, /* Subindex1 - Warning Status Bits */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ | OBJACCESS_TXPDOMAPPING }}; /* Subindex2 - Fault Status Bits */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aNameModuleF9701Obj0x6000[] = "MBN Process Data Input\000"
"Warning Status Bits\000"
"Fault Status Bits\000\377";
#endif //#ifdef _OBJD_

#ifndef _VRQX__EC_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT16 WarningStatusBits; /* Subindex1 - Warning Status Bits */
UINT16 FaultStatusBits; /* Subindex2 - Fault Status Bits */
} OBJ_STRUCT_PACKED_END
TMODULEF9701OBJ6000;
#endif //#ifndef _VRQX__EC_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TMODULEF9701OBJ6000 ModuleF9701MBNProcessDataInput0x6000
#if defined(_VRQX__EC_) && (_VRQX__EC_ == 1)
={2,0,0}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0x9000 : Main Bus Node Information
******************************************************************************/
/**
* \addtogroup 0x9000 0x9000 | Main Bus Node Information
* @{
* \brief Object 0x9000 (Main Bus Node Information) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - DeviceType<br>
* SubIndex 2 - VendorName<br>
* SubIndex 3 - VendorId<br>
* SubIndex 4 - DeviceName<br>
* SubIndex 5 - DeviceId<br>
* SubIndex 6 - VariantId<br>
* SubIndex 7 - HardwareRevision<br>
* SubIndex 8 - SerialNo<br>
* SubIndex 9 - SoftwarePartNo<br>
* SubIndex 10 - SoftwareRevision<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDescModuleF9701Obj0x9000[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex1 - DeviceType */
{ DEFTYPE_VISIBLESTRING , 0x80 , ACCESS_READ }, /* Subindex2 - VendorName */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex3 - VendorId */
{ DEFTYPE_VISIBLESTRING , 0x80 , ACCESS_READ }, /* Subindex4 - DeviceName */
{ DEFTYPE_UNSIGNED32 , 0x20 , ACCESS_READ }, /* Subindex5 - DeviceId */
{ DEFTYPE_VISIBLESTRING , 0x80 , ACCESS_READ }, /* Subindex6 - VariantId */
{ DEFTYPE_VISIBLESTRING , 0x80 , ACCESS_READ }, /* Subindex7 - HardwareRevision */
{ DEFTYPE_VISIBLESTRING , 0x80 , ACCESS_READ }, /* Subindex8 - SerialNo */
{ DEFTYPE_VISIBLESTRING , 0x80 , ACCESS_READ }, /* Subindex9 - SoftwarePartNo */
{ DEFTYPE_VISIBLESTRING , 0x80 , ACCESS_READ }}; /* Subindex10 - SoftwareRevision */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aNameModuleF9701Obj0x9000[] = "Main Bus Node Information\000"
"DeviceType\000"
"VendorName\000"
"VendorId\000"
"DeviceName\000"
"DeviceId\000"
"VariantId\000"
"HardwareRevision\000"
"SerialNo\000"
"SoftwarePartNo\000"
"SoftwareRevision\000\377";
#endif //#ifdef _OBJD_

#ifndef _VRQX__EC_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT32 DeviceType; /* Subindex1 - DeviceType */
CHAR VendorName[16]; /* Subindex2 - VendorName */
UINT32 VendorId; /* Subindex3 - VendorId */
CHAR DeviceName[16]; /* Subindex4 - DeviceName */
UINT32 DeviceId; /* Subindex5 - DeviceId */
CHAR VariantId[16]; /* Subindex6 - VariantId */
CHAR HardwareRevision[16]; /* Subindex7 - HardwareRevision */
CHAR SerialNo[16]; /* Subindex8 - SerialNo */
CHAR SoftwarePartNo[16]; /* Subindex9 - SoftwarePartNo */
CHAR SoftwareRevision[16]; /* Subindex10 - SoftwareRevision */
} OBJ_STRUCT_PACKED_END
TMODULEF9701OBJ9000;
#endif //#ifndef _VRQX__EC_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TMODULEF9701OBJ9000 ModuleF9701MainBusNodeInformation0x9000
#if defined(_VRQX__EC_) && (_VRQX__EC_ == 1)
={10,0x00000000,"\000",0x00000000,"\000",0x00000000,"\000","\000","\000","\000","\000"}
#endif
;
/** @}*/



/******************************************************************************
*                    Object 0xA000 : Main Bus Node Diagnostics
******************************************************************************/
/**
* \addtogroup 0xA000 0xA000 | Main Bus Node Diagnostics
* @{
* \brief Object 0xA000 (Main Bus Node Diagnostics) definition
*/
#ifdef _OBJD_
/**
* \brief Object entry descriptions<br>
* <br>
* SubIndex 0<br>
* SubIndex 1 - CANCoreStatus<br>
* SubIndex 2 - CIPCoreStatus<br>
*/
OBJCONST TSDOINFOENTRYDESC    OBJMEM asEntryDescModuleF9701Obj0xA000[] = {
{ DEFTYPE_UNSIGNED8 , 0x8 , ACCESS_READ },
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ }, /* Subindex1 - CANCoreStatus */
{ DEFTYPE_UNSIGNED16 , 0x10 , ACCESS_READ }}; /* Subindex2 - CIPCoreStatus */

/**
* \brief Object/Entry names
*/
OBJCONST UCHAR OBJMEM aNameModuleF9701Obj0xA000[] = "Main Bus Node Diagnostics\000"
"CANCoreStatus\000"
"CIPCoreStatus\000\377";
#endif //#ifdef _OBJD_

#ifndef _VRQX__EC_OBJECTS_H_
/**
* \brief Object structure
*/
typedef struct OBJ_STRUCT_PACKED_START {
UINT16 u16SubIndex0;
UINT16 CANCoreStatus; /* Subindex1 - CANCoreStatus */
UINT16 CIPCoreStatus; /* Subindex2 - CIPCoreStatus */
} OBJ_STRUCT_PACKED_END
TMODULEF9701OBJA000;
#endif //#ifndef _VRQX__EC_OBJECTS_H_

/**
* \brief Object variable
*/
PROTO TMODULEF9701OBJA000 ModuleF9701MainBusNodeDiagnostics0xA000
#if defined(_VRQX__EC_) && (_VRQX__EC_ == 1)
={2,0x0000,0x0000}
#endif
;
/** @}*/





PROTO UINT8 ModuleF9701_MBNOperationalRead(UINT16 index, UINT8 subindex, UINT32 dataSize, UINT16 MBXMEM * pData, UINT8 bCompleteAccess);
PROTO UINT8 ModuleF9701_MBNInformationRead(UINT16 index, UINT8 subindex, UINT32 dataSize, UINT16 MBXMEM * pData, UINT8 bCompleteAccess);
PROTO UINT8 ModuleF9701_MBNDiagnosticsRead(UINT16 index, UINT8 subindex, UINT32 dataSize, UINT16 MBXMEM * pData, UINT8 bCompleteAccess);


#if COE_SUPPORTED
#ifdef _OBJD_
TOBJECT    OBJMEM Module000F9701ObjDic[] = {
/* Object 0x1A00 */
{NULL , NULL ,  0x1A00 , {DEFTYPE_PDOMAPPING , 2 | (OBJCODE_REC << 8)} , asEntryDescModuleF9701Obj0x1A00 , aNameModuleF9701Obj0x1A00 , &ModuleF9701MBNProcessDataInputProcessDataMapping0x1A00 , NULL , NULL , 0x0000 },
/* Object 0x2000 */
{NULL , NULL ,  0x2000 , {DEFTYPE_RECORD , 6 | (OBJCODE_REC << 8)} , asEntryDescModuleF9701Obj0x2000 , aNameModuleF9701Obj0x2000 , &ModuleF9701MBNOperational0x2000 , ModuleF9701_MBNOperationalRead , NULL , 0x0000 },
/* Object 0x6000 */
{NULL , NULL ,  0x6000 , {DEFTYPE_RECORD , 2 | (OBJCODE_REC << 8)} , asEntryDescModuleF9701Obj0x6000 , aNameModuleF9701Obj0x6000 , &ModuleF9701MBNProcessDataInput0x6000 , NULL , NULL , 0x0000 },
/* Object 0x9000 */
{NULL , NULL ,  0x9000 , {DEFTYPE_RECORD , 10 | (OBJCODE_REC << 8)} , asEntryDescModuleF9701Obj0x9000 , aNameModuleF9701Obj0x9000 , &ModuleF9701MainBusNodeInformation0x9000 , ModuleF9701_MBNInformationRead , NULL , 0x0000 },
/* Object 0xA000 */
{NULL , NULL ,  0xA000 , {DEFTYPE_RECORD , 2 | (OBJCODE_REC << 8)} , asEntryDescModuleF9701Obj0xA000 , aNameModuleF9701Obj0xA000 , &ModuleF9701MainBusNodeDiagnostics0xA000 , ModuleF9701_MBNDiagnosticsRead , NULL , 0x0000 },
{NULL,NULL, 0xFFFF, {0, 0}, NULL, NULL, NULL, NULL}};
#endif    //#ifdef _OBJD_
#endif
#undef PROTO

/** @}*/
