void DebugManagerV3::runEvent(MessageDataPtr messageData)
{
	if (EmulationManagerPtr emManager = this->parent->getEmulationManager())
	{
		emManager->onEvent(messageData);
	}

	messageData->reset();

	uint16_t eventMask = 0;
	(*messageData) >> eventMask;

	if (eventMask & JSTATE_CAPTURE_FLAG)
	{
		uint32_t maskLow = 0;
		uint32_t maskHigh = 0;
		(*messageData) >> maskLow >> maskHigh;

		if (maskHigh & J_STATE_LPMX_MASK_HIGH)
		{
			deviceInLpm5 = true;
			if(cbx)
			{
				cbx->event(DebugEventTarget::Lpm5Sleep);
			}
		}
		else
		{
			deviceInLpm5 = false;
			if(cbx)
			{
				cbx->event(DebugEventTarget::Lpm5Wakeup);
			}
		}
	}
Esempio n. 2
0
bool Node::send(const MessageDataPtr& data){
    if (send_receive_controller_.exceedMaxExceptions()) {
      MCE_WARN("[Node::send] too many exceptions, try again later!"); 
      return false;
    }
    std::string dest = (data->isTopic() ? "topic://" : "queue://") + data->getSubject();

    MyUtil::TimeCost tc = MyUtil::TimeCost::create("send " + dest);
    CmsConnectionPoolPtr pool = send_pool_.get(dest);

    CmsTemplate* cms_template = NULL;
    try {
        cms_template = pool->takeConnection();
        if(cms_template == NULL){
            MCE_WARN("Node::send send pool full " << dest);
            return false;
        }
        
        ByteMessageCreator creator(data);	

        //destination destroy by message
        if(data->isTopic()){
            ActiveMQTopic topic(data->getSubject()) ;
            cms_template->send(&topic,&creator);
        }else{
            ActiveMQQueue queue(data->getSubject()) ;
            cms_template->send(&queue,&creator);
        }

        pool->returnConnection(cms_template);
        return true;
		
	}catch(cms::CMSException& ex){
		MCE_WARN("Node::send fail exception: "<< ex.getMessage() << " " << dest);
    send_receive_controller_.pushExceptionTime();
	}catch(...){
		MCE_WARN("Node::send fail unknown exception "<< dest);
    send_receive_controller_.pushExceptionTime();
	}
	if(cms_template!=NULL){
		pool->returnConnection(cms_template);
	}
	return false;
}	
void StateStorage430::onEventVWatch(MessageDataPtr msgData)
{
	msgData->reset();

	uint16_t eventMask = 0;

	(*msgData) >> eventMask;
	
	if (eventMask & 0x8)
	{
		do
		{
			uint32_t variableAddress = 0;
			uint16_t variableValue = 0;

			(*msgData) >> variableAddress >> variableValue;

			if (!msgData->fail())
			{
				updateWatchedVariable(variableAddress, variableValue);
			}
		} while (!msgData->fail());
	}
}
Esempio n. 4
0
 ByteMessageCreator(const MessageDataPtr& data) : activemq::cmsutil::MessageCreator() ,data_(data->getData()){}