# -*- coding: utf-8 -*-
# (c) Copyright 2019 Sensirion AG, Switzerland
from __future__ import absolute_import, division, print_function
from ..command import ShdlcCommand
from struct import pack, unpack
import logging
log = logging.getLogger(__name__)
[docs]class ShdlcCmdReplyDelayBase(ShdlcCommand):
"""
SHDLC command 0x95: "Get/Set Reply Delay".
"""
[docs] def __init__(self, *args, **kwargs):
super(ShdlcCmdReplyDelayBase, self).__init__(0x95, *args, **kwargs)
[docs]class ShdlcCmdSetReplyDelay(ShdlcCmdReplyDelayBase):
[docs] def __init__(self, reply_delay):
super(ShdlcCmdSetReplyDelay, self).__init__(
data=pack(">H", reply_delay), max_response_time=0.05,
min_response_length=0, max_response_length=0
)
[docs]class ShdlcCmdGetReplyDelay(ShdlcCmdReplyDelayBase):
[docs] def __init__(self):
super(ShdlcCmdGetReplyDelay, self).__init__(
data=[], max_response_time=0.05,
min_response_length=2, max_response_length=2
)
[docs] def interpret_response(self, data):
"""
:return byte: Reply delay [μs].
"""
return int(unpack(">H", data)[0])