Modem radio et Routeur Wi-Fi
Les points d'accès sans fil d'un ordinateur : leur portée, et le nom de réseau qui relie les routeurs en une seule dorsale.
Un Modem radio (la radio par paquets, 1971) permet à un ordinateur d'envoyer des messages net par les airs aux ordinateurs alentour. Un Routeur Wi-Fi (1999) porte deux fois plus loin, et tous les routeurs qui partagent un nom de réseau, un SSID, forment une seule dorsale à travers le monde, comme Internet : un message qui atteint un routeur ressort par tous les autres. Comme périphérique, la radio donne sa portée, et le routeur permet à un programme de lire et de régler son SSID.
local routeur = peripheral.find("wifi_router")
routeur.set_ssid("laitonnerie")
print(routeur.range() .. " blocs")radio.range() | La portée de cette radio : 128 blocs pour un Modem radio, 256 pour un Routeur Wi-Fi, multipliés par le réglage du serveur. |
radio.get_ssid() | Le nom de réseau d'un Routeur Wi-Fi. |
radio.set_ssid(name) | Donne un nom de réseau au routeur : il rejoint tous les autres routeurs de ce nom en une seule dorsale. |
Installation
Quels ordinateurs. Le sans-fil demande un Micro-ordinateur, un Microcontrôleur ou un Ordinateur moderne. Les ordinateurs plus anciens peuvent quand même prendre une radio et appeler ces méthodes, mais net n'envoie rien par elle.
La poser. Posez la radio contre n'importe quelle face de l'ordinateur, ou n'importe où sur le réseau de Câbles de données de l'ordinateur : une seule radio sur le toit sert tous les ordinateurs du bâtiment. Un ordinateur qui a plusieurs radios les utilise toutes.
Jusqu'où. Deux radios s'entendent quand elles sont plus proches que la plus courte de leurs deux portées :
| bloc | portée | type de périphérique |
|---|---|---|
| Modem radio | 128 blocs | radio_modem |
| Routeur Wi-Fi | 256 blocs | wifi_router |
Un modem et un routeur se parlent jusqu'à 128 blocs, deux routeurs jusqu'à 256. Le serveur peut multiplier toutes les portées (wirelessRangeMultiplier dans computingages-server.toml, de 0,1 à 16). Sur un véhicule de Create Aeronautics, les distances se mesurent depuis la vraie position du véhicule.
La dorsale. Les routeurs qui partagent un SSID sont tous reliés, où qu'ils soient dans la même dimension. Un ordinateur est sur cette dorsale quand l'un de ses propres routeurs porte ce SSID, ou quand l'une de ses radios, même un simple modem, est à portée d'un routeur de ce nom. Il joint alors tous les ordinateurs proches de n'importe quel autre routeur du même SSID. Un routeur relais doit être relié à un ordinateur qui a le sans-fil, dans un chunk chargé (l'ordinateur n'a pas besoin de faire tourner un programme) : un routeur seul au milieu d'un champ ne relaie rien. Un routeur sans SSID est simplement une radio de plus longue portée.
Les messages passés par un routeur arrivent avec via à "wifi", les autres avec "radio" (ou "cable"). net.networks liste les dorsales qu'un ordinateur peut utiliser. Toute l'histoire est dans Réseaux.
Portée
La portée de cette radio : 128 blocs pour un Modem radio, 256 pour un Routeur Wi-Fi, multipliés par le réglage du serveur.
- number
- jusqu'où porte cette radio, en blocs
local radio = peripheral.wrap("top")
print(radio.range(), "blocs")N'oubliez pas qu'une liaison utilise la plus courte portée de ses deux bouts : un routeur qui parle à un modem ne porte pas plus loin que le modem. Quand le bloc n'est plus une radio, l'appel arrête le programme avec radio removed.
Nom de réseau
Le nom de réseau d'un Routeur Wi-Fi.
- string|nil
- le SSID d'un Routeur Wi-Fi,
""s'il n'en a pas ;nilpour un Modem radio
Un routeur neuf n'a pas de nom : get_ssid() renvoie la chaîne vide "". Un Modem radio n'a pas de SSID du tout et renvoie nil, ce qui permet de distinguer les deux :
local radio = peripheral.wrap("top")
local ssid = radio.get_ssid()
if ssid == nil then
print("un modem radio")
elseif ssid == "" then
print("un routeur sans nom de réseau")
else
print("un routeur de " .. ssid)
endVoir aussi radio.set_ssid() net.networks()
radio.set_ssid(name)
Donne un nom de réseau au routeur : il rejoint tous les autres routeurs de ce nom en une seule dorsale.
namestring- le nom du réseau, 32 caractères au plus
local routeur = peripheral.find("wifi_router")
routeur.set_ssid("laitonnerie")- Le nom est gardé dans le routeur lui-même : il reste quand le programme s'arrête, quand le monde se recharge, et quand le routeur passe sur un autre ordinateur.
- Un nom de plus de 32 caractères est coupé à ses 32 premiers.
- La chaîne vide
""retire le routeur de toute dorsale : il redevient une radio de longue portée. - Le changement atteint le réseau en moins d'une seconde.
- Sur un Modem radio, le programme s'arrête avec
only Wi-Fi routers have an SSID.
Quiconque connaît le nom peut rejoindre la dorsale avec son propre routeur : pour un réseau privé, choisissez un nom difficile à deviner.
Voir aussi radio.get_ssid() net.networks()
Exemples
Un routeur qui se nomme tout seul
Un fichier startup pour chaque ordinateur qui porte un routeur : il règle le SSID une fois, et vérifie que c'est fait. Copiez-le à la base, à la mine et au quai des dirigeables, et les trois ne forment plus qu'un réseau.
local RESEAU = "laitonnerie"
local routeur = peripheral.find("wifi_router")
if routeur == nil then
error("pas de Routeur Wi-Fi sur cet ordinateur")
end
if routeur.get_ssid() ~= RESEAU then
routeur.set_ssid(RESEAU)
print("le routeur a rejoint " .. RESEAU)
endToutes les radios d'un ordinateur
Liste les radios qu'un ordinateur peut utiliser, contre lui ou sur son câble, avec leur portée et leur nom de réseau :
for _, nom in ipairs(peripheral.list()) do
local genre = peripheral.type(nom)
if genre == "radio_modem" or genre == "wifi_router" then
local radio = peripheral.wrap(nom)
local ssid = radio.get_ssid()
if ssid == nil then
ssid = "-"
elseif ssid == "" then
ssid = "(sans nom)"
end
print(nom .. " " .. radio.range() .. " blocs " .. ssid)
end
endSur un ordinateur avec un routeur dessus et un modem sur le toit, il affiche à peu près :
top 256 blocs laitonnerie radio_modem@14,80,-3 128 blocs -