Ngày tải lên :
27/06/2014, 10:56
... Cáchthiết lập tốiưuchoứngdụng
Đểchoứngdụngcóthểđọcngaydữliệukhibắtđầucótrongbộđệmnhậnthìcácbạn
nênđặtthuộctínhRthresHold=1.
Ngoàiracácbạncầnquantâmđếncácthamsố:CommPort,Settings,Rthreshold,
SthresHold,PortOpen,InputLen,InputBuffer,OutputBuffer,InBufferSize,InputMode,
OutBufferSize.
2. Lập trình
2.1. Mụcđíchyêucầu
Chương trình nàyrấtlàđơngiản.Chúngtasẽtạoramộtchương trình cógiaodiệnnhư
sau:
Hình2.1:Giaodiệnchương trình
Chương trình cóchứcnăngsau:
‐NhậpkítựhoặcxâukítựvàoEditBoxTransfer,điềuchỉnhthamsốgiaotiếptrên
cácComboBox.NhấnnútSendđểgửidữliệuracổngCOM.
‐ĐồngthờivớinónếucódữliệutruyềnvêcổngComthìdữliệusẽđượchiểnthị
lênEditBoxReceive.KhibạnnhấnvàoClearthìsẽxoádữliệuhiểnthịtrênEditBoxnày.
Chúý:
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
15/78
Hình2.3:ChọnNewtừmenufile
Hình2.4:ChọnMFCApplication(exe),têndựán,nơichứadựán
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
21/78
Hình2.15:ĐóngcửasổComponentsandControlsGallery
BạnthêmđiềukhiểnMSCommvàohộpgiaodiệnbằngcáchgắpthảnhưvớicác
điềukhiểnthôngthườngkhác
Hình2.16:ThêmđiềukhiểnMSComm
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
19/78
HộpthoạiComponentsandControlGalleryxuấthiệnbạnchọnRegestered
ActiveXControls(đâylàthưmụcchứacácđiềukhiểnActiveX):
Hình2.11:Chọnthưmụcđầutiên
TrongthưmụcRegisteredActiveXControlsbạnchọnđiềukhiểnmàmìnhcần
MicrosoftCommunicationsControl,version6.0.KíchOK
Hình2.12:ChọnMicrosoftCommunicationControl,version6.0
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
46/78
Hình2.64:ThuộctínhIDcủaCombo1
Hình2.65:ThuộctínhIDcủaCombo3
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
7/78
+InBufferCout:trảlạisốkítựđangcótrongbộđệmnhậnBạncóthểxoábộđệmnhận
bằngcáchđặtthuộctínhnày=0.KhôngnhầmvớithuộctínhInBufferSizelàtổngkích
thướccủabộđệmnhận.
+Input:nhậnvàxoádữliệutrongbộđệmnhận.
NếuInputModelàcomInputModeTextthìgiátrịtrảvềsẽlàmộtxâutứccókiểu
String,dữliệudạngtexttrongmộtbiếnkiểuVariant.NếuInputMode=
comInputModeBinarythìthuộctínhnàysẽtrảlạidữliệudạngnhịphândướidạngmột
mảngkiểubytetrongmộtbiếnVariant.
+OutBufferCount:trảlạisốkítựtrongbộđệmtruyền.
+Output:ghidữliệuvàobộđệmtruyền.cóthểtruyềnkiểutexthoặckiểunhịphân.
NếutruyềnbằngkiểutextthìchomộtbiếnVariant=kiểuString,nếutruyềnkiểunhịphân
thìchochoOutput=variant=mộtmảngkiểuByte.
Bắttay(handshaking):
+Break:thiết lập hoặcxoátínhiệu.object.Break[=value]value=truehoặcfalse.Khi
setvalue=truethìthôngsốBreaknàysẽgửimộttínhiệubreak.Tínhiệubreaktrìhoàn
việctruyềndữliệuvàđưađườngtruyềnvàotrạngtháibreaktớikhimàvalue=false.
+CDHolding:quếtđịnhxemsựtruyềnnàyđếnđâubằngcáchtruyvấnđườngCD(
CarrierDetect).CarrierDetectlàtínhiệugửitừmodemtớimáytínhkếtnốivớinóthống
báorằngnóđangonline.Nếugiátrị=truethìnóđườngCDđangởmứccao,nếu=false
thìđườngdâynàyđangởmứcthấp.Tínhchấtnàykhôngcótronglúcthiếtkếchỉcótrong
khichạychương trình. CarrierDetectđượcbiếtnhưlàReceiveLineSignalDetect(RLSD).
+CTSHolding:quếtđịnhkhinàobạngửidữliệubằngcáchtruyvấntrạngtháiđường
ClearToSend(CTS).ThôngthườngtínhiệuCTSđượcgửitừmodemtớimáytínhkếtnối
vớinóđểbáorằngđangquá trình truyềndữliệu.ThuộctínhReadonlychỉxuấthiệnkhi
chạychương trình. ĐườngClearToSenddùngtrongRTS/CTS(RequestToSend/ClearTo
Send)bắttayphầncứng.CTSHoldingchobạnmộtcáchđểtựtaydòđườngClearToSend
nếubạncầnbiếttrạngtháicủanó.
+DSRHolding:biếttrạngtháicủađườngDataSetReady(DSR).TínhiệuDataSet
Readytruyềntừmodemtớimáytínhnốivớinóđểthôngbáorằngmodemđãsẵnsàng
hoạtđộng.TínhchấtnàydùngkhiviếtDataSetReady/DataTerminalReadyhandshaking
routinechomáyDataTerminalEquipment(DTE)‐máytrangbịđầucuốidữliệu.
+DTREnable:tínhchấtnàyquyếtđịnhkhinàochophépđườngDataTerminalReady
(DTR)trongtruyềnthông.TínhiệuDTRgửitừmáytínhtớimodemđẻbáorằngmáytính
sẵnsànglànơinhậndữliệu.KhiDTREnable=truethìđườngDataTerminalReadysetlên
caokhicổngmở,vàthấpkhicổngđóng.NếuDTREnable=falsethìđườngđóluônmức
thấp.TrongphầnlớntrườnghợpsetđườngDataTerminalReadythànhthấpđểhangup
telephone.
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
26/78
Hình2.25:ThêmGroupBox9
ThayđổithuộctínhchoGroupBox1:
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
1/78
Tutorialn
o
01.02
Gửiđến:
ĐoànHiệp,DoãnMinhĐăng,HuỳnhChâuThuận
picvietnam@googlegroups.com
Nộidung:
Lập trình giaotiếpmáytínhquacổngRS232 ... ThêmcácComboBox
Hình2.55:ThêmComboBox1
Hình2.56:ThêmComboBox2
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
30/78
Hình2.34:Thiết lập thuộctínhchoGroupBox7
Hình2.34:Thiết lập thuộctínhchoGroupBox8
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
29/78
Hình2.32:Thiết lập thuộctínhchoGroupBox5
Hình2.33:Thiết lập thuộctínhchoGroupBox6
Ngườibáocáo:
NgôHảiBắc
Tài liệu:
TUT01.03
Ngày:
10/01/06
Trang:
5/78
truyền.value=falsekítựtrốngsẽđượctruyền.Kítựtrốngđượcđịnhnghíatheochuẩn
ASCIIlàkítự0–chr$(0).
+OutBuferSize:giốngnhưInBuferSize,mặcđịnhlà512.
+ParityReplace:thiết lập vàtrảlạikítựthaythếkítựkhôngđúngtronglỗigiống
nhau.
+PortOpen:thiết lập vàtrảlạitínhtrạngcủacổng(đónghoặcmở).
object.PortOpen[=value].value=truecổngmở.value=falsecổngđóngvàxóatoàn
bộdữliệutrongbộđệmnhậnvàtruyền.Cầnphảithiết lập thuộctínhCommPortđúngvới
têncủacổngtrướckhimởcổnggiaotiếp.Thêmvàođó,cổnggiaotiếpcủathiếtbịcủabạn
phảihỗtrợgiátrịtrongthuộctínhSettingthìthiếtbịc ...
trongthựctế.
Dođótôixingiớithiệuchocácbạnviếtchương trình trênPCdùngMSComm.Tôixinđưaramột
sốvấn đề nhưsau:
‐GiớithiệuchuẩngiaotiếpRS232vàđiềukhiểnActiveXMicrosoftCommunication6.0(
MSComm):cáchtínhchấtvàcáchthiết lập thamsốtốiưuchođiềukhiển.
‐ Lập trình ứngdụnggiaotiếptrêncơsởsửdụngphầnmềmVisualC++trongbộcôngcụVisual‐
Studio6.0củaMicrosft:
+Thiếtkếgiaodiệnchương trình.
+Viếtmãchochương trình.
1....