-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdatasink.erl
51 lines (40 loc) · 1.43 KB
/
datasink.erl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-module(datasink).
-behaviour(gen_server).
%% API
-export([start/2]).
%% gen_server callbacks
-export([init/1,
handle_call/3,
handle_cast/2,
handle_info/2,
terminate/2,
code_change/3]).
-record(state, {team_number,
station_number
}).
start(TeamNumber, StationNumber) ->
gen_server:start(?MODULE, [TeamNumber, StationNumber], []).
init([TeamNumber, StationNumber]) ->
%%% start reading for the input source
utility:log("datasink init"),
{ok, #state{ team_number = TeamNumber,
station_number = StationNumber
}}.
handle_cast({write_data, StationIdentifier, StationNumber, Slot, _Payload, Timestamp, TimestampReceived}, State) ->
utility:log(lists:concat(["team",State#state.team_number,"-station",State#state.station_number]),"~s~p, TX: ~p, next slot: ~p, at ~p~n",[StationIdentifier, StationNumber, Timestamp, Slot, TimestampReceived]),
{noreply, State};
handle_cast(Any, State) ->
utility:log("received unknown msg: ~p~n",[Any]),
{noreply, State}.
%%% do everything required for a clean shutdown
terminate(_Reason, _State) ->
ok.
%%% OTP gen_server boilerplate - ignore this
handle_call(_Request, _From, State) ->
Reply = ok,
{reply, Reply, State}.
handle_info(Info, State) ->
utility:log("datasink: how about sending gen server a msg in a proper way: ~p~n",[Info]),
{noreply, State}.
code_change(_OldVsn, State, _Extra) ->
{ok, State}.