mirror of
https://github.com/meshtastic/meshtastic.git
synced 2025-01-12 22:37:33 -08:00
pnpm format ran
This commit is contained in:
parent
4d5b75ea01
commit
55adb12d6d
|
@ -1,3 +1,8 @@
|
|||
:::important
|
||||
<span>The name of ths option changed between Meshtastic 1.2 and 1.3. This documentaton already reflects the 1.3 syntax. Please substitute '{props.name}' prefix with '{props.rename}' to get the 1.2 compatible command name.</span>
|
||||
:::
|
||||
:::important
|
||||
|
||||
<span>
|
||||
The name of ths option changed between Meshtastic 1.2 and 1.3. This
|
||||
documentaton already reflects the 1.3 syntax. Please substitute '{props.name}'
|
||||
prefix with '{props.rename}' to get the 1.2 compatible command name.
|
||||
</span>
|
||||
:::
|
||||
|
|
|
@ -11,6 +11,7 @@ GPIO access is fundamentally dangerous because invalid options can physically da
|
|||
External GPS modules can be installed to extend the capabilities of simple boards.
|
||||
|
||||
## GY-GPS6MV2 GPS module
|
||||
|
||||
- Based on the ublox/u-blox NEO-6M module
|
||||
- Input: 3 to 5V
|
||||
- Interface: RS232 TTL
|
||||
|
@ -19,17 +20,16 @@ External GPS modules can be installed to extend the capabilities of simple board
|
|||
|
||||
[<img src="/img/hardware/gy-gps6mv2.jpg" alt="GY-GPS6MV2" style={{zoom:'50%'}} />](/img/hardware/gy-gps6mv2.jpg)
|
||||
|
||||
|
||||
### LILYGO TTGO Lora32 v2.1-1.6
|
||||
|
||||
- Wiring instructions:
|
||||
|
||||
| GPS Module Pin | TTGO Lora32 v2.1-1.6 Pin |
|
||||
| :-----: | :---------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | IO13 |
|
||||
| TX | IO15 |
|
||||
| GND | GND |
|
||||
| :------------: | :----------------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | IO13 |
|
||||
| TX | IO15 |
|
||||
| GND | GND |
|
||||
|
||||
- Once the module is connected, it should be detected automatically by the firmware.
|
||||
|
||||
|
@ -38,11 +38,11 @@ External GPS modules can be installed to extend the capabilities of simple board
|
|||
- Wiring instructions:
|
||||
|
||||
| GPS Module Pin | TTGO Lora32 v2.0 Pin |
|
||||
| :-----: | :---------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 13 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
| :------------: | :------------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 13 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
|
||||
- Once the module is connected, it should be detected automatically by the firmware.
|
||||
|
||||
|
@ -50,12 +50,12 @@ External GPS modules can be installed to extend the capabilities of simple board
|
|||
|
||||
- Wiring instructions:
|
||||
|
||||
| GPS Module Pin | TTGO Lora32 v1.3 Pin|
|
||||
| :-----: | :---------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 13 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
| GPS Module Pin | TTGO Lora32 v1.3 Pin |
|
||||
| :------------: | :------------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 13 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
|
||||
- Once the module is connected, it should be detected automatically by the firmware.
|
||||
|
||||
|
@ -63,12 +63,12 @@ External GPS modules can be installed to extend the capabilities of simple board
|
|||
|
||||
- Wiring instructions:
|
||||
|
||||
| GPS Module Pin | TTGO Lora32 v1.0 Pin|
|
||||
| :-----: | :---------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 37 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
| GPS Module Pin | TTGO Lora32 v1.0 Pin |
|
||||
| :------------: | :------------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 37 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
|
||||
- Once the module is connected, it should be detected automatically by the firmware.
|
||||
|
||||
|
@ -76,14 +76,11 @@ External GPS modules can be installed to extend the capabilities of simple board
|
|||
|
||||
- Wiring instructions:
|
||||
|
||||
| GPS Module Pin | Heltec Lora32 Pin|
|
||||
| :-----: | :---------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 37 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
| GPS Module Pin | Heltec Lora32 Pin |
|
||||
| :------------: | :---------------: |
|
||||
| VCC | 3.3V |
|
||||
| RX | 37 |
|
||||
| TX | 36 |
|
||||
| GND | GND |
|
||||
|
||||
- Once the module is connected, it should be detected automatically by the firmware.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -39,16 +39,36 @@ There is currently no pin required to pair RAK devices via BLE.
|
|||
- Optional screen
|
||||
|
||||
- Firmware for 5005 base board: [`firmware-rak4631_5005-1.x.x.uf2`](/downloads)
|
||||
<img alt="RAK4631 5005" src="/img/hardware/rak4631_5005.png" style={{zoom:'50%'}} />
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005"
|
||||
src="/img/hardware/rak4631_5005.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
- Firmware for 19003 base board: [`firmware-rak4631_19003-1.x.x.uf2`](/downloads)
|
||||
<img alt="RAK4631 19003" src="/img/hardware/rak4631_19003.png" style={{zoom:'50%'}} />
|
||||
|
||||
<img
|
||||
alt="RAK4631 19003"
|
||||
src="/img/hardware/rak4631_19003.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
- Firmware for 5005 with RAK14000 epaper: [`firmware-rak4631_19003-epaper-1.3.x.uf2`](/downloads)
|
||||
<img alt="RAK4631 5005 14000" src="/img/hardware/rak4631_5005_epaper.jpg" style={{zoom:'50%'}} />
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005 14000"
|
||||
src="/img/hardware/rak4631_5005_epaper.jpg"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
- Firmware for 5005 with 11200: [`firmware-11200-1.3.x.bin`](/downloads)
|
||||
<img alt="RAK4631 5005 11200" src="/img/hardware/rak11200.jpg" style={{zoom:'50%'}} />
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005 11200"
|
||||
src="/img/hardware/rak11200.jpg"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
- [Installation instructions](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Quickstart/#rak4631-lora-mesh-via-meshtastic)
|
||||
- Don't forget to [update the bootloader](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Quickstart/#updating-the-bootloader) first! This can be done easily with [Meshtastic-flasher](https://github.com/meshtastic/Meshtastic-gui-installer)
|
||||
|
|
|
@ -3,6 +3,7 @@ id: canned-message-module
|
|||
title: Canned Message Module
|
||||
sidebar_label: Canned Message Module
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
@ -35,7 +36,7 @@ Once module settings are changed, a **reset** is required for them to take effec
|
|||
| canned_message_module_enabled | `true`, `false` | `false` |
|
||||
| canned_message_module_messages | `string` | `""` |
|
||||
| canned_message_module_send_bell | `true`, `false` | `false` |
|
||||
| (Messages)* | `string` | `""` |
|
||||
| (Messages)\* | `string` | `""` |
|
||||
|
||||
- Messages can be set with a dedicated option:
|
||||
|
||||
|
@ -170,7 +171,6 @@ values={[
|
|||
]}>
|
||||
<TabItem value="cli">
|
||||
|
||||
|
||||
```shell title="Enable Bell Character"
|
||||
meshtastic --set canned_message_module_send_bell true
|
||||
```
|
||||
|
|
|
@ -8,10 +8,10 @@ import Tabs from '@theme/Tabs';
|
|||
import TabItem from '@theme/TabItem';
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
||||
|
||||
:::warning
|
||||
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
|
||||
:::
|
||||
|
||||
<PluginModule name="ext_notification_module" rename="ext_notification_plugin" />
|
||||
|
||||
<!--- TODO add link to hardware setup to admonition--->
|
||||
|
|
|
@ -12,7 +12,7 @@ import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
|||
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
|
||||
:::
|
||||
|
||||
<PluginModule name="inputbroker_" rename="rotary1_"/>
|
||||
<PluginModule name="inputbroker_" rename="rotary1_" />
|
||||
|
||||
<!--- TODO add link to hardware setup to admonition--->
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
|||
## Overview
|
||||
|
||||
This module allows you to test the range of your Meshtastic nodes. It requires at least two nodes, a sender and a receiver. The receiving node then saves the messages along with the GPS coordinates at which they were received into a .csv file. This .csv file can then be integrated into [Google Earth](https://earth.google.com), [Google Maps - My Maps](https://mymaps.google.com), or any other program capable of processing .csv files. This can enable you to visualize your mesh.
|
||||
|
||||
<PluginModule name="range_test_module" rename="range_test_plugin" />
|
||||
|
||||
:::tip
|
||||
|
|
|
@ -12,7 +12,10 @@ import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
|||
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
|
||||
:::
|
||||
|
||||
<PluginModule name="telemetry_module_environment" rename="environmental_measurement_plugin"/>
|
||||
<PluginModule
|
||||
name="telemetry_module_environment"
|
||||
rename="environmental_measurement_plugin"
|
||||
/>
|
||||
|
||||
<!--- TODO add link to hardware setup to admonition--->
|
||||
|
||||
|
@ -30,8 +33,8 @@ Once module settings are changed, a **reset** is required for them to take effec
|
|||
|
||||
## Settings
|
||||
|
||||
| Setting | Acceptable Values | Default |
|
||||
| :-----------------------------------------: | :-----------------: | :-----: |
|
||||
| Setting | Acceptable Values | Default |
|
||||
| :-----------------------------------------------------: | :-----------------: | :-----: |
|
||||
| telemetry_module_device_update_interval | `integer` (seconds) | `0` |
|
||||
| telemetry_module_environment_display_fahrenheit | `true`, `false` | `false` |
|
||||
| telemetry_module_environment_measurement_enabled | `true`, `false` | `false` |
|
||||
|
@ -60,6 +63,7 @@ values={[
|
|||
```shell title="Set module update interval to default"
|
||||
meshtastic --set telemetry_module_device_update_interval 0
|
||||
```
|
||||
|
||||
```shell title="Set module update interval to 120 seconds"
|
||||
meshtastic --set telemetry_module_device_update_interval 120
|
||||
```
|
||||
|
@ -88,7 +92,6 @@ Configuring this setting is not yet available for the selected platform. If this
|
|||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
### telemetry_module_environment_display_fahrenheit
|
||||
|
||||
The sensor is always read in Celsius, but the user can opt to view the temperature display in Fahrenheit using this setting.
|
||||
|
@ -107,16 +110,17 @@ values={[
|
|||
<TabItem value="cli">
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
|
||||
```shell title="Display Farenheit"
|
||||
meshtastic --set telemetry_module_display_farenheit true
|
||||
```
|
||||
|
||||
```shell title="Display Celsius"
|
||||
````shell title="Display Celsius"
|
||||
meshtastic --set telemetry_module_display_farenheit false
|
||||
=======
|
||||
```shell title="Display Farenheit"
|
||||
meshtastic --set telemetry_module_environment_display_fahrenheit true
|
||||
```
|
||||
````
|
||||
|
||||
```shell title="Display Celsius"
|
||||
meshtastic --set telemetry_module_environment_display_fahrenheit false
|
||||
|
@ -165,16 +169,17 @@ values={[
|
|||
<TabItem value="cli">
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
|
||||
```shell title="Enable Module"
|
||||
meshtastic --set telemetry_module_measurement_enabled true
|
||||
```
|
||||
|
||||
```shell title="Disable Module"
|
||||
````shell title="Disable Module"
|
||||
meshtastic --set telemetry_module_measurement_enabled false
|
||||
=======
|
||||
```shell title="Enable Module"
|
||||
meshtastic --set telemetry_module_environment_measurement_enabled true
|
||||
```
|
||||
````
|
||||
|
||||
```shell title="Disable Module"
|
||||
meshtastic --set telemetry_module_environment_measurement_enabled false
|
||||
|
@ -223,13 +228,14 @@ values={[
|
|||
<TabItem value="cli">
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
```shell title="Configure telemetry_module_read_error_count_threshold to 3 tries"
|
||||
|
||||
````shell title="Configure telemetry_module_read_error_count_threshold to 3 tries"
|
||||
meshtastic --set telemetry_module_read_error_count_threshold 3
|
||||
=======
|
||||
```shell title="Configure telemetry_module_environment_read_error_count_threshold to 3 tries"
|
||||
meshtastic --set telemetry_module_environment_read_error_count_threshold 3
|
||||
>>>>>>> master:docs/settings/telemetry-module.md
|
||||
```
|
||||
````
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="android">
|
||||
|
@ -273,13 +279,14 @@ values={[
|
|||
<TabItem value="cli">
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
```shell title="Configure telemetry_module_recovery_interval to 120 seconds"
|
||||
|
||||
````shell title="Configure telemetry_module_recovery_interval to 120 seconds"
|
||||
meshtastic --set telemetry_module_recovery_interval 120
|
||||
=======
|
||||
```shell title="Configure telemetry_module_environment_recovery_interval to 120 seconds"
|
||||
meshtastic --set telemetry_module_environment_recovery_interval 120
|
||||
>>>>>>> master:docs/settings/telemetry-module.md
|
||||
```
|
||||
````
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="android">
|
||||
|
@ -323,16 +330,17 @@ values={[
|
|||
<TabItem value="cli">
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
|
||||
```shell title="Enable on device screen"
|
||||
meshtastic --set telemetry_module_screen_enabled true
|
||||
```
|
||||
|
||||
```shell title="Disable on device screen"
|
||||
````shell title="Disable on device screen"
|
||||
meshtastic --set telemetry_module_screen_enabled false
|
||||
=======
|
||||
```shell title="Enable on device screen"
|
||||
meshtastic --set telemetry_module_environment_screen_enabled true
|
||||
```
|
||||
````
|
||||
|
||||
```shell title="Disable on device screen"
|
||||
meshtastic --set telemetry_module_environment_screen_enabled false
|
||||
|
@ -389,13 +397,14 @@ values={[
|
|||
<TabItem value="cli">
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
```shell title="Set module sensor pin"
|
||||
|
||||
````shell title="Set module sensor pin"
|
||||
meshtastic --set telemetry_module_sensor_pin PINNUMBER
|
||||
=======
|
||||
```shell title="Set module sensor pin"
|
||||
meshtastic --set telemetry_module_environment_sensor_pin PINNUMBER
|
||||
>>>>>>> master:docs/settings/telemetry-module.md
|
||||
```
|
||||
````
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="android">
|
||||
|
@ -462,16 +471,17 @@ The CLI is able to take the `value` or the `name` of the sensor from the table a
|
|||
:::
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
|
||||
```shell title="Set sensor type to DS18B20"
|
||||
meshtastic --set telemetry_module_sensor_type 1
|
||||
```
|
||||
|
||||
```shell title="Set sensor type to DS18B20"
|
||||
````shell title="Set sensor type to DS18B20"
|
||||
meshtastic --set telemetry_module_sensor_type DS18B20
|
||||
=======
|
||||
```shell title="Set sensor type to DS18B20"
|
||||
meshtastic --set telemetry_module_environment_sensor_type 2
|
||||
```
|
||||
````
|
||||
|
||||
```shell title="Set sensor type to DS18B20"
|
||||
meshtastic --set telemetry_module_environment_sensor_type DS18B20
|
||||
|
@ -516,13 +526,14 @@ values={[
|
|||
<TabItem value="cli">
|
||||
|
||||
<<<<<<< HEAD:docs/settings/environmental-measurment-module.mdx
|
||||
```shell title="Set module update interval to 15 seconds"
|
||||
|
||||
````shell title="Set module update interval to 15 seconds"
|
||||
meshtastic --set telemetry_module_update_interval 15
|
||||
=======
|
||||
```shell title="Set module update interval to 120 seconds"
|
||||
meshtastic --set telemetry_module_environment_update_interval 120
|
||||
>>>>>>> master:docs/settings/telemetry-module.md
|
||||
```
|
||||
````
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="android">
|
||||
|
|
|
@ -3,6 +3,7 @@ id: canned-message-module
|
|||
title: Canned messages
|
||||
sidebar_label: Canned messages
|
||||
---
|
||||
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
||||
## About
|
||||
|
|
|
@ -3,6 +3,7 @@ id: ext-notif-module
|
|||
title: External notifications
|
||||
sidebar_label: External notifications
|
||||
---
|
||||
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
||||
## About
|
||||
|
@ -11,7 +12,7 @@ The ExternalNotification Module will allow you to connect a speaker, LED or othe
|
|||
|
||||
## Configuration
|
||||
|
||||
<PluginModule name="ext_notification_" rename="ext_notification_"/>
|
||||
<PluginModule name="ext_notification_" rename="ext_notification_" />
|
||||
|
||||
These are the settings that can be configured.
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ id: range-test-module
|
|||
title: Range Test Module
|
||||
sidebar_label: Range Test
|
||||
---
|
||||
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
||||
This module allows you to test the range of your Meshtastic nodes. It uses two nodes, one to send a message every minute, and another to receive the messages. The receiving node then saves the messages along with the GPS coordinates at which they were received into a .csv file. This .csv file can then be integrated into, for example, Google Earth, allowing you to see where you have coverage.
|
||||
|
|
|
@ -3,6 +3,7 @@ id: serial-module
|
|||
title: Serial communication module
|
||||
sidebar_label: Serial communication
|
||||
---
|
||||
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
||||
## About
|
||||
|
|
|
@ -3,6 +3,7 @@ id: store-forward-module
|
|||
title: Store and Forward Module
|
||||
sidebar_label: Store and Forward
|
||||
---
|
||||
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
||||
## About
|
||||
|
|
|
@ -3,9 +3,10 @@ id: telemetry-module
|
|||
title: Telemetry
|
||||
sidebar_label: Telemetry
|
||||
---
|
||||
|
||||
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
|
||||
|
||||
<PluginModule name="telemetry_" rename="environmental_measurment_"/>
|
||||
<PluginModule name="telemetry_" rename="environmental_measurment_" />
|
||||
|
||||
## About
|
||||
|
||||
|
|
|
@ -36,24 +36,25 @@ The payload is a raw protobuf. Looking at the MQTT traffic with a program like `
|
|||
ShortFast !937bed1c
|
||||
```
|
||||
|
||||
Packets from the following [port numbers](docs/developers/firmware/portnum) are serialized to JSON and then forwarded to the `msh/1/json/CHANNELID/DEVICEID` topic: `TEXT_MESSAGE_APP`, `ENVIRONMENTAL_MEASUREMENT_APP`, `NODEINFO_APP` and `POSITION_APP`.
|
||||
Packets from the following [port numbers](docs/developers/firmware/portnum) are serialized to JSON and then forwarded to the `msh/1/json/CHANNELID/DEVICEID` topic: `TEXT_MESSAGE_APP`, `ENVIRONMENTAL_MEASUREMENT_APP`, `NODEINFO_APP` and `POSITION_APP`.
|
||||
|
||||
An example of a received `NODEINFO_APP` message:
|
||||
|
||||
```json
|
||||
{
|
||||
"id":452664778,
|
||||
"channel":0,
|
||||
"from":2130636288,
|
||||
"payload":{
|
||||
"hardware":10,
|
||||
"id":"!7efeee00",
|
||||
"longname":"base0",
|
||||
"shortname":"BA0"
|
||||
},
|
||||
"sender":"!7efeee00",
|
||||
"timestamp":1646832724,
|
||||
"to":-1,
|
||||
"type":"nodeinfo"
|
||||
"id": 452664778,
|
||||
"channel": 0,
|
||||
"from": 2130636288,
|
||||
"payload": {
|
||||
"hardware": 10,
|
||||
"id": "!7efeee00",
|
||||
"longname": "base0",
|
||||
"shortname": "BA0"
|
||||
},
|
||||
"sender": "!7efeee00",
|
||||
"timestamp": 1646832724,
|
||||
"to": -1,
|
||||
"type": "nodeinfo"
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -73,7 +74,6 @@ If the message received contains valid JSON in the payload, the JSON is deserial
|
|||
|
||||
`sender` and `payload` fields are required for a valid envelope. If a valid MQTT message is found, the message is sent over the radio as a message of type `TEXT_MESSAGE_APP` with the serialized `payload` value in the message payload.
|
||||
|
||||
|
||||
### Basic Configuration
|
||||
|
||||
Check out [MQTT Settings](/docs/settings/mqtt) for full information. For quick start instructions, read on.
|
||||
|
|
Loading…
Reference in a new issue