【发布时间】:2015-02-25 19:26:29
【问题描述】:
我知道 Matlab GUI 回调已经在这里讨论了数百次,但我想我遇到了一个特殊的问题。
我知道如何在不同的 GUI 回调之间共享数据(我使用 documentation 中描述的句柄结构)。我用 GUIDE 创建了我的 GUI。
有一个按钮可以在其回调函数中创建一个蓝牙手柄,效果很好。一旦蓝牙连接建立并接收到一定数量的字节,就会触发蓝牙回调函数(由bluetoothhandle.BytesAvailavailableFcn = @rdatac_Callback设置)。
我的蓝牙回调函数的头部如下所示:
function rdatac_Callback(hObject, eventdata)
hObject 包含蓝牙句柄,eventdata 是触发回调的事件(在本例中称为“BytesAvailable”)。
此函数与所有其他 GUI 回调位于同一文件中。问题是我无法在蓝牙回调中访问 GUI 的句柄结构。我尝试添加“句柄”作为第三个输入参数,但它是空的。我还尝试通过
生成自己的句柄结构h = guidata(findobj('Name','BCI'));
其中 BCI 是 GUI 窗口的名称。这在任何 GUI 回调函数中都可以完美运行,但在蓝牙回调中找不到其他元素,因此蓝牙回调有自己的“范围”。
所以我的问题是:如何与我的蓝牙回调函数共享所有 GUI 句柄?我的解决方法是使用全局工作区,但如果可能的话,我想使用句柄结构。
【问题讨论】:
标签: matlab user-interface bluetooth callback handles