From 572940bc0b44c9cacf7c40bf1806675adcfcd401 Mon Sep 17 00:00:00 2001 From: winternewt <76408211+winternewt@users.noreply.github.com> Date: Mon, 21 Dec 2020 00:19:18 +0300 Subject: [PATCH 1/4] Update qng_wrapper_linux.py Fix for linux-part of qng wrapper (added missing DeviceID) --- quanttp/data/qng_wrapper_linux.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/quanttp/data/qng_wrapper_linux.py b/quanttp/data/qng_wrapper_linux.py index fda16db..f1e8260 100644 --- a/quanttp/data/qng_wrapper_linux.py +++ b/quanttp/data/qng_wrapper_linux.py @@ -35,10 +35,19 @@ class QngWrapperLinux: self._qwqng_wrapper.RandNormal.restype = c_double self._qwqng_wrapper.RandBytes.argtypes = [c_void_p, c_int] self._qwqng_wrapper.RandBytes.restype = POINTER(c_char) + self._qwqng_wrapper.DeviceID.argtypes = [c_void_p] + self._qwqng_wrapper.DeviceID.restype = POINTER(c_char) self._qwqng_wrapper.Clear.argtypes = [c_void_p] self._qwqng_wrapper.Reset.argtypes = [c_void_p] self._qng_pointer = self._qwqng_wrapper.GetQwqngInstance() + def deviceId(self): + try: + return self._qwqng_wrapper.DeviceID(self._qng_pointer) + except: + self._qwqng_wrapper.Reset() + return self._qwqng_wrapper.DeviceID(self._qng_pointer) + def randint32(self): try: return self._qwqng_wrapper.RandInt32(self._qng_pointer) From b55bee513e6072519753aecbf1ea367b74d19808 Mon Sep 17 00:00:00 2001 From: winternewt <76408211+winternewt@users.noreply.github.com> Date: Mon, 21 Dec 2020 00:24:38 +0300 Subject: [PATCH 2/4] Delete libqwqng-wrapper-x86-64.so --- libqwqng-wrapper-x86-64.so | Bin 13440 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 libqwqng-wrapper-x86-64.so diff --git a/libqwqng-wrapper-x86-64.so b/libqwqng-wrapper-x86-64.so deleted file mode 100644 index fe29393700de14605d3230506145226842fed5f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13440 zcmb<-^>JfjWMqH=W(GS35Kn*yBH{p{7#wt=3$^qqj}I|0=PqXj?;7#J8} zGzY{O1{MYeFg^jYn1O)-omPRWgV7-MAfbS#B`F~G6Fv}+fdQRPfe16eXpmZvP~g*& z6p%YXY+^7pm>7bf_TdVb0I2_9G}Jp_zlks~FfcPPFu41LGVDBJcg_B2orbf(jNbXV zOHYXX><7mnNM4kIfdOO;J1G1GxHK487KA}V2KXPM#KvN8M-0R{<% z1qzUS4;5zk!3Yu;XPAK|o(MJP6*QGOLN)vctCzq~p9l6Y4?`R@-%3N(gYuaW11G}| zE~o&M(u1mJfvUHMii?5mmN4XGCKZB0Sg$x=&k)2bE=ft&)&_CSK-~1? zyFCf$DBH1||k}21XnZq823k0G!t#<#m8sB{u^D zJA(?uXa+_GCWd!Vc>@Lp29eB6UIqqM1|4udXJ9Cm%H#yqz-Dmu%nTQy>OnSKUZ2g% zz`(}f1XW*oaXmN4#lBE}iRL5@P^}dO)xQB+@5Ac%2heh12b%aHXg)lECcXfwz5`m$ zz|4X1Z^%Q+B~Tp>wG!k^h6hOEoL~_M@d8O4xoG)-Bo4I_tl>fKLj{t!Fp_u! zk~pY+1e5Y;e#7C>&3aWtfx)BoKnc_T3m(l!I1V%XH~l1{!0=!7i--aPzq|v(e^n4a z1ElTcga7~k|5tq_qQH;=ih`FH!2CxbJ}8O2JOJk30`Wmn@p1#0e+k3~MZwDjVE!o( z9~AU2CxH2fKzvY;zia^WcY*kzpnh2Z=5GS=K|%a70nA?o;)9aj%K$Kc5r_{;axWdg z{8=DADCl1rfccX^d{EMRsQ~78f%u>(cqstpe-c(;NSgriAP9T(+BS+PFob&avQ~n^ z#`1?p=hG5Nk8ajo!jPcijs5>1O^;u`1*DuI_An@v5PXkbTSt(-UQ;WuF`EB8I-hzR z{KxFk`N8Ah3wsa7V;&d(l}LDWvlc=PA(N~JvtA2bl!h43(UOnTH3So$UcxHNYM4)|NlOn4?H@Lzc}^p|Nm&mnApQ0 z13a4FD0p<%zDV)tW>M8(U|{g*bp2s?z@skp7X@&%A@AdWi+k_-k(cDw$7dq}{ev-XEax9bm(?AJg4|4+a! zwF*_Lv-VGC>5t~xKa8bDjkQ1i|7Tz*)%57K{UfNr@Z#K`|NlLDMehqLFnIKuz64R- ztePOI^Z1K{2!r;4wCx9F$`?!i|NkF*m;s!>!8w|Nfl->-I)Q)DERaLKPa<<(l7{v^nz%{ zssJCb$?UW53Mep0BbyJhL+S7T|DZN8i!>txgCn0n8={feGZR2C>~DYu^$vapZ@;;59-6h!yo`+J}38|Q?LYr@7cL49A4 zs}DmNPzpT83KEC$L1Vbce9)LJhz}csgw30R=KnzAX`qoU1_lPu01}7~n>PUsAc6R> zc@fZ@A&3tfmj(CnK=ZI5K?Vi}DJTsahXwUVK|-*;?$>|+^FjO%P=~_0XBkiiXn+hP z51aP{4S0e0=!*@g)0fI1LLF@XE<3=9lVWehO;{{4rzUjwS}Ka>x1#|J3?0o1~uP(Em25MtB7 zkg$1kblcUS0cr-N-Jo78*%b@f&D18h{UxU)mp!7E=4I6idxx?Mr z*-AkpG^sSNq*TFN&s5Jq*SHkSGpsYT&@(X6gowh_6K`4ON_( z0hZ2C#aS3&=@C_&l>rv7sN!r4u=Ic`&dvZ!SE%9~@brf&jyYcml4oY%Vi16aABYdb z%%G7jScZiOg4YJ{Fu>MzAPF-tGhohdg5;SQ_!u6-3I>n>6f-mM!`DGTg}@Xug8+jE z@*qA~6f}z?$nXYv5Fais1Yh?76#`St48jbsasn&>C72mR7_g;RW(H9P*nACCDVSnr z5MzMlf3N_QU}g|!Ku>QVDP{)Dd1Qzk#)&@3RPy{e2L z{|Yd?z>-d|g|jhOy*LAGz6@IIGWdfXhM7K-!0Iv6Lj_nIbG-p*ERhjQI++MokC_f< zf#>}}A&!dIfW>(j(AO1!)|o(N7*W+91*=CD1MzNv#WB}cfX1GY=Ltb-LHIXVJ&1*h zd6}@UpHT*jW0nJ&U~yD4Ks-Mj;u$!^dzm2f#vr}OcqI>3gu;^^e#8qW|PAL8o_H84Itr8qx6BQY-p zv~b8J($CS?(;3Su7|>c9@ERJ>!XK1HNl|%;xegBC^(W93B_OrX#XAU-EJ32+wL#!@ zK(Hl7@Z~qqWkwDTh&3yEmaxT6Q5Z{YKud5?ZH-4-cLSA)H_`*Gf{Dk}4qB-LRRnc3 z-UU@K*MdC(4hHa2BCsCp3$0)}K<)%DUjlob0piHCOwf|4s#K^8pw7gy8VkA(3u8SL z%F-av5+S4|RR}{(z!pPRNI_N*f!8`A;skvO6@1|lX6izY7tjK$aJ{Xa=%weEFzA(}R+KR4 zftS(g73G81TIr=`K+A-Tlp+Q=k3kQ#Kr6K(Ikli9z689u4r~~txPX`eW2aQ+CFW)( zGl1*>*~Op-F*&KYm_aW&KQ}iuuLQX?CZ7%JCxg0#u>L8ob;&Rr(EE#e3=9n4{{PR1 z>4)`aU~~*rBdi|^YbQa489?h%L0t%#eptT;MoU07g6st~tzi0L{a(=eaF7z1epvqq zM#K8&F#AAez}O(#gMono)K`Y-hxMaiv=c}XxbFgCz|_I$PzDADP~RKIhxNB$G;CoD z$o(L9!rTurjRCxF8zcwQ59^n~Xjp$Aq!*+IrXS}2Ja9XjfdS@D*!TgAhK)CX^n=!t zqU*1Kwuxcm8?f;e7!4bj0ND+~Ah&{O7%oQB59<%YXqfw9>S4`m7+r^^A3o3n?We%p z3)2td!{~N2{jmNej6MzvSf~Lod!by0UNrr%@gx`x8)t#3NB93^sD79=u>LBHMo(|( z{Ml&wajoyiW&cVv{jmNoj0UY0f$0U&uy6yhL3lHoepo*lMx%!py8A)>GEmnGl)gab z!N%WU`v=hV!|aFA7a15BKwWm2eptWz0CWHlrVeB_2*da=`Yvb<4O0Gu_0M7ZGhpM1 zuy}*%gSo2->VKI1uzvgvd5~=k44^eu5Eg`l>4(wJ(DcLm`_Rr+2Sgj3gz1CP@6q(b z#sxZ{`eE*b835A<<9}sfU;v51+z(r~J_D*BBnMLqqS52;7u0^xnpu!M48!zm!UUi+ zOg}OWOZ!kIVCn?a{svIx!oa`)s%JoUz}y2Xzd-p5=60|~DB%GO_z!53FngiO7(i<< T(UgFtEOfvW12dWiG%f=GX2uFx From ddc0e67712492f47b232e063bf0e01ada7773806 Mon Sep 17 00:00:00 2001 From: winternewt <76408211+winternewt@users.noreply.github.com> Date: Mon, 21 Dec 2020 00:26:55 +0300 Subject: [PATCH 3/4] Rebuilt x64 so lib to add DeviceID Code from "https://github.com/awasisto/qwqng-wrapper/blob/develop/qwqng-wrapper.cpp" plus char* DeviceID(QWQNG *qwqng) { char* SerialNumber; SerialNumber = qwqng->DeviceID(); return SerialNumber; } --- libqwqng-wrapper-x86-64.so | Bin 0 -> 17824 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 libqwqng-wrapper-x86-64.so diff --git a/libqwqng-wrapper-x86-64.so b/libqwqng-wrapper-x86-64.so new file mode 100644 index 0000000000000000000000000000000000000000..64fdf4f29b72a5451b78a9812faf8f90d3bfc865 GIT binary patch literal 17824 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 Date: Mon, 21 Dec 2020 14:07:51 +0300 Subject: [PATCH 4/4] Update qng_wrapper_linux.py Fixed missing arg for reset and *char to python str conversion --- quanttp/data/qng_wrapper_linux.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/quanttp/data/qng_wrapper_linux.py b/quanttp/data/qng_wrapper_linux.py index f1e8260..a31376c 100644 --- a/quanttp/data/qng_wrapper_linux.py +++ b/quanttp/data/qng_wrapper_linux.py @@ -19,7 +19,7 @@ # SOFTWARE. import platform -from ctypes import cdll, c_void_p, c_int, c_double, POINTER, c_char +from ctypes import cdll, c_void_p, c_int, c_double, POINTER, c_char, c_char_p, cast class QngWrapperLinux: @@ -43,10 +43,10 @@ class QngWrapperLinux: def deviceId(self): try: - return self._qwqng_wrapper.DeviceID(self._qng_pointer) + return cast(self._qwqng_wrapper.DeviceID(self._qng_pointer), c_char_p).value.decode("utf-8") except: - self._qwqng_wrapper.Reset() - return self._qwqng_wrapper.DeviceID(self._qng_pointer) + self._qwqng_wrapper.Reset(self._qng_pointer) + return cast(self._qwqng_wrapper.DeviceID(self._qng_pointer), c_char_p).value.decode("utf-8") def randint32(self): try: