Advertisement
krzys_h

GPS Host v1.0

Aug 20th, 2012
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.45 KB | None | 0 0
  1. -- Wpisz wspolrzedne WIRELESS MODEMU!
  2. local x = 0
  3. local y = 0
  4. local z = 0
  5.  
  6. term.clear()
  7. term.setCursorPos(1,1)
  8.  
  9. local function open()
  10.     local bOpen, sFreeSide = false, nil
  11.     for n,sSide in pairs(rs.getSides()) do 
  12.         if peripheral.getType( sSide ) == "modem" then
  13.             sFreeSide = sSide
  14.             if rednet.isOpen( sSide ) then
  15.                 bOpen = true
  16.                 break
  17.             end
  18.         end
  19.     end
  20.    
  21.     if not bOpen then
  22.         if sFreeSide then
  23.             print( "Nie ma otwartego modemu. Otwieranie modemu "..sFreeSide )
  24.             rednet.open( sFreeSide )
  25.             return true
  26.         else
  27.             print( "Zaden modem nie jest podlaczony" )
  28.             return false
  29.         end
  30.     end
  31.     return true
  32. end
  33.    
  34. if turtle then
  35.     print( "Zolwie nie moga byc hostami GPS." )
  36.     return
  37. end
  38.  
  39. if open() then
  40.     nx,ny,nz = gps.locate( 2, true )
  41.     if x ~= nil then
  42.         print("Zlokalizowano za pomoca innych punktow odniesienia")
  43.         if x~=nx or y~=ny or z~=nz then
  44.             print("UWAGA! Niezgodnosc wprowadzonych danych i danych z punktu odniesienia!")
  45.             print("Sprawdz ustawienia koordynatow ponownie!")
  46.         end
  47.         x=nx
  48.         y=ny
  49.         z=nz
  50.     else
  51.         print("Lokalizacja manualna")
  52.     end
  53.     print( "Pozycja to "..x..","..y..","..z )
  54.  
  55.     print( "Host GPS uruchomiony" )
  56.  
  57.     local nServed = 0
  58.     while true do
  59.         sender,message,distance = rednet.receive()
  60.         if message == "PING" then
  61.             rednet.send(sender, textutils.serialize({x,y,z}))
  62.            
  63.             nServed = nServed + 1
  64.             if nServed > 1 then
  65.                 local x,y = term.getCursorPos()
  66.                 term.setCursorPos(1,y-1)
  67.             end
  68.             print( nServed.." przetworzonych zadan GPS" )
  69.         end
  70.     end
  71. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement