... Cácthuộc tính củaMSCommMSCommlàmộtđiềukhiểnActiveXdùngtrongtruyềnthôngnối tiếp. Các tính chấtcủ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ọithuộ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ạnnê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ầuChươ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êncá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ắcTàiliệu:TUT01.03Ngày:10/01/06Trang:30/78Hình2.34:Thiết lập thuộc tính choGroupBox7Hình2.34:Thiết lập thuộc tính choGroupBox8Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:17/78Hình2.7:chọnnhưmặcđịnh,nhấnNextluônHì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ắcTàiliệu:TUT01.03Ngày:10/01/06Trang:19/78HộpthoạiComponentsandControlGalleryxuấthiệnbạnchọnRegesteredActiveXControls(đâylàthưmụcchứacácđiềukhiểnActiveX):Hình2.11:ChọnthưmụcđầutiênTrongthưmụcRegisteredActiveXControlsbạnchọnđiềukhiểnmàmìnhcầnMicrosoftCommunicationsControl,version6.0.KíchOKHình2.12:ChọnMicrosoftCommunicationControl,version6.0Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:7/78+InBufferCout:trảlạisốkítựđangcótrongbộđệmnhậnBạncóthểxoábộđệmnhậnbằngcáchđặtthuộc tính này=0.Khôngnhầmvớithuộc tính InBufferSizelàtổngkíchthướ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ểuString,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ộtmả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ânthì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.Khisetvalue=truethìthôngsốBreaknàysẽgửimộttínhiệubreak.Tínhiệubreaktrìhoànviệ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ốngbáorằngnóđangonline.Nếugiátrị=truethìnóđườngCDđangởmứccao,nếu=falsethìđườngdâynàyđangởmứcthấp. Tính chấtnàykhôngcótronglúcthiếtkếchỉcótrongkhichạychương trình. CarrierDetectđượcbiếtnhưlàReceiveLineSignalDetect(RLSD).+CTSHolding:quếtđịnhkhinàobạngửidữliệubằngcáchtruyvấntrạngtháiđườngClearToSend(CTS).ThôngthườngtínhiệuCTSđượcgửitừmodemtới máy tính kếtnốivớinóđểbáorằngđangquá trình truyềndữliệu.Thuộc tính Readonlychỉxuấthiệnkhichạychương trình. ĐườngClearToSenddùngtrongRTS/CTS(RequestToSend/ClearToSend)bắttayphầncứng.CTSHoldingchobạnmộtcáchđểtựtaydòđườngClearToSendnếubạncầnbiếttrạngtháicủanó.+DSRHolding:biếttrạngtháicủađườngDataSetReady(DSR).TínhiệuDataSetReadytruyềntừmodemtới máy tính nốivớinóđểthôngbáorằngmodemđãsẵnsànghoạtđộng. Tính chấtnàydùngkhiviếtDataSetReady/DataTerminalReadyhandshakingroutinecho 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êncaokhi cổng mở,vàthấpkhi cổng đóng.NếuDTREnable=falsethìđườngđóluônmứcthấp.TrongphầnlớntrườnghợpsetđườngDataTerminalReadythànhthấpđểhanguptelephone.Ngườibáocáo:NgôHảiBắcTàiliệu:TUT01.03Ngày:10/01/06Trang:46/78Hình2.64:Thuộc tính IDcủaCombo1Hình2.65:Thuộc tính IDcủaCombo3 ... ĐiềukhiểnMSCommtrongVisualBasicTấtcảcác tính chấtnàybạncóthểtìmtạithưviệnMSDNJuly2001theođườngdẫnnhưsauởtabcontents:MSDNLibrary‐July2001/VisualToolsandLanguages/VisualStudio6.0Documentation/VisualBasicDocumentation/Reference/ControlReference/ActiveXControl/MSCommControlCác tính chấtcủaMSCommđượcsắpxếptheochứcnăng:Thiết lập thamsốcho cổng: +CommID:trảlạihandlesđồngnhấttớithiếtbịtruyềnthông,cókiểuLong. Tính chấtnàykhôngcólúcthiếtkếmàchỉcókhithihành,thuộc tính nàylàReadOnly.+CommPort:dạngobject.CommPort=value.Valuelàchỉsốcủa cổng Comcógiátrịtừ1‐>16vàmặcđịnhcógiátrị=1.Cácbạncầnphảithiết lập thôngsốnàytrướckhimở cổng. Sẽcólỗierror68(Deviceunavailable)nếunhưkhôngmởđược cổng này.+InBuferSize:thiết lập hoặctrảlạikíchthướccủabộđệmnhận, tính =byte.Mặcđịnhlà1024byte.Cácbạnkhôngđượcnhầmlẫnvớiđặc tính InBufferCountlàsốbyteđangchờtrongbộđệmnhận.+InputLen:object.InputLen[=value]thiết lập hoặctrảlạisốbytemỗilầnthuộc tính Inputđọctrongbộđệmnhận.MặcđịnhgiátrịValue=0tứclàthuộc tính Inputsẽđọchếtnộidungcủabộđệmnhậnkhithuộc tính nàyđượcgọi.Nếusốkítựtrongbộđệmnhậnkhông=InputLenthìthuộc tính Inputsẽtrảlạikítựrỗng“”.VíthếbạncầnphảichọncáchkiểmtraInBufferCountđểchắcchắnsốkítựyêucầuđãcóđủtrướckhidùnglệnh.Input. Tính chấtnàyrấtlàcóíchkhiđọcdữliệumột máy màdữliệurađượcđịnhdạngbằngcáckhốicókíchthướccốđịnh.+InputMode:object.InputMode[=value].Value=0hay=comInputModeTextdữliệunhậnđượcdạngvănbảnkiểukítựtheochuẩnANSI.Dữliệunhậnđượcsẽlàmộtsâu.Value=1hay=comInputModeBinarydùngnhậnmọikiểudữliệunhưkítựđiềukhiểnnhúng,kítựNULL,...