# Path: beacontools/utils.py
# def data_to_hexstring(data):
#     """Convert an array of binary data to the hex representation as a string."""
#     return hexlify(data_to_binstring(data)).decode('ascii')


from ..utils import data_to_hexstring

    @property
    def is_moving(self):
        """Whether the beacon is in motion at the moment (Bool)"""
        return self._is_moving

    @property
    def current_motion_state(self):
        """Duration of current motion state in seconds.
        E.g., if is_moving is True, this states how long the beacon is beeing moved already and
        previous_motion_state will tell how long it has been still before."""
        return self._current_motion_state


    @property
    def previous_motion_state(self):
        """Duration of previous motion state in seconds (see current_motion_state)."""
        return self._previous_motion_state

    @property
    def gpio_states(self):
        """Tuple with state of the GPIO pins 0-3 (True is high, False is low)."""
        return self._gpio_states

    @property
    def has_firmware_error(self):
        """If beacon has a firmware problem.
        Only available if protocol version > 0, None otherwise."""
        return self._has_firmware_error


# Path: beacontools/utils.py
# def data_to_hexstring(data):
#     """Convert an array of binary data to the hex representation as a string."""
#     return hexlify(data_to_binstring(data)).decode('ascii')


# Path: beacontools/packet_types/estimote.py
from ..utils import data_to_hexstring


    @property
    def is_moving(self):
        """Whether the beacon is in motion at the moment (Bool)"""
        return self._is_moving

    @property
    def current_motion_state(self):
        """Duration of current motion state in seconds.
        E.g., if is_moving is True, this states how long the beacon is beeing moved already and
        previous_motion_state will tell how long it has been still before."""
        return self._current_motion_state


    @property
    def previous_motion_state(self):
        """Duration of previous motion state in seconds (see current_motion_state)."""
        return self._previous_motion_state

    @property
    def gpio_states(self):
        """Tuple with state of the GPIO pins 0-3 (True is high, False is low)."""
        return self._gpio_states

    @property
    def has_firmware_error(self):
        """If beacon has a firmware problem.
        Only available if protocol version > 0, None otherwise."""
        return self._has_firmware_error


    @property