2017-11-10 1 views
0

각 입력에 대한 별도의 cQueue :Omnet ++ : 나는 <code>handleMessage()</code>에서 수신 메시지를 큐에 사용 나는 <code>cQueue queue;</code>있는 간단한 모듈이

queue.insert(msg); 지금 내가 입력 input in[]의 배열을 가지고 내 모듈을 확장하고 내가 원하는 각 입력에 대해 별도의 cQueue에 들어오는 메시지를 대기열에 넣습니다. cQueue queue[]; 또는 cQueue queue[gateSize("in")];을 간단히 초기화 한 다음 handleMessage()msg->getArrivalGate()을 사용하여 올바른 대기열을 선택할 수 있다고 생각했습니다.

불행히도 초기화에 대해 이미 오류가 발생했습니다 : field has incomplete type. 도움이나 제안이 있으십니까?

+0

'omnetpp.ini'에'debug-on-errors = true' 행을 추가하십시오. 그런 다음 시뮬레이션을 디버깅하십시오. IDE는 시뮬레이션의 종료를 유발하는 코드 행을 보여줍니다. 참고 : [OMNeT ++ Manual] (https://omnetpp.org/doc/omnetpp/manual/#sec:run-sim:debugging-support) –

답변

0

분명히 gateSize()이 클래스 선언에서 작동하지 않습니다. 또한 특정 크기의 배열 cQueue을 선언해야합니다. 따라서, 저는 방금이 모듈 객체 각각에 최대 10 개의 입력을 가지고 있다고 가정합니다 (또는 다른 숫자를 선택하십시오). 고정 크기의 배열 인 cQueue queue[10];을 생성했습니다. 입력이 10 개 미만인 경우 일부 대기열은 사용되지 않습니다.

이것은 아마도 최선의 해결책은 아니지만 작동합니다. 나는 initialize() 동안 std::vector 동적으로 대기열을 추가하려고 시도했지만 작동하지 않았습니다.

관련 문제