Skip to content

Instantly share code, notes, and snippets.

@iporsut
Created January 31, 2011 15:19
Show Gist options
  • Save iporsut/804168 to your computer and use it in GitHub Desktop.
Save iporsut/804168 to your computer and use it in GitHub Desktop.
simulate electronic board that communicate by socket
-module(device_server).
-compile(export_all).
start() ->
{ok, Listen} = gen_tcp:listen(51, [binary,
{reuseaddr, true},
{active, true}]),
{ok, Socket} = gen_tcp:accept(Listen),
gen_tcp:close(Listen),
loop(Socket).
loop(Socket) ->
receive
{tcp, Socket, Command} ->
case Command of
<<"checked\r\n">> ->
gen_tcp:send(Socket,<<"DRY1: OPEN\r\nDRY2: OPEN\r\nDRY3: OPEN\r\nDRY4: OPEN\r\nDRY5: OPEN\r\nDRY6: OPEN\r\nDRY7: OPEN\r\nDRY8: OPEN\r\nDRY9: OPEN\r\nDRY10: OPEN\r\nDRY11: OPEN\r\nDRY12: OPEN\r\nDRY13: OPEN\r\nDRY14: OPEN\r\nDRY15: OPEN\r\nDRY16: OPEN\r\n">>);
<<"output\r\n">> ->
gen_tcp:send(Socket,<<"RELAY1: OFF\r\nRELAY2: OFF\r\nRELAY3: OFF\r\nRELAY4: OFF\r\nRELAY5: OFF\r\nRELAY6: OFF\r\nRELAY7: OFF\r\nRELAY8: OFF\r\nRELAY9: OFF\r\nRELAY10: OFF\r\nRELAY11: OFF\r\nRELAY12: OFF\r\nRELAY13: OFF\r\nRELAY14: OFF\r\nRELAY15: OFF\r\nRELAY16: OFF\r\n">>)
end,
loop(Socket);
{tcp_closed, Socket} ->
gen_tcp:close(Socket),
io:format("Server socket ~p closed~n",[Socket])
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment