Current section
Files
Jump to
Current section
Files
src/uart.erl
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Copyright 2020 by Davide Bettio <davide@uninstall.it> %
% %
% This program is free software; you can redistribute it and/or modify %
% it under the terms of the GNU Lesser General Public License as %
% published by the Free Software Foundation; either version 2 of the %
% License, or (at your option) any later version. %
% %
% This program is distributed in the hope that it will be useful, %
% but WITHOUT ANY WARRANTY; without even the implied warranty of %
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %
% GNU General Public License for more details. %
% %
% You should have received a copy of the GNU General Public License %
% along with this program; if not, write to the %
% Free Software Foundation, Inc., %
% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-module(uart).
-export([open/2, read/1, write/2]).
open(Name, Opts) ->
open_port({spawn, "uart"}, [{name, Name} | Opts]).
read(Pid) ->
call(Pid, read).
write(Pid, B) ->
call(Pid, {write, B}).
call(DriverPid, Msg) ->
Ref = erlang:make_ref(),
DriverPid ! {self(), Ref, Msg},
receive
{Ref, Ret} ->
Ret
end.