#include "example.h"
#define MAX_TO_READ 100
struct REQUEST_INFO {
uint64 a;
uint64 fc;
uint64 checksum;
uint64 crc;
uint64 l;
};
#define NUM_REQUEST 10
const struct REQUEST_INFO requestInfo[NUM_REQUEST] = {
{0x1B,0,1,0,36},
{0x30,1,1,0,84},
{0x06,1,1,0,54},
{0x02,1,1,0,74},
{0x70,1,1,0,76},
{0x2B,1,1,0,58},
{0x23,1,1,0,238},
{0x12,1,1,0,156},
{0x1A,1,1,0,100},
{0x46,1,1,0,60} };
int main(void)
{
uint32 rc;
HMXF_SERVER server;
HMXF_DEVICE device;
HMXF_MODULE module=0;
HMXF_CHANNEL channel=0;
HMXF_BUFFER acqBuf=0;
uint64 status, msgCount, byteCount;
int c;
int i;
char tmpStr[1024];
char disp[64], data[64];
uint32 index;
int doInit=1;
if (rc != MAXT_SUCCESS)
{
printf("Failed to connect; rc=0x%08x", rc);
getchar();
return 0;
}
printf("Starting ...\n");
if (!rc)
{
if (rc == MAXT_ERROR_ANOTHER_PROCESS_RUNNING)
{
doInit = 0;
}
}
if (!rc)
rc =
mxfChannelGet(server, MXF_CLASS_ASCB, MXF_SCLASS_BM_CHANNEL, MXF_MODULE_ALL, 0, &channel);
if (!rc)
if (!rc)
if (!rc && doInit)
{
if (!rc)
}
for(i=0; i<NUM_REQUEST && !rc; i++)
{
if(!rc)
if (!rc)
if(!rc)
{
fc.
enable = requestInfo[i].fc;
}
}
if (!rc)
{
if(rc == MAXT_ERROR_BUFFER_ALLOCATED)
}
if (!rc)
c = 0;
while((rc == MAXT_SUCCESS) && (c < 1000))
{
if (c == 0)
{
printf("| TimeTag | Control | Adrs | Data |\n");
printf("------------------------------------------------------------------------\n");
}
rc =
mxfRxAcqRead(acqBuf, MAX_TO_READ,
sizeof(rec), &status, &msgCount, &byteCount, rec);
if ((rc == MAXT_SUCCESS) && (msgCount != 0))
{
p = rec;
for (i = 0; i < (int)msgCount; i++)
{
printf(
"| %-14.14llu |", p->
timeTag);
if (!(p->
control&(MXF_ASCB_RX_REC_CTRL_HWCRC_ERROR | MXF_ASCB_RX_REC_CTRL_DATACHKSM_ERROR | MXF_ASCB_RX_REC_CTRL_DATACRC_ERROR |
MXF_ASCB_RX_REC_CTRL_FC_ERROR | MXF_ASCB_RX_REC_CTRL_FRAME_ABORT | MXF_ASCB_RX_REC_CTRL_SYNC_LOST | MXF_ASCB_RX_REC_CTRL_BYTE_COUNT_ERROR)))
printf(" %-7.9s |", " ok ");
else
printf(" %-7.9s |", " error ");
printf(
" %02x |", p->
data[0] & 0x00ff);
tmpStr[0] = '\0';
disp[0] = '\0';
for (index = 0; index < (p->
dataSize + 1) / 2; index++)
{
if (index && !(index % 8))
{
strcat(tmpStr, disp);
disp[0] = '\0';
strcat(tmpStr, " |\n| | ");
}
sprintf(data,
"%04X", p->
data[index]);
strcat(disp, data);
}
if (index)
{
if(disp[0] != '\0')
{
sprintf(data, "%-32s", disp);
strcat(tmpStr, data);
}
printf(" %s |", tmpStr);
}
printf("\n");
}
printf("------------------------------------------------------------------------\n");
}
c++;
}
if(!rc)
if(!rc)
if(rc)
{
char errorString[200];
sprintf(errorString, "ERROR # 0x%X", rc);
printf("%s\n\r", errorString);
}
printf("Terminating ...\n");
if(acqBuf)
if (rc == MAXT_ERROR_ANOTHER_PROCESS_RUNNING)
printf("\nPress a key to terminate\n");
getchar();
return rc;
}