XBee-API 인터페이스를 사용하는 MATLAB GUI를 작성하여 Arduino 보드의 XBee 무선 라디오와 통신하려고합니다. GUI는 주로 데이터 수집을 수행하고 들어오는 패킷을 구문 분석합니다.MATLAB에서 Java 인터페이스 구현
the Developer's Guide (see section "Receiving Packets")에 정의 된대로 addPacketListener
을 처리하여 패킷 처리를 기다리고 싶습니다. 자바에서는,이 그것을 할 것이 방법입니다
xbee.addPacketListener(new PacketListener() {
public void processResponse(XBeeResponse response) {
// handle the response
}
});
는 MATLAB에서, 내가 addlistener()
을 내 처리 할 콜백을 설정합니다.
processResponse
코드를 설정할 수 있는지 궁금
: 난
function processResponse
#% do response here
end
>> xbee.addPacketListener(@processResponse)
: 나는 다음과 같은 작업을 수행 할 수 있습니다 이것이 완전한 의미로 만들어 졌는지 확실하지 않습니다. 기본적으로 내가 달성하고자하는 일은 새로운 패킷이 내 XBee (Java에서 addPacketListener
으로 처리됨)에 사용 가능 해지면 콜백을 실행하는 것입니다.
나는 당신이 무엇을 요구하고 있는지 완전히 이해하지 못하고 있습니다. 위에서 설명한 것처럼 addPacketListener 메서드를 호출하면 패킷이 도착하면 processResponse 메서드가 호출되는 새 개체 (익명 내부 클래스)가 전달됩니다. 이것은 콜백입니다. "응답 처리"부분을 직접 작성하십시오. – cutchin
@cutchin 그래서'processResponse' 메소드를 내보내는 별도의 MATLAB 클래스를 작성하고 그 클래스의 인스턴스를'addPacketListener'에 전달할 수 있습니까? 'processResponse' 메서드를 사용하여 MATLAB 객체를 전달하려고 시도하고 다음 오류가 발생했습니다 :'XB.addPacketListener (testclass) 'com.rapplogic.xbee.api.XBee'클래스에 일치하는 서명이있는 'addPacketListener'메소드가 없습니다. –
저는 MATLAB 통합 분야의 전문가는 아니지만, 당신이이 문제에 대해 반대하고 있다고 생각합니다. 자바 코드를 작성하여 XBee 인터페이스를 시작하고 패킷을 먼저 수신하십시오. 명령 줄에서 제대로 작동하는지 확인하고 패킷이 도착하는지 확인할 수 있습니다. 거기에서 matlib에 가져올 라이브러리 (.jar 파일)를 작성하고 [here] (http://www.mathworks.com/help/techdoc/matlab_external/f6671)에 설명 된대로 클래스에서 데이터를 검색하도록합니다. .html). – cutchin