Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mongoose-os-libs/rpc-service-config


https://github.com/mongoose-os-libs/rpc-service-config

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# RPC Service - Config

This service provides an ability to manage device configuration remotely.
It is required by the `mos config-get` and `mos config-set` commands.
If this library is not included in the app, those commands won't work.
It is possible to call this service programmatically via serial, HTTP/RESTful,
Websocket, MQTT or other transports
(see [RPC section](/docs/mongoose-os/userguide/rpc.md)) or use `mos` tool.

Below is a list of exported RPC methods and arguments:

## Config.Get
Get device configuration subtree. Arguments:

```javascript
{
// Optional. Path to a config object, e.g. `wifi.sta.ssid`.
// If not specified, a full configuration tree is returned.
"key": "..."
}
```

Example usage:

mos call Config.Get

{
"http": {
"enable": true,
"listen_addr": "80",
...
mos call Config.Get '{"key": "wifi.sta.enable"}'
true

This RPC command has a shortcut: `mos config-get`:

mos config-get

{
"http": {
"enable": true,
"listen_addr": "80",
...
mos config-get wifi.sta.enable
true

## Config.Set
Set device configuration parameters. Arguments, either:

```javascript
{
// Required. Contains a sparse object with configuration parameters.
// These parameters are applied on top of the existing device configuration.
"config": { ... }
}
```

or

```
{
"key": "debug.level", // Config key in dotted notation
"value": 3, // Config value, as JSON.
}
```

Example usage - set `debug.level` to `3`:

mos call Config.Set '{"config": {"debug": {"level": 3}}}'

This RPC command has a shortcut: `mos config-set` which sets the config
option, saves it, and reboots the device (since some config options take
effect only after reboot):

mos config-set debug.level=3

Getting configuration...
Setting new configuration...
Saving and rebooting...

## Config.Save
Writes an existing device confuguration on flash, as a sequence of
`confX.json` files
(see [description](/docs/mongoose-os/userguide/configuration.md)). This makes
configuration permament, preserved after device reboot. Arguments:

```javascript
{
"reboot": false // Optional. Whether to reboot the device after the call
}
```

Example usage:

mos call Config.Save '{"reboot": true}'