digi.xbee.util.utils module

digi.xbee.util.utils.is_bit_enabled(number, position)[source]

Returns whether the bit located at position within number is enabled or not.

Parameters
  • number (Integer) – the number to check if a bit is enabled.

  • position (Integer) – the position of the bit to check if is enabled in number.

Returns

True if the bit located at position within number is enabled, False otherwise.

Return type

Boolean

digi.xbee.util.utils.get_int_from_byte(number, offset, length)[source]

Reads an integer value from the given byte using the provived bit offset and length.

Parameters
  • number (Integer) – Byte to read the integer from.

  • offset (Integer) – Bit offset inside the byte to start reading (LSB = 0, MSB = 7).

  • length (Integer) – Number of bits to read.

Returns

The integer value read.

Return type

Integer

Raises

ValueError – If number is lower than 0 or higher than 255. If offset is lower than 0 or higher than 7. If length is lower than 0 or higher than 8. If offset + length is higher than 8.

digi.xbee.util.utils.hex_string_to_bytes(hex_string)[source]

Converts a String (composed by hex. digits) into a bytearray with same digits.

Parameters

hex_string (String) – String (made by hex. digits) with “0x” header or not.

Returns

bytearray containing the numeric value of the hexadecimal digits.

Return type

Bytearray

Raises

ValueError – if invalid literal for int() with base 16 is provided.

Example

>>> a = "0xFFFE"
>>> for i in hex_string_to_bytes(a): print(i)
255
254
>>> print(type(hex_string_to_bytes(a)))
<type 'bytearray'>
>>> b = "FFFE"
>>> for i in hex_string_to_bytes(b): print(i)
255
254
>>> print(type(hex_string_to_bytes(b)))
<type 'bytearray'>
digi.xbee.util.utils.int_to_bytes(number, num_bytes=None)[source]

Converts the provided integer into a bytearray.

If number has less bytes than num_bytes, the resultant bytearray is filled with zeros (0x00) starting at the beginning.

If number has more bytes than num_bytes, the resultant bytearray is returned without changes.

Parameters
  • number (Integer) – the number to convert to a bytearray.

  • num_bytes (Integer) – the number of bytes that the resultant bytearray will have.

Returns

the bytearray corresponding to the provided number.

Return type

Bytearray

Example

>>> a=0xFFFE
>>> print([i for i in int_to_bytes(a)])
[255,254]
>>> print(type(int_to_bytes(a)))
<type 'bytearray'>
digi.xbee.util.utils.length_to_int(byte_array)[source]

Calculates the length value for the given length field of a packet. Length field are bytes 1 and 2 of any packet.

Parameters

byte_array (Bytearray) – length field of a packet.

Returns

the length value.

Return type

Integer

Raises

ValueError – if byte_array is not a valid length field (it has length distinct than 0).

Example

>>> b = bytearray([13,14])
>>> c = length_to_int(b)
>>> print("0x%02X" % c)
0x1314
>>> print(c)
4884
digi.xbee.util.utils.bytes_to_int(byte_array)[source]

Converts the provided bytearray in an Integer. This integer is result of concatenate all components of byte_array and convert that hex number to a decimal number.

Parameters

byte_array (Bytearray) – bytearray to convert in integer.

Returns

the integer corresponding to the provided bytearray.

Return type

Integer

Example

>>> x = bytearray([0xA,0x0A,0x0A]) #this is 0xA0A0A
>>> print(bytes_to_int(x))
657930
>>> b = bytearray([0x0A,0xAA])    #this is 0xAAA
>>> print(bytes_to_int(b))
2730
digi.xbee.util.utils.ascii_to_int(ni)[source]

Converts a bytearray containing the ASCII code of each number digit in an Integer. This integer is result of the number formed by all ASCII codes of the bytearray.

Example

>>> x = bytearray( [0x31,0x30,0x30] )   #0x31 => ASCII code for number 1.
                                        #0x31,0x30,0x30 <==> 1,0,0
>>> print(ascii_to_int(x))
100
digi.xbee.util.utils.int_to_ascii(number)[source]

Converts an integer number to a bytearray. Each element of the bytearray is the ASCII code that corresponds to the digit of its position.

Parameters

number (Integer) – the number to convert to an ASCII bytearray.

Returns

the bytearray containing the ASCII value of each digit of the number.

Return type

Bytearray

Example

>>> x = int_to_ascii(100)
>>> print(x)
100
>>> print([i for i in x])
[49, 48, 48]
digi.xbee.util.utils.int_to_length(number)[source]

Converts am integer into a bytearray of 2 bytes corresponding to the length field of a packet. If this bytearray has length 1, a byte with value 0 is added at the beginning.

Parameters

number (Integer) – the number to convert to a length field.

Returns:

Raises

ValueError – if number is less than 0 or greater than 0xFFFF.

Example

>>> a = 0
>>> print(hex_to_string(int_to_length(a)))
00 00
>>> a = 8
>>> print(hex_to_string(int_to_length(a)))
00 08
>>> a = 200
>>> print(hex_to_string(int_to_length(a)))
00 C8
>>> a = 0xFF00
>>> print(hex_to_string(int_to_length(a)))
FF 00
>>> a = 0xFF
>>> print(hex_to_string(int_to_length(a)))
00 FF
digi.xbee.util.utils.hex_to_string(byte_array, pretty=True)[source]

Returns the provided bytearray in a pretty string format. All bytes are separated by blank spaces and printed in hex format.

Parameters
  • byte_array (Bytearray) – the bytearray to print in pretty string.

  • pretty (Boolean, optional) – True for pretty string format, False for plain string format. Default to True.

Returns

the bytearray formatted in a string format.

Return type

String

digi.xbee.util.utils.doc_enum(enum_class, descriptions=None)[source]

Returns a string with the description of each value of an enumeration.

Parameters
  • enum_class (Enumeration) – the Enumeration to get its values documentation.

  • descriptions (dictionary) – each enumeration’s item description. The key is the enumeration element name and the value is the description.

Returns

the string listing all the enumeration values and their descriptions.

Return type

String

digi.xbee.util.utils.enable_logger(name, level=10)[source]

Enables a logger with the given name and level.

Parameters
  • name (String) – name of the logger to enable.

  • level (Integer) – logging level value.

Assigns a default formatter and a default handler (for console).

digi.xbee.util.utils.disable_logger(name)[source]

Disables the logger with the give name.

Parameters

name (String) – the name of the logger to disable.

digi.xbee.util.utils.deprecated(version, details='None')[source]

Decorates a method to mark as deprecated. This adds a deprecation note to the method docstring and also raises a :class:warning.DeprecationWarning.

Parameters
  • version (String) – Version that deprecates this feature.

  • details (String, optional, default=``None``) – Extra details to be added to the method docstring and warning.