0

ここには 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}」を正しく変更するにはどうすればよいですか?

4

1 に答える 1