Exemplo n.º 1
0
/**
 * Initialize the system state.
 *
 * Description:\n
 * 	Initializes the system state, initializing internal variables based
 * 	on startup parameters
 */
void
State::init()
{
	Args *args = Args::getInstance();
	Assert(args);

	beam = Beam::getInstance();
	Assert(beam);

	// set the intrinsics
	strcpy(intrinsics.interfaceVersion, SSE_CHANNELIZER_INTERFACE_VERSION);
	strcpy(intrinsics.name, args->getName().c_str());
	gethostname(intrinsics.host, sizeof(intrinsics.host) - 1);
//	string s = std::string(CHVERSION);
	strcpy(intrinsics.codeVersion, "");

	strcpy(intrinsics.beamBase.addr, args->getInputAddr());
	intrinsics.beamBase.port = args->getInputPort();
	intrinsics.beamId = args->getBeamSrc();
#ifdef notdef
	switch (args->getPol()) {
	case ATADataPacketHeader::RCIRC:
		intrinsics.pol = POL_RIGHTCIRCULAR;
		break;
	case ATADataPacketHeader::LCIRC:
		intrinsics.pol = POL_LEFTCIRCULAR;
		break;
	case ATADataPacketHeader::XLINEAR:
		intrinsics.pol = POL_XLINEAR;
		break;
	case ATADataPacketHeader::YLINEAR:
		intrinsics.pol = POL_YLINEAR;
		break;
	default:
		intrinsics.pol = POL_UNINIT;
		break;
	}
#else
	intrinsics.pol = getPol((ATADataPacketHeader::PolarizationCode)
			args->getPol());
#endif

	strcpy(intrinsics.channelBase.addr, args->getOutputAddr());
	intrinsics.channelBase.port = args->getOutputPort();
	intrinsics.totalChannels = args->getTotalChannels();
	intrinsics.outputChannels = args->getUsableChannels();
	intrinsics.mhzPerChannel = args->getBandwidth() / args->getTotalChannels();

	intrinsics.foldings = args->getFoldings();
	intrinsics.oversampling = args->getOversampling();
	char tmp[MAX_TEXT_STRING];
	strcpy(tmp, args->getFilterFile().c_str());
	strcpy(intrinsics.filterName, basename(tmp));
}