ここには 2 つのファイルがあります。
temp_converter() ->
receive
{convertToCelsius, {From, TempF}} ->
io:format("Temp-Server2 > Converter received message from ~w~n", [From]),
ConvertedTempC = (TempF-32)*5/9,
From ! finished,
From ! {converted, ConvertedTempC},
temp_converter();
{From, {convertToCelsius, TempF}} ->
io:format("Temp-Server > Converter received message from ~w~n", [From]),
ConvertedTempC = (TempF-32)*5/9,
From ! {converted, ConvertedTempC},
temp_converter()
end.
もう1つは次のとおりです。
sensor(Temp, Temp_Node, Dis_Node) ->
receive
finished ->
io:foramt("finished");
% Receive the clock_tick from clock controller
clock_tick ->
io:format("Sensor_f received tick~n", []),
{temp_converter, Temp_Node} ! {convertToCelsius, {self(), Temp}};
% Receive the temperature which has been converted
{converted, ConvertedTemp} ->
io:format("Sensor_f received converted temperature~n", []),
{display_module, Dis_Node} ! {inCelsius, ConvertedTemp};
{'EXIT', From, Reason} ->
io:foramt("Temperature Server down!~nGot ~p~n", [{'EXIT', From, Reason}])
end.
基本的に、センサーは「clock_tick ->」で実装されている temp_converter にメッセージを送信します。temp_converter がメッセージを受信すると、何かを出力してメッセージを送り返します。これが問題です。何かを出力しますが、センサーは temp_converter からメッセージを受信できません。私のコードに何か問題がありますか? 私も「終了」メッセージを送り返そうとしましたが、それでもうまくいきません!!
メッセージを送り返すにはどうすればよいですか? 「From ! finished」と「From ! {converted, ConvertedTempC}」を正しく変更するにはどうすればよいですか?