#include "example.h"
#define MAX_CHANNELS 2
#define BUFFER_SIZE 8192 // 8KB
#define MAX_TX_RECORDS_TO_TRANSMIT 256
int main(void)
{
uint32 rc;
HMXF_SERVER server;
HMXF_DEVICE device = 0;
HMXF_MODULE module = 0;
uint64 count = 0, type = 0;
HMXF_CHANNEL txChannel[MAX_CHANNELS] = { 0, 0 };
HMXF_CHANNEL rxChannel[MAX_CHANNELS] = { 0, 0 };
HMXF_BUFFER rxBuffer = 0;
HMXF_BUFFER txBuffer[MAX_CHANNELS] = { 0, 0 };
HMXF_BRIDGE bridge = 0;
uint64 i, indexBuffer;
char mask[36] = "DM:XXXXXXXXXXXXXXXXXXXXXXXX10101010";
uint64 modulo = 1;
uint64 status, msgsCount = 0, bytesCount;
uint64 label, sdi, data, ssm, parity;
#ifdef LOCAL
#else
#endif
if (rc != MAXT_SUCCESS)
{
printf("Failed to connect; rc=0x%08x", rc);
printf("\nPress a key to terminate\n");
getchar();
return 0;
}
printf("\nStarting\n");
if (!rc)
if (!rc)
rc =
mxfChannelAllGet(server, MXF_CLASS_A429, MXF_SCLASS_RX_CHANNEL, MXF_MODULE_ALL, MAX_CHANNELS, &count, rxChannel);
if (!rc && count)
rc =
mxfChannelAllGet(server, MXF_CLASS_A429, MXF_SCLASS_TX_CHANNEL, MXF_MODULE_ALL, MAX_CHANNELS, &count, txChannel);
if (!rc && !count)
rc = MAXT_ERROR_NOT_FOUND;
if (!rc)
for (i = 0; i < MAX_CHANNELS && !rc; i++)
{
if (!rc)
if (!rc)
if (!rc && type == MXF_MODULE_A429E)
{
if (!rc)
if (!rc)
}
else
{
if (!rc)
if (!rc)
}
#ifdef LOOPBACK
if (!rc)
#endif
}
if (!rc)
if (!rc)
if (!rc)
if (!rc)
{
if (!rec429)
rc = MAXT_ERROR_MEM;
}
if (!rc)
if (!rc)
if (!rc)
{
if (!rc)
printf("\nAcquisition started\n");
}
if (!rc)
if (!rc)
for (i = 0; i <= 50 && !rc; i++)
if (!rc)
{
if (!rc)
printf("\nBridge started\n");
}
if (!rc)
{
printf("Starting transmission\n");
p = rec429;
for (i = 0; i < MAX_TX_RECORDS_TO_TRANSMIT && !rc; i++)
{
parity = VMXF_A429_PARITY_ODD;
ssm = 0;
data = 0x135;
sdi = 2;
label = i;
}
}
if (!rc)
{
if (rc == MAXT_SUCCESS)
printf("%d records transmitted\n", MAX_TX_RECORDS_TO_TRANSMIT);
}
if (!rc)
rc =
mxfA429RxAcqRead(rxBuffer, 0, BUFFER_SIZE, &status, &msgsCount, &bytesCount, rec429);
p = rec429;
for (i = 0; i < msgsCount && !rc; i++)
{
printf("%02llu: Timetag %llu - ARINC word=[%lld,%lld,%05llX,%lld,%03llo]\n",
i, p->
timeTag, parity, ssm, data, sdi, label);
}
if (!rc)
{
if (!rc)
{
printf("\nBridge stopped\n");
}
}
if (!rc)
{
if (!rc)
{
printf("\nAcquisition stopped\n");
}
}
if (rc)
{
char buffer[256];
printf("%s\n", buffer);
}
printf("\nTerminating\n");
if (rxBuffer)
for (indexBuffer = 0; indexBuffer < 2; indexBuffer++)
{
if (txBuffer[indexBuffer])
}
if (rec429)
free(rec429);
printf("\nPress enter to terminate\n");
getchar();
return rc;
}