From f458e3589488c53513d66221cfae15d972169ac5 Mon Sep 17 00:00:00 2001 From: Will Hedgecock Date: Mon, 18 May 2015 21:43:42 -0500 Subject: [PATCH] Updated to Version 1.3.3. --- ....2-test.jar => jSerialComm-1.3.3-test.jar} | Bin 245247 -> 245273 bytes ...alComm-1.3.2.jar => jSerialComm-1.3.3.jar} | Bin 240433 -> 240463 bytes images/Thumbs.db | Bin 0 -> 108032 bytes index.html | 18 +- javadoc/allclasses-frame.html | 57 +- javadoc/allclasses-noframe.html | 57 +- .../com/fazecast/jSerialComm/SerialPort.html | 2641 +++++++++-------- .../jSerialComm/SerialPortDataListener.html | 490 ++- .../fazecast/jSerialComm/SerialPortEvent.html | 751 +++-- .../jSerialComm/SerialPortPacketListener.html | 439 ++- .../fazecast/jSerialComm/package-frame.html | 71 +- .../fazecast/jSerialComm/package-summary.html | 320 +- .../fazecast/jSerialComm/package-tree.html | 280 +- javadoc/constant-values.html | 594 ++-- javadoc/deprecated-list.html | 238 +- javadoc/help-doc.html | 402 ++- javadoc/index-all.html | 765 +++-- javadoc/index.html | 89 +- javadoc/overview-tree.html | 286 +- javadoc/resources/Thumbs.db | Bin 0 -> 3072 bytes javadoc/resources/inherit.gif | Bin 0 -> 57 bytes javadoc/script.js | 30 - javadoc/serialized-form.html | 315 +- javadoc/stylesheet.css | 585 +--- 24 files changed, 3932 insertions(+), 4496 deletions(-) rename binaries/{jSerialComm-1.3.2-test.jar => jSerialComm-1.3.3-test.jar} (91%) rename binaries/{jSerialComm-1.3.2.jar => jSerialComm-1.3.3.jar} (93%) create mode 100644 images/Thumbs.db create mode 100644 javadoc/resources/Thumbs.db create mode 100644 javadoc/resources/inherit.gif delete mode 100644 javadoc/script.js diff --git a/binaries/jSerialComm-1.3.2-test.jar b/binaries/jSerialComm-1.3.3-test.jar similarity index 91% rename from binaries/jSerialComm-1.3.2-test.jar rename to binaries/jSerialComm-1.3.3-test.jar index 2d489a44c02b9b5419f12aa931cbb9a271132995..dbbb0c83a502e6d06558ef52ae5f597249e1acdb 100644 GIT binary patch delta 16749 zcmZu&Wk4LuvR+sS4#C~s-QC^Y-2()d0E-0(?u)y-yCk@~hmhb9+yWuUBOJN+oco3! z-Cg@tebv>~J;O}*(=X(-dt@XPc_0)#000XMK+3C+N1}p#E~JtfT+ib9nL%=%D_9{B z(0Kz7sY;{?VHE13J?nOc7;c_zv3(A#?eXvx>^qxk9JO=$w0dr;3qc3sh{>i@=GQo-+x!lu(m7hx~`1i4YK^z-LDjDIw@yN;L>BwBL?n zf%FQcR^9_~iK%umv>o4`RMkv6|n2xh){LDI^p%$rNy#I`Qb~vIado z`a_u@zNg`fiy(_u!04NX!nOTGGib5)fhX^-Xe;6OjxLPx!v%MNyakl@$LzbKSs+@GYSk0vcDGUNpZnECX zeQ};JERiaic?I)0`7spiHniXYpZRvT(y+`1$z!3q{cz3smvqVS4VLF+=$6Y^ZS(F; z>kglh5O1i~5c^FMBJM)0@st-xP6K@tX)O+f6RglIW`%PGM2C&+$(}RJBCSosG^?r~ zyk-Lyz~@7EXfd8ci*r<7e*GTic_k?3KCVwW=TUk~dE)rl5;qn@U=SS|8#R%&fFx2E z*A;$urpg3D*-}6~u8*vbazl*W-Cmx)RnsND3fC%4yUZ(Iye4RG7@-~{@!=Zl#_$A@ zUS}{ON)wv7b};TrkUkV)XhSQ4zf;0+*7u{NCmuRh8qyu241(4SQY2}fUcEUbWgeAZOv_Xlu6W1N=QP1DEcnFI^2v8Om~wZc^Akt;%X{b#^hfH#bdCES z(cjLc0z<2+)ZCdChOgm4&?tu;9cy&&IzY|P)*2HB=(W-l52vT$_S_nXhTnC?>-Pny zNmug>Nz*uzZoT0gOrVb4QcKm^)kN=R;1lO%Go_db5kf+dKXs#_i(t>xmiUJ8s1}(9 zKvj!mCRgk`2F)qH6}fYP|M>{Tc80wYY_GTtL2&`AQ2ZU1q3946^cclZ!k$*p;x3ao z%N^oRa)0sKg+WbP-k_Wu&z`axxhST2O8`9^49q8{S(Q!@HigXT+TV(Xo!AfRh{4AY zmbhuf<{k+SB3%lt2$Ze?onHz1USM z-XG~>nvYXDND_*H_-;e0KNyuY2A-X2ycHWg6~k&YI5h|c1aE~g&ZePw80t91!V{dQ z_)2?i{B7u6h~wEp*BTb{8ykJyi(51+y)j2SXv4}eCGdk<3(ofhy*tbn^ma?vU~HUu z%iuvTtp*0AU+5ni(;^-1VFaplJ>0kl4wBxijql_a+0HU7&}^(f>^`?cIA0<5|hTdu$+C$7*+R zKB^Ejism?ZwTb8eSqhHcfDuOpF8@rDAxYET&D9$z4N!x7R!Lj;6nh}z4gpIG5Nn46 zQ{@~s_PwswIg~Ocg+`@`<^Wy-MYZ-P_RzW~dO`6%Vj+9|4gp0@yvlEtV?!Zyi!r1+ zwg}TGV%LJnMe}ggCNfvOysKp`5@gcHb|D(!+rRfwRD4VjHScVXBo*Q2A%7U%2Z4d zr-L<>L88DeV@Dnd{Mk|E3YusIuXnKCiWU`x>>*b5cC-M-R=9KeFTKZXtv!ey zTpYgbP)Iq!d{em&Hq7F&!-x6K)itntqo@YP-$4HUQFJ+KA=JKV67Hz$WOkYC#~X<# zXX+BIez$(8-}$M3-5%ms`873yXr{1lJVZ$OMI>OH!;B7y5F&elF+jS!-u(M{uOTO?Njn|D2@irG&$TO9y}K4EuXIPiC!;IW9e zyo+`^C0mELp%K@7_pKUz+}>Y4f^z6N3`UZ)ZClfqq7gf#`lxnWwFX*rdfoZtoCQIS zDs{SjkVxDY2UNSuy*W*HKGsGI@vfJ*6FOUO~mh9Xul?HD;vvu_~^cBaaF@`d!uz`q9|QodZWr z^j%xp)+(dZ&nH*0xN$#tDp><1Li{uK!Ts78apOj~^=OX$F^N$w)XeTFJ0S`2A@o6=+yYd9>K11u*sBq?tmDq|=#T$T&oFXtAZqwQ99a6M<$F{nJL2;3ZdH zJHp+fQKZ)nH6hJ~_Q43eIjScog%8c9$iP!0B+Qg9s|vhtLQh(FD^G_}Pf$XR8T})U zQ69R{MreZ?g`0B-nF+IAbW^}m{dL{Qjl?KrECc(XsEe4DKtbMkflOPxjYA|1#l0yb z(@2IB67y==3rS@S+_HQv|0PJJYfle$+@lWVya4~zJt7z5cP zAbY@-E*s^Wv{xWmZcg1=l!Wg4PghD^)tf^Q_fW!^IM)Xf9ED^vEE$zJp)*(?BX4m* zMr7Jk?2xy-M#YAL$Nqs};4LL_h8uj(v5pi9u1yFdbwXorC>TT#oM^W!+qYTHQmnvf z@cAv87R~I8c`6Z?!WAj^YM+|1X@MLvycU29?dWR_q!(sQ{F69Fmq_$_0_KCUBHZ4) zz=enOEH6SQs5AU~ty~#nnFTRbmgT*#s&mac)nnGx^nKC&4E#HItahLuonjnc={ zZ27R?ZoJq7x^6*0OS!#8ljd_s@{1Yk_f8v4fX8rQ)i(BMQAxALo7NO{^pBr)D5gt^ z)r!mq$h@-#Bf>vRs*aabnpNM<*DQ*(EITxX8$56~Dgj!eQUS7zp{8 z&wF&T-P14asD@=%_t!7iHzdo?DWZH6zmMLP0)X~>-a$XXek1>3QC&S{1);zbYhl%= z$I=`nvo;Lk$^tX9XQS|IW4|YLuu*)7mS@ zT4+fdW_pm<%hFr7_KF?T=uP`Qd_ih_QIXPMrUIppcvwUq@f*8QlSuXg9^u*pvEfc? zoM8X&61Y@4P(Dny*7c<(+(cLfTF8)CWDS zAi`9zGl}hh4IA>J7CVE(dcYV(C5;4d@FGZ80T*wcufV0rWja{uTtO`;nxP+zDi(Oc zmIb{MvSl+~AS`w(ogc<7D6{{|lFu(t%SXNs#9c<5&m3%o=pQeCB}fEMmH*xYA{JKu z3{x-iE!N}@C=5=tXr)qTeiBZnFoW{KjYR9Hv`%|`t66XA`>F>O`6iBt!NNRnOzy-s z>)b5tbn#W~T3ITWZ4||BQ^LOB8Db=#Ks1{7u2NF7qqMH@=v-;)3W9MLn^rs0LQ%nY z5N0u7P$|4^`FBjJ3r$*n79W4+`4RJy3Feuz5Um=G5@(C7nvV=@Wu@&OQ|zV^#=CpL zgE~{i@L#cL{3?%W_%y*W@_nT#^4l#t95E?}_n7`qTyEIIf}uYjwrhrr18`4mdAVXM zs@2Mq3=d~hRZ6g?35U=$VwTT=dFSdjAjkdpMyEAo8=_n`WRWUzXGeQZqlHnl7kf^_ z7Feoce)x~~4rP<87ogWEwAr__cvwy7P5r)Nc@RAsbFACi=tkd6;8qx&vKSq1xwmnt+ZEH^ZGj!o9dKeSw3brKV_zsW(p07dy| zR?pFK1icZ5hBFI9S}LAt)glLd-PmGSEY!5sEwQ%7^H8F?7ogICpZMUTSVmt?L-)z` z^IJCb9B*_gOdT$;xn4i3Wk+hR9Z9ofp*>1pdMJLFP?QKg-%PZeK@@#m{G#7gizi~T zS=O!0JwmctU8A0!_#u`q7)88D03_ON)E&Q=buoA0sCP4ZI((X^hFgU*>NT#?o`f{2 zNg=%(&&bpV&5^EL8PsI*pBc!p?3WB+?huz*)Q^aPlkAR#Iws^!(2n6ip&^R`)PT!#|OR16hO6(nalRJbt>rNxa!a{^_??rm@Ln$#J4Z zm8Z>%e?xQJs(sM=5D^TMByVFF29u2BCDVqCLeE{G+=l)+Sx6vXAW%B_iLPgBfrgehhw2{YP^;;S&JR=6B&yc(zt7TO_U<(D@ zbO)f2W$Tt-ONq}adhGI3vw!_LnU;2Wya%oUl&8j$$H*dJ)nlQhM$Ena(#zqpI-WtZ z?>*R$gwCyqfqS>mjBiCxC5Kpmgxb3HZWqSR7Njks=_yWG2#a$>ov$nZoYU<*9Jn=U(Uoj9z+UW=EI+{p> zuzmZ;mD^AF*YvjePYb<4Va_7u&W7!nOdL1-*v8UcXVz$w`uA*ylWgw zmIFb_pAys+7#Po{NQgV{O~8Nsus!X}qJz{!$YZv$aFOuEOHxrPoASWRe}A+JGq3qU z5#Q3{&9cl2&TMH=d9;2ir}O7Q!ts?-(ms|SAV#i}O(H@IWlj?r_X2@0Ht^D_D;?E) z4z$XnLSMxRLO-dT=bEdNmRhYjOW;_I?YMwWJ#8Lt$VsZp=2T{Qm9ourwXGz_#U3SlbI^^mI!7ca^>4 z(zU(TSA-JwlQYZ8_9hf>vumqZouj`&UX8VfD}-%`hvjMUK=B9Fh1o_Uqw@Er30i;} z&*2_^4GDk8!;{AGY6IOrpa_vw_FnoKR1 z#6+KI1e1AJG!Y@lZ*|dQCe5*ZhAH!))nvx;2-c=asboxPDeFMtDZsJ)^h&bF)saG5 zpWpfIpzEaP$<3|b6ngj5uS02o-kB<@FAsT&5K6hTR_5J+ixLBn&PWZ!x*v!yPE?A6 zH8w^RWun2bH^4@9GN`ElyBVZoggRD1)EO%4JgceT{aR8%G7AQig=>SXc;FxbUVQ+u zubGtG;rn@@#_IPp?gXuzw7RImc&lkL+0~9MA1ZSToR765$840dE)5; zFjC|vPE@Pq%#IHf=7W%+b4eUI_SuL=7GGM2eb&(WZd^Yjl!5DQx8ZJkbDBn`w6u1r zP(i;L4Kg>?9y^KaD9rRaQ;!m~4=TuYuWh&!ix)4Ocpnux7>#{E$aZ{NO$XOHKNPjlO`*!iX~zq#i6a&$1`$Eju_n zmqK1CK=K+3MYrEiD`&!tW>Tk2*ZS;W@)XvD!WQ@7YOT_;-v=vyu+p+P!J>f&Ggg+M z%h`{Q+*L@_$Y@5ff;*XLl=A(jERO0BY{vNSv)cw@M9SlbR%@?R*eID^MTa=9!bT8Z zTF)Knw#a)hp;t*4fTTiQRwP!AM(KH{5RHJz>GpXeWsUDQ`UjI@KI>)39;(i2q1zon^<35n7 z_NoZp;N|G4qW%i}3Z()w#n>p=e6Xn4YHmGo(K!DBV!Ytwgf*V1p5gcmftH2cSOy zY!KI>JK%PdRCKv-0pFK_twXTVGjsyI_l6jiCW$OlML+TGFo7qbqmkcsi7;G|EIV=D zdGY=@hlc}+Hy~M<5+v1+E7BlW72Gl%dV)pH(?m$WbR#SY+8mqh-KYrI87D=pvT!kr z^4d$kKdFG~Bb?P{R`hNF1fRuq5kl2Q0PbK-kVbzh&A%1??#-C~lZjxn!#Q(Fw$?uZ zodsnpJjzHL%Y)bQfabtzHjwSYJDTl4%{hw54buTc0$Lp*2A_pJ$f*`}*6QIqA7Hyx zC-DX&N)>f&OjSl2oqldPOD54$;ac=ZXsIA-kEQKYH_)U@9xXVeU!L6{uRlX&lsj@& z(4t!i!m>DdBx>esH6vW$HLIUfs^HLl1YnwP?q9>lV7~c<^;uiho0#7~N3Ua}13ITK zAodFMYN+2dL4%8Ld;F-+G|at@HiIjx%zUE$a2?oS(Ayz3*`L zN_07e`|f>3sG5_}W=J`Fw@t750bw8x$3J z)W5z#{eEzv3mgd-Ok^d{2T@JfsUynDe_UMUa%eQM52l?D{iI4@&6NR-mGDKuL%koj zqJZsAO`7;v-1wImF<(KFYH{~r2g)O@66VyGH|TFKKEkrUo9epBJoVkQVzwH zyfLDVX$7_6Ed%*>?Vu+9bX~{ooe$>(;!d9yuC6om7OV>le(7+RSKI0*Ddg9p0ShkQ z`bV41Sx)H5avMUKInQxsent}RJ!Dt}gQM}phh`h2SnVLiN$NNlUFyh!6+D=zJ=Tnj zimg{__vg#C@o*9v9JOp^$780{puVu`B?lSS91Oavs~kCLa)U@^pjpFJUW>OfZ5@+1 z27C+?XfDp0oZwzzGteO^TcCq3*K4w~;goiFaM$cGFO}@8)v#_lNjXB2Z?d-=adXQk zTrw=+Af2`j_JWxqxoD*|XA1XT^U2<;r4ucc8S&x{|4hSTaQ_vFUuW=>`ga1wl@ao9 z2`=f?_%Y}?>6svbJ4BGkgA#!a4<%O>rc?8;PJd&EXw{a~cw1+giIUyPh;`&fGi)t< zag4X4p&Ona=W)`ebI#EbIFovcpXZOiQ;A=g-2L3dYa&gwcTK`K?x*P50bZ>(1VXUF zS-1xk_OS@|HS&ic-@znVe5bD6Mt2jyB8DTl6#RsJ4!HsnH5LB^YgFj|8dYLMo}?4z za`sA!L&s+cz{Bk(@aD4|76Gi|Yh z_xaz!n};yj;RIbFCPZmxlMXr#%iK$vhS}rY*wf7#0VF@mrEZp$@b5p=gfiLcP$O{* zcnskIgwRbXGZa=!(=OPbVgOCJ!_8v^U9o_#F(>XI!-W3pQj9NTfm1NOfiU}o$zF75 z$Vd6i1U9Pp;@oLDXiXgw$Lweqt^|9=B!fNuwvU(}+TJ5RtrlcDSU9Rp-X*$^hDJi#K65?>7M9kdk(k|2@jy3#pv=Cx6|E6+)n#8q0c zDz4=IzaBpc-EYFV5=Ti?K)M)1JuRLlCInce(4wpEBGa>ERm1RV9>gT+Zoy`dtg1PV zVfr|4tkcuVB2c=2!rV5mFbo>{IXC>O?YO^?zVdsbYB+2YhvuL_V?S7PJr%t172eC_ zf4J$LilN4gkV7l)5q#`M++bK+1O<0pp>+3r;4czhkLpe}0S&&G=*DF<) zS12e_KRLc!W~r1FM}pv!llQd?IpnWhbng)BKC>e_Amr7a8elfTs!At(YW4k^(lmW; zU}hutHCwgB9WPRq;3RqMs#*qYfZf^dG)5mYTJ4u(;ikEUNu|)3cKZt3Eh^&{85=jI zB06(xC*txQ9b#gn26lxM45Mm=>;{b1zApV{b)%eGyH>3l3K-P+u6pO^VgmXyQSu1# z&TMIfkf|9OSRqrSCx#XsT7g}`&u<3@jhIx}aMw2Z@qk>SxEJ%4OU;Dsx za&}}teXrqUeC-yK^v!s<4{rlj`MVi~u3P6+y%pz=o{X@RqRsGMvF)3+_05L~5V?%? ziqbJ7!WdNbtk6`rsfUMbJUX~EW z2U^LBs&LA6bCHs`5|BDWKk6p`qgG+Q*ITydh)shseA%@O~03MGpg%xtyG-PBkLtg*QEGd6_r0IzIl56 znabxU)~j13t_xon^?S>H-fsGqAzhodboK$?u_G(zESy(y!|BQhOSh*>lA}yn+9|~M zBbcDSnBUbXkv#s_r?B6*W(f9=OEs7PKx3j21s^EkhRxd|ElvbLNg@VI(PyP0;lRZ~ znvn)8Vbf=^3;l|k-5IO7U1h1=UA020%1s%2wH>uqr^0Z4ak092@uZ?j)83)VpK0e; z&dvIGCvND}bgZ!p*!7h61~e&nv*v1iI|=H(U_q@?k&7JZt8&C}P-~R;tisrnajqUE zbOfojsc*TfdA7A>yer&KcFY;vlPxhe&lv>LDwb+7af% zI`tc{z3=;sn(c}Zm!`obn|ps-Bl-b%JmZ>kB)qSs7cd%+xr4+m>L{RP#V@{z7~J;0 zk%PoDw_4FobGII*cuTj)Wv5ASo^7^5AdPlU`%dMpSlfH&13$4XWxIRYXyK}JYYtHM z^lbwkNNH=z{vJB|#{OP1x~K3Q%-Joy^^UV!dFL0W|3^huUBN*Zj_mo{+`+I2h)2=r zp3U99`#75m&17PaIm$KKfh7y^XJ%E?yY`HpPhT~D>N~b45W8M(-G?-GGgfsJx`WR^ z(uh}uqhBq{f8f@|39n&CQ~D%+r~_H_g2QniRjInj(OAu@OhE#U{b}WFmwaR~w(M+I zKM18LW-ueD5n0$U!!{@4O&IXt+0LO~<3xDACmS*Bs&fQ=Bv^kP0ad_H+Syv-Sz6Q9 zV{YNs9bDL^wg`6oon(a&Bb!%jZR_DKvQYT%R6G@K7PSR5!r&nXH(@=?X5#Q{)|EO5>xOT*`J3hwU zKRw2?J3QlTacgQ3mB8u(edL~BPxLJ1WT!A0bshTb`w-*2Oz!FXk=H2ZyiIot|J^&T zAJvBZ^D~KQgJh*#r;Y2EFl?8gQA?v85oynkxOYD9^xA#&m)x&1`#9(&kDZ(x@h_S@ zJrONmS(m)x{y2EtR-ma{iRMI;pD*f)S9oZqK|ueJ$Qz63d;uhgn1bW|Obm*h}? zvx>paY1usn8@y&Q7EJFe1sBK(&#ZSlQ)MEVo zUbd#R5&W;Cqe7aWzj9Pf>g|crH`)AP4bj@c%KPFRah>(3V&=eMHLD=g8YCCyNgd^N zi43B7gIlAc`emWSF zXzWr2{84WR5srz)h-7-kkOvU78M=g&xV=Sz&$+NnC#MOL1eTrCVN%Cem zrYbJ=(?)p%RA6{;il_xTTW(0)4#Ps+5y@?o1f;aVH*+g^e@=x|zO*yZF?{K|ldB}k z268p%-CrK&HB#&#b;?Q$z}TZD`Iq$IMlX9SKiu(V7}%8`ufx5s-~Ix+L}4=+H!Jjh zOX>~3&8xT94fP&4XYu6usl~#Wjb|LjLf4UE-Kx#xDx$Mzu z3MFLICF3dItHp70N!|PjBWToR1D@w9HQW(lAPR6o(^{OJ&s(e$zZ!F}i+<>z3<`jW z7_BgYGUmVqA>gE-j^GkMIIC$rlsMIp8s3LUJ*fe~C z!}265?j!FcnA_%v1&)ox zp*XSl8!ew7I6Fi?Gxl@aCvGb!F>+FJ9eX6du=BQ2^TlNqoJ={fLgcW(oM1&RHrenm) zoYQ=X0Nvj_#bc5QWuZQ9>I83eVNY0#QH5G>tA(TW@AlY~qL?VAt9O@ax1?i~b!n2U$ zgRH%Wg42qh6~?7_H8}CB&t57=io(Vm@)48v5ma{B0~JG!l^kfo7H1<-YkP$f_Kiy# z9W|&TwpcDbkS7I{YrDW2rd2)tQ}YoHGWcQkW)$^T%Vf<5@=m6Kr|`s-qR@vr)xHp| zz}C&>@C)2P87)2XA%+OA)A(jCKE66juQWe*p`X~6s+OI!xw&%rTZAt(OmU} z1Ci#FHId~Bgpu{PwWJJ*cr3P`Vci@I$}Tg^QiDPr$W7`c3gfU!I{119oYSAx^Y?YwqkjfP>4iBqdE7c`{1oOR4xFOtZ$Hjhw;;p# zvDwV-_8t>DPmMO+kP#CTR-Bojd2h>C4vS) z)$6GAIY)5>EW89Qs@j1`%u91$q?rnQV=Qtg#ly%OT%ENm+63>tuQiSO zu$z@2tIWB?o_G=>Y&E1ihd8&59?{?gvZ_am^7HymC@loLkzFMv)#we^zcYc05N*|w z;>}k{@mZ-oE`uR60cCiXI^S?6OR92#7^XYF7IlTLOj#9xzm!?KmZ#}K87tsDx>$tH z%#VOkP8E90<|@jW3tza!|}B(+}@moVqE%OWSp2KZR@zeJYRYJdZSnpw7lAi zQ~WV}AoGKH4&~S+fc`RWVo2C$BmBUCl%}FL6j+SCskt`70Yh{SA|Md72|1TLif+tU zvqWwIpAPFR`gZnD6xQ%&>v^2l-Rzb|wd6DLYhoR?ziAn$Fi=pj5gOgeYcCt{(P-~g z1;wQ#hB=btQ_j;oK2VZ9GXJKT*5h3MV%_mOK|*`^vdby3$Xs`=IriC&;^Bgb&R5Pn6P6WBXqd z8`isc55IsL)*pBe1>+jl12eCwT(=3w<2`BQjUo%9Y+7U%Z5G3h??^!%kL8BKZ=%a>C-9iz8l=+g7G)+U?m9dk1YMuNF06u*U!^Nj{Y8YK>WT9ntX&`o zXE<+EXLz!FQ|CVg7kWofj~E&ocY7zu8R%2VN_!?0S7qd$_$VJxB=Z)h=&N^0D`w@S ztHy%{O)pGZ>+NM9AksnI{p#)k<={1P&|)refdOnP6lP?u1)+ukGNqpi%d4gzB1L1l zdWg^NM@TYmUSL%1T7{0H%#4=Cr(944Sm8SIgF0u9*K-oAwu~t!u%+RjI zAAJLg3ohn$a5|7@D(BDM#HHwL%cjqDxg{tq2W<8`(=jXyXYGQB^1abD=96tZ+DWR; zkoB}caY}e41J_};pGa1ziF4oEFei9?ftV)Fy&D=YI;6J!aCQXKN%lRU`_kF>*SL?M zLow-miu+_f8;zQRq(JnpD{a*Vo87JpADF&0QE+}JxiP!K7GWwEc4?X@TT=V-O?&*_ zG^206ZIfp0gs&Z_(D z(7)!^SrC4ZRFfxTtJ5yc5g5r`wgzI=FU?D~q`WoJ7}4Yd^*u0IwG_TF@t89nUnO^v zZ+NUQe43~>u06y)zN73IoP%+Pe(0+<&I6@i_Y{VDc*TEiUw1rQ1vcRw(krdM3+TMw zS%tU_I0P`(F!PAe7rvFPQ;X14%OsOb?0ZF{6XAnP)460o=|{r@`}DxQFl)cuyL8}o zN8H+nKQHG5nr*w{ayJ(+PayhCf%(mA;>S}%-MNd2V`$Y+R_CvGl=a_C`P^%bY+`3^ zx3=RK$=z0i-S`rZ21WH8$Xyt{<0xc1t{jinz5%ygjup|z#zYx8%XW5fU7*qTEvX0{ zaBBr}5sT@TP56808@5uyP6uO7^UVC2Js!;T2EY*GAS1i28&wozCG0ayi?d{mt%`lM z?$GK@`vbo27@=`)p3UBgX1Ky@zWi`ZY^_8+-w-7-=(BlgQ_c)8|_Ip7@#@Ncg?MS;x`TW;xst(mF4+2xBenH|AF5Bxx!%cq27u2kyp6LpnNV%LSa?d@}ei}55{Me$mZ`J-?md|)?AB9+OK zl~G7^Q^sA5&#=&anH;^m&4CUad-Ao|9CH^1x*onZogxhcHd>Gqbh)-Z(j3s*}N{DKXuKgs8gu%rnKatp; z$YD9tZI2XWx3;+xKPstcrl%@Nu&)$1MX;}OS?!>W9$m(rn2gYE1Ehx(P9F(6K{=E7 z>=l=6%wv}8Ibd%oqurghag<%l>@={qB-16jcbfeLTg|AYKOggDW#@RwHrtaB^W{AlxNy~dD_VuJwqA=CKfM@IKTEg?1K8^6yBV_InB-$UUn2IJ89>7lE#xi|!vsGLfYti*_Yt z3rzC#%O6Hh3ch3uCSDosyf!>~8{g*!mkw5%wM=YWx)f4L(PPu@us8Nu`vd(7NtOxs;*Usd}q*fr&663uGab4qfqQWy#@Yxr^}FO_oYiE5rx z7_vKW|4h%9^#Mim$u33gO3r>U*y58|BFsNLm1Kc^%ga>tvoqFskK4A}rQ;&v!tT4z zfPMoKj14Z+&`#^F);AMSR?t|>2dlX<89e2JhVwV)GieyPR&tvIE#TDyA%QzifjjxL z3;GfxsI^NkqU%e@iwzRwx8zlO>bB%9GbEm~R42s~zC>La+|#d}NQGl(S%zqb`OlJ8 z#mT*l9JVrS_)iOHzRF{ti(?FtvyL#&AwNsHjQbMJ2MwYGeq%tP zFz|}Nh_2wCB+DTd)SZO~J;=KTkZ-NELx1Oui)ngH*_o*w2M>kdMOj0p=pAZxP8;4e zFlx``gsMpk+M~Mcn^o9>)=?8m8Q03*o10dPTYU;tmaYJ_8;)1ZxQO;e-Xd0N*-)XN zs2rodNgum6FnfAUMLef$cPR#@A@-EkcF86q-^{kn;B?*Y zW_%t7m>>_KY?+r%*tdApy3DtE^fY0?{uZ{gVt-#Zg+i@WS4^;F8b(H_2jg4bW*+`| z2cUhC(Zv5bR5&Z2=w83G@blNtEWt#2*O6cAc3Jm6=*i@6qlWeDy+ zL`aoDd~lpM1nO@KErs3?i==2x6VGhcYZuOLf+FEzGXNI|FI zsi;%|C6NAc?h>3=1ymvaE&A)|*&ip*p0|Gec@+lMfL~VwnI_ zS_okES|AbeZ}{KeO_%`y+JC?m!Ev?E!F&dR$7+H2km7tV>R_Zg;2$}~RQD{^=Kn+b zwhoB>f{pksoe=y(I$j4Pd6AwzOSyZ6o_E?gTDUmbS}_0H?cdbTTS8whv_DG#;5Fb_ z^gCFz9!UD)?3#A%F$Vzv5H1M-kpB((-8TYoU_Fq{@OO`X%m1?U`ft#0OY!>u;Wu@0 zurxKZ{U1Nxb2RNxJ&$*%1^__%xAt#}PvF-LK$aIj{+j~hZ_sZFDsWx{5S#wry&L-| zSYAc}0Q5@$0F-|#{I;t1TY*FG-;N{w4f<_Ws`@{UJJ`N;{U5JQZOdUohyef@90&l> z->SduyMmb;fiFuQIIs(d55W$8*ZAl7Wi~#y&A_dVz?a1m%+w6T=N~@)50w`W*Z(jb z1wi}C-~j+S&pjdh2h$Z;qzU*k<^N#v1V=Xg$yC|&%v1~>Zu*ny?zxTYOaTE}auoX_L$!Nq7}^>1=1G>DGKjOUTJQ3U`<{?WlYaD2;ug$g19{I%szvWMpiL^Bw- z^}orA`v04Z`~M^BJ)7_Q|H9XO(!g)qfG;;kaO|@##2~n$?axH{y`*AmP(lKf)ph^2k?)3@MOocW69v}&+V6mno;Zi2nGrOaD3MIr;_k3_^<JUg#ZA+!2z<=D-)5a;a+Z1Fcb}Ki2^JjVUH#3 z&}itqfyXpOvX2q+s-j)rZ4EHpJX=5XIk2_`xvE%g9jS8G%-GT4yQydpzvnhqn+6Jx zm@?ljqYGSWAc#(#C%3p^h(`0T3PMLik4dOzGvpvKV#A<#Nv9!u37ENE%}qMH;YbBM z7-J84_}tUP`>`jq4MTQ(MfMqtads-I2y99 zhzSwS3xcH~FnEWYiZZ;!!8ep@#b9>L^mI+c*sps`=~R+LHb0zX;{*HT5_j<1abdT~ zaktKNr`_=!qpmIzAnuS46p_q38R>)`87SdWvDhYKq;2$H5~O5UgQ2`MVQC24peo)I zNoNvNN_n}o#M1;a&VtOgi^!g8N*+8&zVdOreDAd%42`mhT09N;qB+{%>1_s!HNS?f zxxr)+tyw1EC?sjU54T*&8dvW$*O=E@CNP|}mtJFXhQ#A5S5+Z6$k1@-ZaGGZRZ!b< z`1QkmWwY4Paq8s#T&)3n3{qti0q7S$9(y#n-SM=+nrfJ!#pHw)CdxEyg7qgf^&4uC zPzfJ?h!X?DxUNOEodt{(kpzNfrS2ADTbkxx*V>08+xyVy$xN!gy0Tk~Uq{*&@E^XHCU~PeksE-*&CFyOJRLA zqTTzR?7Y9D+H1qvS7MM|ld@t|yALtEaPQFkCof&I?&=N|e&GQGGt4(_$R7J)Gf~~{ z=;BNycnbzllaePaX0_JTw3M&c7A3mu>^4lp7q!f_MYn=8od$KAI-SkJ6S<{P<|qqc zuJm3AcilXuW?OaI@3~ca2l${fk4T|K`eg3H<71clBj%^u-O1LBYuRo?i!%@?f~b7c z^rz}1tg6Hwbf~q!Rj9>u%Qg<$azAbUB|V#dKFz3-$g)vgn~d7Nxf@KxhwjdgTjE*f z!|t8p!G)`EZ+WVwN1U;Q6r9`Oub?}#L_0;oE*~YYwsbMPBLNmr#i}6p8}OVvR6w}a zZ2I`w3V*O#kQ3Zv;N>~ornVeWqE~MGLYllTk%N1~r&IYB9h7$gxwa%DPoeMpJj#_g z={d_0kNF*yA4xm<{afDQnImmu-`P;YpCcJ3Xy3Z5ObA1TO#(h*zE5v}BP(#sIVJhW zWRcQ6MzWY80RjM{FaUtyzh?zG$UzL3w63iNO7tBm<&oZ-1VD7Sq?n4uEhi;13N?qi z<=dSlmQxJBvjH40I1Swa*c+CoKn><*0SL0fil2R}zkKg=R`!_Zj6eaxK-SPgRQJf6 z4QUC{`3MLk%|vhQo=8+;iFRD9!?ZWsV)8evQFLUchVl$)Dy-$k@jV=sAc8ibz73@C zCR}|NjtRU2^tK)?)VdYH<}wGXVbxEpYPyzkWBXz(_y$*UYo?_Ji>lQv+0#s!1cF1k z%mfXC92pia{GVhB$L-yu1-9rW>I!_{DXOr$aAd||Hyv6|e*clW=Fg=ZTeT*n3WJ{!-+b^JXH0-|CM6psvdh!vi=YkoE@ea=@RA|>~ z@YlhHUNa~E9%laW4lSLSU4q_}c8rylj{iFn>*XUbvIoqG>PpvH81su$-#zlkCL$x+ zhm+M!QLP@LUjQ3YGCM zC`MUd`rIwH)G)97Ejn}rP4x;>g#rE?l}CRBZrs5qCw|-q&`pKI$r)y&OHHtLk%<_V zRvMZ1e)6=41ckF66u^uu;)Xuer+Ub&)54&5-daWDB+YXxjt9)S|%9N7R7b z^C(#}ck-+biEI?i&ywq4%_62We30*6#e%vx3cqT!;T?cb^c|Ebt#QMMYDE0iyL2+W z>2wK}GeNq=;l`hs>m=)FyV|L6adGyxHkRd=Lxh-XU?fU@2=Os7(wrmQHf|526xAog zw)!LwBDgovjx6jLUldoV93A_o!yHFeIBS-F!uBOkmd^GP*9>1UX zCha{vej^5OoGKAbv`7r?)l>n%TkOb(?)Ke_8h+vtBw*`r!-qV#p!#=xJM!LP;S=qK zBi&5+Ri^Qk^i`Jd>$57cb~o=UqYpXtt2beU*MRnp+TCA`B5XQH@Nxu)CO156nN5F3nC0u@= z7HKq&G|qrQy#toctvlQiM2pcn@Ii0YViyJ@_jyw(Hbkfh5x@L~bloYehf0f)xbi^8+*NjRry?F(S;U-uHi;p-RO=PpH_3l**Ye zPP3yzA8D}*J3j`Yt^EL}|14BaM%qjbWKqnA_Z3@Vb>Q{s?i*wlAS^Wg313%6wlvf8 zE_oS$*hoN;4!MysM0CuB|6`&I>QbHj+n679LhoD3_yU}>6OhsO=#qkK6gr2Jn7z%@ zRZu=+aGKd5QxQwfB1_xq3X*PquyuL&9g-ub3KJ`v{-R zpIvQIR4y0KxTFUAw;Ee)l5TQFlnp$=@~u`tKo^)+HUW;e_2w?efehaq;KVSWm8 zzRgf9_V#gHP?k!cA}%&Kl+C?ub2%KNIe0UkxbL!tEFZNkkvR2^oj}7)yAZMl&1x?I ztDC_qC5t3~tE>_F^Y7Hy%V%2!+C{{Qv&Ew!J1?QY^^Imo=sWVy*a)FLj?eKKO#`k5 z!tV|69C>Y*-YrI|-q$m*32-+GnZklGBmrGR1dtfvAeDCzM?)mEpZIy+AbuicB?nV; zA1butcaxma*di3Ol_tkt5ih!a26`dJK;!?Wz~9xLah_y1v-ozL?`#!ygkm<>V54%- zpz}#rc6?G5ex4-#9`2yT_rOjhF3@j+<|h*rq6gcop=gTa`~m`fUD>)Y^O+Ua3Dha`6MDCAR+6oMUdL=C zlIrk9_*(Yp(go(=97R8wd*k!U{HCJUr!i@#*l+P#6`-91ptwDFb5ER zfn76h@Ea%kPAuCb5Pris<8#0H7z5$=lE&q=FF@g$Xz_UIzb?-$23<||4)R(186!CT z`orVW#!NO=KFU4zo3tqa1G@7hkJmVWp$xQ)zgzD~v2B=B#sH?45AcZP6wh0lUj?EL zPidhHmHXxB9H|-}Gabtou4@U?nCiHA7zZo|g<=(@^Jwe+u4(WtV92fsCXGWGL$oBb zuvR{d9bFhTLB${7cvog`PS)A*2Eh%y&p1w*W%%7FUqtLiIv+8enDX+GJzFt9!Gd&(uMlSZtEvSFHe1I>i4Q_K!xvUe#bFjy*o2A<0ir*JnrAtnXW@4U>c z_-HA}hyNtJtC7UEHdU-A4fApfts$M=QVIcL8IvSM2y2!)EU~}c5WOQJ$5KVQM458& zM9Sq*G5NB9Gpz2;@a7=7cDAyVo*1N2!upj>B1K6}rGz!HT5Kt72GJ)^5l_HOG%P{_ z;M+%m>1-NL$cy_CqYome@7qf(Oi{En^3-X4xeJ}eDl?=#$>o&!OjCe)XKEnps>3kD zy=v0Uq;I(+jAC@X9G^Pq)Mkr^KXs64Fy=?zabGU2uydJ>J&S687CIZ?VzlKcM!UGg zw9GPyPV(49T;&W<)f%HTqWrj)wnTsD!Y-;KA#Bij)uz;dd~CIYAF-3NmCTuGSfZJb zQnGWF6To{?+pp&*HHnI1P&@^KTT(6=ZPZPdN+6=85M``6JHWK8UL0O;zU7VJvcb|F z+;80v7vdlaAjV(}+m*;Jp2tqc!rWXUN*n3FaP0pfIF`X%3{9xk6a!BWW2*PI?TXF* z$$5J^0?k^IrcEV2#s#`*+9&YoDn4J|{tZbqC{Le0c|qpTdX4(~3b9tS#?B3?4OI-XJh<^|3 z9G_4tA1j&3i?^nnJ;IGJWw7&lgI zv$tX%?y!9$RqB^&#n1fV-J*}OiNF^>agH5q5W{rN)FS(9K=T$Ps;{uW#C+1nbpF0Y zBLJ;=q}n8+ouql}WD})`(38Hv1EXEP)ui}Op3aJ9Ok$Q?+m%)KePgD+UP z8Y;Yla-@EDT64}zta7!bvO}~C3QRsnyYnA1!7)nNf|P$tHt;|g-6DYoo0=C_SI1R< zp>jF2t)C@bb4UmBG#a=~pv~B(1yw4$yqV#wHu@$pMi>xn2E)L;TLW9C9c>K5fMroT zYr%Jv$#*oNQz6J6Q&ehE<7$EOg(+eUT)U(+bMEn(J+X#**`}GW0F4qwVd>-Mbh32m zowh852>hF1Nx$e5Z8zm(M0>3T@27l?r3mKyBsw4tnY=$JZ^Lk4z%@EeDL{eqBNy8Z z9l_&+6U^*_^d4ejAWVe0@P`ptmD1iK-mHK~Bo%ea{oyG*EQZqM!9Fl_nfAUY>RSN` zdX5Hq&6)CDQp@t6Xe0%}(}^(T7ogaW?fxp?JKbb55=vai=OKC+)dnPU41@h9KyOOQ zwH4&Ctk~xSMPt=mYD;$nWwnz6d@2XTbYpCIlD^v^4p-Xj^JHHA*FVC{m)9hmS6Wo2 zFRw{7UtW`lzy6#R0y9+u;gTFMkU-dX+e*+_w{)t}SFoVBD$|?^X_%Y~#=R+h?7a)e zj7!=1XJ~%FoIpEt^{p_}jSiNLkVvbh6rTdJ{ej8b$&vIEzrFDzzvth-2?BKlBPrrt z5V5Hlkw^(jEM|L=rPh6v-`AXwKs^DAR@KcCGP_(dHQ8_jq@m`y0 zhM`rY#sgDNLTQ_71s6dkxz`AfP;_B=XJ3cAqTYxTtXZ2uc#-3%<=A{M8YfjHA5#$8 znRVmjwb#tH>z9^=OKUJg3LGePUBFbUwX={3$Tg7NT<*s+D`wSW{Pn?dBN9u?PR{KB zixW>WwP^b`kD*yBZ27F&9+S9jK4+{^p8h&?Q+rOD!(H{H^k2hp}j1N1;NpXan;$*07I_60V4j`z`7YX`a_S zd;su2|Ec~2;oL_e^gr+E29W>&Q2+p7=H$R)Y2pL6tp@UgiZsX6)Uu>B}85;iH;ELraDo;Bl zjZTZ^N2NE$+$N_^Z!7FoXQNVPvo4eu3gAw!i=V=SFQ1avlj@a$w@!pQ7IG2F=AMNd zuw1^iq^5@MFAbzA*1OXY@>!~ZO0KQx9z0T@MB~^6MX``8XEZ5%JBVN|LK31@Uf?O3 z+RtmrNkiiEbbt(7pyDuCq^v1t$;d)6n6JiH5poDCCX5vt+22>jW=3qtgr7UWw1)dZ zg=WJ`vvKfl5UF?BiaPdbX&;_~t5B&Qc`!Nl;Osqr?Hu3xeN%ZzqT8R^iJdD=Av#dNL?50-J8N&Y|ENL1 zV`|@W6{5x@m<1-*X3gzQvf%Di;ZnUN_(;FF9z-06Z!>CvVNuUe{X>w$3t8QE)K9Hy z7CY$IZ#p9P2JWPVo*(w~wwD=4KL;6~4dbi3Cj~34O9xPpk>PB=#c3jcQLf&EhT=Su z$PT>T*DdkUg}rIB?Pip z=>?MOTk(=6O@I|9z*N9SKH0)A@KzeQ#~1E)7d}F>){96|k~kjkPeyCZaV`UKD~eGI zH0{pb$;D+R$6E!)zz@BFcA}8v%rtYO_^9A4M43U0qwu^>L z#&WW7DM@+nlPQIgPPt{u_-!VCWU=2h3%x9Qwe;vA*!hu*+e!@|k6s5?p_9!#ybE z3z#&7!5Ml79n%mY*c3iYbRBq&KEKjb+|l4jrk8*ao!nI;sw2r43_^G&tS?nv) zH+4i4W#wpp>j~|wW;8%tkASjp$f3t{qvfgaD#f)5rx>pw1FhwSr*aEY+=SeUAF?_* zVxBCP{*Q-E_QjvEfyzPloaFeC-&2c@bJ?5jw z_o#2INBZ`J9>!icoBYQTVZX}LHo5o9n-x+l0Wh0nzIyP+R1m9D0RL}{baHhtzg-0~ zib!D1nc_!@xV1$_*v3P6&84dufW90S`>gxeO+br;UmBx@`CD)uyY$O%u~$GNBw>$e zT`KByEcpwf`d3slDISx?um!VAr&fcK)z`W*Bktz%enT=Qej`CVD6|yrWC0tHoPG1o zW7BFW&d40MYm}I5=bZ`@MK8Cv%JdjJ>grwo%Eb^47lIhD*+e|nDX46WrRayeLdx$EaP1dL&V24-+9XS(?`fV zTg)Si;8AZcQ<=5^A#|bN{}a}H#LnCO>YE4i-UR^`u#d|(I@j&K2N_ZGzQ0weiZ%QfQo|k zE{bd!azwAOP3w}-L>;f!dklTje!$s4)N!e=My6pP-?l9dJQshGW#T znxHW-&SNK}uGG8OL4`f6Hx&;zTN?2YGqVhL!M1px98HcO$JvSd0j|1U-AD%wMSLh5 z4{LiKDqQ(|GIo4G7Kwi8wtdyb*CH$j%VefZqneu)^SVl>fQpZYO&ZN@$ogxv#~NKs zd2!*l_0Nu~ppOVJbr!tMGOCAM2=j5e3b^s*zD=E$ zs~A4-;N(0P55Cv=ug^M28*#7IDa?X}Y6a#h5nIj#r$jY+rxP{L z9C3M6%z2-?2%5TLA4}%>GU~P?x~X zY=7&a4O*UN4aTt{l0Y(h*=4^2uTMo2c+$gr z^b17u+hQfY#o^V$EJRwlLvvDx_>AOJ_n7-xdN+(bZpz4J#!6T}-b)_0kLg6TY~o4l zv}XaVtWh3RgI%k~8DN}}E%oKy>j^P(_HZeXWSE~qm|uv>Q>BtFcvQRs;Uwa&*Shw1 z57LXy`x0cviv_GKC$moWvN%?%pFt0h8&H#tz1?U)U+4L^_#yo4OvCuotcANnNXx|B z3F3xBE<`lA8GRsVnx9h~Nb*aDTw2(kMNGl0&Ab%;((2S5wp`7QhG!2oZ(#?C7U8Ej z3g^D?v+)k)D)?M{%<~_0+1c@FqBxAspbcM9hz9&%zA@UAj|_YD%6TPMBT*Hb}!^k1$NK5k07 z$fdE)SZ<+a&9j+qVJdPQX%O%YjbWAWsN+gml`(6^q3GsoCiS9LOxI)gGufmRx>XwI z5l{Ly8;pT2D!plHgy@rqMsH299%G|avbbtVI`{|WFBukKUKWF7)nJICkfAN#&U z%7>vfF@@wldkJ^l-@C<`82QknSHoRP#fK7IOSw(OmVz<;Pg<{Y8#Q0^pZv6iz`UCsNp)5w!Vitwr#h; zns~PTq{obW7LtAAane)aip#EjZ)y?*VZgo>0 z*{2Iyv~{K}hlP!-%=ADZembQ^Msnwd;9Z(nhb^jy{F8k`W4SClmqRD#u`W1O zp^mpTq>H+aN8$?m-4k>EzAkE=XcBn_WmHjq660BtkCV7Rp28&{EPGzA!GVE+oZ$r7|*;!b5)1&HZZlmV? z_f4V8MHwm$YAPL4WZ#+{E0(X>;n-adXqLa6mf4l3o`Amla$H#A3X6*bj2KLI?0tXc zyIy@i<-IxbEO^I@#-tJ*U7EbUDLO+c2`X^QEVNF|m)y}HR`qTi#F1M&*yL*0jON~N zvRlooGs4vxyHt#0NoGT0X$-%Sc~oko2GioQ_|I3}LTn%tAbRiB>{ck0smas@OGF3Mc!(pAmf z_{2F)-$?DR6`oJfujijt65DQHds#DeX+>Y#JOso!&D{X;*Q?Hi)4v#P3lu)(%D2pk zbKEfR$6Nco-TuPWDeXftdt(@fY72TWi4(~`^T!9NZ-20PaETMiJ0pubS-eTY2gz?%{!zX&@ZlaZc9g;Qb0I& z!)9_996_?j^7(-Z)u7Ml>Qw8deD*G*;aBoPcJH(M%&bdFSC9IVL%&#%vlWOl^^^vq zZ$!eA+!880?Q%h;Kawj9c-Deu^?7*QE{?ZYVRBlpi6Buzk2Z(3dsrPannxnI)|z%0 zDv3-8(+N@XqrhYBRd*m?yD%oal&A4oJ_^XlN?glMiKV!SUBNn9YAfn3Wi9g?MSSSu zqQs%~Rr@J)1P-j`3cG#h1WZuEGC|t{zYO%Z<}dYmWdow`gLY4>_YZ%ad0uffU9l=8 zI+k=b7L+(?9JYp zFrSQv&T7%RJ+WpG@A8wvvweuqF#HTpXPe-Gh~S}I^LL|%d2ubHdbTGh<9Rk`yq!Ir zr?#ZALvontDSnU}G`GAE|5e_qu+)GFdBT5<>A2EAy{D|K=l8UW+%IcMY`bv7^obNa zS_Nb`9xgYx1~)bZC%fZcHv8SypR&A_jNXeYi5vB`g)eXiO}bfrhc{qSVB%HE>S<`- zu45~e*9DQ{9U)L6afSqeBy!o319fcAB;3B)Vxz#C=Jhjc=aFf4(i47zv~?lpG?z$< zy0U(gHPC|ALmUH%u>t`@vBpG>oGCu3o$h$HB;gH<(w1e{db=V&D2_lY1c z5TQ|q@_|x>l~E`r0!-u!<`rt2xHe0C#z-{X4D8fR;al_|wH=x_nxwRWRwQuJ+u@B? z-n8hl00Zmh8SH}((57GH2@h*D*gslTP(n9TB)~b~>=fb1fm8&6GsDK#F&&*>b#~gV zsjw$H!xKJ_lQ-}>)^<|7k*$axl+S>NS5kiWTosDu^oG2Z`M(uTZ4K<_yP3|?7j+DZCMZJ1WC{p3@&NRqe5Y=XJ zO4;~$twH^SKnOCO0ua`r2zH@oo2oV2DKu~K%$!C7Y7KEBXQtRmQ&2=CGOj(Co zA0>o1wJ1}Z%?yBwDX*q9L#W2c;~?P1(REibx(*Wa$gj(C^yI`NU}dCAwv5j;>^{8Y zx@%Je<$>LN5_1-8Vy_M_nc5UeR`$8!KKZWT@3_ULDOOL{Pd^qb{LXZH;s(KUO!|2ot zrU`^18S-@u%u*dLet|0>4*y|PY5#%Zi4E?|+~qo2!p!sg43`?&@pC+GPgp|b7u71$?_C+C zceLZ*oke1PkUdMoG)mZVq3e{nN85f9Ar}FK=5BBNlBh5%^mcoSOPgeP&}+};e^%t5 zLfpV9yx~B25(4jELhuQ4;a7j?w%2$HnVdQ&aeqomga4R^&X;nh+#t-xNr+_fb??VU z&YlPb`gu`!GwN5Mqw*FfmvK=$e^)n4FW#OfiWh7)4yVH9z(jMel~0C`glQjnk5M70 zy9$IQ|6N-hCU_)BLWoe#KUV~5g)be>Q_q`SV+;PK;sH1Y&UUrlN6&s9To1vhQS$$=E{^~n+5bL9Hbf|}HdNR5U8r?nR z(QnZ$W%D<12FM1-E45X(Jz}AvCA@Pz%WW5cJRTCwtFRDvlXUfncY3g7c8{vrMi>K_ z^A1E%NsST+HY#o97b3Ur#e>99(_hckp?=I%HI3)tH^^|R5GkR^=>qoVy2|-MwO>m; zhBY0&9QdR>7hQCja6G`^EWsSeQHz<77;=m6@!T@G#5@N*F6{dS=V)NfVrgOyJAal2 zUX@^WyBtQ#xg5&o-Ti(LDG+N*d?VPNK?~%qNzZ{M$$x^5JmE01SWSL*d!JXja zN)-ocl`}g9dqji9X1}mfOOelKq5$FLhrytu}AL5M_-`h*@Q}jrG_MX=Uu`NcI<6% z+>S0p!($ykZ6;qI{8+zG7{Vy9h4Go1X4-Pl-e; zar?tolHW1=qYig|xH55tAet%eQ|A?XKPYo7B%9G}oh;bcXpt#Z_N~!7+09MbrgvGK zlYy(CKVx$&olU9;m)TBF**A0)$E!oydMg-q=L7mBFnJF2PV$zE9%>6e*8n*-VB-*? zZY=O10=Kf^bXtwtM?@i)WadNA70tO7lB#X78sB4bPSfdy<@66H1d0foSvdESX$`ox zh%&;I=Gou{k67xG@RGoWZt@SR8uz^_{ANPYWfVV{y^PTn1f=FrRZR4Xk8S&Ge*qgx zuV^(sOg}7x*fN%4t|}dINyOvn~)~tmy%H{EwjD?Yg%#vwjeaVv@jsy#N zj+Ca@RnC}$eJf@BIoS+}sp+Y_Vd96U-~jk#%kespt}^x`0zH*l5l87MlWxImwZ`29 z{4CV4Q_)SfD;t6?g2S_Lk;8Jxj(Jd#j_V{2pR_f)o3elyhOJI=Zz^{#$5-e_EWrfs zV2)hWt=7VGLHbSnjKN0EB%EpeDh`X8N+v>F4c8R;tM-s3icOp}p-budE7>~hg{h_A z7aorwt1kgPRYnbVl#8Wf`_&$gJU&Ym&&*tf;`&ZwK42z0*nVAQJz=X8G+k}IVxqh@ z-9@y|)l9r%!gTtoj2}&FG35%i52hgyQcZJ^T1ePE(YVG3geZSSJa)={y+kG4v~weV z#MnLM=bGvIY3dWQ%$B3_E~4_ItMfx&(=#<8sC^aeKg~sgb5UtPN)SI&_gy#7KYfyz zth%97!b(I8ZhMC_ewL4$d@)%1r+z!R@2`Q8-@@|Di{CkGE0E^VlXNvx$-o>zhPJaa zsSsn3vU#6_e>a_dVW;_S{gmPWtLR6Ab;g`^=a|u_HOt-^J-ID3Kdz+)dr~xZvu1wE z1;X66vq3ddTD*vJLtK|2+0Y}bGWk>qW77d6ZQ2@+RfwIPTQ3vz_*uCCu~Dk%Msz#W zdX3mw0M<)t2a^T!&gbr%=gN?wUAmXeX#WHT=TsdjQ?=#jy|V74PK!u?v-sp=!Wl}& zu;(l$aURDlU}E=+jqv(5@1$--SYNF|1qcuin(1;N6uvmgm2k9oUkI@&r{jFC@$NFi z^IWF?p38H=IyGStz{_%>cS(}zja2UPi!gYN~OV{2Hip7yJu5p#E-L3u4LSqRsuA)Qy^sb z{q4#Ej9tWN?C8hc%|*5X4dW)v2L0kYPKnS{&7)uk?A!(@J}49&mmIh{87LjbU`D=o zP&g9WHqpxPWR``Jte+UZ#p%rq7htNCsmiB}LS>XCPwN*k9(!9YpBmKZ;6Dj^teoz- zYByPh|fo? zqb~}|M1(k*-qzz=>jqgOPd9Wh;ZMd$O?|Mm5$43nLRY}GCV$I;#Hj^PcmO%f$PdR9 zQ;OiP@9*#O=e9yvJ3?k;2JJ31OBVciNdmCo&Y)@n&H~K0XbsY~Ly`pug=OS!Ntu-{ z2+W^QQ9kqZ&C;QdjyO@13Q1tunDWC+KxHg2zm%_h!cwADV-Xz=Vd{tkDqf`{k_`9U z&-e)^(d=4OjafXY8}7dIP6r*nPyg^j7#=$svk=Y!x3aTbZ0YZooUSy`#j*-^m(VvI4|8>;w>DTFlPOEq;qoe8QZ6U`itQy)J`D|8;~Fk7Exf={S}y+orwMYWb{RFu(Mr*FWpK*3Ok-unnv= zgsy?59kuS7r5(GjkR`|tQWrexN)xZuI+n0isU|G{Ud?91=SY8Nup1iJ*}OKQ^a@k$ zNK(osBwL+0A5!$IZ=@i0=U9T4BVmv#cVlZV#fiWQ>KR|-ch5N0^)9!gG)IST%meF(N8TnKlUO-@#jMnR+xH#GYgL^T-6AY? z%(&U#5sHFF8oaVR>SYCP1#pJ6Yh#~Zj+cwg+%CjVp@I70TE;LWKNfG1GxAo8+AG>K zdlUA%azQxvFxU8E^9FB0)0}4IhE(#FtSy+NfY)`9@;R>Qf}tVCsDuG4?22@@Lw9B$ z--6vBM*Ex}WI<<8%~(Q^Ox=cdHa8KO?Wn@PuW3QlVdRaoR(v@Z(2wFtd;c?J)POTT zb_POF$dh3`&o{;DXYM)8UF13WT1mS+iQ4yEaX7VKEVQ{w8J(7xXEGmu?Y0V{`m{w~ ziPq6<_|k9KjHlttXkGZ>?MVM5_r0u~r)5(&Pi{~-_eqZ0aXXP|(6XGVUU1A|?m!z_1_-2o796rFC?XwwCSs8;2h#)MJ%uyl zE7LiMIc-m0r00Udq0)u(n|=O-;^cqMP3o2T(I9{?r?d6u0`DRJG?JEu&R_3S!c?#K zYhjjG0G)^{;VU6WkLi^#sb~7yNaBcMdnH&!?Nh!Y)T-!T34v7|B(H?GlZ>wfr%AKF z2w#usUI`Gt0`dQazyoK)L16spG}psH3={lmfdeQZC|(3(waNHAr{E~{WKa63lQ*+H{H#BnGi>`uYi|l2*4Bl5NNOL zH~as7ux%HD=9Tng7ov;!6zCYxz{k0~nBd0>Aj@lmr4q>d+OVwzN+AEEKok6>5~xi2 zhopP_-_>a^iD3V_3WKVkUMo1k%2hzBSLi>>aQ+4Y0EIy`aDNwjz82-6lm79{Khqrl z8~z645BxRh5tHN(^na7l{stEY&4G=pUo`y#`e!=A-;h7zi3$Jk`;(kN^oo2vTYMRl z#h3iHxBmgYAe%{Fkzj`!An_~opJylk!4?KdQ@+~t=OhLFRmp%G*OQ(X1Th2v!1W*G z3s*WYL@iL_mER4u1{M8FZs*6Byb0!ifP@78;ul>D#ChchY`FcH`vN(6`SAP$S`Y57 z1xmd}4$BuH0YRzoOOBqSxvP_nIg7H~e}dpobcoae2_UAydUe3RA{z9k4++k!1G2v| znEuoE1RvD_{|bGSdLRL0iC)s09tGH_6^Qf-GI$|EAc4K>fqzZjPk;Jv!C&fuoPTLi z`O;?uqci|tR}?T)!wVCgs-zE9r2k>!(+(sM!JGV#stz{J@3}euS7WJ^jyY^v5&*zi z4*($jhut!hNdc4O|KT{%^dhzjOxg(iYjF{NX+SO?C%ySa@*mJ2v4{q65Py3JoZAk> zr27*v6;yCmaRdN>jMV=Miv2J6L@SW$bv*v4@-lL-*GsA9zpgicV^J+IYZDOb)f0bI z67Z*l0La@ox_hyhxH@=n{T~Yn+Uj$N=>dQsa{z$oZ$>Zo!k{v6P80BTDFDA32MOMP zVaW7H+lz~%ou#H{q+;<&*x^}xSYwm+srSc4s#|JDD{{NgCEHw1Xn8-naV z9(tAJ48DE&_Epkk=HpEREdY?L|G(;GW&XD$p8t^)0}g2Um!wZEFOu5&A;4$-|1IhG zh0K?<`!^FWUhe_4z6ygnz@n|dzjlO|m5TrZ1deX~SG<+A zzVs`=1FgW<4eZYnM*zVOMr#AU?mytySz<^92~bkgX8Hd}1sk-z=o?N23GSeRBnFdy z0U}ZT@%bO=e-An0zg77&KJua2OGWOcjA7du8y~#P~BkN3r(PxJInug%J=dwC`mgI^;HeF zKY>66R%rj1|6T*b0-V|oBqsY~C*xa#G?9`Q19c$)FTVfxRTz}~00}1R02026eVqo4 z+xY@+FN>!O%F9ysZ{(lgMFo>|{A&P|I$kvHDgl#r0Exg+9sg3}RV)B})&ays{^u(7 iCj_ZkDuDkrZFpaN1^qhDgaN{Ucr*Y&@8x>{;Qs;R>@y4i diff --git a/binaries/jSerialComm-1.3.2.jar b/binaries/jSerialComm-1.3.3.jar similarity index 93% rename from binaries/jSerialComm-1.3.2.jar rename to binaries/jSerialComm-1.3.3.jar index b0d90fdaeedda99ff0c02b6bd805b0b17a454c84..62cf2e7972f9f26a8d34888c61494c199ef5d2da 100644 GIT binary patch delta 12228 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 EAL%qj;{X5v delta 12229 zcmZvCWk6iZ((SSL#M@eI*RMs!S5jIHH5 z%VAA9l>M-gKxU113bKPqvy$`}_1@B#fEEi(u_yIEl z>@hXhL(o@SSyzKUSl1``)~5C8IeI6ET@&=dMV8SRRUL&JnZMp$4u z*@>!X%WG|>zt9qfkHxFBX!cV}&?$*Im5$BAj>4t!ViA2Be4G(eyc;Snhr#w;g?cW$ zuS@kE%E#j96}q-H(sx~wTBQx=TDLMe-?RGfgB=6IMcngBaPUdCo6J&-tUqYoGJlOJ zY*H`fCQPO99^e%Y&n;=|YV}Yy7;uI+Z!!$ca~iZ7nhwI?qAufS4#YUJsT;lUp4f0} z{xWlF17S=+04J^pn&~vQ1p}Zg;k$He&F)tiBs~X|{ED9|cTJ@1W zD*Awm>q)SJM`6Z`kYWMb7vkujiYNWHaaAJ{0UF=i{dGtJD=$m9&-qVP0f&Yz`C-0m3 zM2z|C(ervy0040S0ATLy$ZBQk6DJQN2-Y6b(9pqqNcV;2eHQ_zih+m+vi)ENI2w>d z2=ArP&!jLhU>U$>4Sh$03v*LjmR{bpquA%Urq~A?;b|@_R^lOG=-KpJ(fS(ReagR} zK5xa#nQCH2nFxn}TX6gB$CV4AtF;4X5@?&R?-`7kB)G4=`S-<9uagD3hV+b#)WPhT zX5+yWC~sDKhg#B3#7vSPCoPeOONHU=BCl3Av5kz*R=FcN^GcEq$-^8ZI!f$z!tE0#85lhAt4P-jy5N%>%_Jv)A(|IPLd#vWKtY~Opy9)zo z^9`=`gni~JVdASQJ9>X9QDJayg@IWqR8#7ezVE(g$wLvQQJvw<8{5hHl97bM@8t*` zGDFR2I7?Mo!kUtXW;k6zpeF1Xl1~&VJg~E)io=3jn~FHK3$j7@L5*R{N4vWFvKOUu z-kK)zer^Ymk~>$W8?`q+a`))9K-Cog>m4&iXyU7%6}~b|h_+Xe#0laj#q8jCBDU;M ze%V3ZTxMa*&39UGc%}oH(u)OW$tagvzoNb48b(vqF3?aaZQq!bDE6A@``86cqC<5C-ODxM8#)=<8oZhIKc7uKz<&!vpzt8B2J!*O4 zX1@M#V6Zz)`Sr7x>A@(vqGMF3)TXcp4HXr^?t7FrYO`v^8Y~RgFRAo^iyi#}AAR`C zCMzDSZA*R0AXFOmoHdVJu3T{!s|g0xlLy#r)98?L6QeHZ@?vkvu2gRYaMyyjELjY^ z2q8!b2lZf`Am@!r&kcb{hlj{73>$;@aVk>#!`<;1br~*2U>;=&8o~Ol$!mqElnRQN zDLr6K7)(RJU0%oU83*Ee7gzY>R3X&ZSB;6=NxJ+&HyM3o-x}=0q2sZgEnN!|Ui+lV zpe56-R}U)&bav=of{eE;z$Pw%5?o4tJ`8!RQgNKf&|eqj`04E;Zu=61JxGJUkCBaT z??{Tg>ian`fL{wc;mslL`n#_QrbozUC zd?gtA-J9$eTD`z`=WHKA^Vk^-0kcD0p`#(E{Td|`^Ku1v{*c<6U~n^pESS*+b`uk1 zgcM|k7$Uv`yuh4ZsLyY$bs{&2K?;v=uN2pl<_~kud)r!OH3peL7P3^nWN?=RGC(q@u?`*$bIS_f8 zc;l`K>`R6GE=gMB*(qsIO0WXJt&#g0AevA^Ey@7=zcbM*RKuOQ38v(c!doy$4-)g} ziVm<32lH9TRxkp6IW2eCc5v!}mNCDz26MC55n8tx=EZOp2Ee2tcNpzzn)IyMGvcq# zsV5RVM@`^!Cg%>Vd!;Kb_ERrY(1++qZQH{Pw9pr2UscCdFc>D3zn_Iv6?MtVo{=-d zR!Rq?-PoKZ^`j`R|+ty6Mp{1}cw(`vM(+dFfh+8E?`p_*sndKP*> z*}DNtJs1hv69>&05oBDw-e2lty7q(hRIQY5{?bD_?b@NeVOFJF4DSWWCw%u2+{3a0L=iN3$@r8n~~!pKnkS)h&Rtkv~sXWFV_eZ)uj0O22hX zsD~b{&vekZCNbSbzkK^Xd-`Tv=@rW)_IcApuz7Me+Qg{d)(1x8GLOh84y4!fxPC4&^f`+DvtFdP8fgp}&2u!XKLRnV&NF-u_*bq*y+)nh-fV9d0E~Lf zc(0FALZQ;W9SV#V@vVd)6M!r>@3Z}0A!QxSW|6<=)odwJ8@B|bawcgVC5AJiq%WuJ z(B$JOg9bghYs~!U21EBOXCgY;qXtV2%d7~tP#2D>K`s-uimZJxiX;qXW?|yVbr4ud z@YmXIzgB(B(QLKi@t3(Kkf^~=;>)$@XxJ~q$mgL44CtUct_NC)vZ%o64sveI<4)@5TFw9-GEV}wyhGbxy zP84ZX@UVd{%Jp)n`FYu8G2HuXzJ+@((MOcz=YC%)c2Wm_LNb35%NFXQ)w5vw3K)of z<)9=OXKYh#$=4vKzQ>I;9i^{?7hU38-)6Ol*@xw#@awIe+uGKjnt9|5z$E#++_s~vQ-yV5aFwLJ*z45+-dNa~Z z?~9X}kKHc#kkc>qI(>20MczTbaJ~(AjgTHlJhtwMP(#Cu9euPhozi5l`HUc}4CZ>~q zaM8pAjKV<8EWQTq?}tt4hsy3m@pYDcgi&M&l$V}+M%|*QMhWstQ_c093uu&BnZv@P zb=T{95pS)k*>a5H>Zv4s%!(waJ0+!xMSULFJ1?KKwNtS0^R6Nk&GzS~P>;_`v2bD? zQu;+SaXfbU!Ncv8QjTzL`y3yIr9L=E?Ry%kf`6P9a@4O%ul8N46gDX;sdWMVpY$+#7|qql5qVV=~z?Th;<5Zr=w&H1g15eW*8 zP-U=mh@Vo3U$EMJnTkGSUgLT@7b_{>*d$afn*#CJGu&&n_CY=UtJ(u~_83>xARWa6 z^gq9A`f+s_Z~y^-*~jmjVvoOc*y9Y*als0pzV<0SU0n$Bba>{zhxqs;MOk<_$Une4 zjsS#(5O&RFm|y+je& z9OFb$oHOFq!STvt4q|KIqx6^6q-nL|Zg4U>x~&w0?&sN~Ir)_3 zKj^x-=~G8_r}vmkb zA1#@j9uP$y+cxbBW~nRTVlyyKfGgx|6L&YOPw~xWY4PT*BurOYsO&JZqp5;j*P@y2 zvo;#L$K%^XvXu9@aB}z-86i7{u`G?F-X1H7V19b+EHlw+1hcP=%wQ|INi*)3AyfNCRrq-z72*$;FGd9w3WgP zam0gHrr39pVQOjIRiv!~y^0{VQMU7&1arCDfW@}qDTceQ<`0S?81>A-nGfC~?Kd~> zQKrT|444%N7c$ZBh%aQ^$07?MSPEH9xFgdM5y8`g(adcM;&h1BT9<9Q)vfcGl2-PW zJChXON>vw4!{)<{nc&fSBik$>o1#NhO@Pq?m2i^jPN-54Wtk~Tro0I)I zNGX)-iyXr1a1FUU)peQ%6r{c7G5Di$k}WH_4`pp`VD{}=Y_Ufk>^>W?pdJOMUwR&V zEp@}=(9RT{+s!`p&b^>@=OFD`Rf$<08z1?c18MJIzsIz`Ecwu-51zGip(}xh|4^3d ziAM2KkzU_Xn(2u2+8yalVQe*yxB==-2ERXv+V#Hv`$rKQ%x@Z`(c?j|3 zIM~C)-tj1Mu(I(bht*VGg-!eKn8B8aGnN@vmN_QKi<$2$mn_-i+F$f&m(>4XFF){KEWRFlvo`P`bj^pstQH<#7{9V6K0zj(G|?Vh`m_Z%Csm zjt@!N^yz%L-!}Bl%AM%bmrq^#L^+RN%IqxV9*;1rWFM80*lk>R+c3B5gkRX+zKwF8 zx&#uelpl#CHydvV=H6#2ewmWwykyylw(%3&Xy$H{^&y?SG>SsEyETmx%|7xc0BeFb zKHA>8Mu}z}kw+cOUd9oC(hMOEva*CM^BQFLo{{CZh9T`o^+eF_?8;ou*>-TQ0KB_@;asVcl=Cx=Yz+@ zq-#R^SIs%cZizq_Yp%pYTCA=CDK84J6-;Q->5N?W2ksEy(H9Ks;{IX#D8789(Q$)% z!dNK-x(v3Ceoas~uT)T#4P8G>9Jw&a8Cm+1;9b>uM*x3|2nbQe%j75<4Qy;JsbjCg znqSYMWD_p49wtUr#qvU#05(4_wr^$8VGI+A6T6|*e#a#S6f;lQG$SAf`@I3&T$5GQ zBmO#Y>%eAb@Ar|{Id}azn^LS(L3>?JfwR_L)36+G=4t7L;0<=k{O#UN$}O?5;eCDE z*39qF-ugr-DONP;|KPkOh`uL4PkMQ+22yclAZ%ee# z>O3v-tC%#?y;2?~Glp9@l6kAZ1$C{`{lxdty*%Kl`I+c%iq^S>hRmoV{!7gJW&X)u zi;BLUjk_xRwvooM4>d|2Nx-L5LUrfmc6YCJXIFBz-~Vm9(_!;D?Tw1@Ye^MJ(x<;Rb_+M8gqh{ zzQXf@_!t$=lMoo_-PthGq^>lPMQ*(1IWp=CHP$CHQR>@#%!T`U*{4)HF_N&#s*vn; zEbd2ZXi8|2;vf-P;r=PRSV>}21f%E-ws?fsrpMM0;|IBVtlUN zSzo|-eupC0IF#h6{Q%{%e5?E3BfwX;9yI0r6FcQ)w|hPvH|}H}btGIHcdGZ-QMxLb zq7EPMCIZF0iH8-gd8(vf9C_A(RpTxcNF#67cY2bxB43XoE`@b;Y=ZX#O?|bPkwSD8 zK-0tT6<8K9gX8wO%p|kCg;*CNfBf>LhG#G&|%603~d@FaCSe!nl&pD?Nw@Ve6lX3f^DFTL2$&~ z%)?bs69P{3o7hCOwt>ItZMN7@}7}R z)eCkB%k6BGlTTBoP9De1rYWK#ZQ7=qo-Cs-tcE`VDu?Iz4Fm{#!?xSK`)U(_rZ?Iu zzf?jy#l1UCDH9R!kF>~Lku@f93)%VkY`P;e(>@ODK^KsNooxA%hc>^CZ^{hs#^*v} z+FE`F7jE9Jeq6Wp@}2b0AmUo*TL|!8(b6NbwkS(_U88{Ma_uTs2axnP~X*?wI*xFX@1 zU7hCS#f47@W@Dm`w~Ed*>exHwzHU+mXF=S3Vl!rJBhU9vnVXaf7It_LKKm{ZY`RA# zDOZfwjNj!eou#_p^MK(GVnXGb`)@K_S7 z8x>vqyzVi5W!v8)ngh{%E3^IigtbyUgIB9SbYkj*;Qij=i}_XK-Bapoj;Zhm5tiv4 z##62I=qXD%OPFgET*DMa68Zmj;6 zDmBl219rcUN*ZOnHE2l}cu*D?Lte$rz2ro?7l!PdLh%c66I6WcaL~FB9vwR-^|+5q zLj074$)9koS}VfNMTBDdZTrV+#+Xl_=t+XGU|23PKMWbfQ-|2xa3N3*IMZL=x~tC|87?*DBxZ zbMP`wAlscu_&ZPe5)KGyd&Z6XwT6dHrw} zL9HB@8nFtRf<9n-s=Y*@>RX{_zqVuZt`9ijA@8K!l=Bu2cMfh>fkwiV)QCrNoA-*@ zHR2)gZf3_XC_@W-5?dS8?@}xaJTCxsxbB53xbDekW$%X5SY5%p)>-2BZ62(IZj(jC z56%p#$kQbG6aysCV* zli`I!RPx6LK@y%wQw*CZn63@f+2Jqz7$4?DrsJK0{GeUWM@%${9C_92rVw^2zj#H& z>dm_!x(?u*XJt7=utzP2$L)VXTm$zkx)PVA*;35oESYwvK)bFoq7cS1W440O98kLn zFlXp_*I;7dX`snpz9|rZICa)KZG`7y;Ij=MHc+heeyW+t4Q3Kt$10|w9k=TBx1+Pv zP3U(%HuFeDWWJqeLqOy-I0%DOhc*%_I}Qt_wqqZMKAbN{Pe*6^gsgKJs}!!zZ88h{1e<$nH}UW;2aIrcLwu)_{Xj4KF!fV(^(PqaZfxt$?)7kR@xof z_OFYp$KI&kf!wH1j@}-({Ne}CoOjVycOMKz?PkqA?~)9`U&~1w_Q0(3+!6*gG68lo z{RG1VRmFOg61;n~`_~3rSFArMu6g|7%P6i{{L%Z{KAxMpK@m^ncWLrTyzZ6T7nVE9wTI&xG(MtAnWPgR1J7xXtx?qN@-_JH z;xpYm5XnJ2nl+Z94G~*dbQxIAZP}@QAQC;h%Q%%5JIJ}7R z2aC4}rjnq{6uO$JLH@p7m)&n*ZQ(hc*2nSNdG?gKi1SiPcbs`}O`h;J!bnf)o4%2< z?I`uALm_~7$h78hM=H!b4{LoXHBU>k-6Bn11KH%XBw(Bz+{u2a!C-`QS~9z&t&-QCxmm z8%%dqK?y87z4*>Vo=nbfuy@!(F+4$>nds|{xyM2bYXm91bzE_{#G`wSRY{M>l)+}XEo{1ViZ>}^GS%%zfx!VWL5=I$kp8)heAp;%Ru=; z%Hf5C&0xXbT_R5S|{^(SSe58@gPwIOGOx*xRBTtIVE6f!&c;q)1l{h{{brm%-V#!pWL7 zhGOU9q-WO11>O~_<{;O}~me~Zcg06k8zk4n88QCX$+YWY*U~!FA zlQCCV4c@5gkLrC9?QW19y^A?QOX>HT1d(KMUI9k7nr%f^Huy&M--mQnDU|}E!4vI{ zL?R~#;7lne2alOx+Y)-NhsrnY=J;Oo49l6kCv0OQmT&o3PYg~;Q{SM}xJsICYxMjm z2nOgy0B{mf-MRL!caI8`o^tsmq z9J+Nhc0_VF3FAi2lWHwUdo_mYv9nQ@gSCYm4#o+;+gh7t&(Sie2i3mHzvhy9cc}d< z$Pp*A7KR@NP0uw0p;`_`k12?W|0N8rl&)>KDk8a6t~A?c#_v%E6a6_LwIX%Jgh7~; zqWJMwc})9ntmh96tMv%(g*+Dyw_USP!6ZT@9S!0ad1Ch7Y0Trk>?+-c9mFWpNOONjXMoRZE7LjIe1>I92T_P0PfvN`lu6j_-m@^$FIv48HQDDDE`SEzqZ^@HF zT@RcDSgg|-CT#@A3lfRQDO{1UsGJa5+@qrv^L9EVcVJsz>UD9%&;gs z8+^uAq0?X$?+<2f{Qy)xPevx~|9UgwClW`yWm!ICd9P`-_3};f-s|L#kNy6kU*I82 zkqk&92kXiDtF3}#4wccN7AnXU@0;X;AC^WbL$}uh!s(f7YO`Bq7t@XQp?}C85z0A*M^V)i^$a$aEec7T7 zx+|S8#jkRv=bAhH)0TBM&y9j?;ccMw4Xx~H^p~vcIrN3C?4k7`gKo6ZI*s6=nDsIZ z5yjUUwyQqBUTyYvz~Z@BRJ|`e2WkA0maz>^*Cfe?7XRk^K?tX9C`QMLC{UfJt}&DH zKyU&5h`(;xD@uK3$vx4F)8Z6vSUI+V^jF9-RI=_*R5P=eWwZUfuH$K6q-l(PEX}|D zkWqFP%I1l_Q@8B6mFuia1W8Q?18tW=RA!ctep>WT4=B*nQ`W~z9BA+^pgNv-|A?%Q znsBMO2+sl4$gETDoFot}q{^|XB`|AE#@jVhW1mXpy|;buwN1CL9zEgoJ}hz~!RCI9 z&X8N)w?!wodR+f?h{Acf+rV;wsJw4$9(}U*0)N|_Zj$`@N^7=DWcf}R*o`#LUZ-%= z@-(SlqJ*JzQf8-Vc~kmAT`xgD4_gxyHF@@4S;$z6Po7t^D91eq!H8~YsQB>?Ip5s< zMDh?8_$pM#1djB_>=kNC)?!{uX-kTa;TwUn-aEZ_4X*4)jnrRstT*-zl{I#Vx+AxP z+(-=H4d~Qc#EXG zz{3yCan)*fle;!{!4}I{;^4>GbYCichvf8_E7Gy2g;ule3;Y>v3)+QCGU+SwrXbQB zKDS<~hp74!#@Yzu0!HkRbF#@+{fQj{OAf;b-D3eudcz8)0>XHjCNRd))X0Z)CpCc` zZA;=-<2SfV`KMEFyV1PpZhi(28ggYvPCy9>doiwL`6gKZ%si&O{%}mORM4VGs+FT<+sa1w!>&WRuXrtD7&-_x>bIyPlV zpH@H_J5>X6V>D9L1vI$anzTraEftr&w&FH^bd}nrOM1|r$C+GoXvb*^TH~aQ>3{SwJIi_WTeR;l=(eX!qKo zdPbC_Jy)OAd{1j7eHJX9Nz zd4}Gf{He8TU_6D2c%B)g5exbcdApD}TsA z8W0=W4e9X}8-ynvNc^niA6Iz)(eT*j1|p+BAs=t_Fd0=9{yT>!eScq2umS+|{}_}C zSxx`TbixcEA+$f;qY`R}VFvKe2EKg~#?n6vJ2HT{&y$>g62ddZi8Jv(+x#pP{R|}J zy=8hVVso-^bGEf${kIWMypL6u&mYXcS^(e$U|*aH68jlQPWoi&qE6*L7ZCvPK^g#{ z{2TN%J#EOuXCQ~s6X;3)A5Aa*20dvSdih^|Q#VITQ#0HDu_J`5Zj*)?0BF$!0LcFy z{X}u|5@MPOWPLW||8ju-Mm=$uK#nqjxc{@pLmk4!MN|Mlw-f+C{r7+;wee2_xb**R zIqKh_C#?Z#|FzuF*5&p8m~CoX4F8T40Fc9j0+9SY^htji1e^tY&Nh(BA|N4@BV;J+ zukHJl_1I5?AY=od^Au#F7)U4xz4%`$Z$6&?VfqyS>nBG50O&r>g!ms!ERdLN;B$EW zVXA^GWdFr~sD1f4^lZW@eiJq;2nt-G{qR5|C zhp?$8gMZ3Q95a|%WO|W#PWfE z(xgHDqcIrYpdgChpopGL{U0y>r@u`>I`VxDfrWpiq-V#LmVpN7*g9D_d%b4; z|C#otMm3B2G0p%CPyoVzkhnsQ3W0ylNRp=z8iNQF0U4g1l3Dxq7d#9A;Pg1+pM&0P zK|@Mqpz$FYML_hwHy)}HGF;LZJC4;FFjXqFV$+ zA$=;C|9Y788upPX|1tLd8R1xvtm4Pbc{=u=e2YRe1^8D;JvlU=F%Q>2_UQ@tv>-IW Z|HM6lVBwzTE%^B7@R&I(9^V51{|~0Fx%dD8 diff --git a/images/Thumbs.db b/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..e7204b1d484e57eb133956b17ae19f92fed87158 GIT binary patch literal 108032 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 678bbfa..e697d85 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@ @@ -73,7 +73,7 @@

How can use this library in my own project?

-

One of the most convenient features of this library is that it allows you to simply include the JAR file in your custom project, and it will automatically select and load the correct native library for your platform and architecture. As such, you can make use of this library by simply copying the jSerialComm.jar file into your project directory and linking to it as you would any other JAR file.

+

One of the most convenient features of this library is that it allows you to simply include the JAR file in your custom project, and it will automatically select and load the correct native library for your platform and architecture. As such, you can make use of this library by simply copying the jSerialComm.jar file into your project directory and linking to it as you would any other JAR file.

To access the contents of the library in your project, make sure to import com.fazecast.jSerialComm.* into your java files. You can then generate a list of all available serial ports on your system (real or virtual), by calling the following static method:

@@ -102,25 +102,25 @@
  • Leiningen
  • -
    <dependency>
       <groupId>com.fazecast</groupId>
       <artifactId>jSerialComm</artifactId>
       <version>1.3.2</version>
    </dependency>
    +
    <dependency>
       <groupId>com.fazecast</groupId>
       <artifactId>jSerialComm</artifactId>
       <version>1.3.3</version>
    </dependency>
    -
    <dependency org="com.fazecast" name="jSerialComm" rev="1.3.2"/>
    +
    <dependency org="com.fazecast" name="jSerialComm" rev="1.3.3"/>
    -
    @Grapes(
       @Grab(group='com.fazecast', module='jSerialComm', version='1.3.2')
    )
    +
    @Grapes(
       @Grab(group='com.fazecast', module='jSerialComm', version='1.3.3')
    )
    -
    'com.fazecast:jSerialComm:1.3.2'
    +
    'com.fazecast:jSerialComm:1.3.3'
    -
    'com.fazecast:jSerialComm:jar:1.3.2'
    +
    'com.fazecast:jSerialComm:jar:1.3.3'
    -
    libraryDependencies += "com.fazecast" % "jSerialComm" % "1.3.2"
    +
    libraryDependencies += "com.fazecast" % "jSerialComm" % "1.3.3"
    -
    [com.fazecast/jSerialComm "1.3.2"]
    +
    [com.fazecast/jSerialComm "1.3.3"]
    diff --git a/javadoc/allclasses-frame.html b/javadoc/allclasses-frame.html index 75e57a6..3b3564e 100644 --- a/javadoc/allclasses-frame.html +++ b/javadoc/allclasses-frame.html @@ -1,22 +1,37 @@ - - - - -All Classes (jSerialComm 1.3.2 API) - - - - - -

    All Classes

    - - - + + + + + +All Classes (jSerialComm 1.3.3 API) + + + + + + + + + + + +All Classes +
    + + + + + +
    SerialPort +
    +SerialPortDataListener +
    +SerialPortEvent +
    +SerialPortPacketListener +
    +
    + + + diff --git a/javadoc/allclasses-noframe.html b/javadoc/allclasses-noframe.html index df010e0..067f8ee 100644 --- a/javadoc/allclasses-noframe.html +++ b/javadoc/allclasses-noframe.html @@ -1,22 +1,37 @@ - - - - -All Classes (jSerialComm 1.3.2 API) - - - - - -

    All Classes

    - - - + + + + + +All Classes (jSerialComm 1.3.3 API) + + + + + + + + + + + +All Classes +
    + + + + + +
    SerialPort +
    +SerialPortDataListener +
    +SerialPortEvent +
    +SerialPortPacketListener +
    +
    + + + diff --git a/javadoc/com/fazecast/jSerialComm/SerialPort.html b/javadoc/com/fazecast/jSerialComm/SerialPort.html index 58cc097..6b93558 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPort.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPort.html @@ -1,982 +1,1026 @@ - - - - -SerialPort (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + + +
    -
    -
    com.fazecast.jSerialComm
    -

    Class SerialPort

    -
    -
    - -
    -
      -
    • -
      -
      -
      public final class SerialPort
      -extends Object
      -
      This class provides native access to serial ports and devices without requiring external libraries or tools.
      -
      -
      See Also:
      -
      InputStream, -OutputStream
      -
      -
    • -
    -
    -
    - -
    -
    -
      -
    • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +Method Summary
      + booleanaddDataListener(SerialPortDataListener listener) + +
      +          Adds a SerialPortDataListener to the serial port interface.
      + intbytesAvailable() + +
      +          Returns the number of bytes available without blocking if readBytes(byte[], long) were to be called immediately + after this method returns.
      + booleanclosePort() + +
      +          Closes this serial port.
      + intgetBaudRate() + +
      +          Gets the current baud rate of the serial port.
      +static SerialPortgetCommPort(String portDescriptor) + +
      +          Allocates a SerialPort object corresponding to the user-specified port descriptor.
      +static SerialPort[]getCommPorts() + +
      +          Returns a list of all available serial ports on this machine.
      + StringgetDescriptivePortName() + +
      +          Gets a descriptive string representing this serial port or the device connected to it.
      + intgetFlowControlSettings() + +
      +          Returns the flow control settings enabled on this serial port.
      + InputStreamgetInputStream() + +
      +          Returns an InputStream object associated with this serial port.
      + intgetNumDataBits() + +
      +          Gets the current number of data bits per word.
      + intgetNumStopBits() + +
      +          Gets the current number of stop bits per word.
      + OutputStreamgetOutputStream() + +
      +          Returns an OutputStream object associated with this serial port.
      + intgetParity() + +
      +          Gets the current parity error-checking scheme.
      + intgetReadTimeout() + +
      +          Gets the number of milliseconds of inactivity to tolerate before returning from a readBytes(byte[],long) call.
      + StringgetSystemPortName() + +
      +          Gets the operating system-defined device name corresponding to this serial port.
      + intgetWriteTimeout() + +
      +          Gets the number of milliseconds of inactivity to tolerate before returning from a writeBytes(byte[],long) call.
      + booleanopenPort() + +
      +          Opens this serial port for reading and writing.
      + intreadBytes(byte[] buffer, + long bytesToRead) + +
      +          Reads up to bytesToRead raw data bytes from the serial port and stores them in the buffer.
      + voidremoveDataListener() + +
      +          Removes the associated SerialPortDataListener from the serial port interface.
      + voidsetBaudRate(int newBaudRate) + +
      +          Sets the desired baud rate for this serial port.
      + voidsetComPortParameters(int newBaudRate, + int newDataBits, + int newStopBits, + int newParity) + +
      +          Sets all serial port parameters at one time.
      + voidsetComPortTimeouts(int newTimeoutMode, + int newReadTimeout, + int newWriteTimeout) + +
      +          Sets the serial port read and write timeout parameters.
      + voidsetFlowControl(int newFlowControlSettings) + +
      +          Specifies what kind of flow control to enable for this serial port.
      + voidsetNumDataBits(int newDataBits) + +
      +          Sets the desired number of data bits per word.
      + voidsetNumStopBits(int newStopBits) + +
      +          Sets the desired number of stop bits per word.
      + voidsetParity(int newParity) + +
      +          Sets the desired parity error-detection scheme to be used.
      + intwriteBytes(byte[] buffer, + long bytesToWrite) + +
      +          Writes up to bytesToWrite raw data bytes from the buffer parameter to the serial port.
      + + + + + + + +
      Methods inherited from class java.lang.Object
      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      +  +

      + -

      + + + + + + +
      +Field Detail
      + +

      +NO_PARITY

      +
      +public static final int NO_PARITY
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +ODD_PARITY

      +
      +public static final int ODD_PARITY
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +EVEN_PARITY

      +
      +public static final int EVEN_PARITY
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +MARK_PARITY

      +
      +public static final int MARK_PARITY
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +SPACE_PARITY

      +
      +public static final int SPACE_PARITY
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +ONE_STOP_BIT

      +
      +public static final int ONE_STOP_BIT
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +ONE_POINT_FIVE_STOP_BITS

      +
      +public static final int ONE_POINT_FIVE_STOP_BITS
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +TWO_STOP_BITS

      +
      +public static final int TWO_STOP_BITS
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +FLOW_CONTROL_DISABLED

      +
      +public static final int FLOW_CONTROL_DISABLED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +FLOW_CONTROL_RTS_ENABLED

      +
      +public static final int FLOW_CONTROL_RTS_ENABLED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +FLOW_CONTROL_CTS_ENABLED

      +
      +public static final int FLOW_CONTROL_CTS_ENABLED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +FLOW_CONTROL_DSR_ENABLED

      +
      +public static final int FLOW_CONTROL_DSR_ENABLED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +FLOW_CONTROL_DTR_ENABLED

      +
      +public static final int FLOW_CONTROL_DTR_ENABLED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +FLOW_CONTROL_XONXOFF_IN_ENABLED

      +
      +public static final int FLOW_CONTROL_XONXOFF_IN_ENABLED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +FLOW_CONTROL_XONXOFF_OUT_ENABLED

      +
      +public static final int FLOW_CONTROL_XONXOFF_OUT_ENABLED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +TIMEOUT_NONBLOCKING

      +
      +public static final int TIMEOUT_NONBLOCKING
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +TIMEOUT_READ_SEMI_BLOCKING

      +
      +public static final int TIMEOUT_READ_SEMI_BLOCKING
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +TIMEOUT_WRITE_SEMI_BLOCKING

      +
      +public static final int TIMEOUT_WRITE_SEMI_BLOCKING
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +TIMEOUT_READ_BLOCKING

      +
      +public static final int TIMEOUT_READ_BLOCKING
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +TIMEOUT_WRITE_BLOCKING

      +
      +public static final int TIMEOUT_WRITE_BLOCKING
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +TIMEOUT_SCANNER

      +
      +public static final int TIMEOUT_SCANNER
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +LISTENING_EVENT_DATA_AVAILABLE

      +
      +public static final int LISTENING_EVENT_DATA_AVAILABLE
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +LISTENING_EVENT_DATA_RECEIVED

      +
      +public static final int LISTENING_EVENT_DATA_RECEIVED
      +
      +
      +
      See Also:
      Constant Field Values
      +
      +
      + +

      +LISTENING_EVENT_DATA_WRITTEN

      +
      +public static final int LISTENING_EVENT_DATA_WRITTEN
      +
      +
      +
      See Also:
      Constant Field Values
      +
      + -
        -
      • - - -

        Method Detail

        - - - -
          -
        • -

          getCommPorts

          -
          public static SerialPort[] getCommPorts()
          -
          Returns a list of all available serial ports on this machine. + + + + + + +
          +Method Detail
          + +

          +getCommPorts

          +
          +public static SerialPort[] getCommPorts()
          +
          +
          Returns a list of all available serial ports on this machine.

          The serial ports can be accessed by iterating through each of the SerialPort objects in this array.

          - Note that the openPort() method must be called before any attempts to read from or write to the port. Likewise, closePort() should be called when you are finished accessing the port. + Note that the openPort() method must be called before any attempts to read from or write to the port. Likewise, closePort() should be called when you are finished accessing the port.

          - All serial port parameters or timeouts can be changed at any time after the port has been opened.

          -
          -
          Returns:
          -
          An array of SerialPort objects.
          -
          -
        • -
        - - - -
          -
        • -

          getCommPort

          -
          public static SerialPort getCommPort(String portDescriptor)
          -
          Allocates a SerialPort object corresponding to the user-specified port descriptor. + All serial port parameters or timeouts can be changed at any time after the port has been opened. +

          +

          + +
          Returns:
          An array of SerialPort objects.
          +
          + +
          + +

          +getCommPort

          +
          +public static SerialPort getCommPort(String portDescriptor)
          +
          +
          Allocates a SerialPort object corresponding to the user-specified port descriptor.

          On Windows machines, this descriptor should be in the form of "COM[*]".
          - On Linux machines, the descriptor will look similar to "/dev/tty[*]".

          -
          -
          Parameters:
          -
          portDescriptor - The desired serial port to use with this library.
          -
          Returns:
          -
          A SerialPort object.
          -
          -
        • -
        - - - -
          -
        • -

          openPort

          -
          public final boolean openPort()
          -
          Opens this serial port for reading and writing. + On Linux machines, the descriptor will look similar to "/dev/tty[*]". +

          +

          +
          Parameters:
          portDescriptor - The desired serial port to use with this library. +
          Returns:
          A SerialPort object.
          +
          + +
          + +

          +openPort

          +
          +public final boolean openPort()
          +
          +
          Opens this serial port for reading and writing.

          - All serial port parameters or timeouts can be changed at any time after the port has been opened.

          -
          -
          Returns:
          -
          Whether the port was successfully opened.
          -
          -
        • -
        - - - -
          -
        • -

          closePort

          -
          public final boolean closePort()
          -
          Closes this serial port.
          -
          -
          Returns:
          -
          Whether the port was successfully closed.
          -
          -
        • -
        - - - -
          -
        • -

          bytesAvailable

          -
          public final int bytesAvailable()
          -
          Returns the number of bytes available without blocking if readBytes(byte[], long) were to be called immediately - after this method returns.
          -
          -
          Returns:
          -
          The number of bytes currently available to be read, or -1 if the port is not open.
          -
          -
        • -
        - - - -
          -
        • -

          readBytes

          -
          public final int readBytes(byte[] buffer,
          -                           long bytesToRead)
          -
          Reads up to bytesToRead raw data bytes from the serial port and stores them in the buffer. + All serial port parameters or timeouts can be changed at any time after the port has been opened. +

          +

          + +
          Returns:
          Whether the port was successfully opened.
          +
          + +
          + +

          +closePort

          +
          +public final boolean closePort()
          +
          +
          Closes this serial port. +

          +

          + +
          Returns:
          Whether the port was successfully closed.
          +
          +
          +
          + +

          +bytesAvailable

          +
          +public final int bytesAvailable()
          +
          +
          Returns the number of bytes available without blocking if readBytes(byte[], long) were to be called immediately + after this method returns. +

          +

          + +
          Returns:
          The number of bytes currently available to be read, or -1 if the port is not open.
          +
          +
          +
          + +

          +readBytes

          +
          +public final int readBytes(byte[] buffer,
          +                           long bytesToRead)
          +
          +
          Reads up to bytesToRead raw data bytes from the serial port and stores them in the buffer.

          The length of the byte buffer must be greater than or equal to the value passed in for bytesToRead

          If no timeouts were specified or the read timeout was set to 0, this call will block until bytesToRead bytes of data have been successfully read from the serial port. Otherwise, this method will return after bytesToRead bytes of data have been read or the number of milliseconds specified by the read timeout have elapsed, - whichever comes first, regardless of the availability of more data.

          -
          -
          Parameters:
          -
          buffer - The buffer into which the raw data is read.
          -
          bytesToRead - The number of bytes to read from the serial port.
          -
          Returns:
          -
          The number of bytes successfully read, or -1 if there was an error reading from the port.
          -
          -
        • -
        - - - -
          -
        • -

          writeBytes

          -
          public final int writeBytes(byte[] buffer,
          -                            long bytesToWrite)
          -
          Writes up to bytesToWrite raw data bytes from the buffer parameter to the serial port. + whichever comes first, regardless of the availability of more data. +

          +

          +
          Parameters:
          buffer - The buffer into which the raw data is read.
          bytesToRead - The number of bytes to read from the serial port. +
          Returns:
          The number of bytes successfully read, or -1 if there was an error reading from the port.
          +
          + +
          + +

          +writeBytes

          +
          +public final int writeBytes(byte[] buffer,
          +                            long bytesToWrite)
          +
          +
          Writes up to bytesToWrite raw data bytes from the buffer parameter to the serial port.

          The length of the byte buffer must be greater than or equal to the value passed in for bytesToWrite

          If no timeouts were specified or the write timeout was set to 0, this call will block until bytesToWrite bytes of data have been successfully written the serial port. Otherwise, this method will return after bytesToWrite bytes of data have been written or the number of milliseconds specified by the write timeout have elapsed, - whichever comes first, regardless of the availability of more data.

          -
          -
          Parameters:
          -
          buffer - The buffer containing the raw data to write to the serial port.
          -
          bytesToWrite - The number of bytes to write to the serial port.
          -
          Returns:
          -
          The number of bytes successfully written, or -1 if there was an error writing to the port.
          -
          -
        • -
        - - - - - - - -
          -
        • -

          removeDataListener

          -
          public final void removeDataListener()
          -
          Removes the associated SerialPortDataListener from the serial port interface.
          -
        • -
        - - - - - - - -
          -
        • -

          getOutputStream

          -
          public final OutputStream getOutputStream()
          -
          Returns an OutputStream object associated with this serial port. + Make sure to call the InputStream.close() method when you are done using this stream. +

          +

          + +
          Returns:
          An InputStream object associated with this serial port.
          See Also:
          InputStream
          +
          + +
          + +

          +getOutputStream

          +
          +public final OutputStream getOutputStream()
          +
          +
          Returns an OutputStream object associated with this serial port.

          Allows for easier write access to the underlying data stream and abstracts away many low-level writing details.

          - Make sure to call the OutputStream.close() method when you are done using this stream.

          -
          -
          Returns:
          -
          An OutputStream object associated with this serial port.
          -
          See Also:
          -
          OutputStream
          -
          -
        • -
        - - - -
          -
        • -

          setComPortParameters

          -
          public final void setComPortParameters(int newBaudRate,
          + Make sure to call the OutputStream.close() method when you are done using this stream.
          +

          +

          + +
          Returns:
          An OutputStream object associated with this serial port.
          See Also:
          OutputStream
          +
          + +
          + +

          +setComPortParameters

          +
          +public final void setComPortParameters(int newBaudRate,
                                                  int newDataBits,
                                                  int newStopBits,
          -                                       int newParity)
          -
          Sets all serial port parameters at one time. + int newParity)
          +
          +
          Sets all serial port parameters at one time.

          Allows the user to set all port parameters with a single function call.

          @@ -984,434 +1028,401 @@ extends ONE_STOP_BIT, ONE_POINT_FIVE_STOP_BITS, TWO_STOP_BITS). + constants for this parameter (ONE_STOP_BIT, ONE_POINT_FIVE_STOP_BITS, TWO_STOP_BITS).

          The parity parameter specifies how error detection is carried out. Again, the built-in constants should be used. - Acceptable values are NO_PARITY, EVEN_PARITY, ODD_PARITY, MARK_PARITY, and SPACE_PARITY.

    -
    -
    Parameters:
    -
    newBaudRate - The desired baud rate for this serial port.
    -
    newDataBits - The number of data bits to use per word.
    -
    newStopBits - The number of stop bits to use.
    -
    newParity - The type of parity error-checking desired.
    -
    See Also:
    -
    ONE_STOP_BIT, -ONE_POINT_FIVE_STOP_BITS, -TWO_STOP_BITS, -NO_PARITY, -EVEN_PARITY, -ODD_PARITY, -MARK_PARITY, -SPACE_PARITY
    -
    - - - - - -
    -
    -
    Parameters:
    -
    newTimeoutMode - The new timeout mode as specified above.
    -
    newReadTimeout - The number of milliseconds of inactivity to tolerate before returning from a readBytes(byte[],long) call.
    -
    newWriteTimeout - The number of milliseconds of inactivity to tolerate before returning from a writeBytes(byte[],long) call.
    -
    - - - - - -
      -
    • -

      setBaudRate

      -
      public final void setBaudRate(int newBaudRate)
      -
      Sets the desired baud rate for this serial port. + A value of 0 for either newReadTimeout or newWriteTimeout indicates that a readBytes(byte[],long) or + writeBytes(byte[],long) call should block forever until it can return successfully (based upon the current timeout mode specified). +

      +

      +
      Parameters:
      newTimeoutMode - The new timeout mode as specified above.
      newReadTimeout - The number of milliseconds of inactivity to tolerate before returning from a readBytes(byte[],long) call.
      newWriteTimeout - The number of milliseconds of inactivity to tolerate before returning from a writeBytes(byte[],long) call.
      +
      + +
      + +

      +setBaudRate

      +
      +public final void setBaudRate(int newBaudRate)
      +
      +
      Sets the desired baud rate for this serial port.

      - The default baud rate is 9600 baud.

      -
      -
      Parameters:
      -
      newBaudRate - The desired baud rate for this serial port.
      -
      -
    • -
    - - - -
      -
    • -

      setNumDataBits

      -
      public final void setNumDataBits(int newDataBits)
      -
      Sets the desired number of data bits per word. + The default baud rate is 9600 baud. +

      +

      +
      Parameters:
      newBaudRate - The desired baud rate for this serial port.
      +
      + +
      + +

      +setNumDataBits

      +
      +public final void setNumDataBits(int newDataBits)
      +
      +
      Sets the desired number of data bits per word.

      - The default number of data bits per word is 8.

      -
      -
      Parameters:
      -
      newDataBits - The desired number of data bits per word.
      -
      -
    • -
    - - - - - - - - - - - - - - - -
      -
    • -

      getDescriptivePortName

      -
      public final String getDescriptivePortName()
      -
      Gets a descriptive string representing this serial port or the device connected to it. + Acceptable values are NO_PARITY, EVEN_PARITY, ODD_PARITY, MARK_PARITY, and SPACE_PARITY. +

      +

      +
      Parameters:
      newParity - The desired parity scheme to be used.
      See Also:
      NO_PARITY, +EVEN_PARITY, +ODD_PARITY, +MARK_PARITY, +SPACE_PARITY
      +
      + +
      + +

      +getDescriptivePortName

      +
      +public final String getDescriptivePortName()
      +
      +
      Gets a descriptive string representing this serial port or the device connected to it.

      This description is generated by the operating system and may or may not be a good representation of the actual port or - device it describes.

      -
      -
      Returns:
      -
      A descriptive string representing this serial port.
      -
      -
    • -
    - - - -
      -
    • -

      getSystemPortName

      -
      public final String getSystemPortName()
      -
      Gets the operating system-defined device name corresponding to this serial port.
      -
      -
      Returns:
      -
      The system-defined device name of this serial port.
      -
      -
    • -
    - - - -
      -
    • -

      getBaudRate

      -
      public final int getBaudRate()
      -
      Gets the current baud rate of the serial port.
      -
      -
      Returns:
      -
      The current baud rate of the serial port.
      -
      -
    • -
    - - - -
      -
    • -

      getNumDataBits

      -
      public final int getNumDataBits()
      -
      Gets the current number of data bits per word.
      -
      -
      Returns:
      -
      The current number of data bits per word.
      -
      -
    • -
    - - - -
      -
    • -

      getNumStopBits

      -
      public final int getNumStopBits()
      -
      Gets the current number of stop bits per word. + device it describes. +

      +

      + +
      Returns:
      A descriptive string representing this serial port.
      +
      + +
      + +

      +getSystemPortName

      +
      +public final String getSystemPortName()
      +
      +
      Gets the operating system-defined device name corresponding to this serial port. +

      +

      + +
      Returns:
      The system-defined device name of this serial port.
      +
      +
      +
      + +

      +getBaudRate

      +
      +public final int getBaudRate()
      +
      +
      Gets the current baud rate of the serial port. +

      +

      + +
      Returns:
      The current baud rate of the serial port.
      +
      +
      +
      + +

      +getNumDataBits

      +
      +public final int getNumDataBits()
      +
      +
      Gets the current number of data bits per word. +

      +

      + +
      Returns:
      The current number of data bits per word.
      +
      +
      +
      + +

      +getNumStopBits

      +
      +public final int getNumStopBits()
      +
      +
      Gets the current number of stop bits per word.

      The return value should not be interpreted as an integer, but rather compared with the built-in stop bit constants - (ONE_STOP_BIT, ONE_POINT_FIVE_STOP_BITS, TWO_STOP_BITS).

      -
      -
      Returns:
      -
      The current number of stop bits per word.
      -
      See Also:
      -
      ONE_STOP_BIT, -ONE_POINT_FIVE_STOP_BITS, -TWO_STOP_BITS
      -
      -
    • -
    - - - - - - - - - - - -
      -
    • -

      getWriteTimeout

      -
      public final int getWriteTimeout()
      -
      Gets the number of milliseconds of inactivity to tolerate before returning from a writeBytes(byte[],long) call. + Any value other than 0 indicates the number of milliseconds of inactivity that will be tolerated before the readBytes(byte[],long) + call will return. +

      +

      + +
      Returns:
      The number of milliseconds of inactivity to tolerate before returning from a readBytes(byte[],long) call.
      +
      + +
      + +

      +getWriteTimeout

      +
      +public final int getWriteTimeout()
      +
      +
      Gets the number of milliseconds of inactivity to tolerate before returning from a writeBytes(byte[],long) call.

      - A value of 0 indicates that a writeBytes(byte[],long) call will block forever until it has successfully written + A value of 0 indicates that a writeBytes(byte[],long) call will block forever until it has successfully written the indicated number of bytes to the serial port.

      - Any value other than 0 indicates the number of milliseconds of inactivity that will be tolerated before the writeBytes(byte[],long) - call will return.

      -
      -
      Returns:
      -
      The number of milliseconds of inactivity to tolerate before returning from a writeBytes(byte[],long) call.
      -
      -
    • -
    - - - - - - - - - - +      None: FLOW_CONTROL_DISABLED
    +      CTS: FLOW_CONTROL_CTS_ENABLED
    +      RTS/CTS: FLOW_CONTROL_RTS_ENABLED | FLOW_CONTROL_CTS_ENABLED
    +      DSR: FLOW_CONTROL_DSR_ENABLED
    +      DTR/DSR: FLOW_CONTROL_DTR_ENABLED | FLOW_CONTROL_DSR_ENABLED
    +      XOn/XOff: FLOW_CONTROL_XONXOFF_IN_ENABLED | FLOW_CONTROL_XONXOFF_OUT_ENABLED +

    +

    + +
    Returns:
    The flow control settings enabled on this serial port.
    See Also:
    FLOW_CONTROL_DISABLED, +FLOW_CONTROL_RTS_ENABLED, +FLOW_CONTROL_CTS_ENABLED, +FLOW_CONTROL_DTR_ENABLED, +FLOW_CONTROL_DSR_ENABLED, +FLOW_CONTROL_XONXOFF_IN_ENABLED, +FLOW_CONTROL_XONXOFF_OUT_ENABLED
    +
    + +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + - - + +
    + + + diff --git a/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html b/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html index 7f688a7..b06e774 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPortDataListener.html @@ -1,275 +1,257 @@ - - - - -SerialPortDataListener (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + + +
    -
    -
    com.fazecast.jSerialComm
    -

    Interface SerialPortDataListener

    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    + Two or more events may be OR'd together to listen for multiple events; however, if SerialPort.LISTENING_EVENT_DATA_AVAILABLE is OR'd with SerialPort.LISTENING_EVENT_DATA_RECEIVED, the SerialPort.LISTENING_EVENT_DATA_RECEIVED flag will take precedence. +

    +

    +

    +
    +
    +
    + +
    Returns:
    The event constants that should trigger the serialEvent(SerialPortEvent) callback.
    See Also:
    SerialPort.LISTENING_EVENT_DATA_AVAILABLE, +SerialPort.LISTENING_EVENT_DATA_RECEIVED, +SerialPort.LISTENING_EVENT_DATA_WRITTEN
    +
    + +
    + +

    +serialEvent

    +
    +void serialEvent(SerialPortEvent event)
    +
    +
    Called whenever one of the serial port events specified by the getListeningEvents() method occurs. +

    +

    +
    +
    +
    +
    Parameters:
    event - A SerialPortEvent object containing information and/or data about the serial event that occurred.
    See Also:
    SerialPortEvent
    +
    +
    +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + - - + +
    + + + diff --git a/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html b/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html index b48b401..520607e 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPortEvent.html @@ -1,421 +1,390 @@ - - - - -SerialPortEvent (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + + +
    -
    -
    com.fazecast.jSerialComm
    -

    Class SerialPortEvent

    -
    -
    - -
    - -
    -
    - -
    -
    -
    -
    -
    Parameters:
    -
    comPort - The SerialPort about which this object is being created.
    -
    serialEventType - The type of serial port event that this object describes.
    -
    data - The raw data bytes corresponding to this serial port event.
    -
    See Also:
    -
    SerialPort.LISTENING_EVENT_DATA_AVAILABLE, -SerialPort.LISTENING_EVENT_DATA_RECEIVED, -SerialPort.LISTENING_EVENT_DATA_WRITTEN
    -
    - - - - +      SerialPort.LISTENING_EVENT_DATA_AVAILABLE
    +      SerialPort.LISTENING_EVENT_DATA_RECEIVED
    +      SerialPort.LISTENING_EVENT_DATA_WRITTEN
    +

    +

    +

    +
    Parameters:
    comPort - The SerialPort about which this object is being created.
    serialEventType - The type of serial port event that this object describes.
    data - The raw data bytes corresponding to this serial port event.
    See Also:
    SerialPort.LISTENING_EVENT_DATA_AVAILABLE, +SerialPort.LISTENING_EVENT_DATA_RECEIVED, +SerialPort.LISTENING_EVENT_DATA_WRITTEN
    + + - - - -
    - +      SerialPort.LISTENING_EVENT_DATA_AVAILABLE
    +      SerialPort.LISTENING_EVENT_DATA_RECEIVED
    +      SerialPort.LISTENING_EVENT_DATA_WRITTEN
    +

    +

    +

    + +
    Returns:
    The serial port event that this object describes.
    See Also:
    SerialPort.LISTENING_EVENT_DATA_AVAILABLE, +SerialPort.LISTENING_EVENT_DATA_RECEIVED, +SerialPort.LISTENING_EVENT_DATA_WRITTEN
    +
    + +
    + +

    +getReceivedData

    +
    +public final byte[] getReceivedData()
    +
    +
    Returns any raw data bytes associated with this serial port event. +

    +

    + +
    Returns:
    Any data bytes associated with this serial port event or null if none exist.
    +
    +
    +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + - - + +
    + + + diff --git a/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html b/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html index 0fe4d78..fda143d 100644 --- a/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html +++ b/javadoc/com/fazecast/jSerialComm/SerialPortPacketListener.html @@ -1,244 +1,229 @@ - - - - -SerialPortPacketListener (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + + +
    -
    -
    com.fazecast.jSerialComm
    -

    Interface SerialPortPacketListener

    -
    -
    -
    -
      -
    • -
      -
      All Superinterfaces:
      -
      EventListener, SerialPortDataListener
      -
      -
      -
      -
      public interface SerialPortPacketListener
      -extends SerialPortDataListener
      -
      This interface must be implemented to enable full packet reads using event-based serial port I/O. +

      + +com.fazecast.jSerialComm +
      +Interface SerialPortPacketListener

      +
      +
      All Superinterfaces:
      EventListener, SerialPortDataListener
      +
      +
      +
      +
      public interface SerialPortPacketListener
      extends SerialPortDataListener
      + + +

      +This interface must be implemented to enable full packet reads using event-based serial port I/O.

      - Note: Using this interface will negate any serial port read timeout settings since they make no sense in an asynchronous context.

      -
      -
      See Also:
      -
      SerialPortDataListener, -EventListener
      -
      -
    • -
    -
    -
    - -
    -
    - -
    -
    + + + + + + +
    +Method Detail
    + +

    +getPacketSize

    +
    +int getPacketSize()
    +
    +
    Must be overridden to return the desired number of bytes that must be read before the SerialPortDataListener.serialEvent(SerialPortEvent) callback is triggered. +

    +

    +
    +
    +
    + +
    Returns:
    The number of bytes that must be read before the SerialPortDataListener.serialEvent(SerialPortEvent) callback is triggered.
    +
    +
    +
    + + - - + + + + + + + + + SUMMARY: NESTED | FIELD | CONSTR | METHOD + +DETAIL: FIELD | CONSTR | METHOD + + + - - + +
    + + + diff --git a/javadoc/com/fazecast/jSerialComm/package-frame.html b/javadoc/com/fazecast/jSerialComm/package-frame.html index 9936ad9..1aa76e9 100644 --- a/javadoc/com/fazecast/jSerialComm/package-frame.html +++ b/javadoc/com/fazecast/jSerialComm/package-frame.html @@ -1,26 +1,47 @@ - - - - -com.fazecast.jSerialComm (jSerialComm 1.3.2 API) - - - - - -

    com.fazecast.jSerialComm

    - - - + + + + + +com.fazecast.jSerialComm (jSerialComm 1.3.3 API) + + + + + + + + + + + +com.fazecast.jSerialComm + + + + +
    +Interfaces  + +
    +SerialPortDataListener +
    +SerialPortPacketListener
    + + + + + + +
    +Classes  + +
    +SerialPort +
    +SerialPortEvent
    + + + + diff --git a/javadoc/com/fazecast/jSerialComm/package-summary.html b/javadoc/com/fazecast/jSerialComm/package-summary.html index ad9c0ee..8d7e105 100644 --- a/javadoc/com/fazecast/jSerialComm/package-summary.html +++ b/javadoc/com/fazecast/jSerialComm/package-summary.html @@ -1,169 +1,175 @@ - - - - -com.fazecast.jSerialComm (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + -
    -

    Package com.fazecast.jSerialComm

    -
    -
    -
      -
    • - - - - - - - - - - - - - - - - -
      Interface Summary 
      InterfaceDescription
      SerialPortDataListener -
      This interface must be implemented to enable simple event-based serial port I/O.
      -
      SerialPortPacketListener -
      This interface must be implemented to enable full packet reads using event-based serial port I/O.
      -
      -
    • -
    • - - - - - - - - - - - - - - - - -
      Class Summary 
      ClassDescription
      SerialPort -
      This class provides native access to serial ports and devices without requiring external libraries or tools.
      -
      SerialPortEvent -
      This class describes an asynchronous serial port event.
      -
      -
    • -
    -
    + +
    +

    +Package com.fazecast.jSerialComm +

    + + + + + + + + + + + + + +
    +Interface Summary
    SerialPortDataListenerThis interface must be implemented to enable simple event-based serial port I/O.
    SerialPortPacketListenerThis interface must be implemented to enable full packet reads using event-based serial port I/O.
    +  + +

    + + + + + + + + + + + + + +
    +Class Summary
    SerialPortThis class provides native access to serial ports and devices without requiring external libraries or tools.
    SerialPortEventThis class describes an asynchronous serial port event.
    +  + +

    +

    +
    +
    + + - - + + + + + + + + - - + +
    + + + diff --git a/javadoc/com/fazecast/jSerialComm/package-tree.html b/javadoc/com/fazecast/jSerialComm/package-tree.html index f20457e..2025d3b 100644 --- a/javadoc/com/fazecast/jSerialComm/package-tree.html +++ b/javadoc/com/fazecast/jSerialComm/package-tree.html @@ -1,146 +1,158 @@ - - - - -com.fazecast.jSerialComm Class Hierarchy (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + -
    -

    Hierarchy For Package com.fazecast.jSerialComm

    -
    -
    -

    Class Hierarchy

    - -

    Interface Hierarchy

    - -
    + +
    +
    +

    +Hierarchy For Package com.fazecast.jSerialComm +

    +
    +

    +Class Hierarchy +

    + +

    +Interface Hierarchy +

    + +
    + + - - + + + + + + + + - - + +
    + + + diff --git a/javadoc/constant-values.html b/javadoc/constant-values.html index 9bcdf34..05169f7 100644 --- a/javadoc/constant-values.html +++ b/javadoc/constant-values.html @@ -1,310 +1,308 @@ - - - - -Constant Field Values (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + -
    -

    Constant Field Values

    -

    Contents

    - -
    -
    - - -

    com.fazecast.*

    - -
    + +
    +
    +

    +Constant Field Values

    +
    +
    +Contents + + + + + + +
    +com.fazecast.*
    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    com.fazecast.jSerialComm.SerialPort
    +public static final intEVEN_PARITY2
    +public static final intFLOW_CONTROL_CTS_ENABLED16
    +public static final intFLOW_CONTROL_DISABLED0
    +public static final intFLOW_CONTROL_DSR_ENABLED256
    +public static final intFLOW_CONTROL_DTR_ENABLED4096
    +public static final intFLOW_CONTROL_RTS_ENABLED1
    +public static final intFLOW_CONTROL_XONXOFF_IN_ENABLED65536
    +public static final intFLOW_CONTROL_XONXOFF_OUT_ENABLED1048576
    +public static final intLISTENING_EVENT_DATA_AVAILABLE1
    +public static final intLISTENING_EVENT_DATA_RECEIVED16
    +public static final intLISTENING_EVENT_DATA_WRITTEN256
    +public static final intMARK_PARITY3
    +public static final intNO_PARITY0
    +public static final intODD_PARITY1
    +public static final intONE_POINT_FIVE_STOP_BITS2
    +public static final intONE_STOP_BIT1
    +public static final intSPACE_PARITY4
    +public static final intTIMEOUT_NONBLOCKING0
    +public static final intTIMEOUT_READ_BLOCKING256
    +public static final intTIMEOUT_READ_SEMI_BLOCKING1
    +public static final intTIMEOUT_SCANNER65536
    +public static final intTIMEOUT_WRITE_BLOCKING4096
    +public static final intTIMEOUT_WRITE_SEMI_BLOCKING16
    +public static final intTWO_STOP_BITS3
    + +

    + +

    +


    + + - - + + + + + + + + - - + +
    + + + diff --git a/javadoc/deprecated-list.html b/javadoc/deprecated-list.html index b58b012..df5d863 100644 --- a/javadoc/deprecated-list.html +++ b/javadoc/deprecated-list.html @@ -1,120 +1,142 @@ - - - - -Deprecated List (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + -
    - - - - - - - -
    - + + + + + + + + -
    -

    Deprecated API

    -

    Contents

    -
    + +
    +
    +

    +Deprecated API

    +
    +
    +Contents
      +
    + +
    + + -
    - - - - - - - -
    - + + + + + + + + - - + +
    + + + diff --git a/javadoc/help-doc.html b/javadoc/help-doc.html index f259366..3a935d4 100644 --- a/javadoc/help-doc.html +++ b/javadoc/help-doc.html @@ -1,217 +1,209 @@ - - - - -API Help (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + -
    -

    How This API Document Is Organized

    -
    This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
    -
    -
    -
      -
    • -

      Package

      -

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

      -
        -
      • Interfaces (italic)
      • -
      • Classes
      • -
      • Enums
      • -
      • Exceptions
      • -
      • Errors
      • -
      • Annotation Types
      • -
      -
    • -
    • -

      Class/Interface

      -

      Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

      -
        -
      • Class inheritance diagram
      • -
      • Direct Subclasses
      • -
      • All Known Subinterfaces
      • -
      • All Known Implementing Classes
      • -
      • Class/interface declaration
      • -
      • Class/interface description
      • -
      -
        -
      • Nested Class Summary
      • -
      • Field Summary
      • -
      • Constructor Summary
      • -
      • Method Summary
      • -
      -
        -
      • Field Detail
      • -
      • Constructor Detail
      • -
      • Method Detail
      • -
      -

      Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

      -
    • -
    • -

      Annotation Type

      -

      Each annotation type has its own separate page with the following sections:

      -
        -
      • Annotation Type declaration
      • -
      • Annotation Type description
      • -
      • Required Element Summary
      • -
      • Optional Element Summary
      • -
      • Element Detail
      • -
      -
    • -
    • -

      Enum

      -

      Each enum has its own separate page with the following sections:

      -
        -
      • Enum declaration
      • -
      • Enum description
      • -
      • Enum Constant Summary
      • -
      • Enum Constant Detail
      • -
      -
    • -
    • -

      Tree (Class Hierarchy)

      -

      There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

      -
        -
      • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
      • -
      • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
      • -
      -
    • -
    • -

      Deprecated API

      -

      The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

      -
    • -
    • -

      Index

      -

      The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

      -
    • -
    • -

      Prev/Next

      -

      These links take you to the next or previous class, interface, package, or related page.

      -
    • -
    • -

      Frames/No Frames

      -

      These links show and hide the HTML frames. All pages are available with or without frames.

      -
    • -
    • -

      All Classes

      -

      The All Classes link shows all classes and interfaces except non-static nested types.

      -
    • -
    • -

      Serialized Form

      -

      Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

      -
    • -
    • -

      Constant Field Values

      -

      The Constant Field Values page lists the static final fields and their values.

      -
    • -
    -This help file applies to API documentation generated using the standard doclet.
    + +
    +
    +

    +How This API Document Is Organized

    +
    +This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

    +Package

    +
    + +

    +Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

      +
    • Interfaces (italic)
    • Classes
    • Enums
    • Exceptions
    • Errors
    • Annotation Types
    +
    +

    +Class/Interface

    +
    + +

    +Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

      +
    • Class inheritance diagram
    • Direct Subclasses
    • All Known Subinterfaces
    • All Known Implementing Classes
    • Class/interface declaration
    • Class/interface description +

      +

    • Nested Class Summary
    • Field Summary
    • Constructor Summary
    • Method Summary +

      +

    • Field Detail
    • Constructor Detail
    • Method Detail
    +Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
    + +

    +Annotation Type

    +
    + +

    +Each annotation type has its own separate page with the following sections:

      +
    • Annotation Type declaration
    • Annotation Type description
    • Required Element Summary
    • Optional Element Summary
    • Element Detail
    +
    + +

    +Enum

    +
    + +

    +Each enum has its own separate page with the following sections:

      +
    • Enum declaration
    • Enum description
    • Enum Constant Summary
    • Enum Constant Detail
    +
    +

    +Tree (Class Hierarchy)

    +
    +There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
      +
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    +
    +

    +Deprecated API

    +
    +The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
    +

    +Index

    +
    +The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
    +

    +Prev/Next

    +These links take you to the next or previous class, interface, package, or related page.

    +Frames/No Frames

    +These links show and hide the HTML frames. All pages are available with or without frames. +

    +

    +Serialized Form

    +Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

    +

    +Constant Field Values

    +The Constant Field Values page lists the static final fields and their values. +

    + + +This help file applies to API documentation generated using the standard doclet. + +
    +


    + + - - + + + + + + + + - - + +
    + + + diff --git a/javadoc/index-all.html b/javadoc/index-all.html index 2cf0a86..2e79686 100644 --- a/javadoc/index-all.html +++ b/javadoc/index-all.html @@ -1,408 +1,381 @@ - - - - -Index (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + -
    A B C E F G L M N O R S T W  - - -

    A

    -
    -
    addDataListener(SerialPortDataListener) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Adds a SerialPortDataListener to the serial port interface.
    -
    -
    - - - -

    B

    -
    -
    bytesAvailable() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Returns the number of bytes available without blocking if SerialPort.readBytes(byte[], long) were to be called immediately - after this method returns.
    -
    -
    - - - -

    C

    -
    -
    closePort() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Closes this serial port.
    -
    -
    com.fazecast.jSerialComm - package com.fazecast.jSerialComm
    -
     
    -
    - - - -

    E

    -
    -
    EVEN_PARITY - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    - - - -

    F

    -
    -
    FLOW_CONTROL_CTS_ENABLED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    FLOW_CONTROL_DISABLED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    FLOW_CONTROL_DSR_ENABLED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    FLOW_CONTROL_DTR_ENABLED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    FLOW_CONTROL_RTS_ENABLED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    FLOW_CONTROL_XONXOFF_IN_ENABLED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    FLOW_CONTROL_XONXOFF_OUT_ENABLED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    - - - -

    G

    -
    -
    getBaudRate() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets the current baud rate of the serial port.
    -
    -
    getCommPort(String) - Static method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Allocates a SerialPort object corresponding to the user-specified port descriptor.
    -
    -
    getCommPorts() - Static method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Returns a list of all available serial ports on this machine.
    -
    -
    getDescriptivePortName() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets a descriptive string representing this serial port or the device connected to it.
    -
    -
    getEventType() - Method in class com.fazecast.jSerialComm.SerialPortEvent
    -
    -
    Returns the type of serial port event that caused this object to be created.
    -
    -
    getFlowControlSettings() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Returns the flow control settings enabled on this serial port.
    -
    -
    getInputStream() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Returns an InputStream object associated with this serial port.
    -
    -
    getListeningEvents() - Method in interface com.fazecast.jSerialComm.SerialPortDataListener
    -
    -
    Must be overridden to return one or more desired event constants for which the SerialPortDataListener.serialEvent(SerialPortEvent) callback should be triggered.
    -
    -
    getNumDataBits() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets the current number of data bits per word.
    -
    -
    getNumStopBits() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets the current number of stop bits per word.
    -
    -
    getOutputStream() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Returns an OutputStream object associated with this serial port.
    -
    -
    getPacketSize() - Method in interface com.fazecast.jSerialComm.SerialPortPacketListener
    -
    -
    Must be overridden to return the desired number of bytes that must be read before the SerialPortDataListener.serialEvent(SerialPortEvent) callback is triggered.
    -
    -
    getParity() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets the current parity error-checking scheme.
    -
    -
    getReadTimeout() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets the number of milliseconds of inactivity to tolerate before returning from a SerialPort.readBytes(byte[],long) call.
    -
    -
    getReceivedData() - Method in class com.fazecast.jSerialComm.SerialPortEvent
    -
    -
    Returns any raw data bytes associated with this serial port event.
    -
    -
    getSerialPort() - Method in class com.fazecast.jSerialComm.SerialPortEvent
    -
    -
    Returns the SerialPort that triggered this event.
    -
    -
    getSystemPortName() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets the operating system-defined device name corresponding to this serial port.
    -
    -
    getWriteTimeout() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Gets the number of milliseconds of inactivity to tolerate before returning from a SerialPort.writeBytes(byte[],long) call.
    -
    -
    - - - -

    L

    -
    -
    LISTENING_EVENT_DATA_AVAILABLE - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    LISTENING_EVENT_DATA_RECEIVED - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    LISTENING_EVENT_DATA_WRITTEN - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    - - - -

    M

    -
    -
    MARK_PARITY - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    - - - -

    N

    -
    -
    NO_PARITY - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    - - - -

    O

    -
    -
    ODD_PARITY - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    ONE_POINT_FIVE_STOP_BITS - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    ONE_STOP_BIT - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    openPort() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Opens this serial port for reading and writing.
    -
    -
    - - - -

    R

    -
    -
    readBytes(byte[], long) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Reads up to bytesToRead raw data bytes from the serial port and stores them in the buffer.
    -
    -
    removeDataListener() - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Removes the associated SerialPortDataListener from the serial port interface.
    -
    -
    - - - -

    S

    -
    -
    serialEvent(SerialPortEvent) - Method in interface com.fazecast.jSerialComm.SerialPortDataListener
    -
    -
    Called whenever one of the serial port events specified by the SerialPortDataListener.getListeningEvents() method occurs.
    -
    -
    SerialPort - Class in com.fazecast.jSerialComm
    -
    -
    This class provides native access to serial ports and devices without requiring external libraries or tools.
    -
    -
    SerialPortDataListener - Interface in com.fazecast.jSerialComm
    -
    -
    This interface must be implemented to enable simple event-based serial port I/O.
    -
    -
    SerialPortEvent - Class in com.fazecast.jSerialComm
    -
    -
    This class describes an asynchronous serial port event.
    -
    -
    SerialPortEvent(SerialPort, int) - Constructor for class com.fazecast.jSerialComm.SerialPortEvent
    -
    -
    Constructs a SerialPortEvent object corresponding to the specified serial event type.
    -
    -
    SerialPortEvent(SerialPort, int, byte[]) - Constructor for class com.fazecast.jSerialComm.SerialPortEvent
    -
    -
    Constructs a SerialPortEvent object corresponding to the specified serial event type and containing the passed-in data bytes.
    -
    -
    SerialPortPacketListener - Interface in com.fazecast.jSerialComm
    -
    -
    This interface must be implemented to enable full packet reads using event-based serial port I/O.
    -
    -
    setBaudRate(int) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Sets the desired baud rate for this serial port.
    -
    -
    setComPortParameters(int, int, int, int) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Sets all serial port parameters at one time.
    -
    -
    setComPortTimeouts(int, int, int) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Sets the serial port read and write timeout parameters.
    -
    -
    setFlowControl(int) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Specifies what kind of flow control to enable for this serial port.
    -
    -
    setNumDataBits(int) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Sets the desired number of data bits per word.
    -
    -
    setNumStopBits(int) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Sets the desired number of stop bits per word.
    -
    -
    setParity(int) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Sets the desired parity error-detection scheme to be used.
    -
    -
    SPACE_PARITY - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    - - - -

    T

    -
    -
    TIMEOUT_NONBLOCKING - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    TIMEOUT_READ_BLOCKING - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    TIMEOUT_READ_SEMI_BLOCKING - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    TIMEOUT_SCANNER - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    TIMEOUT_WRITE_BLOCKING - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    TIMEOUT_WRITE_SEMI_BLOCKING - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    TWO_STOP_BITS - Static variable in class com.fazecast.jSerialComm.SerialPort
    -
     
    -
    - - - -

    W

    -
    -
    writeBytes(byte[], long) - Method in class com.fazecast.jSerialComm.SerialPort
    -
    -
    Writes up to bytesToWrite raw data bytes from the buffer parameter to the serial port.
    -
    -
    -A B C E F G L M N O R S T W 
    + +A B C E F G L M N O R S T W
    +

    +A

    +
    +
    addDataListener(SerialPortDataListener) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Adds a SerialPortDataListener to the serial port interface. +
    +
    +

    +B

    +
    +
    bytesAvailable() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Returns the number of bytes available without blocking if SerialPort.readBytes(byte[], long) were to be called immediately + after this method returns. +
    +
    +

    +C

    +
    +
    closePort() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Closes this serial port. +
    com.fazecast.jSerialComm - package com.fazecast.jSerialComm
     
    +
    +

    +E

    +
    +
    EVEN_PARITY - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    +
    +

    +F

    +
    +
    FLOW_CONTROL_CTS_ENABLED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    FLOW_CONTROL_DISABLED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    FLOW_CONTROL_DSR_ENABLED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    FLOW_CONTROL_DTR_ENABLED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    FLOW_CONTROL_RTS_ENABLED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    FLOW_CONTROL_XONXOFF_IN_ENABLED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    FLOW_CONTROL_XONXOFF_OUT_ENABLED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    +
    +

    +G

    +
    +
    getBaudRate() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets the current baud rate of the serial port. +
    getCommPort(String) - +Static method in class com.fazecast.jSerialComm.SerialPort +
    Allocates a SerialPort object corresponding to the user-specified port descriptor. +
    getCommPorts() - +Static method in class com.fazecast.jSerialComm.SerialPort +
    Returns a list of all available serial ports on this machine. +
    getDescriptivePortName() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets a descriptive string representing this serial port or the device connected to it. +
    getEventType() - +Method in class com.fazecast.jSerialComm.SerialPortEvent +
    Returns the type of serial port event that caused this object to be created. +
    getFlowControlSettings() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Returns the flow control settings enabled on this serial port. +
    getInputStream() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Returns an InputStream object associated with this serial port. +
    getListeningEvents() - +Method in interface com.fazecast.jSerialComm.SerialPortDataListener +
    Must be overridden to return one or more desired event constants for which the SerialPortDataListener.serialEvent(SerialPortEvent) callback should be triggered. +
    getNumDataBits() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets the current number of data bits per word. +
    getNumStopBits() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets the current number of stop bits per word. +
    getOutputStream() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Returns an OutputStream object associated with this serial port. +
    getPacketSize() - +Method in interface com.fazecast.jSerialComm.SerialPortPacketListener +
    Must be overridden to return the desired number of bytes that must be read before the SerialPortDataListener.serialEvent(SerialPortEvent) callback is triggered. +
    getParity() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets the current parity error-checking scheme. +
    getReadTimeout() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets the number of milliseconds of inactivity to tolerate before returning from a SerialPort.readBytes(byte[],long) call. +
    getReceivedData() - +Method in class com.fazecast.jSerialComm.SerialPortEvent +
    Returns any raw data bytes associated with this serial port event. +
    getSerialPort() - +Method in class com.fazecast.jSerialComm.SerialPortEvent +
    Returns the SerialPort that triggered this event. +
    getSystemPortName() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets the operating system-defined device name corresponding to this serial port. +
    getWriteTimeout() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Gets the number of milliseconds of inactivity to tolerate before returning from a SerialPort.writeBytes(byte[],long) call. +
    +
    +

    +L

    +
    +
    LISTENING_EVENT_DATA_AVAILABLE - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    LISTENING_EVENT_DATA_RECEIVED - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    LISTENING_EVENT_DATA_WRITTEN - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    +
    +

    +M

    +
    +
    MARK_PARITY - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    +
    +

    +N

    +
    +
    NO_PARITY - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    +
    +

    +O

    +
    +
    ODD_PARITY - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    ONE_POINT_FIVE_STOP_BITS - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    ONE_STOP_BIT - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    openPort() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Opens this serial port for reading and writing. +
    +
    +

    +R

    +
    +
    readBytes(byte[], long) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Reads up to bytesToRead raw data bytes from the serial port and stores them in the buffer. +
    removeDataListener() - +Method in class com.fazecast.jSerialComm.SerialPort +
    Removes the associated SerialPortDataListener from the serial port interface. +
    +
    +

    +S

    +
    +
    serialEvent(SerialPortEvent) - +Method in interface com.fazecast.jSerialComm.SerialPortDataListener +
    Called whenever one of the serial port events specified by the SerialPortDataListener.getListeningEvents() method occurs. +
    SerialPort - Class in com.fazecast.jSerialComm
    This class provides native access to serial ports and devices without requiring external libraries or tools.
    SerialPortDataListener - Interface in com.fazecast.jSerialComm
    This interface must be implemented to enable simple event-based serial port I/O.
    SerialPortEvent - Class in com.fazecast.jSerialComm
    This class describes an asynchronous serial port event.
    SerialPortEvent(SerialPort, int) - +Constructor for class com.fazecast.jSerialComm.SerialPortEvent +
    Constructs a SerialPortEvent object corresponding to the specified serial event type. +
    SerialPortEvent(SerialPort, int, byte[]) - +Constructor for class com.fazecast.jSerialComm.SerialPortEvent +
    Constructs a SerialPortEvent object corresponding to the specified serial event type and containing the passed-in data bytes. +
    SerialPortPacketListener - Interface in com.fazecast.jSerialComm
    This interface must be implemented to enable full packet reads using event-based serial port I/O.
    setBaudRate(int) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Sets the desired baud rate for this serial port. +
    setComPortParameters(int, int, int, int) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Sets all serial port parameters at one time. +
    setComPortTimeouts(int, int, int) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Sets the serial port read and write timeout parameters. +
    setFlowControl(int) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Specifies what kind of flow control to enable for this serial port. +
    setNumDataBits(int) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Sets the desired number of data bits per word. +
    setNumStopBits(int) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Sets the desired number of stop bits per word. +
    setParity(int) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Sets the desired parity error-detection scheme to be used. +
    SPACE_PARITY - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    +
    +

    +T

    +
    +
    TIMEOUT_NONBLOCKING - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    TIMEOUT_READ_BLOCKING - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    TIMEOUT_READ_SEMI_BLOCKING - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    TIMEOUT_SCANNER - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    TIMEOUT_WRITE_BLOCKING - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    TIMEOUT_WRITE_SEMI_BLOCKING - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    TWO_STOP_BITS - +Static variable in class com.fazecast.jSerialComm.SerialPort +
      +
    +
    +

    +W

    +
    +
    writeBytes(byte[], long) - +Method in class com.fazecast.jSerialComm.SerialPort +
    Writes up to bytesToWrite raw data bytes from the buffer parameter to the serial port. +
    +
    +A B C E F G L M N O R S T W + - - + + + + + + + + - - + +
    + + + diff --git a/javadoc/index.html b/javadoc/index.html index 286da13..86856c1 100644 --- a/javadoc/index.html +++ b/javadoc/index.html @@ -1,71 +1,36 @@ - - - - -jSerialComm 1.3.2 API - - - - - - -<noscript> -<div>JavaScript is disabled on your browser.</div> -</noscript> -<h2>Frame Alert</h2> -<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="com/fazecast/jSerialComm/package-summary.html">Non-frame version</a>.</p> - - - + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="com/fazecast/jSerialComm/package-summary.html">Non-frame version.</A> + + + diff --git a/javadoc/overview-tree.html b/javadoc/overview-tree.html index fbed346..5ede97d 100644 --- a/javadoc/overview-tree.html +++ b/javadoc/overview-tree.html @@ -1,150 +1,160 @@ - - - - -Class Hierarchy (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + -
    -

    Hierarchy For All Packages

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -

    Interface Hierarchy

    - -
    + +
    +
    +

    +Hierarchy For All Packages

    +
    +
    +
    Package Hierarchies:
    com.fazecast.jSerialComm
    +
    +

    +Class Hierarchy +

    + +

    +Interface Hierarchy +

    + +
    + + - - + + + + + + + + - - + +
    + + + diff --git a/javadoc/resources/Thumbs.db b/javadoc/resources/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..bd8ac39c84f08f499c0587eff404e642a397639e GIT binary patch literal 3072 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4vW`V}#5OV&gQz;CAAclM(EMZV!aAn8?(nSoFu&hiJEylnK&-3uI0f){9 zCf;p#CthG=2Fg2t2p}+GFl8`fh-WZnNMlH0uw*b`NCJwO14$DwI~gdG#9#qYjD^%< zU}8iL0xU|f3h_ei$0|vpAUXDvXa!#7l-Li7Gf+7W3Jy^IX9Z$Vna>Wy96-zo#9Tnk z4a7V^3@Rr^!SD$I31FOp;{Gcr5dcAe@SjbSydF*af8+lH1_3WOPd5feMrg+Vf1AOX zfrXiwg_(t&g@v7yot2%Fn-d7Q`FKEpPY_J;Kq&|Zodg-e$il|P!@(oQ!y_ib$HylE zBKSlg+60L*ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVgbbq z$X|?1val)|vI#i`vL_Y_D;YI%h&WALxbYyTvT@J{(WIh_Tw*FF4^=;cyax6e zaUN?T%V%(pA^dfVfrpt97>H1m1=A>Z2M>fQO1ziCV6nk8F*|G7PUU)q~xclU*z ST|4)8+X4RnHz8SIM3DfOIIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X literal 0 HcmV?d00001 diff --git a/javadoc/script.js b/javadoc/script.js deleted file mode 100644 index b346356..0000000 --- a/javadoc/script.js +++ /dev/null @@ -1,30 +0,0 @@ -function show(type) -{ - count = 0; - for (var key in methods) { - var row = document.getElementById(key); - if ((methods[key] & type) != 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; - } - else - row.style.display = 'none'; - } - updateTabs(type); -} - -function updateTabs(type) -{ - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; - } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; - } - } -} diff --git a/javadoc/serialized-form.html b/javadoc/serialized-form.html index 31cedad..207ae1a 100644 --- a/javadoc/serialized-form.html +++ b/javadoc/serialized-form.html @@ -1,152 +1,187 @@ - - - - -Serialized Form (jSerialComm 1.3.2 API) - - - - - - - +} + + + + + + +
    + + - - + + + + + + + + -
    -

    Serialized Form

    -
    -
    -
      -
    • -

      Package com.fazecast.jSerialComm

      - -
    • -
    -
    + +
    +
    +

    +Serialized Form

    +
    +
    + + + + + +
    +Package com.fazecast.jSerialComm
    + +

    + + + + + +
    +Class com.fazecast.jSerialComm.SerialPortEvent extends EventObject implements Serializable
    + +

    +serialVersionUID: 3060830619653354150L + +

    + + + + + +
    +Serialized Fields
    + +

    +eventType

    +
    +int eventType
    +
    +
    +
    +
    +
    +

    +serialData

    +
    +byte[] serialData
    +
    +
    +
    +
    + +

    +


    + + - - + + + + + + + + - - + +
    + + + diff --git a/javadoc/stylesheet.css b/javadoc/stylesheet.css index cebb4fd..6ea9e51 100644 --- a/javadoc/stylesheet.css +++ b/javadoc/stylesheet.css @@ -1,574 +1,29 @@ /* Javadoc style sheet */ -/* -Overall document style -*/ -@import url('resources/fonts/dejavu.css'); +/* Define colors, fonts and other style attributes here to override the defaults */ -body { - background-color:#ffffff; - color:#353833; - font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a:hover, a:focus { - text-decoration:none; - color:#bb7a2a; -} -a:active { - text-decoration:none; - color:#4A6782; -} -a[name] { - color:#353833; -} -a[name]:hover { - text-decoration:none; - color:#353833; -} -pre { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; -} -h1 { - font-size:20px; -} -h2 { - font-size:18px; -} -h3 { - font-size:16px; - font-style:italic; -} -h4 { - font-size:13px; -} -h5 { - font-size:12px; -} -h6 { - font-size:11px; -} -ul { - list-style-type:disc; -} -code, tt { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; -} -dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; -} -table tr td dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; -} -sup { - font-size:8px; -} -/* -Document title and Copyright styles -*/ -.clear { - clear:both; - height:0px; - overflow:hidden; -} -.aboutLanguage { - float:right; - padding:0px 21px; - font-size:11px; - z-index:200; - margin-top:-9px; -} -.legalCopy { - margin-left:.5em; -} -.bar a, .bar a:link, .bar a:visited, .bar a:active { - color:#FFFFFF; - text-decoration:none; -} -.bar a:hover, .bar a:focus { - color:#bb7a2a; -} -.tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; -} -/* -Navigation bar styles -*/ -.bar { - background-color:#4D7A97; - color:#FFFFFF; - padding:.8em .5em .4em .8em; - height:auto;/*height:1.8em;*/ - font-size:11px; - margin:0; -} -.topNav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.bottomNav { - margin-top:10px; - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.subNav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; -} -.subNav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; -} -ul.navList, ul.subNavList { - float:left; - margin:0 25px 0 0; - padding:0; -} -ul.navList li{ - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; -} -ul.subNavList li{ - list-style:none; - float:left; -} -.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; -} -.topNav a:hover, .bottomNav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; -} -.navBarCell1Rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; -} -.skipNav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; -} -/* -Page header and footer styles -*/ -.header, .footer { - clear:both; - margin:0 20px; - padding:5px 0 0 0; -} -.indexHeader { - margin:10px; - position:relative; -} -.indexHeader span{ - margin-right:15px; -} -.indexHeader h1 { - font-size:13px; -} -.title { - color:#2c4557; - margin:10px 0; -} -.subTitle { - margin:5px 0 0 0; -} -.header ul { - margin:0 0 15px 0; - padding:0; -} -.footer ul { - margin:20px 0 5px 0; -} -.header ul li, .footer ul li { - list-style:none; - font-size:13px; -} -/* -Heading styles -*/ -div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList li.blockList h3 { - padding:0; - margin:15px 0; -} -ul.blockList li.blockList h2 { - padding:0px 0 20px 0; -} -/* -Page layout container styles -*/ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { - clear:both; - padding:10px 20px; - position:relative; -} -.indexContainer { - margin:10px; - position:relative; - font-size:12px; -} -.indexContainer h2 { - font-size:13px; - padding:0 0 3px 0; -} -.indexContainer ul { - margin:0; - padding:0; -} -.indexContainer ul li { - list-style:none; - padding-top:2px; -} -.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; -} -.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { - margin:5px 0 10px 0px; - font-size:14px; - font-family:'DejaVu Sans Mono',monospace; -} -.serializedFormContainer dl.nameValue dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; -} -.serializedFormContainer dl.nameValue dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; -} -/* -List styles -*/ -ul.horizontal li { - display:inline; - font-size:0.9em; -} -ul.inheritance { - margin:0; - padding:0; -} -ul.inheritance li { - display:inline; - list-style:none; -} -ul.inheritance li ul.inheritance { - margin-left:15px; - padding-left:15px; - padding-top:1px; -} -ul.blockList, ul.blockListLast { - margin:10px 0 10px 0; - padding:0; -} -ul.blockList li.blockList, ul.blockListLast li.blockList { - list-style:none; - margin-bottom:15px; - line-height:1.4; -} -ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { - padding:0px 20px 5px 10px; - border:1px solid #ededed; - background-color:#f8f8f8; -} -ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left:0; - padding-left:0; - padding-bottom:15px; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style:none; - border-bottom:none; - padding-bottom:0; -} -table tr td dl, table tr td dl dt, table tr td dl dd { - margin-top:0; - margin-bottom:1px; -} -/* -Table styles -*/ -.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { - width:100%; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; -} -.overviewSummary, .memberSummary { - padding:0px; -} -.overviewSummary caption, .memberSummary caption, .typeSummary caption, -.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0px; - padding-top:10px; - padding-left:1px; - margin:0px; - white-space:pre; -} -.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, -.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, -.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, -.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, -.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, -.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, -.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, -.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { - color:#FFFFFF; -} -.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, -.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; -} -.memberSummary caption span.activeTableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#F8981D; - height:16px; -} -.memberSummary caption span.tableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#4D7A97; - height:16px; -} -.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { - padding-top:0px; - padding-left:0px; - padding-right:0px; - background-image:none; - float:none; - display:inline; -} -.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, -.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { - display:none; - width:5px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .activeTableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .tableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - background-color:#4D7A97; - float:left; +/* Page background color */ +body { background-color: #FFFFFF; color:#000000 } -} -.overviewSummary td, .memberSummary td, .typeSummary td, -.useSummary td, .constantsSummary td, .deprecatedSummary td { - text-align:left; - padding:0px 0px 12px 10px; - width:100%; -} -th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, -td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ - vertical-align:top; - padding-right:0px; - padding-top:8px; - padding-bottom:3px; -} -th.colFirst, th.colLast, th.colOne, .constantsSummary th { - background:#dee3e9; - text-align:left; - padding:8px 3px 3px 7px; -} -td.colFirst, th.colFirst { - white-space:nowrap; - font-size:13px; -} -td.colLast, th.colLast { - font-size:13px; -} -td.colOne, th.colOne { - font-size:13px; -} -.overviewSummary td.colFirst, .overviewSummary th.colFirst, -.overviewSummary td.colOne, .overviewSummary th.colOne, -.memberSummary td.colFirst, .memberSummary th.colFirst, -.memberSummary td.colOne, .memberSummary th.colOne, -.typeSummary td.colFirst{ - width:25%; - vertical-align:top; -} -td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { - font-weight:bold; -} -.tableSubHeadingColor { - background-color:#EEEEFF; -} -.altColor { - background-color:#FFFFFF; -} -.rowColor { - background-color:#EEEEEF; -} -/* -Content styles -*/ -.description pre { - margin-top:0; -} -.deprecatedContent { - margin:0; - padding:10px 0; -} -.docSummary { - padding:0; -} +/* Headings */ +h1 { font-size: 145% } -ul.blockList ul.blockList ul.blockList li.blockList h3 { - font-style:normal; -} +/* Table colors */ +.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ +.TableRowColor { background: #FFFFFF; color:#000000 } /* White */ -div.block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; -} +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } -td.colLast div { - padding-top:0px; -} +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} -td.colLast a { - padding-bottom:3px; -} -/* -Formatting effect styles -*/ -.sourceLineNo { - color:green; - padding:0 30px 0 0; -} -h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; -} -.block { - display:block; - margin:3px 10px 2px 0px; - color:#474747; -} -.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, -.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, -.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { - font-weight:bold; -} -.deprecationComment, .emphasizedPhrase, .interfaceName { - font-style:italic; -} - -div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, -div.block div.block span.interfaceName { - font-style:normal; -} - -div.contentContainer ul.blockList li.blockList h2{ - padding-bottom:0px; -}
    Download this project as a .zip file Download this project as a tar.gz file - Download this library as a .jar file + Download this library as a .jar file