void cSemaineEmmaSender::sendInterestC( cComponentMessage *_msg ) { char strtmp[50]; sprintf(strtmp,"%.2f",_msg->floatData[0]); std::string interestStr(strtmp); // Create and fill a simple EMMA EmotionML document XERCESC_NS::DOMDocument * document = XMLTool::newDocument(EMMA::E_EMMA, EMMA::namespaceURI, EMMA::version); sprintf(strtmp,"%ld",smileTimeToSemaineTime(_msg->userTime1)); std::string startTm(strtmp); sprintf(strtmp,"%ld",(long long)round((_msg->userTime2 - _msg->userTime1)*1000.0)); std::string duration(strtmp); XERCESC_NS::DOMElement * oneof = XMLTool::appendChildElement(document->getDocumentElement(), EMMA::E_ONEOF); XMLTool::setAttribute(oneof, EMMA::A_OFFSET_TO_START, startTm); XMLTool::setAttribute(oneof, EMMA::A_DURATION, duration); XMLTool::setPrefix(oneof, "emma"); XERCESC_NS::DOMElement * interpretation0 = XMLTool::appendChildElement(oneof, EMMA::E_INTERPRETATION); sprintf(strtmp,"%.3f",((double*)(_msg->custData))[0]); std::string conf0(strtmp); XMLTool::setAttribute(interpretation0, EMMA::A_CONFIDENCE, conf0); XMLTool::setPrefix(interpretation0, "emma"); XERCESC_NS::DOMElement * emotion0 = XMLTool::appendChildElement(interpretation0, EmotionML::E_EMOTION, EmotionML::namespaceURI); XMLTool::setPrefix(emotion0, "emotion"); XERCESC_NS::DOMElement * category0 = XMLTool::appendChildElement(emotion0, EmotionML::E_CATEGORY, EmotionML::namespaceURI); XMLTool::setAttribute(category0, EmotionML::A_SET, "interestLevels"); XMLTool::setAttribute(category0, EmotionML::A_NAME, "bored"); XMLTool::setPrefix(category0, "emotion"); XERCESC_NS::DOMElement * interpretation1 = XMLTool::appendChildElement(oneof, EMMA::E_INTERPRETATION); sprintf(strtmp,"%.3f",((double*)(_msg->custData))[1]); std::string conf1(strtmp); XMLTool::setAttribute(interpretation1, EMMA::A_CONFIDENCE, conf1); XMLTool::setPrefix(interpretation1, "emma"); XERCESC_NS::DOMElement * emotion1 = XMLTool::appendChildElement(interpretation1, EmotionML::E_EMOTION, EmotionML::namespaceURI); XMLTool::setPrefix(emotion1, "emotion"); XERCESC_NS::DOMElement * category1 = XMLTool::appendChildElement(emotion1, EmotionML::E_CATEGORY, EmotionML::namespaceURI); XMLTool::setAttribute(category1, EmotionML::A_SET, "interestLevels"); XMLTool::setAttribute(category1, EmotionML::A_NAME, "neutral"); XMLTool::setPrefix(category1, "emotion"); XERCESC_NS::DOMElement * interpretation2 = XMLTool::appendChildElement(oneof, EMMA::E_INTERPRETATION); sprintf(strtmp,"%.3f",((double*)(_msg->custData))[2]); std::string conf2(strtmp); XMLTool::setAttribute(interpretation2, EMMA::A_CONFIDENCE, conf2); XMLTool::setPrefix(interpretation2, "emma"); XERCESC_NS::DOMElement * emotion2 = XMLTool::appendChildElement(interpretation2, EmotionML::E_EMOTION, EmotionML::namespaceURI); XMLTool::setPrefix(emotion2, "emotion"); XERCESC_NS::DOMElement * category2 = XMLTool::appendChildElement(emotion2, EmotionML::E_CATEGORY, EmotionML::namespaceURI); XMLTool::setAttribute(category2, EmotionML::A_SET, "interestLevels"); XMLTool::setAttribute(category2, EmotionML::A_NAME, "interested"); XMLTool::setPrefix(category2, "emotion"); // Now send it sendDocument(document); }
void cSemaineEmotionSender::sendInterestC( cComponentMessage *_msg ) { char strtmp[50]; sprintf(strtmp,"%.2f",_msg->floatData[0]); std::string interestStr(strtmp); // Create and fill a simple EMMA EmotionML document XERCESC_NS::DOMDocument * document = XMLTool::newDocument(EMMA::E_EMMA, EMMA::namespaceURI, EMMA::version); XMLTool::setPrefix(document->getDocumentElement(), "emma"); sprintf(strtmp,"%ld",smileTimeToSemaineTime(_msg->userTime1)); std::string startTm(strtmp); sprintf(strtmp,"%ld",(long long)round((_msg->userTime2 - _msg->userTime1)*1000.0)); std::string duration(strtmp); XERCESC_NS::DOMElement * oneof = XMLTool::appendChildElement(document->getDocumentElement(), EMMA::E_ONEOF); XMLTool::setAttribute(oneof, EMMA::A_OFFSET_TO_START, startTm); XMLTool::setAttribute(oneof, EMMA::A_DURATION, duration); XMLTool::setPrefix(oneof, "emma"); double v = 0.0; //TODO: update this to new classification result message! check that probEstim is not NULL....! XERCESC_NS::DOMElement * interpretation0 = XMLTool::appendChildElement(oneof, EMMA::E_INTERPRETATION); if (_msg->custData != NULL) v = ((double*)(_msg->custData))[0]; sprintf(strtmp,"%.3f",v); std::string conf0(strtmp); XMLTool::setAttribute(interpretation0, EMMA::A_CONFIDENCE, conf0); XMLTool::setPrefix(interpretation0, "emma"); XERCESC_NS::DOMElement * emotion0 = XMLTool::appendChildElement(interpretation0, EmotionML::E_EMOTION, EmotionML::namespaceURI); XMLTool::setAttribute(emotion0, EmotionML::A_CATEGORY_VOCABULARY , EmotionML::VOC_SEMAINE_INTEREST_CATEGORY_DEFINITION); XMLTool::setPrefix(emotion0, "emotion"); XERCESC_NS::DOMElement * category0 = XMLTool::appendChildElement(emotion0, EmotionML::E_CATEGORY, EmotionML::namespaceURI); XMLTool::setAttribute(category0, EmotionML::A_NAME, "bored"); XMLTool::setPrefix(category0, "emotion"); XERCESC_NS::DOMElement * interpretation1 = XMLTool::appendChildElement(oneof, EMMA::E_INTERPRETATION); if (_msg->custData != NULL) v = ((double*)(_msg->custData))[1]; else v = 0; sprintf(strtmp,"%.3f",v); std::string conf1(strtmp); XMLTool::setAttribute(interpretation1, EMMA::A_CONFIDENCE, conf1); XMLTool::setPrefix(interpretation1, "emma"); XERCESC_NS::DOMElement * emotion1 = XMLTool::appendChildElement(interpretation1, EmotionML::E_EMOTION, EmotionML::namespaceURI); XMLTool::setAttribute(emotion1, EmotionML::A_CATEGORY_VOCABULARY , EmotionML::VOC_SEMAINE_INTEREST_CATEGORY_DEFINITION); XMLTool::setPrefix(emotion1, "emotion"); XERCESC_NS::DOMElement * category1 = XMLTool::appendChildElement(emotion1, EmotionML::E_CATEGORY, EmotionML::namespaceURI); XMLTool::setAttribute(category1, EmotionML::A_NAME, "neutral"); XMLTool::setPrefix(category1, "emotion"); XERCESC_NS::DOMElement * interpretation2 = XMLTool::appendChildElement(oneof, EMMA::E_INTERPRETATION); if (_msg->custData != NULL) v = ((double*)(_msg->custData))[2]; else v = 0; sprintf(strtmp,"%.3f",v); std::string conf2(strtmp); XMLTool::setAttribute(interpretation2, EMMA::A_CONFIDENCE, conf2); XMLTool::setPrefix(interpretation2, "emma"); XERCESC_NS::DOMElement * emotion2 = XMLTool::appendChildElement(interpretation2, EmotionML::E_EMOTION, EmotionML::namespaceURI); XMLTool::setAttribute(emotion2, EmotionML::A_CATEGORY_VOCABULARY , EmotionML::VOC_SEMAINE_INTEREST_CATEGORY_DEFINITION); XMLTool::setPrefix(emotion2, "emotion"); XERCESC_NS::DOMElement * category2 = XMLTool::appendChildElement(emotion2, EmotionML::E_CATEGORY, EmotionML::namespaceURI); XMLTool::setAttribute(category2, EmotionML::A_NAME, "interested"); XMLTool::setPrefix(category2, "emotion"); // Now send it sendDocument(document); }