motorcontroldemo_028/Vinclude/co_ODvars.h

868 lines
32 KiB
C
Raw Normal View History

2019-07-29 08:18:57 +03:00
/*!
Copyright 2017 <EFBFBD><EFBFBD> "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
\file co_ODvars.h
\brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CANOpen
\author <EFBFBD><EFBFBD><EFBFBD> "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>". http://motorcontrol.ru
\version v 2.3 28/06/2019
\defgroup CANOpen_drv <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CANOpen
@{
*/
#ifndef CO_OD_VARS_H
#define CO_OD_VARS_H
#ifdef __cplusplus
extern "C" {
#endif
#include "DSP.h"
//****************************************************************************************************************************************
//! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<2D><> CAN
#define CO1_SPI_START_ADDR 0
//! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2-<2D><> CAN
#define CO2_SPI_START_ADDR 3500
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PDO
#define RPDO1NUMOFPARAMS 4
#define RPDO2NUMOFPARAMS 4
#define RPDO3NUMOFPARAMS 4
#define RPDO4NUMOFPARAMS 4
#define RPDO5NUMOFPARAMS 4
#define RPDO6NUMOFPARAMS 4
#define RPDO7NUMOFPARAMS 4
#define RPDO8NUMOFPARAMS 4
#define TPDO1NUMOFPARAMS 4
#define TPDO2NUMOFPARAMS 4
#define TPDO3NUMOFPARAMS 4
#define TPDO4NUMOFPARAMS 4
#define TPDO5NUMOFPARAMS 4
#define TPDO6NUMOFPARAMS 4
#define TPDO7NUMOFPARAMS 4
#define TPDO8NUMOFPARAMS 4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
typedef struct {
Uint16 co_DIV8[6];
Uint16 co_BRP[6];
Uint16 co_TSEG1[6];
Uint16 co_TSEG2[6];
Uint16 co_SJW[6];
} TCANSpeedTableOptions;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct S_CANOPEN_DRV_SETTINGS
{
Uint16 LoadParamsFromUserMemory_ena; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 CAN_ISR_priority; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
Uint16 MultiPDO_ena; /* //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PDO <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>:
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RPDO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
// 0x181-0x1FF
// 0x200-0x27F
// 0x280-0x2FF
// ...
// 0x480-0x4FF
// 0x500-0x57F
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RPDO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RPDO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RPDOxCOBID <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
//<2F><><EFBFBD><EFBFBD> RPDO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
//<2F> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. */
Uint16 RX_PDO_Callback_ena; /*//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CallBack <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PDO. (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PDO).
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> PDO <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CallBack <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//(<28>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> CANOpenCallbacks.c) <20><><EFBFBD><EFBFBD>: void co_RPDOx_Callback(Uint16 nodeID)
//<2F><><EFBFBD> x = 1,2,..8 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RPDO1, RPDO2,..RPDO8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
//<2F> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (nodeID) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PDO,
//<2F> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(-<2D><>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PDO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(-<2D><>).*/
Uint16 AutoBusON_ena; /*//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> CAN.
//<2F> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> rx, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...*/
Uint16 BlockTransfer_ena; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 BaseAdressCanRegisters; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CANOpen <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
Uint16 CAN_IRQn; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CANOpen <20><><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
TCANSpeedTableOptions *speedCANTablePointer;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
void (*resetCPU)(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
};
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
typedef enum EObjAccess
{
OBJ_ACCESS_READONLY, // read-only
OBJ_ACCESS_RW, // read/write
OBJ_ACCESS_WP, // read/writeable protected
OBJ_ACCESS_SWP, // read/secret writeable protected
} TObjAccess;
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
typedef enum EObjType
{
OBJ_TYPE_UNKNOWN,
OBJ_TYPE_ROOT,
OBJ_TYPE_U8,
OBJ_TYPE_U16,
OBJ_TYPE_QU16,
OBJ_TYPE_I8,
OBJ_TYPE_I16,
OBJ_TYPE_QI16,
OBJ_TYPE_U32,
OBJ_TYPE_QU32,
OBJ_TYPE_I32,
OBJ_TYPE_QI32,
OBJ_TYPE_BIT_FIELD,
OBJ_TYPE_FLOAT_ABS,
OBJ_TYPE_FLOAT_PU,
} TObjType;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
typedef struct
{
void* varAddr; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
int varSize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (16/32)
TObjAccess access; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TObjType type; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 subIndNum; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> ROOT)
Uint16 scaleNum; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> QU16, QI16, QU32, QI32, FLOAT_PU)
Uint16 Q; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> QU16, QI16, QU32, QI32)
Uint16 bitOffset; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD> BIT_FIELD)
Uint16 bitNum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD> BIT_FIELD)
Uint16 precision; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> FLOAT_ABS)
Uint16 prefix; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> FLOAT_ABS)
Uint16 units; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> FLOAT_ABS)
} TObjectInfo;
typedef volatile struct S_CANOPEN_DRV_SETTINGS T_CANOPEN_DRV_SETTINGS;
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> SDO
struct SDOcommSpecifier {
Uint16 s:1; //!< 0 - <20><><EFBFBD><EFBFBD> s=1, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 e:1; //!< 1 - expedited <20><><EFBFBD> <20><><EFBFBD>
Uint16 n:2; //!< 3:2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 X:1; //!< 4 - reserved
Uint16 cs:3;//!< 7:5 - SDO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 reserved:8;//
};
//! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
union MBOXByte0{
struct SDOcommSpecifier SDO_Spicifier;
Uint16 byte0;
};
//! <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN <20><><EFBFBD><EFBFBD><EFBFBD> (ZigBee, USB)
typedef struct {
union MBOXByte0 MByte0;
Uint16 byte1;
Uint16 byte2;
Uint16 byte3;
Uint16 byte4;
Uint16 byte5;
Uint16 byte6;
Uint16 byte7;
Uint16 senderNodeID;
}Z_MBytes;
typedef struct {
Uint32 id;
Uint8 data[8];
Uint8 dlc;
} TZCanMsg;
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> SDO
struct SDOmsg
{ Uint32 s:1; //!< 0 - <20><><EFBFBD><EFBFBD> s=1, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 e:1; //!< 1 - expedited <20><><EFBFBD> <20><><EFBFBD>
Uint32 n:2; //!< 3:2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 X:1; //!< 4 - reserved
Uint32 cs:3;//!< 7:5 - SDO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 index:16;
Uint32 subindex:8;
Uint32 data:32;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct MBOX_bytes
{ Uint16 byte0:8;
Uint16 byte1:8;
Uint16 byte2:8;
Uint16 byte3:8;
Uint16 byte4:8;
Uint16 byte5:8;
Uint16 byte6:8;
Uint16 byte7:8;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct MBOX_words
{ Uint16 word0;
Uint16 word1;
Uint16 word2;
Uint16 word3;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> MDRL, MDRH
struct MBOX_Uint32
{ Uint32 MDRL;
Uint32 MDRH;
};
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
union MBOX_data {
struct MBOX_Uint32 u32;
struct MBOX_words u16;
struct MBOX_bytes u8;
struct SDOmsg SDO;
};
typedef volatile union MBOX_data TMBOX_data;
struct MID_bits
{ Uint32 rsvd1:18; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 senderNodeID:7; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
Uint32 rsvd2:7; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
union MID_data {
Uint32 all;
struct MID_bits bit;
};
// <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
struct MData
{
union MBOX_data data;
union MID_data MID;
};
typedef volatile struct MData TCo_MOData;
//! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct CO_MBOXDATA
{
struct MData MBOX_0;
struct MData MBOX_1;
struct MData MBOX_2;
struct MData MBOX_3;
struct MData MBOX_4;
struct MData MBOX_5;
struct MData MBOX_6;
struct MData MBOX_7;
struct MData MBOX_8;
struct MData MBOX_9;
struct MData MBOX_10;
struct MData MBOX_11;
struct MData MBOX_12;
struct MData MBOX_13;
struct MData MBOX_14;
struct MData MBOX_15;
struct MData MBOX_16;
struct MData MBOX_17;
struct MData MBOX_18;
struct MData MBOX_19;
struct MData MBOX_20;
struct MData MBOX_21;
struct MData MBOX_22;
struct MData MBOX_23;
struct MData MBOX_24;
struct MData MBOX_25;
struct MData MBOX_26;
struct MData MBOX_27;
struct MData MBOX_28;
struct MData MBOX_29;
struct MData MBOX_30;
struct MData MBOX_31;
};
typedef volatile struct CO_MBOXDATA TCo_MboxData;
//****************************************************************************************************************************************
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BT_FIFO_SIZE 8 //8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 1<><31><EFBFBD><EFBFBD>/<2F>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 1<><31>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BT_FIFO_SUCCESSFUL 0
#define BT_FIFO_EMPTY 1
#define BT_FIFO_FULL 2
#define BT_FIFO_BUSY 3
struct S_BT_FIFO
{
Uint16 busy_flag; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 size;
Uint16 number_of_msgs;
Uint16 read_ptr;
Uint16 write_ptr;
TMBOX_data msg_array[BT_FIFO_SIZE];
Uint16(*read)(volatile struct S_BT_FIFO*,TMBOX_data*);
Uint16(*write)(volatile struct S_BT_FIFO*,TMBOX_data*);
Uint16(*clear)(volatile struct S_BT_FIFO*);
};
typedef volatile struct S_BT_FIFO T_BT_FIFO;
#define T_BT_FIFO_DEFAULTS {0,\
BT_FIFO_SIZE,\
0,0,0,\
{0},\
BT_FIFO_Read,\
BT_FIFO_Write,\
BT_FIFO_Clear}
Uint16 BT_FIFO_Read(T_BT_FIFO*,TMBOX_data*);
Uint16 BT_FIFO_Write(T_BT_FIFO*,TMBOX_data*);
Uint16 BT_FIFO_Clear(T_BT_FIFO* p);
#define CANBT_STATE_FREE 0
#define CANBT_STATE_RX 1
#define CANBT_STATE_TX 2
#define CANBT_STATUS_IDLE 0
#define CANBT_STATUS_BUSY 1
#define CANBT_STATUS_SUCCESSFUL 2
#define CANBT_STATUS_TIMEOUT 3
#define CANBT_STATUS_CRC_ERR 4
#define CANBT_STATUS_ANY_ERR 5
struct SBlockTransfer
{ Uint16 state; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
Uint16 state_shadow;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
Uint16 state_prev; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
Uint16 E; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
Uint32 state_time; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><>.
Uint16 RX_block_size; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
Uint16 TX_block_size; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
Uint16 firstTXmsg; //<2F><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> 1-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
Uint16* RX_dest_ptr;
Uint16* TX_source_ptr;
int RX_index;
int TX_index;
T_BT_FIFO RXmsgFIFO;
T_BT_FIFO TXmsgFIFO;
Uint16 blockCRC;
Uint16 rx_status; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 tx_status; //
Uint32 timeout;
};
typedef volatile struct SBlockTransfer TBlockTransfer;
#define TBLOCK_TRANSFER_DEFAULTS {CANBT_STATE_FREE,\
CANBT_STATE_FREE,0xff,1,\
0,\
0,0,0,0,0,0,0,\
T_BT_FIFO_DEFAULTS,T_BT_FIFO_DEFAULTS,\
0,\
CANBT_STATUS_IDLE,CANBT_STATUS_IDLE,\
((Uint32)500)/*500<30><30>*/,\
}
//****************************************************************************************************************************************
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct S_UserMemoryContext
{
Uint16 MemStartAddr; //!<21><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
Uint16 *MCUStartAddr; //!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> MCU
Uint16 data_length; //!<21><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
};
typedef volatile struct S_UserMemoryContext T_UserMemoryContext;
//****************************************************************************************************************************************
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CANOpen
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
//<2F> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CANOpen
struct SCo_OdVars{
Uint32 co_deviceType; //1000.0
Uint16 co_errorRegister; //1001.0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_deviceState; //1002.0
Uint32 co_emcyCOBID; //1014.0
Uint32 co_CHBT; //1016.1 Consumer heartbeat time
Uint32 co_PHBT ; //1017.0 Producer heartbeat time
Uint32 co_vendorID; //1018.1
Uint32 co_productCode; //1018.2
Uint32 co_revisionNumber; //1018.3
Uint32 co_serialNumber; //1018.4
Uint32 co_csrxCOBID; //1200.1
Uint32 co_sctxCOBID; //1200.2
Uint32 co_cstxCOBID; //1280.1
Uint32 co_scrxCOBID; //1280.2
Uint16 co_ssNODEID; //1280.3
Uint32 co_RPDO1COBID; //1400.1
Uint16 co_transType; //1400.2 , 1401.2 , 1402.2 , 1403.2
Uint32 co_RPDO2COBID; //1401.1
Uint32 co_RPDO3COBID; //1402.1
Uint32 co_RPDO4COBID; //1403.1
Uint32 co_RPDO5COBID; //1404.1 rwp
Uint32 co_RPDO6COBID; //1405.1 rwp
Uint32 co_RPDO7COBID; //1406.1 rwp
Uint32 co_RPDO8COBID; //1407.1 rwp
//
Uint32 co_RPDO1_1Mapping; //1600.1
Uint32 co_RPDO1_2Mapping; //1600.2
Uint32 co_RPDO1_3Mapping; //1600.3
Uint32 co_RPDO1_4Mapping; //1600.4
Uint32 co_RPDO2_1Mapping; //1601.1
Uint32 co_RPDO2_2Mapping; //1601.2
Uint32 co_RPDO2_3Mapping; //1601.3
Uint32 co_RPDO2_4Mapping; //1601.4
Uint32 co_RPDO3_1Mapping; //1602.1
Uint32 co_RPDO3_2Mapping; //1602.2
Uint32 co_RPDO3_3Mapping; //1602.3
Uint32 co_RPDO3_4Mapping; //1602.4
Uint32 co_RPDO4_1Mapping; //1603.1
Uint32 co_RPDO4_2Mapping; //1603.2
Uint32 co_RPDO4_3Mapping; //1603.3
Uint32 co_RPDO4_4Mapping; //1603.4
//2007_03_14
Uint32 co_RPDO5_1Mapping; //1604.1 rwp
Uint32 co_RPDO5_2Mapping; //1604.2 rwp
Uint32 co_RPDO5_3Mapping; //1604.3 rwp
Uint32 co_RPDO5_4Mapping; //1604.4 rwp
Uint32 co_RPDO6_1Mapping; //1605.1 rwp
Uint32 co_RPDO6_2Mapping; //1605.2 rwp
Uint32 co_RPDO6_3Mapping; //1605.3 rwp
Uint32 co_RPDO6_4Mapping; //1605.4 rwp
Uint32 co_RPDO7_1Mapping; //1606.1 rwp
Uint32 co_RPDO7_2Mapping; //1606.2 rwp
Uint32 co_RPDO7_3Mapping; //1606.3 rwp
Uint32 co_RPDO7_4Mapping; //1606.4 rwp
Uint32 co_RPDO8_1Mapping; //1607.1 rwp
Uint32 co_RPDO8_2Mapping; //1607.2 rwp
Uint32 co_RPDO8_3Mapping; //1607.3 rwp
Uint32 co_RPDO8_4Mapping; //1607.4 rwp
//
Uint32 co_TPDO1COBID; //1800.1
Uint16 co_TPDO1ITime; //1800.3 rw
Uint16 co_compatEntry; //1800.4 rw
Uint16 co_TPDO1EventTimer; //1800.5 rw
Uint32 co_TPDO2COBID; //1801.1
Uint16 co_TPDO2ITime; //1801.3 rw
Uint16 co_TPDO2EventTimer; //1800.5 rw
Uint32 co_TPDO3COBID; //1802.1
Uint16 co_TPDO3ITime; //1802.3 rw
Uint16 co_TPDO3EventTimer; //1800.5 rw
Uint32 co_TPDO4COBID; //1803.1
Uint16 co_TPDO4ITime; //1803.3 rw
Uint16 co_TPDO4EventTimer; //1800.5 rw
Uint32 co_TPDO5COBID; //1804.1 r
Uint16 co_TPDO5ITime; //1804.3 rw
Uint16 co_TPDO5EventTimer; //1804.5 rw
Uint32 co_TPDO6COBID; //1805.1 r
Uint16 co_TPDO6ITime; //1805.3 rw
Uint16 co_TPDO6EventTimer; //1805.5 rw
Uint32 co_TPDO7COBID; //1806.1 r
Uint16 co_TPDO7ITime; //1806.3 rw
Uint16 co_TPDO7EventTimer; //1806.5 rw
Uint32 co_TPDO8COBID; //1807.1 r
Uint16 co_TPDO8ITime; //1807.3 rw
Uint16 co_TPDO8EventTimer; //1807.5 rw
//
Uint32 co_TPDO1_1Mapping; //1A00.1
Uint32 co_TPDO1_2Mapping; //1A00.2
Uint32 co_TPDO1_3Mapping; //1A00.3
Uint32 co_TPDO1_4Mapping; //1A00.4
Uint32 co_TPDO2_1Mapping; //1A01.1
Uint32 co_TPDO2_2Mapping; //1A01.2
Uint32 co_TPDO2_3Mapping; //1A01.3
Uint32 co_TPDO2_4Mapping; //1A01.4
Uint32 co_TPDO3_1Mapping; //1A02.1
Uint32 co_TPDO3_2Mapping; //1A02.2
Uint32 co_TPDO3_3Mapping; //1A02.3
Uint32 co_TPDO3_4Mapping; //1A02.4
Uint32 co_TPDO4_1Mapping; //1A03.1
Uint32 co_TPDO4_2Mapping; //1A03.2
Uint32 co_TPDO4_3Mapping; //1A03.3
Uint32 co_TPDO4_4Mapping; //1A03.4
Uint32 co_TPDO5_1Mapping; //1A04.1 rwp
Uint32 co_TPDO5_2Mapping; //1A04.2 rwp
Uint32 co_TPDO5_3Mapping; //1A04.3 rwp
Uint32 co_TPDO5_4Mapping; //1A04.4 rwp
Uint32 co_TPDO6_1Mapping; //1A05.1 rwp
Uint32 co_TPDO6_2Mapping; //1A05.2 rwp
Uint32 co_TPDO6_3Mapping; //1A05.3 rwp
Uint32 co_TPDO6_4Mapping; //1A05.4 rwp
Uint32 co_TPDO7_1Mapping; //1A06.1 rwp
Uint32 co_TPDO7_2Mapping; //1A06.2 rwp
Uint32 co_TPDO7_3Mapping; //1A06.3 rwp
Uint32 co_TPDO7_4Mapping; //1A06.4 rwp
Uint32 co_TPDO8_1Mapping; //1A07.1 rwp
Uint32 co_TPDO8_2Mapping; //1A07.2 rwp
Uint32 co_TPDO8_3Mapping; //1A07.3 rwp
Uint32 co_TPDO8_4Mapping; //1A07.4 rwp
//
Uint16 co_nodeID ; //2000.0 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
Uint16 co_bitRate; //2001.0
Uint16 co_specialData1; //2003.1
Uint16 co_specialData2; //2003.2
Uint16 co_specialData3; //2003.3
Uint16 co_specialData4; //2003.4
Uint32 co_secretCode; //2004.0
Uint16 co_protectBit; //2005.0
Uint32 co_devicePresentFlag0;
Uint32 co_devicePresentFlag1;
Uint32 co_devicePresentFlag2;
Uint32 co_devicePresentFlag3;
Uint32 co_deviceGlobalPresent0;
Uint32 co_deviceGlobalPresent1;
Uint32 co_deviceGlobalPresent2;
Uint32 co_deviceGlobalPresent3;
Uint32 co_heartbeatFlag0 ; //2010.1 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 0 <20><> 31-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_heartbeatFlag1 ; //2010.2 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 32 <20><> 63-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_heartbeatFlag2 ; //2010.3 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 64 <20><> 95-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_heartbeatFlag3 ; //2010.4 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 96 <20><> 127-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_heartbeatMask0 ; //2011.1 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 0 <20><> 31-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0110b)
Uint32 co_heartbeatMask1 ; //2011.2 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 32 <20><> 63-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_heartbeatMask2 ; //2011.3 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 64 <20><> 95-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_heartbeatMask3 ; //2011.4 <20><><EFBFBD><EFBFBD><EFBFBD> heartbeat <20> 96 <20><> 127-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 co_heartbeatAutoStart ; //2012.0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
Uint16 co_heartbeatAutoRecovery ; //2014.0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> STOPPED
Uint16 co_nodeState ; //2015.0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BOOTUP
Uint16 co_emergencyErrorCode ; //2016.0 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_deviceErrorState ; //2017.0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 co_ODCommand; //2080.1
Uint16 co_currentODIndex; //2080.2
Uint16 co_currentODSubIndex; //2080.3
Uint16 co_currentODEText; //2080.4
Uint16 co_currentODEFormat; //2080.5
Uint16 co_currentODEMin; //2080.6
Uint16 co_currentODEMax; //2080.7
Uint16 co_currentODEDefault; //2080.8
Uint16 co_currentODEMinLow; //2080.9
Uint16 co_currentODEMaxLow; //2080.10
Uint16 co_currentODEDefaultLow; //2080.11
Uint16 co_currentODEAddrHigh; //2080.12
Uint16 co_currentODEAddrLow;
Uint16 co_currentODEType;
Uint16 co_odIndexSize;
Uint32 co_defaultIndex1; //2082.1 rw
Uint32 co_defaultIndex2; //2082.2 rw
Uint16 co_maskElement01; //2083.1,2 rw
Uint16 co_maskElement23; //2083.3,4 rw
Uint16 co_maskElement45; //2083.5,6 rw
Uint16 co_maskElement67; //2083.7,8 rw
Uint16 co_maskElement89; //2083.9,A rw
Uint16 co_maskElementAB; //2083.B,C rw
Uint16 co_maskElementCD; //2083.D,E rw
Uint16 co_maskElementEF; //2083.F,10 rw
Uint16 co_profileAccessMask; //2081.0 rw
Uint16 co_scaleNum0; //2100.1
Uint16 co_scaleNum0Format; //2100.2
Uint16 co_scaleNum1; //2101.1
Uint16 co_scaleNum1Format; //2101.2
Uint16 co_scaleNum2; //2102.1
Uint16 co_scaleNum2Format; //2102.2
Uint16 co_scaleNum3; //2103.1
Uint16 co_scaleNum3Format; //2103.2
Uint16 co_scaleNum4; //2104.1
Uint16 co_scaleNum4Format; //2104.2
Uint16 co_scaleNum5; //2105.1
Uint16 co_scaleNum5Format; //2105.2
Uint16 co_scaleNum6; //2106.1
Uint16 co_scaleNum6Format; //2106.2
Uint16 co_scaleNum7; //2107.1
Uint16 co_scaleNum7Format; //2107.2
Uint16 co_scaleNum8; //2108.1
Uint16 co_scaleNum8Format; //2108.2
Uint16 co_scaleNum9; //2109.1
Uint16 co_scaleNum9Format; //2109.2
Uint16 co_scaleNumA; //210A.1
Uint16 co_scaleNumAFormat; //210A.2
Uint16 co_scaleNumB; //210B.1
Uint16 co_scaleNumBFormat; //210B.2
Uint16 co_scaleNumC; //210C.1
Uint16 co_scaleNumCFormat; //210C.2
Uint16 co_scaleNumD; //210D.1
Uint16 co_scaleNumDFormat; //210D.2
Uint16 co_scaleNumE; //210E.1
Uint16 co_scaleNumEFormat; //210E.2
Uint16 co_scaleNumF; //210F.1
Uint16 co_scaleNumFFormat; //210F.2
Uint16 co_scaleNum10; //2110.1
Uint16 co_scaleNum10Format; //2110.2
Uint16 co_scaleNum11; //2111.1
Uint16 co_scaleNum11Format; //2111.2
Uint16 co_scaleNum12; //2112.1
Uint16 co_scaleNum12Format; //2112.2
Uint16 co_scaleNum13; //2113.1
Uint16 co_scaleNum13Format; //2113.2
Uint16 co_scaleNum14; //2114.1
Uint16 co_scaleNum14Format; //2114.2
Uint16 co_scaleNum15; //2115.1
Uint16 co_scaleNum15Format; //2115.2
Uint16 co_scaleNum16; //2116.1
Uint16 co_scaleNum16Format; //2116.2
Uint16 co_scaleNum17; //2117.1
Uint16 co_scaleNum17Format; //2117.2
Uint16 co_scaleNum18; //2118.1
Uint16 co_scaleNum18Format; //2118.2
Uint16 co_scaleNum19; //2119.1
Uint16 co_scaleNum19Format; //2119.2
Uint16 co_scaleNum1A; //211A.1
Uint16 co_scaleNum1AFormat; //211A.2
Uint16 co_scaleNum1B; //211B.1
Uint16 co_scaleNum1BFormat; //211B.2
Uint16 co_scaleNum1C; //211C.1
Uint16 co_scaleNum1CFormat; //211C.2
Uint16 co_scaleNum1D; //211D.1
Uint16 co_scaleNum1DFormat; //211D.2
Uint16 co_scaleNum1E; //211E.1
Uint16 co_scaleNum1EFormat; //211E.2
Uint16 co_scaleNum1F; //211F.1
Uint16 co_scaleNum1FFormat; //211F.2
Uint16 co_blockTransferCommand; //2700
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 *co_currentWordODTbl1 ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 *co_currentWordODTbl2 ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
Uint16 co_currentAccessMask; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> co_currentWordODTbl1
Uint16 *co_shadow_currentWordODTbl1 ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 *co_shadow_currentWordODTbl2 ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
Uint16 *co_SDOcurrentWordODTbl1;
Uint16 *co_SDOcurrentWordODTbl2;
//ExternalInterface
Uint16 *Z_co_SDOcurrentWordODTbl1;
Uint16 *Z_co_SDOcurrentWordODTbl2;
Uint16 *co_PDOcurrentWordODTbl1;
Uint16 *co_PDOcurrentWordODTbl2;
Uint16 *co_PDOMAPcurrentWordODTbl1;
Uint16 *co_PDOMAPcurrentWordODTbl2;
Uint16 *co_endODTbl1 ;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ODTbl1
Uint32 co_MailboxMDRL;
Uint32 co_MailboxMDRH;
Uint32 co_MailboxMID;
Uint32 co_flagBackUp0;//
Uint32 co_flagBackUp1;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_flagBackUp2;//
Uint32 co_flagBackUp3;//
Uint32 co_backupEEC; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_backupER; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_backupDES; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_consHBTimeCounter;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> co_CHBT
Uint32 co_prodHBTimeCounter;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> co_PHBT
Uint32 co_emcyNewState; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint32 co_msDevisor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Heartbeat
Uint16 co_shadow_currentODIndex;
Uint16 co_shadow_currentODSubIndex;
Uint16 co_shadow_currentODEText;
Uint16 co_shadow_currentODEFormat;
Uint16 co_shadow_currentODEMin;
Uint16 co_shadow_currentODEMax;
Uint16 co_shadow_currentODEDefault;
Uint16 co_shadow_currentODEMinLow;
Uint16 co_shadow_currentODEMaxLow;
Uint16 co_shadow_currentODEDefaultLow;
Uint16 co_shadow_currentODEAddrLow;
Uint16 co_shadow_currentODEAddrHigh;
Uint16 co_shadow_currentODEType;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SDO <20><><EFBFBD><EFBFBD><EFBFBD>
Uint16 co_SDOrequestIndex;
Uint16 co_SDOrequestSubIndex;
Uint16 co_SDOrequestData;
Uint16 co_SDOrequestDataH;
Uint16 co_SDOrequestStatus;
Uint16 co_SDOrequestFlag;
Uint16 co_SDOSuspendedSend;
TMBOX_data SDOMsgData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Uint16 co_secretProtectBit;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PDO <20><><EFBFBD><EFBFBD><EFBFBD>
Uint16 co_PDOMappingFlags;//RRRR RRRR TTTT TTTT - "T" - TPDO;- "R" - RPDO
Uint16 co_PDO1Devisor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PDO1
Uint16 co_PDO2Devisor;
Uint16 co_PDO3Devisor;
Uint16 co_PDO4Devisor;
Uint16 co_PDO5Devisor;
Uint16 co_PDO6Devisor;
Uint16 co_PDO7Devisor;
Uint16 co_PDO8Devisor;
//
Uint16 co_NumOfNextPDO;
Uint16 co_PDOTransmitFlags;//0000 0000 TTTT TTTT
Uint16 co_PDOTransmitEna; //0000 0000 TTTT TTTT
Uint16 co_PDOReceiveEna; //0000 0000 RRRR RRRR
Uint16 co_my_PDO1TransmitFlags;
Uint16 co_my_PDO2TransmitFlags;
Uint16 co_my_PDO3TransmitFlags;
Uint16 co_my_PDO4TransmitFlags;
Uint16 co_my_PDO5TransmitFlags;
Uint16 co_my_PDO6TransmitFlags;
Uint16 co_my_PDO7TransmitFlags;
Uint16 co_my_PDO8TransmitFlags;
Uint32 co_RPDO1_addr[RPDO1NUMOFPARAMS];
Uint32 co_RPDO2_addr[RPDO2NUMOFPARAMS];
Uint32 co_RPDO3_addr[RPDO3NUMOFPARAMS];
Uint32 co_RPDO4_addr[RPDO4NUMOFPARAMS];
Uint32 co_RPDO5_addr[RPDO5NUMOFPARAMS];
Uint32 co_RPDO6_addr[RPDO6NUMOFPARAMS];
Uint32 co_RPDO7_addr[RPDO7NUMOFPARAMS];
Uint32 co_RPDO8_addr[RPDO8NUMOFPARAMS];
//
Uint16 co_RPDO1_startBit[RPDO1NUMOFPARAMS];
Uint16 co_RPDO2_startBit[RPDO2NUMOFPARAMS];
Uint16 co_RPDO3_startBit[RPDO3NUMOFPARAMS];
Uint16 co_RPDO4_startBit[RPDO4NUMOFPARAMS];
Uint16 co_RPDO5_startBit[RPDO5NUMOFPARAMS];
Uint16 co_RPDO6_startBit[RPDO6NUMOFPARAMS];
Uint16 co_RPDO7_startBit[RPDO7NUMOFPARAMS];
Uint16 co_RPDO8_startBit[RPDO8NUMOFPARAMS];
//
Uint16 co_RPDO1_numOfBits[RPDO1NUMOFPARAMS];
Uint16 co_RPDO2_numOfBits[RPDO2NUMOFPARAMS];
Uint16 co_RPDO3_numOfBits[RPDO3NUMOFPARAMS];
Uint16 co_RPDO4_numOfBits[RPDO4NUMOFPARAMS];
Uint16 co_RPDO5_numOfBits[RPDO5NUMOFPARAMS];
Uint16 co_RPDO6_numOfBits[RPDO6NUMOFPARAMS];
Uint16 co_RPDO7_numOfBits[RPDO7NUMOFPARAMS];
Uint16 co_RPDO8_numOfBits[RPDO8NUMOFPARAMS];
//
Uint32 co_TPDO1_addr[TPDO1NUMOFPARAMS];
Uint32 co_TPDO2_addr[TPDO2NUMOFPARAMS];
Uint32 co_TPDO3_addr[TPDO3NUMOFPARAMS];
Uint32 co_TPDO4_addr[TPDO4NUMOFPARAMS];
Uint32 co_TPDO5_addr[TPDO5NUMOFPARAMS];
Uint32 co_TPDO6_addr[TPDO6NUMOFPARAMS];
Uint32 co_TPDO7_addr[TPDO7NUMOFPARAMS];
Uint32 co_TPDO8_addr[TPDO8NUMOFPARAMS];
//
Uint16 co_TPDO1_startBit[TPDO1NUMOFPARAMS];
Uint16 co_TPDO2_startBit[TPDO2NUMOFPARAMS];
Uint16 co_TPDO3_startBit[TPDO3NUMOFPARAMS];
Uint16 co_TPDO4_startBit[TPDO4NUMOFPARAMS];
Uint16 co_TPDO5_startBit[TPDO5NUMOFPARAMS];
Uint16 co_TPDO6_startBit[TPDO6NUMOFPARAMS];
Uint16 co_TPDO7_startBit[TPDO7NUMOFPARAMS];
Uint16 co_TPDO8_startBit[TPDO8NUMOFPARAMS];
//
Uint16 co_TPDO1_numOfBits[TPDO1NUMOFPARAMS];
Uint16 co_TPDO2_numOfBits[TPDO2NUMOFPARAMS];
Uint16 co_TPDO3_numOfBits[TPDO3NUMOFPARAMS];
Uint16 co_TPDO4_numOfBits[TPDO4NUMOFPARAMS];
Uint16 co_TPDO5_numOfBits[TPDO5NUMOFPARAMS];
Uint16 co_TPDO6_numOfBits[TPDO6NUMOFPARAMS];
Uint16 co_TPDO7_numOfBits[TPDO7NUMOFPARAMS];
Uint16 co_TPDO8_numOfBits[TPDO8NUMOFPARAMS];
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
T_UserMemoryContext UM;
Uint16 ParamRestorationError;
Uint16 co_requestCANInit;
Uint16 co_callbackTag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD> 1<><31> CAN <20> 2 <20><><EFBFBD> 2<><32> CAN)
Uint32 ISRDroppingCounter;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> coodedit-<2D>
//Uint16 co_numOfInd;
int16* OD_TBL1;
Uint16* OD_TBL2;
int32* OD_TBL3;
Uint16* TYPE_DEF_TABLE;
int32* OD_CALLBACK_TBL;
Uint16 co_SPIrange1rw;
Uint16 co_SPIrange1rwCRC;
Uint16 co_SPIrange1rwp;
Uint16 co_SPIrange1rwpCRC;
Uint16 co_SPIrange1rwps;
Uint16 co_SPIrange1rwpsCRC;
Uint16 co_SPIrange2rw;
Uint16 co_SPIrange2rwCRC;
Uint16 co_SPIrange2rwp;
Uint16 co_SPIrange2rwpCRC;
Uint16 co_SPIrange2rwps;
Uint16 co_SPIrange2rwpsCRC;
Uint16 co_SPIrange3rw;
Uint16 co_SPIrange3rwCRC;
Uint16 co_SPIrange3rwp;
Uint16 co_SPIrange3rwpCRC;
Uint16 co_SPIrange3rwps;
Uint16 co_SPIrange3rwpsCRC;
Uint16 co_SPIrange4rw;
Uint16 co_SPIrange4rwCRC;
Uint16 co_SPIrange4rwp;
Uint16 co_SPIrange4rwpCRC;
Uint16 co_SPIrange4rwps;
Uint16 co_SPIrange4rwpsCRC;
Uint16 co_SPIrange5rw;
Uint16 co_SPIrange5rwCRC;
Uint16 co_SPIrange5rwp;
Uint16 co_SPIrange5rwpCRC;
Uint16 co_SPIrange5rwps;
Uint16 co_SPIrange5rwpsCRC;
Uint16 co_first1000;
Uint16 co_first2000;
Uint16 co_first3000;
Uint16 co_first4000;
Uint16 co_first5000;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
_CAN_Node_TypeDef* CAN_NODE_REGS;
CAN_TypeDef* CAN_REGS;
Uint16 CAN_NODE_MO_OFFSET;
Uint16 CAN_NODE_LIST;
Uint16 CAN_MO_ISR_LINE;
Uint16 CAN_NVIC_ISR_LINE;
void (*GpioInit)();
void (*CANINTDisable)();
void (*CANINTEnable)();
TBlockTransfer* BT; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TBlockTransfer
T_CANOPEN_DRV_SETTINGS settings;
};
typedef volatile struct SCo_OdVars TCo_OdVars;
extern TCo_OdVars co1_vars;
extern TCo_OdVars co2_vars;
extern TBlockTransfer CAN1BlockTransfer;
extern TBlockTransfer CAN2BlockTransfer;
//***************************************************************************************************************************************************
#ifdef __cplusplus
}
#endif
#endif
/*@}*/