Ngày tải lên :
05/07/2014, 09:20
... Cácthuộc tính củaMSComm
MSCommlàmộtđiềukhiểnActiveXdùngtrongtruyềnthôngnối tiếp. Các tính chất
củađiềukhiểnnàyđượcdùngđểthiết lập giao tiếp vớicácthiếtbịngoạivi qua cổng
RS232. DođótôixingiớithiệuvớicácbạnđiềukhiểnnàytrongVisualBasicvìcáchgọi
thuộc tính đơngiảncủaVB.Từđósẽlấylàmcơsởđể lập trình trênVisualC++.
1.2.1. ... 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ộc tính RthresHold=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ó giao diệnnhư
sau:
Hình2.1: Giao diệnchương trình
Chương trình cóchứcnăngsau:
‐NhậpkítựhoặcxâukítựvàoEditBoxTransfer,điềuchỉnhthamsố giao tiếp trên
cácComboBox.NhấnnútSendđểgửidữliệura cổng COM.
‐Đồngthờivớinónếucódữliệutruyềnvê cổng Comthì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àiliệu:
TUT01.03
Ngày:
10/01/06
Trang:
30/78
Hình2.34:Thiết lập thuộc tính choGroupBox7
Hình2.34:Thiết lập thuộc tính choGroupBox8
Ngườibáocáo:
NgôHảiBắc
Tàiliệu:
TUT01.03
Ngày:
10/01/06
Trang:
17/78
Hình2.7:chọnnhưmặcđịnh,nhấnNextluôn
Hình2.8:Kíchfinishđểkếtthúcviệctạodựán
Giao diệncủaứngdụngbanđầunhưsau:
Ngườibáocáo:
NgôHảiBắc
Tàiliệ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àiliệ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ộc tính này=0.Khôngnhầmvớithuộc tính InBufferSizelà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ộc tính nà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ới máy tính kế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ính chấ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ới máy tính kếtnối
vớinóđểbáorằngđangquá trình truyềndữliệu.Thuộc tính Readonlychỉ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ới máy tính nốivớinóđểthôngbáorằngmodemđãsẵnsàng
hoạtđộng. Tính chấtnàydùngkhiviếtDataSetReady/DataTerminalReadyhandshaking
routinecho máy DataTerminalEquipment(DTE)‐ máy trangbịđầucuốidữliệu.
+DTREnable: tính chấtnàyquyếtđịnhkhinàochophépđườngDataTerminalReady
(DTR)trongtruyềnthông.TínhiệuDTRgửitừ máy tính tớimodemđẻbáorằng máy tính
sẵnsànglànơinhậndữliệu.KhiDTREnable=truethìđườngDataTerminalReadysetlên
caokhi cổng mở,vàthấpkhi cổ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àiliệu:
TUT01.03
Ngày:
10/01/06
Trang:
46/78
Hình2.64:Thuộc tính IDcủaCombo1
Hình2.65:Thuộc tính IDcủaCombo3
... ĐiềukhiểnMSCommtrongVisualC++
TrênđâylàcácthamsốcủađiềukhiểnMSCommtrongVB.
TrongVisualC++,mỗimộtđiềukhiểnđượcđịnhnghĩatrongmộtlớpriêng.Và
MSCommcũngkhôngphảilàngoạilệ.
Vớicácthamsốởtrêncácbạnhoàntoàncóthểápdụngrấtlàtốtcho lập trình với
VC++bởilẽcácthamsốnàybạncóthểlấygiátrịhoặcthiết lập thamsốchochúngtương
ứngbằngcáchàmthànhviêncửalớpnhưGet_thuộctínhhoặcSet_thuộctính.
Vídụ,bạnmuốnthiết lập dùng cổng COM1chẳnghạnthìdùngthuộc tính CommPort
ởtrênvàchỉthêmtiềntốSet_nếumuốnthiết lập vàGet_nếumuốnlấygiátrịnày.
SauđâylàlớpMSCommlàmộtlớpkếthừatừlớpcởsởCWnd,cácbạncóthểtham
khảo.Cácbạnchúývềcáckiềudữliệucửacácthamsốvàgiátrịtrảvềcủacáchàm.Việc
Ngườibáocáo:
NgôHảiBắc
Tàiliệu:
TUT01.03
Ngày:
10/01/06
Trang:
13/78
1.3....