diff options
Diffstat (limited to 'unittest/misc.py')
-rw-r--r-- | unittest/misc.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/unittest/misc.py b/unittest/misc.py new file mode 100644 index 0000000..f4d7731 --- /dev/null +++ b/unittest/misc.py @@ -0,0 +1,48 @@ +import cffi + +ffi = cffi.FFI() +gs = ffi.string + + +def to_hex(s): + return "".join("{:02x}".format(ord(c)) for c in s) + + +def wait(t): + import time + msg = 'Waiting for %d seconds' % t + print(msg.center(40, '=')) + time.sleep(t) + + +def cast_pointer_to_tuple(obj, typen, len): + # usage: + # config = cast_pointer_to_tuple(config_raw_data, 'uint8_t', 5) + return tuple(ffi.cast("%s [%d]" % (typen, len), obj)[0:len]) + + +def get_devices_firmware_version(C): + firmware = C.NK_get_major_firmware_version() + return firmware + + +def is_pro_rtm_07(C): + firmware = get_devices_firmware_version(C) + return firmware == 7 + + +def is_pro_rtm_08(C): + firmware = get_devices_firmware_version(C) + return firmware == 8 + + +def is_storage(C): + """ + exact firmware storage is sent by other function + """ + # TODO identify connected device directly + return not is_pro_rtm_08(C) and not is_pro_rtm_07(C) + + +def is_long_OTP_secret_handled(C): + return is_pro_rtm_08(C) or is_storage(C) and get_devices_firmware_version(C) > 43 |