#include "RcuContainer.h" int main( int argc, char** argv ) { cout.setf(ios::hex, ios::basefield); uint32_t branch = 1; uint32_t fec1 = 10; uint32_t fec2 = 11; uint64_t data2 = 0; int p[2] = {0x12345678, 0xdeadbeef}; //cout << "p[0]: 0x" << (int) p[0] << endl; //cout << "p[1]: 0x" << (int) p[1] << endl; data2 = p[1]; data2 = data2 << 32; data2 = data2 | p[0]; //cout << "data2: 0x" << data2 << endl; char buffer[12]; buffer[0] = 0; buffer[1] = 0; buffer[2] = 1; buffer[3] = 0; buffer[4] = 2; buffer[5] = 0; buffer[6] = 3; buffer[7] = 0; buffer[8] = 4; buffer[9] = 0; buffer[10] = 5; buffer[11] = 0; RcuContainer *rc = new RcuContainer(); uint32_t *mem; for ( int r=0; r<5; r++ ) { rc->reset(); rc->setHardwareAddress(0x789); rc->fillRcu(data2); rc->fillRcu((uint32_t) 0xbeefbeef); // set some data for 1 fec: rc->fillBc(branch, fec1, (uint32_t) 0x0fec); for(uint32_t i = 0; i < 16; i++){ //rc->fillAltro(branch, fec1, 0, i ); //rc->fillAltro(branch, fec1, 1, i+0x10); //rc->fillAltro(branch, fec1, 2, i+0x20); //rc->fillAltro(branch, fec1, 3, i+0x30); //rc->fillAltro(branch, fec1, 4, i+0x40); rc->fillAltro(branch, fec1, 5, i+0x50); rc->fillAltro(branch, fec1, 6, i+0x60); rc->fillAltro(branch, fec1, 7, i+0x70); } // a second fec: rc->fillBc(branch, fec2, (uint32_t) 0x0fec); for(uint32_t i = 0; i < 16; i++){ //rc->fillAltro(branch, fec2, 0, i ); //rc->fillAltro(branch, fec2, 1, i+0x10); //rc->fillAltro(branch, fec2, 2, i+0x20); //rc->fillAltro(branch, fec2, 3, i+0x30); //rc->fillAltro(branch, fec2, 4, i+0x40); rc->fillAltro(branch, fec2, 5, i+0x50); rc->fillAltro(branch, fec2, 6, i+0x60); rc->fillAltro(branch, fec2, 7, i+0x70); } cout << "====================================" << endl; rc->finalize(); mem = rc->getDataBlock(); for(uint32_t i = 0; i < rc->size(); i++){ cout << i << ": 0x" << mem[i] << endl; } cout << "====================================" << endl; cout << "Total Size : " << rc->size() << endl; cout << "Size CE Block : " << rc->size()-4 << endl; cout << "====================================" << endl; } /////////////////////////////////////////// rc->reset(); rc->setHardwareAddress(0x123); rc->fillRcu(data2); rc->fillRcu((uint32_t) 0xbeefbeef); rc->appendRcu((uint32_t) 0xdeaddead); // set some data for 1 fec: rc->fillBc(branch, fec1, (uint32_t) 0x0fec); // altro for(uint32_t i = 0; i < 2; i++){ rc->fillAltro(branch, fec1, 0, i ); rc->fillAltro(branch, fec1, 0, (uint32_t)0xbeef); } rc->fillRcuBuffer(0x0, 0xabcdef00); rc->fillRcuBuffer(0x1, 0xabcdef01); rc->fillRcuBuffer(0x2, 0xabcdef02); rc->fillRcuBuffer(0x3, 0xabcdef03); rc->fillRcuBuffer(0x4, 0xabcdef04); rc->fillRcuBuffer(0x5, 0xabcdef05); rc->fillRcuBuffer(0x6, 0xabcdef06); rc->fillRcuBufferAFL(0xaabbccdd); rc->fillRcuBufferEN_INT_BA(0x11223344); cout << "====================================" << endl; rc->setConfigurePhysics(); rc->finalize(); mem = rc->getDataBlock(); for(uint32_t i = 0; i < rc->size(); i++){ cout << i << ": 0x" << mem[i] << endl; } cout << "====================================" << endl; cout << "Total Size : " << rc->size() << endl; cout << "Size CE Block : " << rc->size()-5 << endl; cout << "Size RCU Block : " << rc->size()-5-8 << endl; cout << "====================================" << endl; delete rc; rc = 0; }