I am creating a flight simulator GUI and I would like to change the state of a toggle switch based off of the status of a joystick button. If the joystick button is depressed (returns a value of '1'), I would like the toggle switch to also represent that state ('Value', 'Max'). How would I go about retrieving the joystick value within the toggle button call back function(tb1_Callback)? Any help would be greatly appreciated. Thanks!!
joy = vrjoystick(1);
while true [axes, buttons, povs] = read(joy); roll = (180+(axes(1)*180))/2; pitch = (180-(axes(2)*180))/2; yaw = (180+(axes(3)*180))/2; throttle = (180-(axes(4)*180))/2; trigger = buttons(1); HUD = povs; bar(handles.axes1, (axes(2)*100), 1, 7,'y'); set(handles.axes1, 'XLim', [-103.5 103.5]); set(handles.axes1, 'YLim', [0 1]); set(handles.axes1, 'YTick', [0:5:5]); set(handles.axes1, 'XTick', [-100:25:100]); set(handles.axes1, 'Color', [.75 .75 .75]); title(handles.axes1, 'ELEVATOR', 'FontSize', 10, 'FontWeight', 'bold'); bar(handles.axes2, (axes(1)*100), 1, 7,'y'); set(handles.axes2, 'XLim', [-103.5 103.5]); set(handles.axes2, 'YLim', [0 1]); set(handles.axes2, 'YTick', [0:1:1]); set(handles.axes2, 'XTick', [-100:25:100]); set(handles.axes2, 'Color', [.75 .75 .75]); title(handles.axes2, 'ALERION', 'FontSize', 10, 'FontWeight', 'bold'); bar(handles.axes3, (axes(3)*100), 1, 7, 'y'); set(handles.axes3, 'XLim', [-103.5 103.5]); set(handles.axes3, 'YLim', [0 1]); set(handles.axes3, 'YTick', [0:1:1]); set(handles.axes3, 'XTick', [-100:25:100]); set(handles.axes3, 'Color', [.75 .75 .75]); title(handles.axes3, 'RUDDER', 'FontSize', 10, 'FontWeight', 'bold'); barh(handles.axes4,((100-(axes(4)*100))/2),1, 7, 'g'); set(handles.axes4, 'XLim', [0 1]); set(handles.axes4, 'YLim', [-3.5 103.5]); set(handles.axes4, 'XTick', [0:5:5]); set(handles.axes4, 'YTick', [0:25:100]); set(handles.axes4, 'Color', [.75 .75 .75]); title(handles.axes4, 'THROTTLE', 'FontSize', 8, 'FontWeight', 'bold'); barh(handles.axes5,((100-(axes(4)*100))/2),1, 7, 'g'); set(handles.axes5, 'XLim', [0 1]); set(handles.axes5, 'YLim', [-3.5 103.5]); set(handles.axes5, 'XTick', [0:5:5]); set(handles.axes5, 'YTick', [0:25:100]); set(handles.axes5, 'Color', [.75 .75 .75]); title(handles.axes5, 'THROTTLE', 'FontSize', 8, 'FontWeight', 'bold'); barh(handles.axes6,((100-(axes(4)*100))/2),1, 7, 'g'); set(handles.axes6, 'XLim', [0 1]); set(handles.axes6, 'YLim', [-3.5 103.5]); set(handles.axes6, 'XTick', [0:5:5]); set(handles.axes6, 'YTick', [0:25:100]); set(handles.axes6, 'Color', [.75 .75 .75]); title(handles.axes6, 'FLAPS', 'FontSize', 8, 'FontWeight', 'bold'); barh(handles.axes7,((100-(axes(4)*100))/2),1, 7, 'g'); set(handles.axes7, 'XLim', [0 1]); set(handles.axes7, 'YLim', [-3.5 103.5]); set(handles.axes7, 'XTick', [0:5:5]); set(handles.axes7, 'YTick', [0:25:100]); set(handles.axes7, 'Color', [.75 .75 .75]); title(handles.axes7, 'FLAPS', 'FontSize', 8, 'FontWeight', 'bold'); a.servoWrite(3, round(roll)); a.servoWrite(5, round(pitch)); a.servoWrite(6, round(yaw)); a.servoWrite(9, round(throttle)); if(HUD == 90 || HUD == 45 || HUD == 135) a.servoWrite(10, 0); else a.servoWrite(10, 90); end if(HUD == 270 || HUD == 315 || HUD == 225) a.servoWrite(10, 180); end if(HUD == 0 || HUD == 45 || HUD == 315) a.servoWrite(11, 0); else a.servoWrite(11, 90); end if(HUD == 180 ||HUD == 135 || HUD == 225) a.servoWrite(11, 180); end pause(.001); a.flush; if(buttons(12) == 1 && buttons(11) ==1 && buttons(2) == 1) delete(instrfind({'Port'},{'COM4'})); delete(instrfind('Type', 'serial')); close all clc break end end
% — Executes on button press in tb1. function tb1_Callback(hObject, eventdata, handles)
% Hint: get(hObject,'Value') returns toggle state of tb1
Best Answer