From de600d05c846f4f3ebf987c2dbbe0ab6b1af61ce Mon Sep 17 00:00:00 2001 From: hedgecrw85 Date: Tue, 12 May 2015 10:21:04 -0500 Subject: [PATCH] Forced enumeration of ttyAMA* on RPi-B. --- src/main/c/Linux/LinuxHelperFunctions.c | 3 ++- .../com/fazecast/jSerialComm/SerialPort.java | 20 ++++++++++-------- .../resources/Linux/armv5/libjSerialComm.so | Bin 25673 -> 25729 bytes .../Linux/armv6-hf/libjSerialComm.so | Bin 20784 -> 20840 bytes .../resources/Linux/armv6/libjSerialComm.so | Bin 25657 -> 25713 bytes .../Linux/armv7-hf/libjSerialComm.so | Bin 20784 -> 20840 bytes .../resources/Linux/armv7/libjSerialComm.so | Bin 23668 -> 23700 bytes .../resources/Linux/x86/libjSerialComm.so | Bin 17244 -> 17292 bytes .../resources/Linux/x86_64/libjSerialComm.so | Bin 21056 -> 21104 bytes 9 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/c/Linux/LinuxHelperFunctions.c b/src/main/c/Linux/LinuxHelperFunctions.c index b46424a..5f2acd5 100644 --- a/src/main/c/Linux/LinuxHelperFunctions.c +++ b/src/main/c/Linux/LinuxHelperFunctions.c @@ -151,7 +151,8 @@ void recursiveSearchForComPorts(charPairVector* comPorts, const char* fullPathTo int fd = open(systemName, O_RDWR | O_NONBLOCK | O_NOCTTY); if (fd >= 0) { - if ((ioctl(fd, TIOCGSERIAL, &serialInfo) == 0) && (serialInfo.type != PORT_UNKNOWN)) + if (((strlen(directoryEntry->d_name) >= 6) && (directoryEntry->d_name[3] == 'A') && (directoryEntry->d_name[4] == 'M') && (directoryEntry->d_name[5] == 'A')) || + ((ioctl(fd, TIOCGSERIAL, &serialInfo) == 0) && (serialInfo.type != PORT_UNKNOWN))) { strcpy(friendlyName, "Physical Port "); strcat(friendlyName, directoryEntry->d_name+3); diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPort.java b/src/main/java/com/fazecast/jSerialComm/SerialPort.java index fe9f427..09fdc91 100644 --- a/src/main/java/com/fazecast/jSerialComm/SerialPort.java +++ b/src/main/java/com/fazecast/jSerialComm/SerialPort.java @@ -45,7 +45,9 @@ import java.util.Date; public final class SerialPort { // Static initializer loads correct native library for this machine - private static boolean isAndroid = false; + private static volatile boolean isAndroid = false; + private static volatile boolean isLinuxOrMac = false; + private static volatile boolean isWindows = false; static { String OS = System.getProperty("os.name").toLowerCase(); @@ -76,9 +78,9 @@ public final class SerialPort } catch (Exception e) { e.printStackTrace(); } - isAndroid = true; if (libraryPath.isEmpty()) libraryPath = "Android/armeabi"; + isAndroid = true; fileName = "libjSerialComm.so"; } else if (OS.indexOf("win") >= 0) @@ -87,6 +89,7 @@ public final class SerialPort libraryPath = "Windows/x86_64"; else libraryPath = "Windows/x86"; + isWindows = true; fileName = "jSerialComm.dll"; } else if (OS.indexOf("mac") >= 0) @@ -95,6 +98,7 @@ public final class SerialPort libraryPath = "OSX/x86_64"; else libraryPath = "OSX/x86"; + isLinuxOrMac = true; fileName = "libjSerialComm.jnilib"; } else if ((OS.indexOf("nix") >= 0) || (OS.indexOf("nux") >= 0)) @@ -131,6 +135,7 @@ public final class SerialPort libraryPath = "Linux/x86_64"; else libraryPath = "Linux/x86"; + isLinuxOrMac = true; fileName = "libjSerialComm.so"; } else @@ -188,7 +193,7 @@ public final class SerialPort static public SerialPort getCommPort(String portDescriptor) { // Correct Windows port descriptor, if needed - if (portDescriptor.contains("COM")) + if (isWindows) portDescriptor = "\\\\.\\" + portDescriptor.substring(portDescriptor.lastIndexOf('\\')+1); else portDescriptor = "/dev/" + portDescriptor.substring(portDescriptor.lastIndexOf('/')+1); @@ -259,11 +264,12 @@ public final class SerialPort { try { - String grantPermissions = "chmod 666 " + getSystemPortName() + "\nexit\n"; + String grantPermissions = "chmod 666 " + comPort + "\nexit\n"; Process process = Runtime.getRuntime().exec("su -c " + grantPermissions); process.waitFor(); if (process.exitValue() != 0) return false; + Thread.sleep(500); } catch (Exception e) { return false; } } @@ -659,11 +665,7 @@ public final class SerialPort * * @return The system-defined device name of this serial port. */ - public final String getSystemPortName() - { - return (comPort.lastIndexOf('\\') != -1) ? - comPort.substring(comPort.lastIndexOf('\\')+1) : comPort.substring(comPort.lastIndexOf('/')+1); - } + public final String getSystemPortName() { return (isWindows ? comPort.substring(comPort.lastIndexOf('\\')+1) : comPort.substring(comPort.lastIndexOf('/')+1)); } /** * Gets the current baud rate of the serial port. diff --git a/src/main/resources/Linux/armv5/libjSerialComm.so b/src/main/resources/Linux/armv5/libjSerialComm.so index 860ffab8b9fd376246333057d1744f6f649ea14e..9feed05b6f593936a39ad40a7c66ca1ef6e4813d 100644 GIT binary patch delta 4938 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 delta 4877 zcmZ8l3viUx6+Sn+o9u=~vdL~pLN>dbhlxTSJZyLb6CP3_sR@!2UKSXgvCd$HX)1N3 zU9eQN8X;b=IKr@ufUylFaZ@MKXvJbB8Z{__)Y!@HvLk|aWX4BSgnr*X;FmkI|2f|| z=bn4c{m;Gsy}PMj^&eB)ylPjwugKjwRfIo_pluXUATe1lX#481wq7WE0eagv-RYbi z?Yd|i+qG(awYa~&B|YO0BbPRJkDN8Bo?ysanX?>e5Y`|kM&X7xF zZ6b<7C3>aR;Xh`uX+ocEh_oSLvmRq~K+ne9DltZJnMhS4<|DuxZh$h8>HceC`W$v$ z2LHpr`>tS@e6PeWgP8nR6G^qgVKW?Jj98LKAivdj_2sO`Ks{F+WXsxX0-OT8VS>mb zi2!HPzDOh|f!nVMFw>HS!3_?(5x`Ns$>wnw^L9bn7woqAQ~jN&v9XA*D?tP3Oxy(O zDnaz5vqYAV&J$Tdnkur2G)?3#((xj{B%O_-AZ^5JAw_MqlGcm-mK5({1L+LZJn3Xi z*Jd)MNRf1k$m675yf;$J+jdga=T1^Aie03b!p@gOvN0W9q{yd-6w}d5iU9jat(Xl` z8)kttUE~<)M7#phQGP5AGIkUv=}lN1q@z(>q|;G!q!m~cq}Pd@B^@L38EJ;d7o>Pc zUy?dd)TEgr7fJCt1OaC|u_#HWiC9TdxOP%MrYM8VB&;D)%zX}Njz~Ufu85a350y$f z4#h+|A1jA6AJt2WqMJfmATpKIBT_?JDN;vTB{G+^5CuqzB5DBD6EeN#=I2C$`!aW` zh4SyM;q*5j56}I&FPh|Q4Ez)WKf%Bk8~A(!@6^+r9@VUuI$La04lkWGu8(_Io$`roADYsD93{Da4Kvl_fz;MF!{*RB+VgYd?Pbv#Ab*7BnQ0Nr$70K z9my;G$?w6(Ti7j3ktizbNHoTzbj}KS&*-%yBDiHy4{_np4a=`=hZCTUNA>}r#~pD zR=Ik#XN&92i-q^68O0{hjKr;JWM6 zlq(-b$pos&!|AKKt#pnW)W=J+$}fEvm$7Kx0iR4I79?;(#-1o=mUuur%CgjHT~f9M zQ+2S+qaM?5myL6EvmaIqW;UHcr@_}N`iHXd>R9lG8=f(Z?)jD#9f z-!bh$)vHfWyA1yH^!t=q&!6GJdFmcKd-bDuq9E|xtovtptY&-+1>Y6zn^&tVYxY

d*+e<%rlI_rW`y}^&>SW__anOoX1^8NE}ROaB`d8H<`MEB44SeVpy{rUVN%Pw%c zv}-|;r2_|q4n1>0k&UVHKyB8JTeI|r1$GNhI9<98x*l*nS9Al=#ZKD#V|WO>Bofe; zdT@uymDd;9I>2>I#|Jg$YfXKI>d?QdFSYbTHd*@`vUDG0qTjAB#RPtZr%$^ZN-ck^ z6M0K_WBe5j8LCO&+fb_3>K%9<)i1}M(T4N>98z$;RB+Ov1wmazch|Cc&YE$5JNBW)hrA&^q+$+y1GxYhR;B z?bNgI?9r3MwjfOL#HLzbGDx1YJ0VSC1)5SyxC)3)_SjE>bDs%`wtp0^+N^>yxF0^bSDJ&MbW1FQq)R>wx{2R07)IPhHfYfb2%22QRmh3Pt=@WQz*u1Q1` zgn<$F0dsR5N;r5O*qFgPz{R+sm=pa^0UHCviRVWNTmVk4eueAqcZ}E=p%sp}p4k|o z6F9j&u)~eOvE3eeW?T(yobtKAy_hjpHTAb&gIBV@;gyx#3xRRU9{@IH#2VP8FZ{e# zb?S+WJ*rDD#Ir}QTU_htMWFb8piZ*oCKI=iBa0h-#_M|@q-PT8@OuA7%xYpwfr zHR#Jf8p`1$x##i^kIBHsUbVm@CHl#h3LlF-KBP;Y1;gbZz#P)eN5I>3sAZ0-(^A@>TPB#cYx?g1HvSFN51f3}oSP5QM8CV#Q8-}mIRcwO15U;DdC;v>mQ|#jIIJfv xt0?@?pnV3~Ap?F6c=)h>XxYsU<6jmYoJE`U@ns{aQ|8@&-_rHLcbC6l{Xf2?=w|=` diff --git a/src/main/resources/Linux/armv6-hf/libjSerialComm.so b/src/main/resources/Linux/armv6-hf/libjSerialComm.so index 4fb20edef782cd5af7c58ef99e0fd864a3de43fd..e1612008fb1039b8dc568eb8c44a836e2368e445 100644 GIT binary patch delta 4446 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 delta 4439 zcmZ8lYj9J?6+UZ8wqyj6Yzb^*Taq8x6tD%@fPq-Xyqi!=F{Km807Fue32E)t6GBTy zFrgu7@c>yuQo=)_z(7iw9}ntjjw6YUiyUlX8V4=IV?k_CJW25y2?~I7WGw^}%>#M>AEl2vxn@DL2>}(FXd4C!D=jqn0+~NlGWW?7qM2>hxmcxVm zTkt-g-j!9qogh9~rn515Y&gSHZ7APqJ1A zD-GHvXj_oXlc{7@Ac_@sHl|;VDCSC(AeGfI@P$KROigCbBcpx=KZhZHH@Nu$cgr0m zLFqz$x24i_-`&n%~O2S zBMIhMaz(s`fSpL7Os}zdoW^;(p)Cw|+Jc!uJC@NPmLr9N&g31PBJOgLL&QlU9}=hG z-V!rKJ|Sj_d`cW9a+27HnGt7;oFQWQbP=Dx%_QPJTp~^o=_Zawxvo&C5a}V-h+HRn zMQ#vLw?5)nkz2%ZB6o=>p&d97=(q% zr(nl@BGzL46Z>O%5yxX$5%CO6Ar26kL3|90is%q&BH|u36P+SIBf6I~+D z5bH#qBf9Z~5Q8XD3x!c4ZA8@mWn!MlDq=p~0K@{3wZy?#48)lt>xqRT8;MwSn~B9D z?+`s$gv4r*5YaEPn^+>UkBCKd0H}xOc+H1)h=h0N{6;mM*budyS|8ng??_xy@-~CK z*&wes$ZHMqDudjn>s+O(LqF}BZ`-^bnc~-`kGdAvY9RUXb7-G?f%D8ZEU!>5D56$}B2WGI{x#`nilTG& z8p<0k)xZt=IrucTx%;v@4_MeZNWo~S*NI}1b^YJQaj{O$; zeogD57K|Z|?QtvPN>dCOXG0f^%!a}Q1*)r&$g6GW1R1xxDYgVoN4)1FZ5&L#A9)&q zl|2+2!yp?&5i0^#K(;tS5gP``gG_rB?G3O)H8T|(^S@0ZS&?M4pG;;RL^mpjQMD_z2 zWF-7>dtw*BUD6(>{13<|b1V;>r7mp1x}a`xvfLLbqudsh`&3HLiv1aKs@lQG0T46p zBM0SR2p-LZ6ZO=+0W8EUP0}2}jK9MfGhwq+U(JJT_UWr%upecmuf75~p@;l)$f{v& z^k4Vy_qt?z{3Y6eZNPqr@!7qJ$gm|8nGFXjK8KFXhX+wanu@2MrlV;IcWW-z&>?9)=d5-d?T=TDIupWsB4w zb$NM(YSpvK7pQ}JfBCTdC5hhiV|)zZkFq2qEz@6>FICIKbB1IocNv`069`a7(3ASb ziplDN?ySfik(ttQ(VY7a(n(DvktFz&j-7E1K;ETqR^+OPwp6Y|soE<&O6w0Q2fIIF zKRhj{Y&Mh5LaY<|pOwSZnXql>yQcm}ZgYhvSM*1^bGS$C)SnNJ^`8p8HMOW3^|2Ad zY-6dx@~I7fGoo6l^WpO9fXe5t4&N5x_aEPs#10YD#S8fre?W;o>i>nx({&^7L#`XO zVp`7#e0pI|w?YUR(u*s;y=Yeu4TL9n!PvJef?huS);4t|ap=#Jg2`Yh8)Oino|mAFC_1 zFnv3uL2r(?TeydDXy^D+iwlyAYTX2VVymo|Kri^@iGG6;_BoR~aqpMc`d%}>6zFJ){afq6sCrzZ+^AoQH)B9u- z_Q`C_m(3&t63C?4OoGh=8dGO8rRv7)liZm=&LPRMnLy(#*i3@23>)WyW)eK!++HT8 zlu+Q=N3-hq;~!_BdVA}OGj3Js6ZOT)rQ`KK!7ZH^2>3X0-W!F30f$T{z@q}*94O^s zc%{?i?L7c(nk#VjvTAq3?}Jyk9um!-h{;1nn$zo~fpbi5l9SDzh|=VJ$Z2meaQ5#o zaN3U;IP5_w^g)|w$ppB|PICshZr}{iXW+E2E=_u4f{6)mmz`|M1h~a~x4FhLFj+9lTNc1O-Eo5ln=?6#Q#P<|<`Xs~vKVra6{LpA$l?q7C0husfI_DwDU)GD9xw7HkveAsm&XNI{9-lC6Bos4g|ZQ2B9p&`8wk>^4^Z`y2iK<}Bh z$muoMzOdlzpxx6wBg+ihF*rjRlb8T*Ji4}$>u0BXd`7Q#pf&!%aGG52neHhup7!rR zYy8{6hJ$2Rk^XXem8#M18Pz`He-JxhG#>Te2XD~N&ImY-C*u+v^=kCt8MiW@STSYh M^Yg;tnTNCf2fsycvj6}9 diff --git a/src/main/resources/Linux/armv6/libjSerialComm.so b/src/main/resources/Linux/armv6/libjSerialComm.so index 08023df8c188297ff0121090bdbeedb6b2f7f559..09800eca33133af2c1bf6fc740bb18f15fd957e1 100644 GIT binary patch delta 4988 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 bByJpHTlMyPug0wYSzYPFi#wlKam4X|<>?$R delta 4927 zcmZ8l3viUx6+U+#$!=I=H!ny`vb%W@9(f^T2uU!(P%0!fK_U>)0Y*ohF}Bdgp^UVP zuZlJl;sqy;GOT0J)LHAsPzRWx;9#YSPShwU*k(8EKtVd8RT~wh-?tC=;m+)T&Ueqb z=bm%!x%a>SUOcMyA645usmklRxw!k<;pHj5~bXx~22t~C?wK?s8Y!LEnzPA^^b z^pejXO+Q+;;^aebe(Ts!HTpqP-`H8R3iO98<)$?~2ShBe;F3%Uz?3Cd=9G(<*J6B7uTM_Pt;a}O++q?L@`$uUgZO{I z4*f!Mo$pAYND1a=ZykD%80N``-D3v)39OA4K_7b5-*w%*1(ukUre#qGvTRG;)nIcjV_xUhz$5aU8k?y(9rwh>Q zHP{~pe*Oy1kRO!zWDv>U7Z0if2Ag0Ib3}tYjQ)D>)y3I>i2_#)WXihh9GnH*QGy`i z4$h^1fyksd?z+ywRBIY0HyG@L0|WYDyW3@qI|IFY`}^#^Bwr6|Y$Cktjni%nCcYIk zqX^!U&J$@NT_Dm*nk2HEG+E?M(&-|rNpBIkhqPJbK2p?HJ82`9i4^P5L0Tj7Thf_G z*CsN>*aW1rL>?pcAY@YHt&xt$c7Vh1Tw*t1_G6Y1zBMLYpgq$5ZQ2ltZNkPT8h zvOt<5a)@*WYLj%F51WIG18YKBiOoSe9>qsmjiMthL$Q(GATmrkLF6>4Q{*fu*61rz z7mAuRRpe_@EXNpWy2vHcIY=!6$VA~@9$)*dVp(o+S#L_eAF^CZWM$mWavpJjYzvQ{9V4Ba*E;x% zuo8brZT5#&{&e}g1Y5!wp7IFz(VKQh%oW>)rDAL3Y@D}%ACB`j@UqSy5?MC#D#oN# z9FJIJ$q2m59#?-nQYNhNX6M?f%dd@K&ckWQVCN@RXO+T)jVJLthp7)&3Btsw6Le7|xT; z;mP1_7)RMe@U)Qx9UJ>ocSpecLdv;q*n$oUEKvB@k1$X%6cNOOMbD-I%90HR#-MY| z6*UkY|1~hjQg0^o#L4lCN3adE(<`=y&FHW7_(vSbTMpz5WIM(u|Kx*mOG`K#Rqd$Q z71@kVv&SDAp%X|Jwh;^<3vdQ|FXbM{Ef`FvsdIz#i7@dH_!Lk(oUma01Ud_x28um? z&M0H_bToi5b|08mz|aUb^*L0;$mhUF?MS+8jSzndoKwFwG6|UJ{*v<5v2=ey9_h9s z-S2}>q?vKL&0c+!`L;cJSojh_kUU0$omEjhY6cd6Q~yK>XipY@*H^J<>%%4<;H>reA$ zs%&j{Kbmpu5X;}2c*rV@)Z4DVEL^4f^xUFi>-~`J)$@wd^roWus#hN_nyyyr3q=#v8f~3? zxAk7gkLbS1X?pYI(TqG=kNYx*JS@JgA1`jWx@@6(ye7ZxYua9;7@Tb<}&{ zCg<)5Q%?LL<;a9F3nz8%lqZnmJyYDdTOkitU~8>@<_xzL-a09ahuP}ap($zVkp5=M zboE}pcj|Ly^@cuJGBGRo-R1N3*l!M$KKGjqGm1y zLFJYAk1u=8uKM~9&aP8gyc*&iB)li!-4nfLVx^>4XUwTn-TIC>52>L3XwGHuA62h4 zT`JYpHF>77GQFZE50Z^FZWPC}cy7}BYuvU=rFbLaZK_=h>a@Fdw~Zi(w_mj5tGUnU z=jNtZ*@2R}`D6W;+N24!oL9Ypm%InwY(jt7x(Qq-xCZU1{gYl;{|RT#n|A;+_kS^O zRH3*A;m)~UZ-SYX`&ZilumDzN%-!SL(S zMFn=o%L}6(uJIDgy0#{@MkVS9m`U6<#-Y?Rvzae*kTyA55-4D)R zjTdm#)}4(`<<}217F!RauT;C5(sZEFX&SB8Z#GWG4vRDvE0-SMRBU~)UgUlK0vu>+ za;kcLS5vWCtslp8uYNW9{Iu!3FL8S}%@MW9 z51$04))52doV=UInj>oEKF?K5`4$7__@f3)`H%ra?vq(w^hR6E0bcGCmD|>;i795_(>IOF#}_`S|>0K@N*}D=|I)gtC(_r zt;AYve7gZt9{oIuDnO1`jC?&krjFR6OTf>SSc@4rjSX+a&&P`e*SV-Z4}^sLA7HTI zmXv#WDkOU8<`ttjjOa#CFJ8ifWj&ra5SEnt5>+m!@^7G#zzUca5>?HDHN!*#D`0+0 zUYdcMG4xD`<3?Z$Zq5Ny3>O0P=(#g4F9R0HgK>Eczxz(WWlvn85eh9h!&b-fGT;pDV*a=(a&GxuQ{ZKIC0bpkO zRNTNjz{UtZ1kR~M)ba7hfsGF0B6Upw7l9M!g2I>d_w?B4p$&$()7j`@I&k9P;DBks ziKS=6vw@8%pAQ^F##rx^-+mol#qowED|!GO#*}XaHb&%vp&dGON1f`?-lcB5?dRbc z&}){~xq@&MZx_@_rc|1Fxb!V;_8R{g7(nl-csTs$;N7T}cUk#OJQCV5mj7Xt!bsvY z=6@+OfsLc;fJck;Bg@LX+y=2JGvq}uJQ)1QAQ;V2HA1kdji_q=AJQN=$)B-trJzi#{VFG34BPeZ*zN%uI@yy@o%KR z10yYM?))PL+hgcGYQRbO;2zA?|7j~T9Xp`&SCr)s8l=xbI%L2v1D`mcf4$;nm+?;y Zw;jijKD=Tqsp0+=8!H?7-&*;)?f*wj3043A diff --git a/src/main/resources/Linux/armv7-hf/libjSerialComm.so b/src/main/resources/Linux/armv7-hf/libjSerialComm.so index fd5d915b23b79cf4b4b87892f531c700ed718d07..fbd3ba7917b4131690605b9e29365b1808124b5b 100644 GIT binary patch delta 4446 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 delta 4439 zcmZ8lYj9J?6+UZ8wqyj6Yzb^*Taq8x6tD%@fU#p4^Gq9xDW-G+8K5K~9Y||hPk@$; zV3L%i#RFssNeK^y0s|?bb_LUmO%_7(G z+bd?rfBdUu#alKvHeT&LzBcRB%U!p6P0AIHn5#1u+W#P8Mg*q}l>G>0EfP5eo+Eb2 zg28XF|J5Wi&cFx4udfOhv>fR#Zy=>fu(LVj=KaO!pQo2)c&V!RHNyF*TXpkBs^y{2Ye(J>cdC+%0#M z1f?7G-I_|f9RX_)5Mv~!aTNMW-^2PZ$3U(J0R~FjBMH`k&l@iCS}MWE;lHUAHBa%4 zk0h95$rbS$0(K#RGQGy;aT@3ChPE)=Wea8o?N~;GSdJ75I+J&HiMY!}4iYDbd_bIn zdrQm|`Iwj`@(FR6$O&RIW=5PLa+-+c(@p#iZYB};;UckKq=z^f<+@CvLZp{iBXXVS z6}dq~-TH`QMQ#ztiQFZkgm&OSl*2*9d|X77Baes#3yD@#gJ?q)h}kGVaU@n2v0o53 zpMo9tiCByEPwbE7MI4W1MZ_~Oi8w%H8u2kKDxyQAg@}99N_2|+fS7~(M#Sw{Ky-;b zL#z{dp6JFCLJXorZ4^d{v=dSL6~sJ|Rm6O}0f+@6uMh`gF%X{+Sw}1s*+9gi+e9oD zd7J3LA|zIegou8TUBnWRy+kac{XjiD$7?>gT_n6K=Qpb5`1+{rYs#R7W=iwg^H zE94Ej!#&l~wgp8EUvQtxuxvt^R_a4}i&a1u<%ff94igd%EnDDu>Q?_ZP7mMA)B zuc6!)id-MHBX07q?-74T{BlY*L%x`jt&m0L#NJ1rZ2!5qS!Tudh!pf|Iv1~!*4S^M z@7J<6YQY%d*cP`kuC&CEaW-_p$P6eOu#JEA5S8oZ&H9i7|jY@iKEn9+X#lLgNK22CPYjYiI%nf?x)n8-dL zgN%e9ZcpqyxJx?Xl>Y%4Wsc>6v($x6SQpeSNS6BoWt7{3a-U4;S+PGuPE|V?*$-mI zedM4V48fzBaH5{N*MWtYrAb;NnDMtbVMMDW%|3nQbM~XG^p%$&C-jhi4p}w5 z68+cx`&V7EE&d{Hz;<9i#Q5}H12Sw2MP|T(iqBwZJ>3z#vHnPJ0p2Y4@XN-peI*_; zym?IcW#AQ9+$ypsS2q@Y-@Tnxe!;s$ZP6FJ6V=~! zk?(J+S;u`^4bdx0=I4JKomnc8H{`VEQURLIDo`r^tBXHRq(C?PzIuAjMPw!Q(30gMmV`cNz zA9Zk@05pAhli&Aw|dX(1hR}OZ6 z$bNWQP}yuIorPG(^*<|zsncQG(05Gz58vhrPp;?>b=Po@+Mz!i9_v3DdTVM?HS41z zhS|nagXL2j{(3~UQs=_u)d7{yT^+tH!tX!6DTy5-ri&NyOa6coeZ>C@m8a`Q-iKT_ zYWbAj5%~1No^FK@GUO_*`1Yb*Mm&5BAG9wZp@L{;#Vh+?uF^fDyYuelRBuU*LgCTW?z;5XMPVxJrvjH^-Ns%>Xo>z((mHBOMhBlkt#vKFOU4%0C-roJtrnv%VFROMp{XTe^>mkwXiI_ZOq&dA#7&yn|COO&ci6|}Jhn)5{184tE z1E>A4fx{k@LLan=mP~-V>@;V9>jusMeFjeZ>e8e)CYYE2ciG97OmJ)2L(cv@%p@D_ z*hZcxf2g1XPcO-q4A6r;Zkp51b4Qvp0WXdTX-+$j4QWn$tAW#=IHx2W5Fg{q#bF7C zOL7K0HzZp!fm3(_jhqLUWOFBGeA!^<0DNMT%`TT9+%Rw^p zUgv^!{xy8kT!FJ+dR=qLnlMnBEAYp_Kf!b3g#-S;$9#r9@HTyH@YZBy!?t$Ue!Y9j ze5co7``m)FgLY5#j4U%~$KVWQOrjp#cywJxuAiOi@fp3|hSvB8!zpsTd#b0zc-p@M zt?_RM8xE4)Mf!`WRjNk2r&arm|3Per(RkE<54=e~J1yWeo{URy)T_~lrrpY{S@Of@ M7Ox10pE#8DKfsD_>;M1& diff --git a/src/main/resources/Linux/armv7/libjSerialComm.so b/src/main/resources/Linux/armv7/libjSerialComm.so index bacee1577f2fd86e8ee9624a53670c5d17bb52c3..2a5e6d9f7adb77a2f4cc4d66d7505ad4ca13d969 100644 GIT binary patch delta 4950 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 delta 4924 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 delta 4110 zcmY*c33Qaz6~1pKlZ6aSmI(>TWKUSKZ<7S1giIJkOkonphD%&IG>0nZm{F+2NgSdM zlbiw%gxb_{4)KUJS~TwBX>d{!g<6);$EpMlV#hy(+V{RF=q_ryn7AXp$+c63$DI5VHf z|J(6_&Ah+#%A4p9kzOLCy=(AH{f)>@^g+5`somj80gH zmIfBT53JX)d2UhId^((8k$J<5LCBA05$WMHd-V|P%fL5fzYTm8#Q!MsPX}{0?G@yr zory&E1_;)Huoi^5n8$=0G44S$-VMmNU>hMpgm?VN!Pzty@-OBRS+Nk$p9yE@1XDO8yf!js zgPrjv%x5$bB{1HMhs79!Tw$!i!(v>9TwyH3!(q%vIEuKFfjBZ25LGfFM2i_S@oX52 zh?X%H6D?;z$b?TpyrF2g5*^}>nP`YHj%b(>M`V;Sp6D2(jp#UI0?}U>aU}oFxPWMkF$YJR5!rl} z5lN&lrVx!YA}Ln8$HNtgP<8oC*ss@pTvZ2`oA&F(eR4dyN@U8sm{qz{xw0c>rEtq* zF%D5Om>k<9#PjlZ<`;F}&zB8xTSSLE8F$+C0?xR5e3R-lDl@)URrhdI_mIcF%d|BS z&%ixybSUz=s(S2wz3ykuX?l-+ySt;0Ok2N(3toF)=cXAUrtT34+Z>Ud*9)F*=r?VB z8=`wCvaU{bZg+U>`;?zw3y^PP^{;qp$G+k#F87D3=fcHTuAaEn{hi+QU!=}rFWZw00=zcKwzcFc8S{u7wr z+c8i)^bV4bF1^&$v|blM#QWKgS^g(8vT0+leW1>{B$7-8UPJ$T`$I~H?eL(TaygB)<-5B&7;W#2D%OP-l_cbcX=r;Gd zyT4Y|wT?z*7HhDp)<%aC!&Az#imxb@SO=cn#{%nFFS8+Y9qB=DbR!{cgH^Rj5tkvB>FL2ArGWl z!WMy`%ZEi$%fzakX$x0(!@8Nd%9TVvOXu0EN9;aww1ueUN9-TWP;|lU4HvXHF}u@J zU+?F>8-wQ~wZqq>oRU3hbHZ9Msmpg-4y0A_YccIE(JpUG&l0QT#`Hw7MtajNVNICU zFRZJB3n_j&$P4Q0AwMWZR-t%K7H8FmJqDe| zmo+zRrPlvw@U5&#QGMHaR*c}&6Todas%iMl_24~+du$@L;ZwH-0~_!qJOJDS zJO+GLzOi7QcwK(BAX8YS$SD**lf^lyVvDTH$raaSM^3Jx7EbW3d~eXE|0Xw9M95d6 z-y=VR{$)8cFV}D{_Mnqr+QLmw{LS*O#Hi;Y290l{-1MkHxFt->xIm$CNyAM~xIYn< zYS&f&04`E!wYc+e(-SUKXcwksE>QTEFW)RK5DD_j;;QItP$CWRi>Gx!v$U3^iYVDo zQW$MS0mV(g(^J3%xx1v$Hbp0BwpOA{`6J*@B&e8?8|&jCPq`!DPCn$xB{H-$B|5lP zScl;dX)Uc1;nG=J7!zD~%t6wz$E7RNgKMP$3{OR#YpvHHZ;;t#g&7lAAD47Q59=eH zYEp=9#sXX;tb#mYk&l$w@F?FYOA_Q*G^sV;L+ zA+Zyq!IjS*w!)ors&M%e((qzO0jsUUHsl>|AszRQCgTxKo`CAqph8ma$4 zd8){g-Q|Vp!DZ*4VIN%YeG0iqo-VJ74la+HaR09z%&s^Uq5Ef?yuLKWz~MV6ldCfg zoU)_RUY!~0FOlVg)fooP(;m4SYOSJ{?^kC=aBiBB6(KUcI#y0r8x5SD338?_)1Z~w z(rU{L<@#wdU*2WQh~S4`i^`^7-eZfEeKun#r_Y4~`3jUAglkYP*4V~vQMzjd@_)9u bB2{MB%tI3Xv}RsHQ3a|1_&(L}B(?T`bd*xE diff --git a/src/main/resources/Linux/x86_64/libjSerialComm.so b/src/main/resources/Linux/x86_64/libjSerialComm.so index 36edf13fa4ff47141421a9f591e7c6aea1f9bdb4..ba539d2d9fc34aee8232721fb2121471f8f6c78d 100644 GIT binary patch delta 5993 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 H-(CFwW9tln delta 5941 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