Ðăng Nhập

View Full Version : Cách trình bày một bài viết!!!!


falleaf
13-04-2007, 08:05 PM
Anh Bắc cho em hỏi 1 tí:
Trong file Rs232 Comunication.m
phần function RS232_Communication_OpeningFcn(hObject, eventdata, handles, varargin)
có 2 dòng lệnh: handles.output = hObject; và guidata(hObject, handles); có tác dụng gì vậy anh? Nếu không có 2 dòng này thì chương trình ko chạy dc.
---handles.status_com = IsConnect; dòng này là để đưa ra tình trạng cổng Com là chưa nối hả anh? phần status_com là của cái nào thế anh?
em đọc trong help có nói nếu khai báo s = serial('COM1'); thì s.status là tình trạng cổng Com open hay close , còn status_com này thì em chưa hiểu , nó là tag nào của phần tử nào trong file *.fig vậy anh?
---guidata(hObject,handles); dòng này để lưu lại biến handles hả anh ? có tác dụng như thế nào vậy anh?
--- function button_Send_Callback(hObject, eventdata, handles) trong phần này nè anh :
IsConnect = handles.status_com;
s = handles.com; là thế nào vậy anh ? sao file *.m này biết rõ tag com là của ai? em đâu có thấy anh khai báo đối tượng nào là com đâu . Chẳng lẽ nó ngầm hiểu là cổng Com luôn hả anh?
---function button_Send_Callback(hObject, eventdata, handles)
strTX = get(handles.edit_TX,'String');
fprintf(s,strTX); vậy là anh truyền chuỗi hả anh , và 1 byte hả anh?
handles.com = s;
guidata(hObject,handles); 2 dòng này đẻ làm gì vậy anh?biến s là biến toàn cục nên ta lưu giá trị của nó lại cho các function khác dùng hả anh?
-- function button_Connect_Callback(hObject, eventdata, handles)
s = serial(get_stringPopup(handles.popup_ComPort)); nếu s là toàn cục vậy tại sao ở function nút Connect dc bấm lại có khai báo s như thế này chi vậy anh ? chọn lại s là 1 trong các cổng Com hả anh? vậy biến s khai báo ở mấy hàm khác chi vậy anh?
--- s.BytesAvailableFcn = @BytesAvailable_Callback;
s.OutputEmptyFcn = @OutputEmpty_Callback;
s.BreakInterruptFcn = @BreakInterrupt_Callback;
s.ErrorFcn = @Error_Callback;
s.PinStatusFcn = @PinStatus_Callback;
s.BreakInterruptFcn = @BreakInterrupt_Callback;
s.TimerFcn = @Timer_Callback;
phần này để chi vậy anh , có dấu @ để làm gì vậy anh?
em chỉ thấy anh ghi code cho bytesAvailable_callback như sau:
global hand;
ind = fscanf(obj);
set(hand.edit_RX,'String',ind); biến ind ở đây là đọc giá trị đưa vào hả anh?

--- s.RecordName = get(handles.edit_RecordName,'String');s
s.RecordMode = 'index'; tại sao chúng ta phải có phần record này vậy anh?
--- function figure1_DeleteFcn(hObject, eventdata, handles)
IsConnect = handles.status_com;
if (IsConnect == 1),
s = handles.com;
record(s,'off')
fclose(s);
delete(s);
clear s;
IsConnect = 0;
end
delete(hObject);
còn function deletefcn có tác dụng gì vậy anh?
---function figure1_CloseRequestFcn(hObject, eventdata, handles)
IsConnect = handles.status_com;
if (IsConnect == 1),
s = handles.com;
record(s,'off');
fclose(s);
delete(s);
clear s;
IsConnect = 0;
end
delete(hObject);
function này có tác dụng gì vậy anh?

--- s.BytesAvailableFcnCount = 1;
s.BytesAvailableFcnMode = 'terminator';
ở đây anh chỉ truyền 1 byte theo kiểu ASCII thôi hả anh? muốn 3 byte mình chỉ thay đổi s.BytesAvailableFcnCount = 3; là được hả anh?

Em thấy trong phần Simulink có hỗ trợ RS 232 luôn , sao lấy ở đó hỗ trợ được không anh? Em mới làm quen với Matlab và giao tiếp cồng Com , xin anh chỉ giáo ạ (^_^)

falleaf
13-04-2007, 08:10 PM
Anh Bắc cho em hỏi 1 tí:

Trong file Rs232 Comunication.m phần function
RS232_Communication_OpeningFcn(hObject, eventdata, handles, varargin)

có 2 dòng lệnh:

handles.output = hObject; và guidata(hObject, handles); có tác dụng gì vậy anh? Nếu không có 2 dòng này thì chương trình ko chạy dc.

handles.status_com = IsConnect;
dòng này là để đưa ra tình trạng cổng Com là chưa nối hả anh? phần status_com là của cái nào thế anh?
em đọc trong help có nói nếu khai báo s = serial('COM1'); thì s.status là tình trạng cổng Com open hay close, còn status_com này thì em chưa hiểu , nó là tag nào của phần tử nào trong file *.fig vậy anh?

guidata(hObject,handles);
dòng này để lưu lại biến handles hả anh ? có tác dụng như thế nào vậy anh?

function button_Send_Callback(hObject, eventdata, handles)
trong phần này nè anh :

IsConnect = handles.status_com;
s = handles.com;

là thế nào vậy anh ? sao file *.m này biết rõ tag com là của ai? em đâu có thấy anh khai báo đối tượng nào là com đâu . Chẳng lẽ nó ngầm hiểu là cổng Com luôn hả anh?

function button_Send_Callback(hObject, eventdata, handles)
strTX = get(handles.edit_TX,'String');
fprintf(s,strTX); vậy là anh truyền chuỗi hả anh , và 1 byte hả anh?
handles.com = s;
guidata(hObject,handles);
2 dòng này đẻ làm gì vậy anh?biến s là biến toàn cục nên ta lưu giá trị của nó lại cho các function khác dùng hả anh?

function button_Connect_Callback(hObject, eventdata, handles)
s = serial(get_stringPopup(handles.popup_ComPort));
nếu s là toàn cục vậy tại sao ở function nút Connect dc bấm lại có khai báo s như thế này chi vậy anh ? chọn lại s là 1 trong các cổng Com hả anh? vậy biến s khai báo ở mấy hàm khác chi vậy anh?

s.BytesAvailableFcn = @BytesAvailable_Callback;
s.OutputEmptyFcn = @OutputEmpty_Callback;
s.BreakInterruptFcn = @BreakInterrupt_Callback;
s.ErrorFcn = @Error_Callback;
s.PinStatusFcn = @PinStatus_Callback;
s.BreakInterruptFcn = @BreakInterrupt_Callback;
s.TimerFcn = @Timer_Callback;
phần này để chi vậy anh , có dấu @ để làm gì vậy anh?
em chỉ thấy anh ghi code cho bytesAvailable_callback như sau:

global hand;
ind = fscanf(obj);
set(hand.edit_RX,'String',ind);
biến ind ở đây là đọc giá trị đưa vào hả anh?

s.RecordName = get(handles.edit_RecordName,'String');s
s.RecordMode = 'index';
tại sao chúng ta phải có phần record này vậy anh?

function figure1_DeleteFcn(hObject, eventdata, handles)
IsConnect = handles.status_com;
if (IsConnect == 1),
s = handles.com;
record(s,'off')
fclose(s);
delete(s);
clear s;
IsConnect = 0;
end
delete(hObject);
còn function deletefcn có tác dụng gì vậy anh?

function figure1_CloseRequestFcn(hObject, eventdata, handles)
IsConnect = handles.status_com;
if (IsConnect == 1),
s = handles.com;
record(s,'off');
fclose(s);
delete(s);
clear s;
IsConnect = 0;
end
delete(hObject)
function này có tác dụng gì vậy anh?

s.BytesAvailableFcnCount = 1;
s.BytesAvailableFcnMode = 'terminator';
ở đây anh chỉ truyền 1 byte theo kiểu ASCII thôi hả anh? muốn 3 byte mình chỉ thay đổi s.BytesAvailableFcnCount = 3; là được hả anh?

Em thấy trong phần Simulink có hỗ trợ RS 232 luôn , sao lấy ở đó hỗ trợ được không anh? Em mới làm quen với Matlab và giao tiếp cồng Com , xin anh chỉ giáo ạ (^_^)

falleaf
13-04-2007, 08:17 PM
F không sửa vào trong bài viết gốc của bạn viết bài này, mà F đem ra đây để sửa riêng. Các bạn cứ thử nhìn vào hai bài viết như thế này. Hoàn toàn không tốn mấy công sức, thậm chí có thể con đơn giản hơn khi bạn bắt đầu viết bài.

Tại sao không bỏ ra một chút thời gian, để người giúp đỡ bạn cảm thấy thoải mái và dễ chịu hơn? Tại sao không làm cho bài viết của mình sáng sủa hơn.

Hãy xem bên cạnh nút "Gởi Trả Lời" luôn có nút "Coi Lại Bài". Các bạn hoàn toàn có thể xem lại bài viết của mình trước khi gửi đi, xem thử trình bày như vậy đã tốt chưa, đã hiệu quả chưa.

Hãy dành thêm thời gian của mình cho việc trình bày một bài viết, và dành cho người đọc, người mà bạn muốn nghe ý kiến của họ, thêm rất nhiều thời gian để giúp đỡ cho bạn.

Tất nhiên, ngoại trừ khi bạn có ý định thả bùa mê cho các thành viên khác (một cách kết thúc luồng thảo luận... vì bạn không có quyền khóa luồng... hehe).

Chúc vui.