#include "example.h"
#define M_ADDRESS 5
#define M_SUBADDR 3
#define LOCAL
#define ACQUISITION
int main(void)
{
HMXF_SERVER server;
HMXF_DEVICE device = 0;
HMXF_MODULE mil1553Module = 0;
HMXF_MODULE discreteModule = 0;
HMXF_MODULE module[2];
HMXF_CHANNEL bc = 0;
HMXF_CHANNEL bm = 0;
HMXF_CHANNEL discrete = 0;
HMXF_BUFFER rxDiscreteBuffer = 0;
HMXF_BUFFER txMsg1553Buffer = 0;
#ifdef ACQUISITION
HMXF_BUFFER acq1553Buffer = 0;
uint64 rate;
uint64 last = 0;
#else
HMXF_BUFFER samp1553Buffer = 0;
#endif
uint32 rc;
uint64 discreteCount = 0;
uint32 txDataSize;
uint32 rxDataSize = 0;
void* rxData = 0;
uint64 rxAcqStatus;
uint64 msgCount;
uint64 byteCount;
uint64 rxRec;
uint64 loop = 0, deviceCount = 0, moduleCount = 0;
uint32 data;
char errorString[200];
#ifdef LOCAL
#else
#endif
if (!rc)
{
printf("Starting ...\n\r");
}
if (!rc)
if (!rc)
if (!rc && !deviceCount)
if (!rc && deviceCount)
{
if (moduleCount != 2)
{
printf("This example only works for FM1553-4 or FX1553-4\n");
rc = MAXT_ERROR_MODEL;
}
}
else if (!rc && !deviceCount)
rc = MAXT_ERROR_MODEL;
mil1553Module = module[0];
if (!rc)
{
if (!rc && !discreteCount)
rc = MAXT_ERROR_NOT_FOUND;
}
if (!rc)
if (!rc)
if (!rc)
if (!rc)
if (!rc)
#ifdef LOOPBACK
if (!rc)
if (!rc)
#endif
if (!rc)
if (!rc)
if (!rc)
if (!rc)
{
if (!rc)
}
if (!rc)
{
if (!rc)
}
if (!rc)
{
if (!rc)
}
if (!rc)
{
txDataSize = 1024;
if (!rc)
{
if (!txData)
rc = MAXT_ERROR_MEM;
}
}
rxDataSize = 10 * 1024;
#ifdef ACQUISITION
if (!rc)
#else
if (!rc)
if (!rc)
#endif
if (!rc)
if (!rc)
{
rxData = malloc(rxDataSize);
if (!rxData)
rc = MAXT_ERROR_MEM;
}
if (!rc)
if (!rc)
{
memset(minorFrame, 0, sizeof(minorFrame));
minorFrame[0].
buffer = txMsg1553Buffer;
if (!rc)
}
if (!rc)
{
txRec1553->
data[0] = 0x0000;
txRec1553->
data[1] = 0x0000;
txRec1553->
data[2] = 0x1111;
txRec1553->
data[3] = 0x2222;
txRec1553->
data[4] = 0x3333;
}
if (!rc)
{
uint32 errorIndex = 0;
if (!rc)
{
txRec1553->
control = MXF_MIL1553_TXPERIODIC_REC_CTRL_ERROR_INJ;
}
}
#ifdef ACQUISITION
if (!rc)
#else
if (!rc)
#endif
if (!rc)
rc =
mxfRxAcqStart(rxDiscreteBuffer, MXF_RXACQ_FLAG_DEFAULT, 0, 0);
if (!rc)
if (!rc)
if (!rc)
{
loop = 0;
do
{
#ifdef ACQUISITION
for (rxRec = 0; !rc && rxRec < msgCount; rxRec++)
{
rate = last ? ((rxRec1553->
timeTag - last) / 1000000) : 0;
printf(
"%012llu ", rxRec1553->
timeTag);
printf("%03llu ", rate);
printf(
"%08X ", rxRec1553->
control);
printf(
"%04u ", (rxRec1553->
dataSize / 2) - 1);
for (data = 0; data < min(8, rxRec1553->
dataSize / 2); data++)
{
printf(
"%04X ", rxRec1553->
data[data]);
}
printf("\n\r");
}
#else
for (rxRec = 0; !rc && rxRec < msgCount; rxRec++)
{
printf(
"%012llu ", sampRec1553->
timeTag);
printf(
"%03u ", sampRec1553->
rate);
printf(
"%08X ", sampRec1553->
control);
printf(
"%04u ", (sampRec1553->
dataSize / 2) - 1);
for (data = 0; data < min(5, sampRec1553->
dataSize / 2); data++)
{
printf(
"%04X ", sampRec1553->
data[data]);
}
printf("\n\r");
}
#endif
if (!rc)
for (rxRec = 0; !rc && rxRec < msgCount; rxRec++)
{
{
printf(
"DISCRETE -> %012llu ", rxRecDiscrete->
timeTag);
printf(
"%04X ", rxRecDiscrete->
edge);
printf(
"%04X ", rxRecDiscrete->
data);
printf("\n\r");
}
}
loop++;
} while (loop < 5);
}
if (!rc)
{
if (!rc)
}
if (!rc)
{
if (!rc)
}
printf("Stopping\n\r");
#ifdef ACQUISITION
#else
#endif
if (txData)
free(txData);
if (rxData)
free(rxData);
if (rc)
{
sprintf(errorString, "Error # 0x%08x", rc);
printf("%s\n\r", errorString);
}
if (txMsg1553Buffer)
{
if (rc)
printf("Free buffer failed !\n\r");
}
#ifdef ACQUISITION
if (acq1553Buffer)
{
if (rc)
printf("Free buffer failed !\n\r");
}
#else
if (samp1553Buffer)
{
if (rc)
printf("Free buffer failed !\n\r");
}
#endif
if (rxDiscreteBuffer)
{
if (rc)
printf("Free buffer failed !\n\r");
}
printf("\n\rPress enter to terminate\n\r");
getchar();
return 0;
}