# -*- coding: utf-8 -*- ## # Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. # copyright # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, # IN PART OR IN WHOLE, # WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # file utils.py # date 2019/11/21 # author Behrouz NematiPour # import time import struct import inspect from pathlib import PurePath ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def waitForGUI(vDelay = 2): time.sleep(vDelay) ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def toUXX(vValue, vByteCount, vDelimiter): x = '{0:0{1}X}'.format(vValue & (2**(4*vByteCount)-1), vByteCount, 'x') bytes = partition(x, 2) return vDelimiter.join(bytes) ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def toI32(vValue, vDelimiter = ""): return toUXX(vValue, 8, vDelimiter) ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def toI16(vValue, vDelimiter = ""): return toUXX(vValue, 4, vDelimiter) ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def toI08(vValue, vDelimiter = ""): return toUXX(vValue, 2, vDelimiter) ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def toF32(vValue): return '{:08X}'.format(struct.unpack('f', vValue))[0],'X') ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def partition(vString, vPart, vRightDirection=True): return [vString[i: i + vPart] for i in range(0, len(vString), vPart)][::-1 if vRightDirection else 1] ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def padding(vString, vLen): lStr = len(vString) lPad = int(lStr / vLen) * vLen + ( vLen * (1 if lStr % vLen else 0) ) return vString.ljust(lPad, "0") ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def tstStart(): print(time.strftime("%H:%M:%S Start", time.localtime()), PurePath(inspect.stack()[1][1]).parts[-2]) def tstDone(): print(time.strftime("%H:%M:%S Done ", time.localtime()), PurePath(inspect.stack()[1][1]).parts[-2])