私は最近、飛行機が互いに着陸しないようにする空港コンピューターを作成するプロジェクトに取り組んでいます。何らかの理由で、プログラムを実行するたびにエラー メッセージが表示されます。エラーメッセージも取得し、すべての着信メッセージをモニターに出力する別のプログラムがあります。これが私のコードです:
プログラム 1 のエラー メッセージ (このメッセージは、次のメッセージを受信した後にのみ発生します。
[startup:9: nil と number の __le を比較しようとしました]
プログラム 2 のエラー メッセージ:
[monitor:2:nil を呼び出そうとしています]
最初のプログラム:
shell.openTab("monitor")
local Landing_open = true
rednet.open("top")
while true do
local id, message, distance = rednet.receive()
if message == "Requesting Landing" and distance <= 500 and Landing_open == true then
rednet.send(id, "Landing is granted. Please respond with Landing finished when you exit the runway.")
Landing_open = false
elseif message == "Requesting Landing" and distance>500 then
rednet.send(id, "Landing is not granted. Please try again when you are closer to the airport,")
elseif message == "Requesting Landing" and Landing_open == false then
rednet.send(id, "Landing is not granted. Please try again later.")
elseif message == "Landing Finished" then
rednet.send(id, "Roger that")
Landing_open = true
elseif message == "Airports" then
rednet.send(id, "Melee Airport")
end
end
次のプログラム:
local monitor = peripheral.wrap("left")
monitor.setCursorPos(1,1)
while true do
local x, y = monitor.getCursorPos()
if y > 10 then
monitor.clear()
monitor.setCursorPos(1,1)
end
id, message,distance = rednet.receive()
monitor.write(id)
monitor.write(message)
monitor.write(distance)
end