Exemple #1
0
class CommandMessage(object):

    OPERATION_UNKN = 0
    OPERATION_START = 1
    OPERATION_STOP = 2
    OPERATION_RESET = 4

    def __init__(self):
        self.payload = Payload(None, True)
        self.payload.set_control()
        self.payload.set_command('E')
        self.frame = Frame(self.payload)
        self.frame.set_terminating(True)
        self.message = Message()
        self.message.add_frame(self.frame)
        self._operation = self.OPERATION_UNKN

    def get_message(self):
        return self.message

    def set_operation(self, op):
        op = int(op)
        if not op in [
                self.OPERATION_START, self.OPERATION_STOP, self.OPERATION_RESET
        ]:
            raise ValueError("operation not defined")

        self._operation = op

        str_op = str(op).zfill(2)
        self.payload.set_parameter(0, str_op)

    def __str__(self):
        return "CommandMessage: {}".format(self._operation)
class ReadOptionFuncMessage(object):
    def __init__(self):
        self.payload = Payload(None, True)
        self.payload.set_query()
        self.payload.set_command('=')
        self.frame = Frame(self.payload)
        self.message = Message()
        self.message.add_frame(self.frame)

    def get_message(self):
        return self.message

    def __str__(self):
        return "ReadOptions"
class ReadMeasMessage(object):
    def __init__(self):
        self.payload = Payload(None, True)
        self.payload.set_query()
        self.payload.set_command('D')
        self.frame = Frame(self.payload)
        self.message = Message()
        self.message.add_frame(self.frame)
        self.message.finish()

    def get_message(self):
        return self.message

    def __str__(self):
        return "ReadMeasurement"
class SetOptionFuncMessage(object):

    REMOTE_OPERATION_MODE_X2 = 0x01
    REMOTE_OPERATION_MODE_X3 = 0x02
    REMOTE_OPERATION_MODE_X5 = 0x05
    REMOTE_OPERATION_MODE_POWER_SUPPLY = 0x06
    REMOTE_OPERATION_MODE_COMMUNICATION_UNIT = 0x07

    def __init__(self, readresponse):

        if not isinstance(readresponse, ReadOptionFuncResponse):
            raise TypeError(
                "resonse must be an instance of ReadOptionFuncResponse")

        read_payload = readresponse.get_response().get_frame(
            0).get_payload().get_raw()

        self.payload = Payload(read_payload, True)
        self.payload.set_control()
        self.payload.set_command('=')
        self.frame = Frame(self.payload)
        self.message = Message()
        self.message.add_frame(self.frame)

    def set_remote_operation_mode(self, mode):
        mode = int(mode)
        if not mode in [
                self.REMOTE_OPERATION_MODE_X2, self.REMOTE_OPERATION_MODE_X3,
                self.REMOTE_OPERATION_MODE_X5,
                self.REMOTE_OPERATION_MODE_POWER_SUPPLY,
                self.REMOTE_OPERATION_MODE_COMMUNICATION_UNIT
        ]:
            raise ValueError("mode not defined")

        str_mode = str(mode).zfill(2)
        self.payload.set_parameter(0, str_mode)

    def get_message(self):
        return self.message

    def __str__(self):
        return "SetOptions"