Hi.
I would want to know how could i recive a text with “End of Text” EOT i know that is 04 in ASCII, Actually, i’m using the “socket_read_string” instruction and i have tried to use in like sufix the follow combinations: “eot”, “$04”, “”\u0004", 4 (number). Also, i have tried to put the EOT in the text to compare with the recibe message.
But the software does not recognize it.
I need to use the EOT because the software that I want to communicate use it, and we cant modify that software, we do not have the code to change this character for other.
My code is the following:
v_rcv_init = "0001##F001##01#\u0004"
v_ok_init = "0002##0001##01#\u0004"
socket_open(IP,Puerto,"etop11")
rcvData = socket_read_string("etop11","","")
if (rcvData != ""):
if (rcvData ==v_rcv_init):
socket_send_string(v_ok_init, "etop11")
send_dn_socket = True
end
end
I wait you can help me.
Hi,
EOT is actually End Of Transmission.
ETX (End of TeXt) is 0x03.
If you want to send it, you can use socket_send_byte(4, socket_name)
.
If you want to receive it, I think socket_read_string
would do the job:
msg_part1 = socket_read_string(suffix="#")
msg_part2 = socket_read_string(prefix="#", suffix="#")
msg_part3 = socket_read_string(prefix="#", suffix="#")
msg_part4 = socket_read_string(prefix="#", suffix="") # this square is EOT character
EDIT: There was a square in suffix argument, that represented \004
character, but looks like forum does not allow it.
You can disregard msg_part4
. It is only there to get characters out of the buffer.
You can copy-paste this square into a program, but it will not be visible in Polyscope.
String manipulation is really hard in Polyscope, because a lot of standard functions are missing. Usually I did the tricky part in python script and called it via XMLRPC from Polyscope. However, depending on your application, this could be impractical.