#include <stdio.h>
#include <string.h>
#include "osal.h"
#include "ethercattype.h"
#include "nicdrv.h"
#include "ethercatbase.h"
#include "ethercatmain.h"
#include "ethercatdc.h"
#include "ethercatcoe.h"
#include "ethercatfoe.h"
#include "ethercatconfig.h"
#include "ethercatprint.h"
#define EC_TIMEOUTMON 500
#define NSEC_PER_SEC 1000000000
#define SWAP_WORD(l) (LO_WORD(l) << 16 | HI_WORD(l) & 0xffff)
char IOmap[4096];
uint16 nControl;
int i;
char run = 1;
int expectedWKC;
int state;
typedef struct PACKED
{
uint16_t Controlword; //control word
int16_t TargetPosLow; //target pos int32
int16