I've been playing around with an iTach IP2IR device. In a wiring closet, I have a cable box connected to a PC. A video capture card in the PC is used to stream the video over our LAN to desktop users. Whenever we need to change the channel, someone must unlock the wiring closet, go in, point the remote at the cable box, and change the channel. Using the IP2IR device, we can now control the cable box from our desktop, sending remote control codes to the IP2IR using a Visual Basic application.
I'm posting the code in case anyone wants to know how to talk to the IP2IR device over IP. The only parameter passed is the code as captured by iLearn.
Private Function SendIRCommand(ByVal strCommand As String) As String
Const Host = "192.168.1.1"
Const HostPort = 4998
Dim tcpClient As New System.Net.Sockets.TcpClient()
tcpClient.Connect(host, hostport)
Dim networkStream As NetworkStream = tcpClient.GetStream()
Dim strResponse As String
strResponse = "No response"
If networkStream.CanWrite Then
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(strCommand)
networkStream.Write(sendBytes, 0, sendBytes.Length)
Dim bytes(tcpClient.ReceiveBufferSize) As Byte
networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
strResponse = "Device responded: " & CStr(returndata)
Else
If Not networkStream.CanWrite Then
strResponse = "Error: Cannot write data to the device"
tcpClient.Close()
End If
End If
Return strResponse
End Function