Current section

Files

Jump to
modbus lib tcp_trans.ex
Raw

lib/tcp_trans.ex

defmodule Modbus.Tcp.Transport do
@moduledoc false
@behaviour Modbus.Transport
@to 2000
def open(opts) do
ip = Keyword.fetch!(opts, :ip)
port = Keyword.fetch!(opts, :port)
timeout = Keyword.get(opts, :timeout, @to)
opts = [:binary, packet: :raw, active: false]
:gen_tcp.connect(ip, port, opts, timeout)
end
def readn(socket, count, timeout) do
:gen_tcp.recv(socket, count, timeout)
end
def readp(socket) do
:gen_tcp.recv(socket, 0)
end
def write(socket, packet) do
# discard before send
:gen_tcp.recv(socket, 0, 0)
:gen_tcp.send(socket, packet)
end
def close(socket) do
:gen_tcp.close(socket)
end
end