Tôi đang cố gắng viết một GUI MATLAB sử dụng giao diện XBee-API để nói chuyện với đài vô tuyến XBee trên bo mạch Arduino. GUI chủ yếu thu thập dữ liệu và phân tích các gói dữ liệu đến.Thực hiện giao diện Java trong MATLAB
Tôi muốn thực hiện addPacketListener
như được xác định trong the Developer's Guide (see section "Receiving Packets") để chờ các gói xử lý. Trong Java, đây là cách nó sẽ được thực hiện:
xbee.addPacketListener(new PacketListener() {
public void processResponse(XBeeResponse response) {
// handle the response
}
});
Trong MATLAB, tôi sẽ làm một addlistener()
và thiết lập cuộc gọi lại của mình để làm chế biến của tôi.
Tôi không biết nhiều ở tất cả về Java, vì vậy tôi đã tự hỏi nếu nó có thể thiết lập mã processResponse
một MATLAB la: Tôi có thể làm điều gì đó giống như sau:
function processResponse
#% do response here
end
>> xbee.addPacketListener(@processResponse)
Tôi không chắc chắn nếu điều này có ý nghĩa hoàn toàn; về cơ bản những gì tôi đang cố gắng thực hiện là thực hiện một cuộc gọi lại khi các gói mới có sẵn cho XBee của tôi (mà trong Java được xử lý bởi addPacketListener
).
Tôi không hiểu đầy đủ những gì bạn đang yêu cầu. Khi bạn gọi phương thức addPacketListener như minh họa ở trên, bạn truyền vào một đối tượng mới (một lớp bên trong vô danh), phương thức processResponse của nó sẽ được gọi khi các gói đến. Đây là cuộc gọi lại - chỉ cần điền vào phần "xử lý phản hồi". – cutchin
@cutchin vì vậy tôi có thể viết một lớp MATLAB riêng biệt để xuất một phương thức 'processResponse' và chuyển một thể hiện của lớp đó tới' addPacketListener'? Tôi đã cố gắng đi qua trong một đối tượng MATLAB với một phương thức 'processResponse' và có lỗi sau:' XB.addPacketListener (testclass) Không có phương thức 'addPacketListener' với chữ ký phù hợp được tìm thấy cho lớp 'com.rapplogic.xbee.api.XBee'' –
Tôi không phải là một chuyên gia tích hợp MATLAB, nhưng tôi tin rằng bạn đang đi về phía sau này. Viết mã java của bạn để kích hoạt giao diện XBee và nhận các gói dữ liệu trước. Hãy chắc chắn rằng nó hoạt động từ dòng lệnh và bạn có thể thấy các gói tin đến. Từ đó, hãy viết một thư viện (một tệp .jar) mà bạn sẽ nhập vào matlib và lấy nó từ lớp của bạn như được mô tả ở đây (http://www.mathworks.com/help/techdoc/matlab_external/f6671 .html). – cutchin