정적 텍스트 세트가있는 경우 전체 문자열을 표시하지 않음 (handles.text3, 'String', MyString)
-
21-12-2019 - |
문제
Arduino와 Bluetooth 모듈과 함께 가이드로 만든 고객 GUI를 사용하고 있습니다. Long Story는 Bluetooth를 SD 카드로 읽거나 쓸 수 있기를 원합니다. 이 모든 것이 잘 작동합니다!
하지만! SD 카드에서 다시 읽을 때 MATLAB은 올바른 데이터를 읽습니다. 명령 창에 인쇄 할 때 SD 카드에있는 올바른 데이터가 표시되기 때문에이 문제를 확인할 수 있습니다.
문제는 내가이 데이터를 정적 텍스트의 문자열로 설정할 때 재미있는 일이 일어납니다. 정적 텍스트를 텍스트로로드 할 수 있지만 파일이로드중인 파일에 더 많은 텍스트를 추가하고 다시 읽으려고하면 오래된 데이터 만 표시됩니다. 나는 명령을 인쇄 할 때 말했듯이, 올바른 데이터를 보여줄 때라고 할 때 문자열이 업데이트되고 있음을 알고 있습니다.
이 프로젝트를 사용하여 정적 텍스트를 설정하는 데 이상한 문제가있었습니다. 누구든지 쉽게 만들 수있는 아이디어가 있습니까? 내가 콜백 함수의 시작 부분에 문자열을 설정하고있는 다른 문제는 콜백이 전체 함수를 실행하거나 오류 또는 WhatNot을 던질 때까지 실제로 실제로 업데이트되지 않습니다.
해결책 2
문제는 Frournow이 아니 었습니다. 따라서 전체 기능이 끝날 때까지 Matlab이 그리지 않았습니다.
다른 팁
은 문자열 GUI 요소, 예를 들어, 문자열 GUI 요소는 5 줄 만 유지할 수 있고, 6, 7 등을 표시하려고 시도하고 있습니다.
matlab은 정적 텍스트에 스크롤 막대를 자동으로 생성하지 않습니다. http://www.mathworks.com/matlabcentral/newsreader/view_thread/148733/a.> 대안에 대한 논의.실시간 로그 디스플레이에서 내가하는 일 (이를 보여주는 공동 작업자의 의례)은 (이것이 루프에 있다고 가정합니다.) TxtMssg
가 내 텍스트 "상자"가되고 rec_line
가 직렬 포트에서 읽은 줄이되는 것입니다..
try
% Determine NumLines empirically for your font, font size, and static text size
NumLines = 21;
% Get the contents of the static text box, make a cell if necessary
Mssg = get(handles.TxtMssg, 'string');
if iscell(Mssg) == 0
Mssg={Mssg};
end
% Cat on the newly received line
Mssg = [Mssg; rec_line];
% trim to length of textbox, last NumLines rows only
if length(Mssg) > NumLines
Mssg = Mssg((end-NumLines+1):end);
end
% Write Mssg, with a strtrim() in case of any trailing newlines
set(handles.TxtMssg, 'string', strtrim(Mssg));
catch err
% Error handling
end
.
DataLogging 유형 응용 프로그램을 사용하여 try/catch/end
를 사용하여 글리트 된 통신이 전체 프로그램을 충돌하지 않도록합니다.