MoonlightOwl (обс. | вклад) мНет описания правки |
м (викификация, орфография) |
||
Строка 1: | Строка 1: | ||
− | Этот интерфейс предоставляет информацию о компьютере, на котором запущена программа, такую как его адрес или время работы. Кроме того |
+ | Этот интерфейс предоставляет информацию о компьютере, на котором запущена программа, такую как его адрес или время работы. Кроме того — некоторые функции для управления пользователями. |
Строка 17: | Строка 17: | ||
* <code>computer.freeMemory(): number</code> |
* <code>computer.freeMemory(): number</code> |
||
− | Возвращает |
+ | Возвращает объём свободной [[OpenComputers/Оперативная память|памяти]] компьютера, в байтах. Если это число близко к нулю, велика вероятность того, что компьютер скоро завершит работу с ошибкой переполнения памяти. |
* <code>computer.totalMemory(): number</code> |
* <code>computer.totalMemory(): number</code> |
||
− | Возвращает общий |
+ | Возвращает общий объём памяти, установленной в компьютер. |
* <code>computer.energy(): number</code> |
* <code>computer.energy(): number</code> |
||
− | Возвращает количество энергии доступное в сети, в которой находится компьютер. Для [[OpenComputers/Робот|робота]] |
+ | Возвращает количество энергии доступное в сети, в которой находится компьютер. Для [[OpenComputers/Робот|робота]] — это количество его собственной энергии/топлива. |
* <code>computer.maxEnergy(): number</code> |
* <code>computer.maxEnergy(): number</code> |
||
− | Возвращает максимальное количество энергии, которое может хранить сеть, подключенная к компьютеру. Для [[OpenComputers/Робот|робота]] |
+ | Возвращает максимальное количество энергии, которое может хранить сеть, подключенная к компьютеру. Для [[OpenComputers/Робот|робота]] — это объём его встроенного аккумулятора. |
* <code>computer.isRobot(): boolean</code> |
* <code>computer.isRobot(): boolean</code> |
||
− | '''Внимание''': эта функция устарела! Используйте вместо |
+ | '''Внимание''': эта функция устарела! Используйте вместо неё <code>component.isAvailable("robot")</code>. |
− | Возвращает <code>true</code>, если компьютер |
+ | Возвращает <code>true</code>, если компьютер — [[OpenComputers/Робот|робот]] и <code>false</code> в противном случае. |
* <code>computer.uptime(): number</code> |
* <code>computer.uptime(): number</code> |
||
− | Возвращает время работы компьютера в секундах. Время измеряется лишь в процессе игры. |
+ | Возвращает время работы компьютера в секундах. Время измеряется лишь в процессе игры. То есть когда игра стоит на паузе, время не считается. |
* <code>computer.shutdown([reboot: boolean])</code> |
* <code>computer.shutdown([reboot: boolean])</code> |
||
− | Выключает компьютер. Перезагружает, если параметр <code>reboot</code> равен <code>true</code>. |
+ | Выключает компьютер. Перезагружает, если параметр <code>reboot</code> равен <code>true</code>. |
Строка 59: | Строка 59: | ||
* <code>computer.removeUser(name: string): boolean</code> |
* <code>computer.removeUser(name: string): boolean</code> |
||
− | Удаляет |
+ | Удаляет учётную запись пользователя. Возвращает <code>true</code>, если пользователь был успешно удален, <code>false</code> если такой пользователь зарегистрирован не был. |
Удаленный пользователь теряет право доступа к компьютеру. Если были удалены все пользователи компьютера, он становится доступен любому игроку. |
Удаленный пользователь теряет право доступа к компьютеру. Если были удалены все пользователи компьютера, он становится доступен любому игроку. |
||
Строка 65: | Строка 65: | ||
* <code>computer.pushSignal(name: string[, ...])</code> |
* <code>computer.pushSignal(name: string[, ...])</code> |
||
− | Добавляет новый сигнал в очередь. Очередь обрабатывается по принципу FIFO ( |
+ | Добавляет новый сигнал в очередь. Очередь обрабатывается по принципу FIFO («Первым пришел — первым ушел»). Сигнал должен как минимум иметь название (<code>name</code>). Сопровождающие аргументы не обязательны. Обратите внимание, что сопровождающие аргументы ограничены базовыми типами данных: <code>nil</code>, <code>boolean</code>, <code>number</code> и <code>string</code>. Типы <code>table</code> и <code>function</code> не поддерживаются. |
Строка 71: | Строка 71: | ||
Пытается получить сигнал из очереди. Ожидает заданное время, в случае неудачи отправляет <code>nil</code>. Если время не было определено, продолжает ожидание. |
Пытается получить сигнал из очереди. Ожидает заданное время, в случае неудачи отправляет <code>nil</code>. Если время не было определено, продолжает ожидание. |
||
− | Первое возвращаемое значение |
+ | Первое возвращаемое значение — название сигнала. Сопровождающие аргументы идут в том порядке, в каком были отправлены функцией <code>computer.pushSignal</code> |
− | '''Важно''': очень рекомендуется использовать функцию <code>event.pull</code> для обработки сигналов, вместо получения напрямую. Это будет гарантировать, что другие сигналы сети будут обрабатываться как события ( |
+ | '''Важно''': очень рекомендуется использовать функцию <code>event.pull</code> для обработки сигналов, вместо получения напрямую. Это будет гарантировать, что другие сигналы сети будут обрабатываться как события («event»), что требуется для работы некоторых библиотек (например — [[OpenComputers/Term API|Term API]]). Кроме того, станет более удобной фильтрация событий. |
− | *<code>computer.beep([frequency:number, duration:number])</code> |
+ | * <code>computer.beep([frequency:number, duration:number])</code> |
− | Звук |
+ | Звук «динамика материнской платы». Компьютер издает звук заданной частоты и длительности. |
Частота (<code>frequency</code>) звука задается в пределах 20-2000 Гц. |
Частота (<code>frequency</code>) звука задается в пределах 20-2000 Гц. |
||
− | Продолжительность (<code>duration</code>) |
+ | Продолжительность (<code>duration</code>) — от 0.05 до 5 секунд. |
− | По умолчанию функция воспроизводит звук частотой |
+ | По умолчанию функция воспроизводит звук частотой 440 Гц, в течение 0,1 сек. |
== Пример == |
== Пример == |
||
− | Пример использования интерфейса Computer API |
+ | Пример использования интерфейса Computer API — программа, которая перезагружает компьютер работающий более 5 минут (300 секунд): |
<pre> |
<pre> |
||
local computer = require("computer") |
local computer = require("computer") |
Текущая версия от 16:02, 26 мая 2019
Этот интерфейс предоставляет информацию о компьютере, на котором запущена программа, такую как его адрес или время работы. Кроме того — некоторые функции для управления пользователями.
computer.address(): string
Возвращает адрес компонента.
computer.romAddress(): string
Возвращает адрес файловой системы ROM (ПЗУ).
Внимание: эта функция устарела! Начиная с версии мода 1.3, компьютеры не имеют памяти ROM.
computer.tmpAddress(): string
Возвращает адрес временной файловой системы компьютера (если такая существует).
computer.freeMemory(): number
Возвращает объём свободной памяти компьютера, в байтах. Если это число близко к нулю, велика вероятность того, что компьютер скоро завершит работу с ошибкой переполнения памяти.
computer.totalMemory(): number
Возвращает общий объём памяти, установленной в компьютер.
computer.energy(): number
Возвращает количество энергии доступное в сети, в которой находится компьютер. Для робота — это количество его собственной энергии/топлива.
computer.maxEnergy(): number
Возвращает максимальное количество энергии, которое может хранить сеть, подключенная к компьютеру. Для робота — это объём его встроенного аккумулятора.
computer.isRobot(): boolean
Внимание: эта функция устарела! Используйте вместо неё component.isAvailable("robot")
.
Возвращает true
, если компьютер — робот и false
в противном случае.
computer.uptime(): number
Возвращает время работы компьютера в секундах. Время измеряется лишь в процессе игры. То есть когда игра стоит на паузе, время не считается.
computer.shutdown([reboot: boolean])
Выключает компьютер. Перезагружает, если параметр reboot
равен true
.
computer.users(): string, ...
Список всех пользователей, зарегистрированных на этом компьютере, в виде кортежа. Если вам необходимо использовать список с итератором используйте table.pack
.
Вне зависимости от списка зарегистрированных пользователей, доступом к компьютеру всегда обладают администраторы сервера.
computer.addUser(name: string): boolean or nil, string
Регистрирует нового пользователя. Возвращает true
, если пользователь был успешно добавлен, nil
и сообщение ошибки в противном случае.
Добавляемый пользователь (игрок), должен в этот момент находиться в игре. Он получает полные права доступа к компьютеру.
computer.removeUser(name: string): boolean
Удаляет учётную запись пользователя. Возвращает true
, если пользователь был успешно удален, false
если такой пользователь зарегистрирован не был.
Удаленный пользователь теряет право доступа к компьютеру. Если были удалены все пользователи компьютера, он становится доступен любому игроку.
computer.pushSignal(name: string[, ...])
Добавляет новый сигнал в очередь. Очередь обрабатывается по принципу FIFO («Первым пришел — первым ушел»). Сигнал должен как минимум иметь название (name
). Сопровождающие аргументы не обязательны. Обратите внимание, что сопровождающие аргументы ограничены базовыми типами данных: nil
, boolean
, number
и string
. Типы table
и function
не поддерживаются.
computer.pullSignal([timeout: number]): name, ...
Пытается получить сигнал из очереди. Ожидает заданное время, в случае неудачи отправляет nil
. Если время не было определено, продолжает ожидание.
Первое возвращаемое значение — название сигнала. Сопровождающие аргументы идут в том порядке, в каком были отправлены функцией computer.pushSignal
Важно: очень рекомендуется использовать функцию event.pull
для обработки сигналов, вместо получения напрямую. Это будет гарантировать, что другие сигналы сети будут обрабатываться как события («event»), что требуется для работы некоторых библиотек (например — Term API). Кроме того, станет более удобной фильтрация событий.
computer.beep([frequency:number, duration:number])
Звук «динамика материнской платы». Компьютер издает звук заданной частоты и длительности.
Частота (frequency
) звука задается в пределах 20-2000 Гц.
Продолжительность (duration
) — от 0.05 до 5 секунд.
По умолчанию функция воспроизводит звук частотой 440 Гц, в течение 0,1 сек.
Пример
Пример использования интерфейса Computer API — программа, которая перезагружает компьютер работающий более 5 минут (300 секунд):
local computer = require("computer") if computer.uptime() >= 300 then computer.shutdown(true) end