I want to built a function that sends a request from ModBus to serial in hex. I more o less have a working function but have two issues.
Issue 1
[b'\x06', b'\x1c', b'\x00!', b'\r', b'\x1e', b'\x1d\xd3', b'\r', b'\n', b'\x1e', b'\x1d']
I cant remove this part b'\r', b'\n', using the .split('\r \n') method since It's not a string.
Issue 2 When getting a value from holding register 40 (33) and i try to use the .to_bytes() method I keep getting b'\x00!', b'\r' and I'm expecting b'\x21'
r = client.read_holding_registers(40)
re = r.registers[0]
req = re.to_bytes(2, 'big')
My functions to generate my request and to send trough pyserial.
def scanned_code():
    code = client.read_holding_registers(0)
    # code2= client.re
    r = code.registers[0]
    return r
def send_request(data):
    """ Takes input from create_request() and sends data to serial port"""
    try:
        for i in range(data):
            serial_client.write(data[i])
            # serial_client.writelines(data[i])
    except:
        print('no se pudo enviar el paquete <<<--------------------')
def create_request(job):
    """ Request type is 33  looks for job
        [06]
        [1c]
            req=33[0d][0a]
            job=30925[0d][0a][1e]
        [1d]
    """
    r = client.read_holding_registers(40)
    re = r.registers[0]
    req = re.to_bytes(2, 'big')
    num = job.to_bytes(2, 'big')
    data = [
        b'\x06',
        b'\x1C',
        req,
        b'\x0D',
        b'\x1E',
        num,
        b'\x0D',
        b'\x0A',
        b'\x1E',
        b'\x1D'
    ]
    print(data)
while True:
    # verify order_trigger() is True.
    while order_trigger() != False:
        print('inside while loop')
        # set flag coil back to 0
        reset_trigger()
        # get Job no.
        job = scanned_code()
        # check for JOB No. dif. than 0
        if job != 0:
            print(scanned_code())
            send_request(create_request(job))
            # send job request to host to get job data
            # send_request()
            # if TRUE  send job request by serial to DVI client
            #           get job request data
            #           translate job request data to modbus
            #           send data to plc
        else:
            print(' no scanned code')
            break
        time.sleep(INTERNAL_SLEEP_TIME)
    print('outside loop')
    time.sleep(EXTERNAL_SLEEP_TIME)
As an additional question is this the proper way of doing things?