diff --git a/libqwqng-wrapper-x86-64.so b/libqwqng-wrapper-x86-64.so index fe29393..64fdf4f 100644 Binary files a/libqwqng-wrapper-x86-64.so and b/libqwqng-wrapper-x86-64.so differ diff --git a/quanttp/data/qng_wrapper_linux.py b/quanttp/data/qng_wrapper_linux.py index fda16db..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: @@ -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 cast(self._qwqng_wrapper.DeviceID(self._qng_pointer), c_char_p).value.decode("utf-8") + except: + 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: return self._qwqng_wrapper.RandInt32(self._qng_pointer)