Пример #1
0
void PICComponentPin::attach( IOPIN * iopin )
{
	if (!iopin)
	{
		kWarning() << k_funcinfo << " iopin is NULL" << endl;
		return;
	}
	
	if (m_pStimulusNode)
	{
		kWarning() << k_funcinfo << " Already have a node stimulus" << endl;
		return;
	}
	
	if (m_pIOPIN)
	{
		kWarning() << k_funcinfo << " Already have an iopin" << endl;
		return;
	}
	
	m_pIOPIN = iopin;
	m_pStimulusNode = new Stimulus_Node(m_id.toAscii());
	m_pStimulusNode->attach_stimulus(iopin);
	m_pStimulusNode->attach_stimulus(this);
	
	
	// We need to tell the iopin whether or not we are high
	if (m_pLogicOut)
		logicCallback( m_pLogicOut->isHigh() );
	else if (m_pLogicIn)
		logicCallback( m_pLogicIn->isHigh() );
}
Пример #2
0
LogicProbe::LogicProbe(ICNDocument *icnDocument, bool newItem, const char *id)
		: Probe(icnDocument, newItem, id ? id : "probe") {
	m_name = i18n("Logic Probe");

	init1PinRight();

	setup1pinElement(m_pIn, m_pPNode[0]->pin());

	p_probeData = p_logicProbeData = static_cast<LogicProbeData*>(registerProbe(this));
	property("color")->setValue(p_probeData->color());

	m_pIn.setCallback(this, (CallbackPtr)(&LogicProbe::logicCallback));
	logicCallback(false);
}