comport library ver

Upload: yugi-abdul-lathif

Post on 04-Jun-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 ComPort Library Ver

    1/76

    (******************************************************* ComPort Library ver. 4.11 ** for Delphi 5, 6, 7, 2007-2010,! a"# ** C$$ %&il#er ', 4, 5, 6 ** ritte" by De)a" Cr"ila, 1+ - 2002 ** mai"tai"e# by Lar %. Dyb#ahl, 200' *

    * omepae/ http/omport.f."et ** ** %ria" oh"a&er 3t 2010 ** emove# a"i refere"e for baar# ompat ** a#e &"io#e rea#y ******************************************************

    &"it CPort89:;ar"i" 3"i

  • 8/13/2019 ComPort Library Ver

    2/76

    "teer of ob)et8 %&f!ve"t E proe#&re(Ae"#er/ 3b)et8 o"t %&ffer8 Co&"t/ >"teer of ob)et8 Com!rror!ve"t E proe#&re(Ae"#er/ 3b)et8 !rror/ Com!rror of ob)et8

    ComAi"al!ve"t E proe#&re(Ae"#er/ 3b)et8 3"3ff/ %oolea" of ob)et8 Com!eptio"!ve"t E proe#&re(Ae"#er/3b)et8 Com!eptio"/Com!eptio"8 Comporteae/Atri"8 ;i"!rror/>"t648 ;i"eae/Atri" of ob)et8

    type for ay"hro"o& all 3peratio"Gi"# E (o;rite, oea#8 Fy" E reor# 3verlappe#/ 3verlappe#8 Gi"#/ 3peratio"Gi"#8 Data/ Poi"ter8 AiHe/ >"teer8 e"#8 PFy" E IFy"8

    9:>

  • 8/13/2019 ComPort Library Ver

    3/76

  • 8/13/2019 ComPort Library Ver

    4/76

    proe#&re Aetea#otalC(o"t Jal&e/ >"teer8 proe#&re Aet;riteotal(o"t Jal&e/ >"teer8 proe#&re Aet;riteotalC(o"t Jal&e/ >"teer8 protete# proe#&re Fi"o(Det/ Perite"t8 overri#e8 p&bli

    o"tr&tor Create8 property ComPort/ C&tomComPort rea# "terval/ >"teer rea# "terval rite Aetea#>"terval #efa&lt-18 property ea#otal&ltiplier/ >"teer rea# "teer rea# "teer rea# "teer

    rea#

  • 8/13/2019 ComPort Library Ver

    5/76

    p&bli o"tr&tor Create8 property ComPort/ C&tomComPort rea#

  • 8/13/2019 ComPort Library Ver

    6/76

    "teer8 proe#&re AetComPort(o"t FComPort/ C&tomComPort8 proe#&re Aet>"p&tAiHe(o"t Jal&e/ >"teer8 proe#&re Aet3&tp&tAiHe(o"t Jal&e/ >"teer8 protete# proe#&re Fi"o(Det/ Perite"t8 overri#e8

    p&bli o"tr&tor Create8 property ComPort/ C&tomComPort rea# "p&tAiHe/ >"teer rea# "p&tAiHe rite Aet>"p&tAiHe #efa&lt 10248 property 3&tp&tAiHe/ >"teer rea#

  • 8/13/2019 ComPort Library Ver

    7/76

  • 8/13/2019 ComPort Library Ver

    8/76

    proe#&re Do%efore3pe"8 #y"ami8 proe#&re DoChar(Co&"t/ >"teer8 #y"ami8 proe#&re Do%&f(o"t %&ffer8 Co&"t/ >"teer8 #y"ami8 proe#&re Do!mpty8 #y"ami8 proe#&re Do%rea8 #y"ami8 proe#&re Doi"8 #y"ami8

    proe#&re Do

  • 8/13/2019 ComPort Library Ver

    9/76

    f&"tio" ea#AtrFy"(var Atr/ F"itri"8 Co&"t/ >"teer8 var Fy"Ptr/ PFy"/>"teer8 f&"tio" ;riteB"io#eAtri"(o"t Atr/ B"io#etri"/ >"teer8 f&"tio" ea#B"io#eAtri"(var Atr/ B"io#eAtri"8 Co&"t/ >"teer/ >"teer8

    f&"tio" ;aitFy"Complete#(Fy"Ptr/ PFy"/ %oolea"8 proe#&re ;ait"teer rea#

  • 8/13/2019 ComPort Library Ver

    10/76

    property 3"DACha"e/ ComAi"al!ve"t rea#

  • 8/13/2019 ComPort Library Ver

    11/76

    C&tPaet!ve"t E proe#&re(Ae"#er/ 3b)et8 o"t Atr/ tri"8 var Po/ >"teer of ob)et8

    ompo"e"t for rea#i" #ata i" paet ComDataPaet E la(Compo"e"t private

    "e"itive(o"t Jal&e/ %oolea"8 proe#&re AetAiHe(o"t Jal&e/ >"teer8 proe#&re AetAtartAtri"(o"t Jal&e/ tri"8 proe#&re AetAtopAtri"(o"t Jal&e/ tri"8 proe#&re %&f(Ae"#er/ 3b)et8 o"t %&ffer8 Co&"t/ >"teer8 proe#&re Che>"leAtri"(var Atr/ tri"8 f&"tio" Bpper(o"t Atr/ tri"/ tri"8 proe#&re !mpty%&ffer8 f&"tio" Jali#Atop/ %oolea"8 protete# proe#&re ?otifiatio"(FCompo"e"t/ Compo"e"t8 3peratio"/ 3peratio"8overri#e8 proe#&re DoDiar#(o"t Atr/ tri"8 #y"ami8 proe#&re DoPaet(o"t Atr/ tri"8 #y"ami8 proe#&re DoC&tomAtart(o"t Atr/ tri"8 var Po/ >"teer8 #y"ami8 proe#&re DoC&tomAtop(o"t Atr/ tri"8 var Po/ >"teer8 #y"ami8 proe#&re a"#le%&ffer8 virt&al8 property %&ffer/ tri" rea#

  • 8/13/2019 ComPort Library Ver

    12/76

    property a%&fferAiHe/ >"teer rea#

  • 8/13/2019 ComPort Library Ver

    13/76

    f&"tio" ParityoAtr(Parity/ Parity%it/ tri"8f&"tio" "fi"ite E >"teer(>??>!8

    error o#e C!rror@3pe"

  • 8/13/2019 ComPort Library Ver

    14/76

    #b@DCo"trol E :000000'08 #b@DAAe"ivity E :000000408 #b@Co"ti"&e3"off E :000000+08 #b@3&t E :000001008 #b@>" E :000002008 #b@!rrorChar E :000004008

    #b@?&ll E :00000+008 #b@ACo"trol E :0000'0008 #b@Fbort3"!rror E :000040008

    om port i"#o meae C@C3P3 E ;@BA! $ 18

    (****************************************** a&ilary f&"tio" a"# proe#&re ******************************************f&"tio" Com!rroroAtr(!rror/Com!rror/Atri"8 proe#&re e(m/Atri"8

    bei" if re&ltENN the" re&lt /E m ele re&lt /E re&lt$N,N$m8 e"#8bei" re&lt /E NN8 if e3N8 if eo#e i" !rror the" e(No#eN8 if e3ver i" !rror the" e(N3verN8 if e"t(o"t !ve"t/ Com!ve"t/ >"teer8bei" e&lt /E 08 if evChar i" !ve"t the" e&lt /E e&lt or !J@CF8 if ev

  • 8/13/2019 ComPort Library Ver

    15/76

    if evi" i" !ve"t the" e&lt /E e&lt or !J@>?8 if evCA i" !ve"t the" e&lt /E e&lt or !J@CA8 if evDA i" !ve"t the" e&lt /E e&lt or !J@DA8

    if evLAD i" !ve"t the" e&lt /E e&lt or !J@LAD8 if ev!rror i" !ve"t the" e&lt /E e&lt or !J@!8 if ev%rea i" !ve"t the" e&lt /E e&lt or !J@%!FG8 if ev+0"to!ve"t(a/ >"teer/ Com!ve"t8bei"

    e&lt /E M8 if (!J@CF a"# a O 0 the" e&lt /E e&lt $ evCharM8 if (!J@!PQ a"# a O 0 the" e&lt /E e&lt $ ev!mptyM8 if (!J@%!FG a"# a O 0 the" e&lt /E e&lt $ ev%reaM8 if (!J@>? a"# a O 0 the" e&lt /E e&lt $ evi"M8 if (!J@CA a"# a O 0 the" e&lt /E e&lt $ evCAM8 if (!J@DA a"# a O 0 the" e&lt /E e&lt $ evDAM8 if (!J@

  • 8/13/2019 ComPort Library Ver

    16/76

    "to!ve"t(a8 DipathCom8 e"#8 &"til Ai"ale# O (;F>@3%S!C@0 $ 18 lear b&ffer AetComma(

  • 8/13/2019 ComPort Library Ver

    17/76

    Aet!ve"t(?, 08 if evCA i"

    all eve"tproe#&re Comhrea#.Do!ve"t8bei" if ev!rror i"

  • 8/13/2019 ComPort Library Ver

    18/76

    if evi" i"

    (****************************************** Comimeo&t la ******************************************

    reate lao"tr&tor Comimeo&t.Create8bei" i"herite# Create8 "terval /E -18 "terval8

  • 8/13/2019 ComPort Library Ver

    19/76

    et rea# i"tervalproe#&re Comimeo&t.Aetea#>"terval(o"t Jal&e/ >"teer8bei" if Jal&e O "terval the" bei"

    "terval /E Jal&e8 if poible, apply the ha"e if "teer8bei" if Jal&e O "teer8bei" if Jal&e O

  • 8/13/2019 ComPort Library Ver

    20/76

    bei"

  • 8/13/2019 ComPort Library Ver

    21/76

    bei" if Jal&e O

  • 8/13/2019 ComPort Library Ver

    22/76

    e"#8e"#8

    et oftare o&p&t flo o"trolproe#&re Com

  • 8/13/2019 ComPort Library Ver

    23/76

    if Jal&e O

  • 8/13/2019 ComPort Library Ver

    24/76

    e"#8 if

  • 8/13/2019 ComPort Library Ver

    25/76

    et he parityproe#&re ComParity.AetChe(o"t Jal&e/ %oolea"8bei" if Jal&e O

  • 8/13/2019 ComPort Library Ver

    26/76

    ith Com%&ffer(Det #o bei" "p&tAiHe(o"t Jal&e/ >"teer8

    bei" if Jal&e O "p&tAiHe the" bei" "p&tAiHe /E Jal&e8 if ("p&tAiHe mo# 2 E 1 the" De("p&tAiHe8 if

  • 8/13/2019 ComPort Library Ver

    27/76

    ompo"e"t a""ot rei#e o" i"heritable form

    #etroy ompo"e"t#etr&tor C&tomComPort.Detroy8bei" Cloe8

  • 8/13/2019 ComPort Library Ver

    28/76

    ele if ;i"!rror 0 the" raie !ComPort.Create(F"!eptio", ;i"!rror ele raie !ComPort.Create?o;i"Co#e(F"!eptio"8

    e"#8 reate ha"#le to erial port

    proe#&re C&tomComPort.Createa"#le8bei" A>?, L!@

  • 8/13/2019 ComPort Library Ver

    29/76

    ith eae #o if E C@C3P3 the" try if >"Ae"#eae the" eplyeae(08 if

  • 8/13/2019 ComPort Library Ver

    30/76

    Createa"#le8 @6@3@>!= 9:;F? AQ%3L@D!P!CF!D 3?=9:!?D> loe portproe#&re C&tomComPort.Cloe8bei" if alrea#y loe#, #o "othi" if

  • 8/13/2019 ComPort Library Ver

    31/76

    Dealloate;"#("teer E (?3PF>Q, 3DDPF>Q, !J!?PF>Q, FGPF>Q, APFC!PF>Q8

    CAtop%it/ arrayAtop%itM of >"teer E (3?!A3P%>, 3?!5A3P%>A, ;3A3P%>A8 C%aate/ array%aateM of >"teer E (0, C%@110, C%@'00, C%@600, C%@1200, C%@2400, C%@4+00, C%@600, C%@14400, C%@1200, C%@'+400, C%@56000, C%@57600, C%@115200, C%@12+000, C%@2560008 CData%it/ arrayData%itM of >"teer E (5, 6, 7, +8 CCo"trolA/ arrayAAF%L! hl 12, A@C3?3L@!?F%L! hl 12, A@C3?3L@F?DAFG! hl 12, A@C3?3L@3L! hl 128 CCo"trolD/ arrayDAF%L! hl 4, D@C3?3L@!?F%L! hl 4, D@C3?3L@F?DAFG! hl 48

    var DC%/ DC%8

    bei" if "ot o""ete# or i"i#e %ei"Bp#ate!"#Bp#ate blo, #o "othi" if

  • 8/13/2019 ComPort Library Ver

    32/76

    DC%.

  • 8/13/2019 ComPort Library Ver

    33/76

    imeo&t/ Commimeo&t8

    f&"tio" et3Jal&e(o"t Jal&e/ >"teer/ D;3D8 bei" if Jal&e E -1 the" e&lt /E FD;3D

    ele e&lt /E Jal&e8 e"#8

    bei" if "ot o""ete# or i"i#e %ei"Bp#ate!"#Bp#ate blo, #o "othi" if

  • 8/13/2019 ComPort Library Ver

    34/76

    Fpplyimeo&t8e"#8

    et "&mber of byte i" i"p&t b&fferf&"tio" C&tomComPort.>"p&tCo&"t/ >"teer8var

    !rror/ D;3D8 ComAtat/ ComAtat8bei" if "ot ClearComm!rror("teer8var

    !rror/ D;3D8 ComAtat/ ComAtat8bei" if "ot ClearComm!rror(

  • 8/13/2019 ComPort Library Ver

    35/76

    !rror/ D;3D8 ComAtat/ ComAtat8bei" if "ot ClearComm!rror(

  • 8/13/2019 ComPort Library Ver

    36/76

    raie !ComPort.Create Call!eptio"(C!rror@!apeCom

  • 8/13/2019 ComPort Library Ver

    37/76

    if (C!@3J!B? a"# !rror O 0 the" e&lt /E e&lt $ e3verr&"M8 if (C!@3J! a"# !rror O 0 the" e&lt /E e&lt $ e3verM8 if (C!@3M8 if (C!@3D! a"# !rror O 0 the" e&lt /E e&lt $ eo#eM8e"#8

    prepare PFy" variable for rea#rite operatio"proe#&re PrepareFy"(FGi"#/ 3peratio"Gi"#8 o"t %&ffer8 Co&"t/ >"teer8Fy"Ptr/ PFy"8bei"

    ith Fy"PtrI #o bei" Gi"# /E FGi"#8 if Data O "il the" "teer8var A&e/ %oolea"8 %ytera"/ D;3D8bei" if Fy"Ptr E "il the" raie !ComPort.Create?o;i"Co#e Call!eptio"(C!rror@>"vali#Fy"8 if

  • 8/13/2019 ComPort Library Ver

    38/76

    Ae"#Ai"aloLi"(le, r&e8 e&lt /E %ytera"8e"#8

    perform y"hro"o& rite operatio"

    f&"tio" C&tomComPort.;rite(o"t %&ffer8 Co&"t/ >"teer/ >"teer8var Fy"Ptr/ PFy"8bei" >"itFy"(Fy"Ptr8 try ;riteFy"(%&ffer, Co&"t, Fy"Ptr8 e&lt /E ;ait"teer8var Fy"Ptr/ PFy"8bei" >"itFy"(Fy"Ptr8 try ;riteAtrFy"(Atr, Fy"Ptr8 e&lt /E ;ait

  • 8/13/2019 ComPort Library Ver

    39/76

    e"#8e"#8Pierre Qaer - i"le o#epae o"vertio" of tri" bei" e"tf&"tio" C&tomComPort.;riteB"io#eAtri"(o"t Atr/ B"io#etri"/ >"teer8var l/ >"teer8

    rb/ F"iAtri"8bei" l /E ;i#eCharo&lti%yte("teer/ >"teer8var rb/ F"iAtri"8 l/ >"teer8 Fy"Ptr/ PFy"8bei" >"itFy"(Fy"Ptr8 try etLe"th(rb,o&"t8 e&lt /E ea#Fy"(rb1M, Co&"t, Fy"Ptr8 ea#Atr(, Co&"t8 9:>?JFL>D@F?DL!@JFLB! the"

  • 8/13/2019 ComPort Library Ver

    40/76

    raie !ComPort.Create Call!eptio"(C!rror@Port?ot3pe", -248

    A&e /E ea#?8

    if "ot A&e the" raie !ComPort.Create Call!eptio"(C!rror@ea#"teer/ >"teer8var Fy"Ptr/ PFy"8bei"

    >"itFy"(Fy"Ptr8 try ea#Fy"(%&ffer, Co&"t, Fy"Ptr8 e&lt /E ;ait"teer8bei" etle"th(tr,o&"t8 if Co&"t 0 the" e&lt /E ea#Fy"(tr1M, Co&"t, Fy"Ptr ele e&lt /E 08e"#8

    perform y"hro"o& rea# operatio"f&"tio" C&tomComPort.ea#Atr(var Atr/ tri"8 Co&"t/ >"teer/ >"teer8var Fy"Ptr/ PFy"8 a /a"itri"8 i / i"teer8bei" >"itFy"(Fy"Ptr8 try ea#AtrFy"(a, Co&"t, Fy"Ptr8 e&lt /E ;ait

  • 8/13/2019 ComPort Library Ver

    41/76

    AetLe"th(tr, e&lt8 9:>"teer8bei" e&lt /E 08 ae Fy"PtrI.Gi"# of o;rite/ e&lt /E C!rror@;rite@3%S!C@0 a"# (et3verlappe#e&lt("p&tCo&"t E 0 the" Ae"#Ai"aloLi"(le,

  • 8/13/2019 ComPort Library Ver

    42/76

    bei" if "ot P&reComm("vali#Fy"8

    e&lt /E et3verlappe#e&lt(3@>?C3PL!! the" raie !ComPort.Create Call!eptio"(C!rror@Fy"Che, etLat!rror8e"#8

    ait for eve"t to o&r o" erial portproe#&re C&tomComPort.;ait

  • 8/13/2019 ComPort Library Ver

    43/76

    try AetComma("t(!ve"t8 letN ait for eve"t or timeo&t A&e /E ;aitComm!ve"t(@>!3B8 AetComma("to!ve"t(a8 fi"ally Cloea"#le(3verlappe#.h!ve"t8 e"#8e"#8

    tra"mit har ahea# of a"y pe"#i" #ata i" o&p&t b&fferproe#&re C&tomComPort.ra"mitChar(Ch/ Char8bei" if "ot ra"mitCommChar(

  • 8/13/2019 ComPort Library Ver

    44/76

    bei" if BpperCae(Jal&e E NQ!AN the" e&lt /E r&e ele e&lt /E ih(A8e"#8

    f&"tio" AtroD(Atr/ tri"/ D OE ih(D the" %rea8 > /E A&(>8

  • 8/13/2019 ComPort Library Ver

    45/76

    e"#8 if > ih(D8e"#8

    f&"tio" AtroChar(Atr/ tri"/ Char8var F/ >"teer8bei" if Le"th(Atr 0 the" bei" if (Atr1M E NKN a"# (Le"th(Atr 1 the" bei" try F /E Atro>"t(Copy(Atr, 2, Le"th(Atr - 18 eept

    F /E 08 e"#8 e&lt /E Chr(%yte(F8 e"# ele e&lt /E Atr1M8 e"# ele e&lt /E K08e"#8

    f&"tio" CharoAtr(Ch/ Char/ tri"8bei" 9:>

  • 8/13/2019 ComPort Library Ver

    46/76

    >"i"p&tAiHe8 e"#8 if pimeo&t i" "i"teer(?ame, Nimeo&t.ea#>"tervalN, imeo&t.ea#>"terval8 >"i"teer(?ame, Nimeo&t.ea#otalCo"ta"tN,

    imeo&t.ea#otalCo"ta"t8 >"i"teer(?ame, Nimeo&t.ea#otal&ltiplierN,

    imeo&t.ea#otal&ltiplier8 >"i"teer(?ame, Nimeo&t.;riteotalCo"ta"tN,

    imeo&t.;riteotalCo"ta"t8 >"i"teer(?ame, Nimeo&t.;riteotal&ltiplierN,

    imeo&t.;riteotal&ltiplier8 e"#8 if p

  • 8/13/2019 ComPort Library Ver

    47/76

    >"i"tervalN, imeo&t.ea#>"terval8 e.;rite>"teer(Nimeo&t.ea#otalCo"ta"tN, imeo&t.ea#otalCo"ta"t8 e.;rite>"teer(Nimeo&t.ea#otal&ltiplierN, imeo&t.ea#otal&ltiplier8 e.;rite>"teer(Nimeo&t.;riteotalCo"ta"tN, imeo&t.;riteotalCo"ta"t8 e.;rite>"teer(Nimeo&t.;riteotal&ltiplierN, imeo&t.;riteotal&ltiplier8 e"#8 if p

  • 8/13/2019 ComPort Library Ver

    48/76

    e.;riteAtri"(N

  • 8/13/2019 ComPort Library Ver

    49/76

    if p%&ffer i" "i"teer(?ame, N%&ffer.3&tp&tAiHeN,%&ffer.3&tp&tAiHe8 %&ffer.>"p&tAiHe /E >"i"teer(?ame, N%&ffer.>"p&tAiHeN, %&ffer.>"p&tAiHe8 e"#8

    if pimeo&t i" "terval /E >"i"teer(?ame, Nimeo&t.ea#>"tervalN,

    imeo&t.ea#>"terval8 imeo&t.ea#otalCo"ta"t /E >"i"teer(?ame,Nimeo&t.ea#otalCo"ta"tN, imeo&t.ea#otalCo"ta"t8 imeo&t.ea#otal&ltiplier /E >"i"teer(?ame,Nimeo&t.ea#otal&ltiplierN, imeo&t.ea#otal&ltiplier8 imeo&t.;riteotalCo"ta"t /E >"i"teer(?ame,Nimeo&t.;riteotalCo"ta"tN, imeo&t.;riteotalCo"ta"t8 imeo&t.;riteotal&ltiplier /E >"i"teer(?ame,Nimeo&t.;riteotal&ltiplierN, imeo&t.;riteotal&ltiplier8

    e"#8 if p

  • 8/13/2019 ComPort Library Ver

    50/76

    %aate /E Atro%aate(e.ea#Atri"(N%aateN8 if %aate E brC&tom the" C&tom%aate /E e.ea#>"teer(NC&tom%aateN8 Atop%it /E AtroAtop%it(e.ea#Atri"(NAtop%itN8 Data%it /E AtroData%it(e.ea#Atri"(NData%itN8 Parity.%it /E AtroParity(e.ea#Atri"(NParityN8

    "tervalN8 imeo&t.ea#otalCo"ta"t /E e.ea#>"teer(Nimeo&t.ea#otalCo"ta"tN8 imeo&t.ea#otal&ltiplier /E e.ea#>"teer(Nimeo&t.ea#otal&ltiplierN8 imeo&t.;riteotalCo"ta"t /E e.ea#>"teer(Nimeo&t.;riteotalCo"ta"tN8 imeo&t.;riteotal&ltiplier /Ee.ea#>"teer(Nimeo&t.;riteotal&ltiplierN8 e"#8 if p

  • 8/13/2019 ComPort Library Ver

    51/76

    e"#8

    i"itialiHe reitryproe#&re Aeteitry(e/ eitry8 Gey/ tri"8 ?ame/ tri"8var >/ >"teer8

    emp/ tri"8bei" > /E Po(NUN, Gey8 if > 0 the" bei" emp /E Copy(Gey, 1, > - 18 if BpperCae(emp E NG!Q@L3CFL@FC>?!N the" e.ootGey /E G!Q@L3CFL@FC>?! ele if BpperCae(emp E NG!Q@CB!?@BA!N the" e.ootGey /E G!Q@CB!?@BA!8 Gey /E Copy(Gey, > $ 1, Le"th(Gey - >8

    if GeyLe"th(GeyM O NUN the" Gey /E Gey $ NUN8 Gey /E Gey $ ?ame8 e.3pe"Gey(Gey, r&e8 e"#8e"#8

    tore etti"proe#&re C&tomComPort.AtoreAetti"(Atoreype/ Atoreype8 Atoreo/ tri"8var >"i"i"i

  • 8/13/2019 ComPort Library Ver

    52/76

    eept raie !ComPort.Create?o;i"Co#e Call!eptio"(C!rror@Atore"i

  • 8/13/2019 ComPort Library Ver

    53/76

    "#e3f(Poi"ter(FComLi" E -1 the" raie !ComPort.Create?o;i"Co#e Call!eptio"(C!rror@e"teer8bei" if Fi"e#(

  • 8/13/2019 ComPort Library Ver

    54/76

  • 8/13/2019 ComPort Library Ver

    55/76

    proe#&re C&tomComPort.Do+0

  • 8/13/2019 ComPort Library Ver

    56/76

    bei" Do%efore3pe"8e"#8

    proe#&re C&tomComPort.Call%rea8bei"

    Do%rea8e"#8

    proe#&re C&tomComPort.CallCACha"e8var 3"3ff/ %oolea"8bei" 3"3ff /E CA i" Ai"al8 he for li"e# ompo"e"t Ae"#Ai"aloLi"(leCA, 3"3ff8 DoCACha"e(3"3ff8e"#8

    proe#&re C&tomComPort.CallDACha"e8var 3"3ff/ %oolea"8bei" 3"3ff /E DA i" Ai"al8 he for li"e# ompo"e"t Ae"#Ai"aloLi"(leDA, 3"3ff8 DoDACha"e(3"3ff8e"#8

    proe#&re C&tomComPort.CallLADCha"e8var 3"3ff/ %oolea"8bei" 3"3ff /E LAD i" Ai"al8 he for li"e# ompo"e"t Ae"#Ai"aloLi"(leLAD, 3"3ff8 DoLADCha"e(3"3ff8e"#8

    proe#&re C&tomComPort.Call!rror8var !rror/ Com!rror8bei" !rror /E Lat!rror8 if !rror O M the" Do!rror(!rror8e"#8

    proe#&re C&tomComPort.Calli"8bei"

  • 8/13/2019 ComPort Library Ver

    57/76

    ?otifyLi"(lei"8 Doi"8e"#8

    proe#&re C&tomComPort.Call+0?A 3"teer8 P/ Poi"ter8 ComLi"/ ComLi"8 ea#

  • 8/13/2019 ComPort Library Ver

    58/76

    e"# #ata to li"e# ompo"e"t ComLi".3"%&f(Aelf, PI, Co&"t8 e"# e"#8 if ("ot ea#

  • 8/13/2019 ComPort Library Ver

    59/76

    if / >"teer8 ComLi"/ ComLi"8bei" if ("teer8 ComLi"/ ComLi"8 !ve"t/ ?otify!ve"t8bei" if (

  • 8/13/2019 ComPort Library Ver

    60/76

    >/ >"teer8 ComLi"/ ComLi"8 Ai"al!ve"t/ ComAi"al!ve"t8bei" if ( /E 0 to M8 Ai"al!ve"t /E "il8 ae Ai"al of leCA/ Ai"al!ve"t /E ComLi".3"CACha"e8 leDA/ Ai"al!ve"t /E ComLi".3"DACha"e8 leLAD/ Ai"al!ve"t /E ComLi".3"LADCha"e8 le/ Ai"al!ve"t /E ComLi".3"8 le/ Ai"al!ve"t /E ComLi".3"8 leCo""/ Ai"al!ve"t /E ComLi".3"Co""8 e"#8

    if li"e#, trier eve"t if Fi"e#(Ai"al!ve"t the" Ai"al!ve"t(Aelf, 3"3ff8 e"#8e"#8

    et o""ete# property, ame a 3pe"Cloe metho#proe#&re C&tomComPort.AetCo""ete#(o"t Jal&e/ %oolea"8bei" if "ot ((Dei"i" i" Compo"e"tAtate or (Loa#i" i" Compo"e"tAtate the" bei" if Jal&e O

  • 8/13/2019 ComPort Library Ver

    61/76

    et &tom ba rateproe#&re C&tomComPort.AetC&tom%aate(o"t Jal&e/ >"teer8bei" if Jal&e O

  • 8/13/2019 ComPort Library Ver

    62/76

    (Loa#i" i" Compo"e"tAtate the" bei" Cloe8 3pe"8 e"#8 e"#8

    e"#8

    et top bitproe#&re C&tomComPort.AetAtop%it(o"t Jal&e/ Atop%it8bei" if Jal&e O

  • 8/13/2019 ComPort Library Ver

    63/76

    raie !ComPort.Create?o;i"Co#e Call!eptio"(C!rror@Co""Cha"eProp ele

    et flo o"trolproe#&re C&tomComPort.Aet

  • 8/13/2019 ComPort Library Ver

    64/76

    "teer8

  • 8/13/2019 ComPort Library Ver

    65/76

    bei" if Fi"e#(

  • 8/13/2019 ComPort Library Ver

    66/76

    DoDiar#(Atr8 e"#8 e"#8

    proe#&re "teer8 var

    Atr/ tri"8 bei" Atr /E Copy(%&ffer, 1, C&tAiHe8 %&ffer /E Copy(%&ffer, C&tAiHe $ 1, Le"th(%&ffer - C&tAiHe8 Che>"leAtri"(Atr8 DoPaet(Atr8 e"#8

    proe#&re AtartPaet8 var

  • 8/13/2019 ComPort Library Ver

    67/76

    if

  • 8/13/2019 ComPort Library Ver

    68/76

    e&lt /E ("teer8var a/F"iAtri"8 Atr/ tri"8 i/i"teer8bei" AetLe"th(Atr, Co&"t8 AetLe"th(Aa, Co&"t8 ove(%&ffer, Aa1M, Co&"t8 9:>

  • 8/13/2019 ComPort Library Ver

    69/76

    e"#8 e"#8e"#8

    et ae e"itivityproe#&re ComDataPaet.AetCae>"e"itive(o"t Jal&e/ %oolea"8

    bei" if "e"itive O Jal&e the" bei" "e"itive /E Jal&e8 if "ot (Loa#i" i" Compo"e"tAtate the" !mpty%&ffer8 e"#8e"#8

    et paet iHeproe#&re ComDataPaet.AetAiHe(o"t Jal&e/ >"teer8bei"

    if

  • 8/13/2019 ComPort Library Ver

    70/76

    *****************************************

    reate treamo"tr&tor ComAtream.Create(FComPort/ C&tomComPort8bei" i"herite# Create8

    "teer/ Lo"i"t8bei" "teer/ Lo"i"t8bei"

    "teer8 3rii"/ ;or#/ Lo"i"t8bei" e&lt /E 08e"#8

    (****************************************** !ComPort eeptio" ******************************************

    reate eeptio" ith i"#o error o#eo"tr&tor !ComPort.Create(FCo#e/ >"teer8 F;i"Co#e/ >"teer8bei" "teer8bei"

  • 8/13/2019 ComPort Library Ver

    71/76

    i"itialiHatio" of PFy" variable &e# i" ay"hro"o& allproe#&re >"itFy"(var Fy"Ptr/ PFy"8bei" ?e(Fy"Ptr8 ith Fy"PtrI #o

    bei" "#e/ >"teer8 Jal&e?ame, Data/ tri"8 Jal&eLe", DataLe", Jal&eype/ D;3D8 mpPort/ Atri"Lit8bei" !rrCo#e /E e3pe"Gey!( G!Q@L3CFL@FC>?!, NFD;F!UD!J>C!FPUA!>FLC3N, 0, G!Q@!FD, Geya"#le8

    if !rrCo#e O !3@ABCC!AA the" bei" raie !ComPort.Create(C!rror@e!rror, !rrCo#e8 eit8 e"#8

    mpPort /E Atri"Lit.Create8 try

  • 8/13/2019 ComPort Library Ver

    72/76

    >"#e /E 08 repeat Jal&eLe" /E 2568 DataLe" /E 2568 AetLe"th(Jal&e?ame, Jal&eLe"8 AetLe"th(Data, DataLe"8

    !rrCo#e /E e!"&mJal&e( Geya"#le, >"#e, PChar(Jal&e?ame, 9:>@4@3@>!= Car#i"al(Jal&eLe", 9:!LA!= Jal&eLe", 9:!?D>"(>"#e8 e"# ele if !rrCo#e O !3@?3@3!@>!A the" brea8 raie !ComPort.Create(C!rror@e!rror, !rrCo#e8

    &"til (!rrCo#e O !3@ABCC!AA 8

    mpPort.Aort8 Port.Fi"(mpPort8 fi"ally eCloeGey(Geya"#le8 mpPort./ %aate8bei" > /E Lo(%aate8 hile (> OE ih(%aate #o bei" if BpperCae(Atr E BpperCae(%aateoAtr(%aate(> the"

  • 8/13/2019 ComPort Library Ver

    73/76

    %rea8 > /E A&(>8 e"#8 if > ih(%aate the" e&lt /E br600 ele

    e&lt /E >8e"#8

    tri" to top bitf&"tio" AtroAtop%it(Atr/ tri"/ Atop%it8var >/ Atop%it8bei" > /E Lo(Atop%it8 hile (> OE ih(Atop%it #o bei" if BpperCae(Atr E BpperCae(Atop%itoAtr(Atop%it(> the"

    %rea8 > /E A&(>8 e"#8 if > ih(Atop%it the" e&lt /E b3"eAtop%it ele e&lt /E >8e"#8

    tri" to #ata bitf&"tio" AtroData%it(Atr/ tri"/ Data%it8var >/ Data%it8bei" > /E Lo(Data%it8 hile (> OE ih(Data%it #o bei" if BpperCae(Atr E BpperCae(Data%itoAtr(> the" %rea8 > /E A&(>8 e"#8 if > ih(Data%it the" e&lt /E #b!iht ele e&lt /E >8e"#8

    tri" to parityf&"tio" AtroParity(Atr/ tri"/ Parity%it8var >/ Parity%it8bei"

  • 8/13/2019 ComPort Library Ver

    74/76

    > /E Lo(Parity%it8 hile (> OE ih(Parity%it #o bei" if BpperCae(Atr E BpperCae(ParityoAtr(> the" %rea8 > /E A&(>8

    e"#8 if > ih(Parity%it the" e&lt /E pr?o"e ele e&lt /E >8e"#8

    tri" to flo o"trolf&"tio" Atro OE ih( /E A&(>8 e"#8 if > ih(8e"#8

    ba rate to tri"f&"tio" %aateoAtr(%aate/ %aate/ tri"8o"t %aateAtri"/ array%aateM of tri" E (NC&tomN, N110N, N'00N, N600N, N1200N, N2400N, N4+00N, N600N, N14400N, N1200N, N'+400N, N56000N, N57600N, N115200N, N12+000N, N256000N8bei" e&lt /E %aateAtri"%aateM8e"#8

    top bit to tri"f&"tio" Atop%itoAtr(Atop%it/ Atop%it/ tri"8o"t Atop%itAtri"/ arrayAtop%itM of tri" E (N1N, N1.5N, N2N8bei" e&lt /E Atop%itAtri"Atop%itM8e"#8

    #ata bit to tri"

  • 8/13/2019 ComPort Library Ver

    75/76

    f&"tio" Data%itoAtr(Data%it/ Data%it/ tri"8o"t Data%itAtri"/ arrayData%itM of tri" E (N5N, N6N, N7N, N+N8bei" e&lt /E Data%itAtri"Data%itM8e"#8

    parity to tri"f&"tio" ParityoAtr(Parity/ Parity%it/ tri"8o"t Parity%itAtri"/ arrayParity%itM of tri" E (N?o"eN, N3##N, N!ve"N, NarN, NApaeN8bei" e&lt /E Parity%itAtri"ParityM8e"#8

    flo o"trol to tri"f&"tio"

  • 8/13/2019 ComPort Library Ver

    76/76

    e"#.