Skip to content

utils reiceive data #8

@NorthstarCodeBase

Description

@NorthstarCodeBase

Hi, I use the Cognex 2800 series and it send data back in 2 different packages, so if you just use

data = socket.recv(4096)
string_data = data.decode('ascii').split('\r\n')

it only get the status code
['1', '']
so I prefer change to:

def receive_data(socket: socket.socket) -> list:
    """
    Receives data from the given socket and returns it as a list of strings.

    Args:
        socket (socket.socket): The socket to receive data from.

    Returns:
        list: The received data as a list of strings.
    """
    data = socket.recv(4096)
    string_data = data.decode('ascii').split('\r\n')
    if DEBUG:
        with open('in.txt', 'a') as f:
            f.write("\n".join(string_data))
    try:
        code = int(string_data[0])
    except:
        return  string_data
    else:
        data_2800_format = list()
        data_2800_format.append(string_data[0])
        data = socket.recv(4096)
        string_data = data.decode('ascii').split('\r\n')
        data_2800_format.append(string_data[0])
        return data_2800_format

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions