TCP/IP message not sending

I’m trying to send a message via TCP/IP to a BM Design videohub router and don’t seem to be able to get any message sent. I am connecting to the Videohub, all the info is showing up in the TCP/IP dat and it all gets updated when I change settings in the videohub with another controller, but no matter what message I send it, I don’t get any reply.

If I send a message and the Videohub understands it I should get the message “ACK” and if doesn’t understand it “NCK”. I get neither messages back. (I’m printing the received messages with a receive script)

Here is what I’m supposed to send (↵ stands for carriage return the protocal needs it for each line):

Which I’m doing with this send command:

send -r -p table1 tcpip1

Where table1 contains 3 rows, the first with “VIDEO OUTPUT ROUTING:”, the second with “4 1”, and a blank row for the final carriage return .

It seems it all should just work but I’m not getting any feedback from the unit. Any ideas?

thanks
Keith

What does the router expect as a terminator for the message?

It just says that it needs an additional blank line with a carriage return. Which is what I thought I did with having a blank row in the table dat. Also it doesn’t talk about using a terminator byte. I’ve tried it with and without.

I’m pretty sure the send commands will terminate with a 0 byte by default, not a newline. Also which newline does it expect, \r \n or both \r\n? You can disable the automatic null character using the -x option.

I did try to -x, but I missed the -n argument. I just tried it and it worked! It looks like it still needs the blank row at the bottom of the dat. Awesome! It works!

Thanks for the help I should have read the wiki more carefully.

For any future people looking for the proper message to send to a video hub:

calling a table with a blank row at the bottom after all the messages.

thanks for the help Malcolm

Hey,

Dealing with this same case. Managed to get this working with Keith’s tscript bit, but I have zero handle tscript for the rest of my integration. How would I do this same exact thing with the table in python instead?

Cheers!

-Wlad

Never mind.

Figured it out. But here it is if anyone is trying to send routing commands to a Blackmagic smart videohub type of device without having to buy their front end:

tcpip DAT has IP address of videohub and port is set to 9990 and table is as mentioned above.

for item in range(op('table1').numRows ):
	op('tcpip1').send(str(op('table1')[item, 0]), terminator= '\r\n')

cheers,

Wlad