Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
api:computer:zh [2023/10/17 05:26]
hfsr
api:computer:zh [2023/11/29 11:16] (current)
hfsr [Computer(电脑) API]
Line 1: Line 1:
 Computer(电脑) API Computer(电脑) API
 =========== ===========
-此API主要提供了关于正在运行Lua state的电脑的信息,例如其地址和运行时间。API中还包含了用于用户管理的函数。此API中的函数可以从属于`os` API,但是为了保持“整洁”,这些函数归类为单独的API。+此API主要提供了关于正在运行Lua state的电脑的信息,例如其地址和运行时间。API中还包含了用于用户管理的函数。此API中的函数可以从属于`os`API,但是为了保持“整洁”,这些函数归类为单独的API。
  
 - `computer.address():​ string`  ​ - `computer.address():​ string`  ​
-  此电脑的[[:​component:​component_access:​zh|组件地址]]。+  此电脑的[[:​component:​component_access:​zh|组件地址]]。 ​  
 +\\
 - `computer.tmpAddress():​ string`  ​ - `computer.tmpAddress():​ string`  ​
-  此电脑的临时文件系统组件地址(如果有),用于在启动时挂载此文件系统。+  此电脑的临时文件系统组件地址(如果有),用于在启动时挂载此文件系统。 ​  
 +\\
 - `computer.freeMemory():​ number`  ​ - `computer.freeMemory():​ number`  ​
-  当前未使用的内存大小,单位为字节。如果此数值接近0那么你的电脑可能会很快因为内存不足而崩溃。请注意,为了运行OpenOS,高度建议用户安装1条以上1.5级内存条。系统能用单条1级内存启动,但很快就容易内存不足。+  当前未使用的内存大小,单位为字节。如果此数值接近0那么你的电脑可能会很快因为内存不足而崩溃(报出“out of memory”错误)。请注意,为了运行OpenOS,高度建议用户安装1条以上1.5级内存条。系统能用单条1级内存启动,但很快就容易内存不足。 ​  
 +\\
 - `computer.totalMemory():​ number`  ​ - `computer.totalMemory():​ number`  ​
-  此电脑安装的内存总量,单位为字节。+  此电脑安装的内存总量,单位为字节。 ​  
 +\\
 - `computer.energy():​ number`  ​ - `computer.energy():​ number`  ​
-  电脑所在网络中当前可用的能量数量。对机器人而言是机器人自己的能量/​燃料量。+  电脑所在网络中当前可用的能量数量。对机器人而言是机器人自己的能量/​燃料量。 ​  
 +\\
 - `computer.maxEnergy():​ number`  ​ - `computer.maxEnergy():​ number`  ​
-  电脑所在网络中能够存储的最大能量数量。对机器人而言是机器人的内置能量缓存大小(可以在机器人的GUI中查看)。+  电脑所在网络中能够存储的最大能量数量。对机器人而言是机器人的内置能量缓存大小(可以在机器人的GUI中查看)。 ​  
 +\\
 - `computer.uptime():​ number`  ​ - `computer.uptime():​ number`  ​
-  ​现实世界中此电脑运行的时间,单位为秒。计算方法为自电脑启动以来游戏世界经过的时间——意味着游戏暂停时此数值不会增长。+  此电脑运行的时间,单位为现实世界的秒。计算方法为自电脑启动以来游戏世界经过的时间——意味着游戏暂停时此数值不会增长。 ​  
 +\\
 - `computer.shutdown([reboot:​ boolean])`  ​ - `computer.shutdown([reboot:​ boolean])`  ​
-  关闭电脑。如果`reboot`为`true`也可以重启电脑,即先关机再自动启动。此函数不会有返回值。+  关闭电脑。如果`reboot`为`true`也可以重启电脑,重启即先关机再自动启动。此函数不会有返回值。 ​ 
   下面的样例将会在电脑运行至少300秒(5分钟)后重启电脑。   下面的样例将会在电脑运行至少300秒(5分钟)后重启电脑。
  
Line 29: Line 36:
  
 - `computer.getBootAddress():​string`  ​ - `computer.getBootAddress():​string`  ​
-  获取首先尝试启动的文件系统组件地址。*OC 1.3新加入*+  获取首先尝试用于引导启动的文件系统组件地址。 ​  
 +**OC 1.3新加入。**   
 +\\
 - `computer.setBootAddress([address:​string])`  ​ - `computer.setBootAddress([address:​string])`  ​
-  设定首先尝试启动的文件系统组件地址。传参nil/​不传参调用以清除。*OC 1.3新加入*。 +  设定首先尝试用于引导启动的文件系统组件地址。传参`nil`/​不传参调用以清除。 ​  
-- `computer.runlevel():​ string|number` +**OC 1.3新加入。**   
- +\\ 
-  返回电脑当前所在的[[https://​en.wikipedia.org/​wiki/​Runlevel|运行状态]](英文维基百科)。OpenOS的运行状态有: +- `computer.runlevel():​ string|number` ​  
-  - `S`: 单用户模式,尚未有组件文件系统初始化 +  返回电脑当前所在的[[https://​en.wikipedia.org/​wiki/​Runlevel|运行级别(runlevel)]](英文维基百科)。OpenOS的运行级别有: 
-  - `1`: 单用户模式,文件系统与组件已初始化——OpenOS完成了启动+  - `S`: 单用户模式,组件文件系统尚未初始化 
 +  - `1`: 单用户模式,文件系统与组件已初始化——OpenOS完成了启动。   
 +\\
 - `computer.users():​ string, ...`  ​ - `computer.users():​ string, ...`  ​
-  此电脑上的全体登记用户列表,形式为元组。若要将结果转化为表,请使用`table.pack`。 +  此电脑上的全体登记用户列表,形式为元组(tuple)。若要将结果转化为表,请先对其使用`table.pack`。 ​  
-  请查看[[:​computer_users:​zh|用户行为控制文档]]。+  请参见[[:​computer_users:​zh|用户行为控制文档]]获取更多信息。   
 +\\
 - `computer.addUser(name:​ string): boolean or nil, string`  ​ - `computer.addUser(name:​ string): boolean or nil, string`  ​
-  在此电脑上登记个新用户。若添加成功则返回`true`,否则返回`nil`和一条报错信息。 +  在此电脑上登记个新用户。若添加成功则返回`true`,否则返回`nil`和一条报错信息。 ​  
-  欲添加的用户必须在线。此用户将会获得此电脑的完全访问权限。在shell中,可以执行`useradd <​用户名>​`命令调用此方法。+  欲添加的用户必须在游戏中。此用户将会获得此电脑的完全访问权限。在shell中,可以执行`useradd <​用户名>​`命令调用此方法。 ​  
 +\\
 - `computer.removeUser(name:​ string): boolean`  ​ - `computer.removeUser(name:​ string): boolean`  ​
-  删除此电脑上的某个用户。若用户成功被移除则返回`true`,若用户先前未被登记则返回`false`。 +  删除此电脑上的某个用户。若用户成功被移除则返回`true`,若用户先前未被登记则返回`false`。 ​  
-  此用户将会失去对此电脑的一切访问权限。当用户列表中的所有用户均被移除时,所有用户均可访问此电脑。在命令行中可使用`userdel <​用户名>​`调用此方法+  此用户将会失去对此电脑的一切访问权限。当用户列表中的所有用户均被移除时,任何用户均可访问此电脑。在命令行中可使用`userdel <​用户名>​`调用此方法。   
 +\\
 - `computer.pushSignal(name:​ string[, ...])`  ​ - `computer.pushSignal(name:​ string[, ...])`  ​
-  向队列中推送一个新信号。信号按照先进先出顺序处理。推送的信号应至少有信号名,一并传递的参数是否存在均可。请注意只有基本数据类型才可作为信号参数,包括:nil(空)、boolean(布尔型)、number(数字型)、string(字符串型)和table(。表类型确实受支持(请继续读),但是线程和函数型变量不受支持。 +  向队列中推送一个新信号。信号按照先进先出顺序处理。推送的信号应至少有信号名,是否存在一并传递的参数均可。请注意只有基本数据类型才可作为信号参数,包括:`nil``boolean``number``string``table`。表table)类型确实受支持(请继续读),但是线程和函数型变量不受支持。 ​  
-   +  请注意只有特定类型的表才受支持。具体而言,表必须由受支持的数据类型组成,例如`string`型和`number`型,甚至可以是子表。但是不可以包含线程和数组。 ​  
-  请注意只有特定类型的表才受支持。具体而言,表必须由受支持的数据类型组成,例如string(字符串)型和number(数字)型,甚至可以是子表。但是不可以包含线程和数组。+\\
 - `computer.pullSignal([timeout:​ number]): name, ...`  ​ - `computer.pullSignal([timeout:​ number]): name, ...`  ​
-  尝试从队列中拉取一个信号,在等待指定时长后判定为失败并返回`nil`。如果不指定时间则永久等待。 +  尝试从队列中拉取一个信号,在等待指定时长后判定为失败并返回`nil`。如果不指定时间则永久等待。 ​  
-  返回结果的第一个值为信号名,后面的返回值与`pushSignal`推送的内容有关。依事件类型而定。 +  返回结果的第一个值为信号名,后返回值与`pushSignal`推送的内容有关。依事件类型而定。 
-  通常而言使用[[api:​event:​zh|event]]库中的`event.pull`函数更加方便。返回值完全一致,但是`event`库提供了更多选项。 +  通常而言使用[[api:​event:​zh|event]]库中的`event.pull`函数更加方便。返回值完全一致,但是`event`库提供了更多选项。 ​  
- +\\ 
-- `computer.beep([frequency:​string or number[, duration: number])` +- `computer.beep([frequency:​string or number[, duration: number])` ​  
- +  若`frequency`为数字,其值需要介于20与2000之间。 ​  
-  若`frequency`为数字,其值需要介于20与2000之间。 +  让电脑产生频率为`frequency` Hz,时长为`duration`秒的滴声。此函数已经被重载为可以接收字符串参数,其格式为点`.`与`-`破折号的组合,分别代表短与长滴声。 ​  
- +\\ 
-  让电脑产生频率为`frequency` Hz,时长为`duration`秒的滴声。此函数已经被重载为可以接收一个字符串参数,其格式为点`.`与`-`破折号的组合,分别代表短与长滴声。 +- `computer.getDeviceInfo():​ table` ​ 
- +
-- `computer.getDeviceInfo():​ table` +
   返回存储了此电脑上安装的设备信息的表。   返回存储了此电脑上安装的设备信息的表。