UDP driver message delimiter pattern match

I’m getting a message from a UDP device that transmits a variable checksum at the end of its message:
Checksum=ABCD
where ABCD is a 4-byte hex checksum value.

I’ve set the UDP driver to Character Based message delimiter type and entered as the message delimiter:
Checksum=ABCD\r

If I were to write it as a regex it would be:
Checksum=[[:xdigit:]]{4}\r

Since there are carriage returns elsewhere in the message I need to match the specific sequence of characters for the end of message.

Does the UDP driver support variable message delimiters in any way or is there another way round the problem?

Are you sure you need a delimiter at all? UDP messages are typically one and only one packet.

The device sends multiple UDP packets for each message. The message is basically a text report (like sent to a serial line printer), with carriage returns between each line. Each UDP packet is a line of text in the report, with the last UDP packet being the checksum line. Unfortunately the packets are sent too quickly for me to process each one before the UDP message is replaced by the next packet.

You’ll probably need to acquire this data via scripting instead of the UDP driver.

1 Like

Looks like time for me to read up on Python socket comms!

A shame since the built in UDP driver does 99% of what I was after and handles all the socket comms & provides its own set of data and diagnostics tags.

Maybe pattern/regex message delimiter as a future enhancement to the UDP driver…

I would not recommend python sockets in a jython environment. You should use java sockets in jython.