--- title: "system.serial.readUntil" description: "Reads a byte at a time from a serial port until a delimiter character is encountered." --- # system.serial.readUntil > Reads a byte at a time from a serial port until a delimiter character is encountered. This function is used in **Python Scripting**. ## Description Reads a byte at a time from a serial port until a delimiter character is encountered. The read will block for up to timeout milliseconds before returning. :::caution If the delimiter is not found before the timeout period, then the buffer will dump, potentially resulting in data loss. ::: ## Client Permission Restrictions This scripting function has no [Client Permission](../../../ignition-modules/vision/vision-project-properties/vision-project-properties.md#vision-permissions-properties) restrictions. ## Syntax `system.serial.readUntil(port, delimiter, includeDelimiter, [timeout])` ### Parameters Type | Parameter | Description ------- | ------- | ------ String| `port` | The previously configured serial port to use. Char| `delimiter` | The delimiter to read until. Boolean| `includeDelimiter` | If true, the delimiter will be included in the return value. Integer| `timeout` | Timeout in milliseconds. Default is 5000. [optional] ### Returns **String** - Returns a String containing all 8-bit ASCII characters read until the delimiter was reached, and including the delimiter if the "includeDelimiter" parameter was true. ### Scope Gateway, Vision Client, Perspective Session ## Code Example ```python title="Code Snippet" # This example will read bytes from an open port called "COM1" until the delimiter character is reached. port = "COM1" delimiter = "$" system.serial.readUntil(port,delimiter,True) ```