2013-11-01 6 views
0

RedHawk 1.9를 사용하고 있습니다. 문자열 데이터를 보낼 포트가 있습니다. IDE의 개요 패널에서 BULKIO dataChar 유형의 포트를 추가합니다.BULKIO - 문자열 유형 포트

std::string cmd = "testCmd"; 
    this->dataChar->pushPacket(cmd.str(), bulkio::time::utils::now(), 
     false, this->ar8200CmdStream_id); 

내가 pushPacket는 표준 : : 벡터 대 문자 *를 원하는 나타냅니다 오류 메시지가 무엇입니까 : 나는 다음과 같은 시도 할 때. 이것은 매뉴얼에서 취한 접근법과 같습니다.

문자열에 잘못된 BULKIO 유형을 선택 했습니까? dataXML 사용에 대해 생각했지만 XML 형식을 기대한다고 생각했습니다.

추신 : 설명서에 pushPacket 호출 시간이 포함되어 있지 않은 것으로 나타났습니다.

답변

0

정확합니다. char에 대한 BULKIO 데이터 포트는 chars 벡터를 사용합니다. 아래에는 bulkio char 출력 포트를 사용하여 문자열을 보내고 bulkio char 입력 포트를 사용하여 데이터를받는 코드 스 니펫이 있습니다.

bulkio::InCharPort::dataTransfer *tmp = stringIn->getPacket(-1); 

if (not tmp) { // No data is available 
    return NOOP; 
} 

std::string outputString(tmp->dataBuffer.begin(), tmp->dataBuffer.end()); 
std::cout << outputString << std::endl; 
fflush(stdout); 

그러나, bulkio 포트 유형은 일반적으로 사용하십시오 receiveString 구성 요소의 서비스 기능에서

std::string str = "hello_world"; 
data = std::vector<char>(str.begin(), str.end()); 

stringOut->pushPacket(this->data, tstamp, false, this->stream_id); 

하십시오 pushString 구성 요소의 서비스 기능에서


스트리밍 데이터 전송 용 fer. 문자열을 명령 및 제어 수단으로 사용하려는 경우 메시징 API (http://redhawksdr.github.io/Documentation/mainch17.html)를 사용하여 bulkio char 포트를 선택해야 할 수 있습니다. 메시징 API를 사용하여

또한 당신이 IDE의 이벤트 뷰어의 이점을 활용할 수 있습니다 : http://redhawksdr.github.io/Documentation/mainch19.html#x21-32900019.4.7