Member 12674320 Ответов: 0

Как переформатировать блок кода Python?


Я пытаюсь переписать следующую функцию set_pattern, чтобы она соответствовала функциям set_clock и set_voltage, где идентификатор разбивается на канал и имя. Функция .get запрашивает инструмент и возвращает строковые данные, в то время как функция .send отправляет инструменту строковое сообщение.

def set_clock(self, channel, frequency=None):
    if frequency is None:
        return float(self.get("FREQ? \'M{channel:d}.ClkGen\'".format(channel=int(channel))))
    else:
        self.send("FREQ \'M{channel:d}.ClkGen\', {frequency:E}Hz".format(channel=int(channel),
                                                                     frequency=frequency))

def set_pattern(self, identifier, pattern):
    my_instrument.write(':DATA:SEQ:VAL? ' + identifier)
    curr_sequence = my_instrument.read()
    print(curr_sequence)
    # determine the current PRBS pattern which is loaded
    curr_prbs_list = curr_sequence.split("<prbs polynomial=")
    curr_prbs = curr_prbs_list[1].split("/>")
    print('Current PRBS: ' + curr_prbs[0])
    print('Debug: ' + '<prbs polynomial=' + curr_prbs[0] + '/>')
    # define new sequence replacing current PRBS w/ new PRBS
    new_sequence = string.replace(curr_sequence, '<prbs polynomial=' + curr_prbs[0] + '/>',
                             '<prbs polynomial="' + pattern + '" />')
    print(new_sequence)
    seq_length = str(len(new_sequence))
    my_instrument.write(':DATA:SEQ:VAL ' + identifier + ',#3' + seq_length + new_sequence)
    my_instrument.write('*OPC?')
    complete = my_instrument.read()

def set_voltage(self, channel, name, voltage=None):
    # [:SOUR]:VOLT[:AMPL] - ‘identifier’, <nrf>
    # [:SOUR]:VOLT:OFFS - ‘identifier’, <nrf>
    if voltage is None:
        return float(self.get("SOUR:VOLT? \'M{channel:d}.{name:s}\'".format(channel=int(channel),
                                                                           name=name)))
    else:
        self.send("SOUR:VOLT \'M{channel:d}.{name:s}\', {voltage:f}".format(channel=int(channel),name=name,                                                                             voltage=voltage))


Что я уже пробовал:

Параметры становятся:
def set_pattern(self, channel, name, pattern)

На .писать стал .вам и .читать стать .отправить.

[no name]

Какие проблемы вы испытываете с тем, что вы пробовали?

0 Ответов