Skip to content

Commit

Permalink
Added 4 more packet types to ADARAPacketTest
Browse files Browse the repository at this point in the history
Refs #6559
  • Loading branch information
rgmiller committed Feb 13, 2013
1 parent 02661ff commit 2f9c80d
Show file tree
Hide file tree
Showing 2 changed files with 140 additions and 16 deletions.
96 changes: 91 additions & 5 deletions Code/Mantid/Framework/DataHandling/test/ADARAPacketTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,60 @@ class ADARAPacketTest : public CxxTest::TestSuite,
m_initialBufferAddr = bufferFillAddress();
}

void testDeviceDescriptorPacket()
void testBankedEventPacketParser()
{
boost::shared_ptr<ADARA::BankedEventPkt> pkt =
basicPacketTests<ADARA::BankedEventPkt>( bankedEventPacket, sizeof(bankedEventPacket), 728504567, 761741666);
if (pkt != NULL)
{
TS_ASSERT_EQUALS( pkt->cycle(), 0x3C);
TS_ASSERT_EQUALS( pkt->pulseCharge(), 1549703);
TS_ASSERT_EQUALS( pkt->pulseEnergy(), 937987556);
TS_ASSERT_EQUALS( pkt->flags(), 0);

const ADARA::Event *event = pkt->firstEvent();
TS_ASSERT( event);
if (event)
{
TS_ASSERT_EQUALS( pkt->curBankId(), 0x02);
TS_ASSERT_EQUALS( event->tof, 0x00023BD9);
TS_ASSERT_EQUALS( event->pixel, 0x043C);
}

// This packet only has one event in its first bank, so fetch the
// next event and verify the bank id
event = pkt->nextEvent();
TS_ASSERT( event);
if (event)
{
TS_ASSERT_EQUALS( pkt->curBankId(), 0x13)
}

// There's also only one event in it's second (and last) bank.
// Get the next event and verify it's null
event = pkt->nextEvent();
TS_ASSERT( ! event);
}
}

void testBeamMonitorPacketParser()
{
boost::shared_ptr<ADARA::BeamMonitorPkt> pkt =
basicPacketTests<ADARA::BeamMonitorPkt>( beamMonitorPacket, sizeof(beamMonitorPacket), 728504567, 761741666);
if (pkt != NULL)
{
TS_ASSERT_EQUALS( pkt->cycle(), 0x3c);
TS_ASSERT_EQUALS( pkt->flags(), 0);
TS_ASSERT_EQUALS( pkt->pulseCharge(), 1549703);
TS_ASSERT_EQUALS( pkt->pulseEnergy(), 937987556);
// TODO: Find a different Beam Monitor Packet with actual monitor sections in it
}
}

void testDeviceDescriptorPacketParser()
{
boost::shared_ptr<ADARA::DeviceDescriptorPkt> pkt =
basicPacketTests<ADARA::DeviceDescriptorPkt>( devDesPkt, sizeof(devDesPkt), 726785379, 0);
basicPacketTests<ADARA::DeviceDescriptorPkt>( devDesPacket, sizeof(devDesPacket), 726785379, 0);
if (pkt != NULL)
{
// Basic XML validation
Expand All @@ -48,7 +98,7 @@ class ADARAPacketTest : public CxxTest::TestSuite,
void testRunStatusPacketParser()
{
boost::shared_ptr<ADARA::RunStatusPkt> pkt =
basicPacketTests<ADARA::RunStatusPkt>( runStatusPkt, sizeof(runStatusPkt), 728504568, 5625794);
basicPacketTests<ADARA::RunStatusPkt>( runStatusPacket, sizeof(runStatusPacket), 728504568, 5625794);

if( pkt != NULL)
{
Expand All @@ -62,16 +112,35 @@ class ADARAPacketTest : public CxxTest::TestSuite,
}
}

void testRTDLPacketParser()
{
boost::shared_ptr<ADARA::RTDLPkt> pkt =
basicPacketTests<ADARA::RTDLPkt>( rtdlPacket, sizeof(rtdlPacket), 728504567, 761741666);

if( pkt != NULL)
{
TS_ASSERT_EQUALS( pkt->cycle(), 60);
TS_ASSERT_EQUALS( pkt->veto(), 0x4);
TS_ASSERT_EQUALS( pkt->badVeto(), false);
TS_ASSERT_EQUALS( pkt->timingStatus(), 0x1e);
TS_ASSERT_EQUALS( pkt->flavor(), 1);
TS_ASSERT_EQUALS( pkt->intraPulseTime(), 166662);
TS_ASSERT_EQUALS( pkt->tofOffset(), 63112);
TS_ASSERT_EQUALS( pkt->pulseCharge(), 1549703);
TS_ASSERT_EQUALS( pkt->ringPeriod(), 955259);
}
}

void testSyncPacketParser()
{
// the basic tests cover everything in the sync packet
basicPacketTests<ADARA::SyncPkt>(syncPkt, sizeof(syncPkt), 728504568, 5617153);
basicPacketTests<ADARA::SyncPkt>(syncPacket, sizeof(syncPacket), 728504568, 5617153);
}

void testVariableDoublePacketParser()
{
boost::shared_ptr<ADARA::VariableDoublePkt> pkt =
basicPacketTests<ADARA::VariableDoublePkt>( variableDoublePkt, sizeof(variableDoublePkt), 728281149, 0);
basicPacketTests<ADARA::VariableDoublePkt>( variableDoublePacket, sizeof(variableDoublePacket), 728281149, 0);

if( pkt != NULL)
{
Expand All @@ -84,6 +153,23 @@ class ADARAPacketTest : public CxxTest::TestSuite,
}
}

void testVariableU32PacketParser()
{
boost::shared_ptr<ADARA::VariableU32Pkt> pkt =
basicPacketTests<ADARA::VariableU32Pkt>( variableU32Packet, sizeof(variableU32Packet), 728281149, 0);

if( pkt != NULL)
{
TS_ASSERT_EQUALS( pkt->devId(), 2);
TS_ASSERT_EQUALS( pkt->varId(), 3);
TS_ASSERT_EQUALS( pkt->status(), 0);
TS_ASSERT_EQUALS( pkt->severity(), 0);
TS_ASSERT_EQUALS( pkt->value(), 3);
// Note: we're not allowing for any rounding errors here. Might have to for some values...
}
}



protected:
// The rxPacket() functions just make a copy of the packet available in the public member
Expand Down
60 changes: 49 additions & 11 deletions Code/Mantid/Framework/DataHandling/test/ADARAPackets.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,34 +11,72 @@
// This code is in a separate file to keep it from cluttering up the
// ADARAPacketTest.h file.

// Type: "Synchronization (File)" (version 0)
// Pulse ID: 728504568.5617153
// Packet Time: Jan 31, 2013 - 13:22:48.005
const unsigned char syncPkt[44] = {
0x1c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x00, 0xf8, 0x18, 0x6c, 0x2b, 0x01, 0xb6, 0x55, 0x00,
0x53, 0x4e, 0x53, 0x41, 0x44, 0x41, 0x52, 0x41, 0x4f, 0x52, 0x4e, 0x4c, 0x00, 0x00, 0xf0, 0x7f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
// Type: "Banked Event Data" (version 0)
// Pulse ID: 728504567.761741666
// Packet Time: Jan 31, 2013 - 13:22:47.761
const unsigned char bankedEventPacket[96] = {
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xf7, 0x18, 0x6c, 0x2b, 0x62, 0x41, 0x67, 0x2d,
0x87, 0xa5, 0x17, 0x00, 0xe4, 0x8d, 0xe8, 0x37, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0b, 0xb0, 0x3c, 0x15, 0x06, 0x8b, 0x02, 0x00, 0x88, 0xf6, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x3b, 0x02, 0x00, 0x3c, 0x04, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3a, 0x3f, 0x02, 0x00, 0xe2, 0x49, 0x00, 0x00,
0xc0, 0xdc, 0x3c, 0x15, 0x06, 0x8b, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

// Type: "Beam Monitor Event Data" (version 0)
// Pulse ID: 728504567.761741666
// Packet Time: Jan 31, 2013 - 13:22:47.761
const unsigned char beamMonitorPacket[32] = {
0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0xf7, 0x18, 0x6c, 0x2b, 0x62, 0x41, 0x67, 0x2d,
0x87, 0xa5, 0x17, 0x00, 0xe4, 0x8d, 0xe8, 0x37, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

// Type: "Real Time Data Link Info" (version 0)
// Pulse ID: 728504567.761741666
// Packet Time: Jan 31, 2013 - 13:22:47.761
const unsigned char rtdlPacket[136] = {
0x78, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xf7, 0x18, 0x6c, 0x2b, 0x62, 0x41, 0x67, 0x2d,
0x87, 0xa5, 0x17, 0x01, 0x3c, 0x10, 0x80, 0x07, 0x06, 0x8b, 0x02, 0x00, 0x88, 0xf6, 0x00, 0x80,
0x7b, 0x93, 0x0e, 0x04, 0x24, 0x49, 0xdb, 0x05, 0x74, 0x6f, 0x72, 0x06, 0xf3, 0x02, 0x00, 0x07,
0xc0, 0x27, 0x09, 0x08, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x11, 0x04, 0x00, 0x00, 0x18,
0x3c, 0x00, 0x00, 0x19, 0x3c, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x0c, 0x1c, 0x32, 0x00, 0x00, 0x1d,
0xbf, 0x42, 0x01, 0x1e, 0x97, 0x0b, 0x00, 0x1f, 0x5a, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x22, 0x87, 0xa5, 0x17, 0x23, 0x07, 0x10, 0x00, 0x24, 0x59, 0xb0, 0x03, 0x25,
0x06, 0x10, 0x04, 0x26, 0x00, 0x00, 0x00, 0x27, 0xfe, 0xff, 0x00, 0x28, 0x02, 0x00, 0x00, 0x29,
0x18, 0x6c, 0x2b, 0x01, 0xf7, 0x1e, 0x62, 0x02 };

// Type: "Run Status" (version 0)
// Pulse ID: 728504568.5625794
// Packet Time: Jan 31, 2013 - 13:22:48.005
const unsigned char runStatusPkt[28] = {
const unsigned char runStatusPacket[28] = {
0x0c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x40, 0x00, 0xf8, 0x18, 0x6c, 0x2b, 0xc2, 0xd7, 0x55, 0x00,
0xbf, 0x33, 0x00, 0x00, 0x01, 0x14, 0x6c, 0x2b, 0x00, 0x00, 0x00, 0x05 };


// Type: "Synchronization (File)" (version 0)
// Pulse ID: 728504568.5617153
// Packet Time: Jan 31, 2013 - 13:22:48.005
const unsigned char syncPacket[44] = {
0x1c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x00, 0xf8, 0x18, 0x6c, 0x2b, 0x01, 0xb6, 0x55, 0x00,
0x53, 0x4e, 0x53, 0x41, 0x44, 0x41, 0x52, 0x41, 0x4f, 0x52, 0x4e, 0x4c, 0x00, 0x00, 0xf0, 0x7f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

// Type: "Variable Value (double)" (version 0)
// Pulse ID: 728281149.0
// Packet Time: Jan 28, 2013 - 23:19:09.000
const unsigned char variableDoublePkt[36] = {
const unsigned char variableDoublePacket[36] = {
0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x3d, 0xb0, 0x68, 0x2b, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xc6, 0x4b, 0x37,
0x89, 0x01, 0x14, 0x40 };

// Type: "Variable Value (u32)" (version 0)
// Pulse ID: 728281149.0
// Packet Time: Jan 28, 2013 - 23:19:09.000
const unsigned char variableU32Packet[32] = {
0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x3d, 0xb0, 0x68, 0x2b, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 };

// Type: "Device Descriptor" (version 0)
// Pulse ID: 726785379.0
// Packet Time: Jan 11, 2013 - 15:49:39.000
const unsigned char devDesPkt[2600] = {
const unsigned char devDesPacket[2600] = {
0x18, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x63, 0xdd, 0x51, 0x2b, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0e, 0x0a, 0x00, 0x00, 0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65,
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x20, 0x65, 0x6e, 0x63, 0x6f,
Expand Down

0 comments on commit 2f9c80d

Please sign in to comment.