Initial commit
This commit is contained in:
commit
235a77d788
|
@ -0,0 +1 @@
|
||||||
|
.DS_Store
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
|
// for the documentation about the tasks.json format
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"type": "mos",
|
||||||
|
"problemMatcher": {
|
||||||
|
"owner": "cpp",
|
||||||
|
"fileLocation": ["relative", "${workspaceRoot}"],
|
||||||
|
"pattern": {
|
||||||
|
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
|
||||||
|
"file": 1,
|
||||||
|
"line": 2,
|
||||||
|
"column": 3,
|
||||||
|
"severity": 4,
|
||||||
|
"message": 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
|
@ -0,0 +1,21 @@
|
||||||
|
# LilyGo HiGrow ESP32 Plant Monitoring Sensor Firmware
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="LilyGO_HiGrow_Rev1_PhotoFrontHiGrow.jpg" width="60%">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
- Use this code with the LilyGo HiGrow ESP32 Plant Monitoring Sensor board to obtain sensor readings and control LED's
|
||||||
|
- Boards can be purchased directly from LilyGo on [AliExpress](https://www.aliexpress.com/item/ESP32-WIFI-Bluetooth-battery-soil-Moisture-Senson-DHT/32815782900.html)
|
||||||
|
- Set your device `bt_devname` in the **mos.yml** file. In order for it to work with the HiGrow app, each name should start with "Higrow". According to HiGrow, this will be fixed in a future realease.
|
||||||
|
- Visit http://www.higrow.tech/en/ more info on the HiGrow project.
|
||||||
|
|
||||||
|
## How to install this app using MongooseOS
|
||||||
|
|
||||||
|
- Install and start [mos tool](https://mongoose-os.com/software.html)
|
||||||
|
- Switch to the Project page, find and import this app, build and flash it:
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://mongoose-os.com/images/app1.gif" width="75%">
|
||||||
|
</p>
|
|
@ -0,0 +1,2 @@
|
||||||
|
Connecting to https://mongoose.cloud, user test
|
||||||
|
Uploading sources (2437 bytes)
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,22 @@
|
||||||
|
let ADC = {
|
||||||
|
// ## **`ADC.enable(pin)`**
|
||||||
|
// Configure and enable ADC for a `pin`,
|
||||||
|
// return 1 if success, 0 otherwise.
|
||||||
|
enable: ffi('int mgos_adc_enable(int)'),
|
||||||
|
// ## **`ADC.read(pin)`**
|
||||||
|
// Read `pin` analog value, return an integer.
|
||||||
|
//
|
||||||
|
// Note for ESP8266 platform:
|
||||||
|
// with this function, you can also measure the power voltage
|
||||||
|
// of VDD33 pin 3 and 4. Then:
|
||||||
|
// 1) TOUT pin has to be floating in the circuit
|
||||||
|
// (not connected to anything);
|
||||||
|
// 2) In mos.yaml must be set this feature:
|
||||||
|
// build_vars:
|
||||||
|
// MGOS_ADC_MODE_VDD: 1
|
||||||
|
// 3) The return value may be different in different Wi-Fi modes,
|
||||||
|
// for example, in Modem-sleep mode or in normal Wi-Fi working
|
||||||
|
// mode.
|
||||||
|
// Return value: Power voltage of VDD33; unit: 1/1024 V.
|
||||||
|
read: ffi('int mgos_adc_read(int)'),
|
||||||
|
};
|
|
@ -0,0 +1,34 @@
|
||||||
|
// esp32 architecture-dependent UART wrappers
|
||||||
|
UART._arch = {
|
||||||
|
_pins: ffi('void esp32_uart_config_set_pins(int, void *, int, int, int, int)'),
|
||||||
|
_fifo: ffi('void esp32_uart_config_set_fifo(int, void *, int, int, int, int)'),
|
||||||
|
|
||||||
|
// Set arch-dependent UART config
|
||||||
|
scfg: function(uartNo, cfg, param) {
|
||||||
|
if (param.esp32 === undefined) return;
|
||||||
|
|
||||||
|
// Set GPIO params
|
||||||
|
if (param.esp32.gpio !== undefined) {
|
||||||
|
let dgpio = param.esp32.gpio;
|
||||||
|
|
||||||
|
let rx = (dgpio.rx !== undefined ? dgpio.rx : -1);
|
||||||
|
let tx = (dgpio.tx !== undefined ? dgpio.tx : -1);
|
||||||
|
let cts = (dgpio.cts !== undefined ? dgpio.cts : -1);
|
||||||
|
let rts = (dgpio.rts !== undefined ? dgpio.rts : -1);
|
||||||
|
|
||||||
|
this._pins(uartNo, cfg, rx, tx, cts, rts);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set FIFO params
|
||||||
|
if (param.esp32.fifo !== undefined) {
|
||||||
|
let dfifo = param.esp32.fifo;
|
||||||
|
|
||||||
|
let ft = (dfifo.rxFullThresh !== undefined ? dfifo.rxFullThresh : -1);
|
||||||
|
let fct = (dfifo.rxFcThresh !== undefined ? dfifo.rxFcThresh : -1);
|
||||||
|
let alarm = (dfifo.rxAlarm !== undefined ? dfifo.rxAlarm : -1);
|
||||||
|
let et = (dfifo.txEmptyThresh !== undefined ? dfifo.txEmptyThresh : -1);
|
||||||
|
|
||||||
|
this._fifo(uartNo, cfg, ft, fct, alarm, et);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,19 @@
|
||||||
|
let BitBang = {
|
||||||
|
DELAY_MSEC: 0,
|
||||||
|
DELAY_USEC: 1,
|
||||||
|
DELAY_100NSEC: 2,
|
||||||
|
|
||||||
|
// ## **`BitBang.write(pin, delay_unit, t0h, t0l, t1h, t1l, ptr, len)`**
|
||||||
|
// Write bits to a given `pin`. `delay_unit` is one of the:
|
||||||
|
// `BitBang.DELAY_MSEC`, `BitBang.DELAY_USEC`, `BitBang.DELAY_100NSEC`.
|
||||||
|
// `ptr, len` is a bit pattern to write. `t0h, t0l` is the time pattern
|
||||||
|
// for zero bit, `t1h, t1l` is the time pattern for 1. The time pattern
|
||||||
|
// specifies the number of time units to hold the pin high, and the number
|
||||||
|
// of units to hold the pin low. Return value: none.
|
||||||
|
write: function(pin, delay_unit, t0h, t0l, t1h, t1l, ptr, len) {
|
||||||
|
let t = (t0h << 24) | (t0l << 16) | (t1h << 8) | t1l;
|
||||||
|
this._wb(pin, delay_unit, t, ptr, len);
|
||||||
|
},
|
||||||
|
|
||||||
|
_wb: ffi('void mgos_bitbang_write_bits_js(int, int, int, void *, int)'),
|
||||||
|
};
|
|
@ -0,0 +1,63 @@
|
||||||
|
let Cfg = {
|
||||||
|
_get: ffi('void *mgos_mjs_get_config()'),
|
||||||
|
_set: ffi('bool mgos_config_apply(char *, bool)'),
|
||||||
|
_desc: ffi('void *mgos_config_schema()'),
|
||||||
|
_find: ffi('void *mgos_conf_find_schema_entry(char *, void *)'),
|
||||||
|
_type: ffi('int mgos_conf_value_type(void *)'),
|
||||||
|
_str: ffi('char *mgos_conf_value_string_nonnull(void *, void *)'),
|
||||||
|
_int: ffi('int mgos_conf_value_int(void *, void *)'),
|
||||||
|
_dbl: ffi('double mgos_conf_value_double(void *, void *)'),
|
||||||
|
_INT: 0,
|
||||||
|
_BOOL: 1,
|
||||||
|
_DBL: 2,
|
||||||
|
_STR: 3,
|
||||||
|
_OBJ: 4,
|
||||||
|
|
||||||
|
// ## **`Cfg.get(path)`**
|
||||||
|
// Get the config value by the configuration variable. Currently, only
|
||||||
|
// simple types are returned: strings, ints, booleans, doubles. Objects
|
||||||
|
// are not yet supported.
|
||||||
|
//
|
||||||
|
// Examples:
|
||||||
|
// ```javascript
|
||||||
|
// load('api_config.js');
|
||||||
|
// Cfg.get('device.id'); // returns a string
|
||||||
|
// Cfg.get('debug.level'); // returns an integer
|
||||||
|
// Cfg.get('wifi.sta.enable'); // returns a boolean
|
||||||
|
// ```
|
||||||
|
get: function(path) {
|
||||||
|
let entry = this._find(path, this._desc());
|
||||||
|
if (entry === null) return undefined;
|
||||||
|
let type = this._type(entry);
|
||||||
|
let cfg = this._get();
|
||||||
|
if (type === this._STR) {
|
||||||
|
return this._str(cfg, entry);
|
||||||
|
} else if (type === this._INT) {
|
||||||
|
return this._int(cfg, entry);
|
||||||
|
} else if (type === this._DBL) {
|
||||||
|
return this._dbl(cfg, entry);
|
||||||
|
} else if (type === this._BOOL) {
|
||||||
|
return (this._int(cfg, entry) !== 0);
|
||||||
|
} else if (type === this._OBJ) {
|
||||||
|
/* TODO */
|
||||||
|
return undefined;
|
||||||
|
} else {
|
||||||
|
/* TODO: an error */
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Cfg.set(obj, opt_save)`**
|
||||||
|
// Set the configuration. `obj` must be a subset of the whole configuation
|
||||||
|
// tree. `save` is boolean flag that indicating whether the change should
|
||||||
|
// be saved - it could be omitted, in which case it defaults to `true`.
|
||||||
|
// Examples:
|
||||||
|
// ```javascript
|
||||||
|
// load('api_config.js');
|
||||||
|
// Cfg.set({wifi: {ap: {enable: false}}}); // Disable WiFi AP mode
|
||||||
|
// Cfg.set({debug: {level: 3}}); // Set debug level to 3
|
||||||
|
// ```
|
||||||
|
set: function(obj, save) {
|
||||||
|
return this._set(JSON.stringify(obj), save === undefined ? true : save);
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,222 @@
|
||||||
|
// **DataView API**
|
||||||
|
//
|
||||||
|
// See the original API definition at [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView).
|
||||||
|
//
|
||||||
|
// mJS DataView diverges from the original in the following ways:
|
||||||
|
//
|
||||||
|
// - No `ArrayBuffer`; plain pointers should be used instead;
|
||||||
|
// - Since there are no constructors in mJS, `DataView.create()` should be
|
||||||
|
// used instead;
|
||||||
|
// - No float support yet (will be added)
|
||||||
|
|
||||||
|
let DataView = {
|
||||||
|
// ## **`DataView.create(buf, offset, len)`**
|
||||||
|
// Create a DataView object instance. `buf` is a pointer to a plain byte
|
||||||
|
// array, `offset` is an offset in in this buffer to start dataview from, and
|
||||||
|
// `len` is a length managed by dataview.
|
||||||
|
//
|
||||||
|
// Return value: an object with the methods described below.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// load("api_dataview.js");
|
||||||
|
// let calloc = ffi('void *calloc(int, int)');
|
||||||
|
// let ptr = calloc(100, 1);
|
||||||
|
// let dw = DataView.create(ptr, 0, 100);
|
||||||
|
//
|
||||||
|
// dw.setUint8(2, 0xff);
|
||||||
|
// ```
|
||||||
|
create: function(buf, off, len) {
|
||||||
|
let ret = Object.create(this._prot);
|
||||||
|
if (off !== undefined) {
|
||||||
|
buf += off;
|
||||||
|
}
|
||||||
|
ret._buf = buf;
|
||||||
|
ret._len = len;
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
|
|
||||||
|
_prot: {
|
||||||
|
|
||||||
|
// ## **`myDW.getInt8(idx)`**
|
||||||
|
// Get a signed byte value from the dataview's buffer at the given index
|
||||||
|
// `idx`. Returned value: a number from -128 to 127.
|
||||||
|
getInt8: function(idx) {
|
||||||
|
if (!DataView._cl(idx, this._len, 1)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return DataView._gets(
|
||||||
|
DataView._pk(this._buf, idx), 1, false
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.getUint8(idx)`**
|
||||||
|
// Get an unsigned byte value from the dataview's buffer at the given index
|
||||||
|
// `idx`. Returned value: a number from 0 to 255.
|
||||||
|
getUint8: function(idx) {
|
||||||
|
if (!DataView._cl(idx, this._len, 1)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return DataView._getu(
|
||||||
|
DataView._pk(this._buf, idx), 1, false
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.getInt16(idx, le)`**
|
||||||
|
// Get a signed 2-byte value from the dataview's buffer at the given index
|
||||||
|
// `idx`. By default the data interpreted as big-endian; if `le` is true,
|
||||||
|
// then little-endian will be used.
|
||||||
|
// Returned value: a number from -32768 to 32767.
|
||||||
|
getInt16: function(idx, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 2)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return DataView._gets(
|
||||||
|
DataView._pk(this._buf, idx), 2, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.getUint16(idx, le)`**
|
||||||
|
// Get an unsigned 2-byte value from the dataview's buffer at the given
|
||||||
|
// index `idx`. By default the data interpreted as big-endian; if `le` is
|
||||||
|
// true, then little-endian will be used.
|
||||||
|
// Returned value: a number from 0 to 65535.
|
||||||
|
getUint16: function(idx, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 2)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return DataView._getu(
|
||||||
|
DataView._pk(this._buf, idx), 2, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.getInt32(idx, le)`**
|
||||||
|
// Get a signed 4-byte value from the dataview's buffer at the given index
|
||||||
|
// `idx`. By default the data interpreted as big-endian; if `le` is true,
|
||||||
|
// then little-endian will be used.
|
||||||
|
// Returned value: a number from -2147483648 to 2147483647.
|
||||||
|
getInt32: function(idx, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 4)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return DataView._gets(
|
||||||
|
DataView._pk(this._buf, idx), 4, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.getUint32(idx, le)`**
|
||||||
|
// Get an unsigned 4-byte value from the dataview's buffer at the given
|
||||||
|
// index `idx`. By default the data interpreted as big-endian; if `le` is
|
||||||
|
// true, then little-endian will be used.
|
||||||
|
// Returned value: a number from 0 to 4294967295.
|
||||||
|
getUint32: function(idx, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 4)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return DataView._getu(
|
||||||
|
DataView._pk(this._buf, idx), 4, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.setInt8(idx, val)`**
|
||||||
|
// Set a signed byte value into the dataview's buffer at the given index
|
||||||
|
// `idx`. `val` should be a number from -128 to 127.
|
||||||
|
// Returned value: none.
|
||||||
|
setInt8: function(idx, val) {
|
||||||
|
if (!DataView._cl(idx, this._len, 1)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
DataView._setu(
|
||||||
|
DataView._pk(this._buf, idx), val, 1, false
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.setUint8(idx, val)`**
|
||||||
|
// Set an unsigned byte value into the dataview's buffer at the given index
|
||||||
|
// `idx`. `val` should be a number from -128 to 127.
|
||||||
|
// Returned value: none.
|
||||||
|
setUint8: function(idx, val) {
|
||||||
|
if (!DataView._cl(idx, this._len, 1)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
DataView._setu(
|
||||||
|
DataView._pk(this._buf, idx), val, 1, false
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.setInt16(idx, val, le)`**
|
||||||
|
// Set a signed 2-byte value into the dataview's buffer at the given index
|
||||||
|
// `idx`. `val` should be a number from -32768 to 32767. By default the
|
||||||
|
// data is written in big-endian format; if `le` is true, then
|
||||||
|
// little-endian will be used.
|
||||||
|
// Returned value: none.
|
||||||
|
setInt16: function(idx, val, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 2)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
DataView._setu(
|
||||||
|
DataView._pk(this._buf, idx), val, 2, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.setUint16(idx, val, le)`**
|
||||||
|
// Set an unsigned 2-byte value into the dataview's buffer at the given
|
||||||
|
// index `idx`. `val` should be a number from 0 to 65535. By default the
|
||||||
|
// data is written in big-endian format; if `le` is true, then
|
||||||
|
// little-endian will be used.
|
||||||
|
// Returned value: none.
|
||||||
|
setUint16: function(idx, val, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 2)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
DataView._setu(
|
||||||
|
DataView._pk(this._buf, idx), val, 2, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.setInt32(idx, val, le)`**
|
||||||
|
// Set a signed 4-byte value into the dataview's buffer at the given index
|
||||||
|
// `idx`. `val` should be a number from -2147483648 to 2147483647. By
|
||||||
|
// default the data is written in big-endian format; if `le` is true, then
|
||||||
|
// little-endian will be used.
|
||||||
|
// Returned value: none.
|
||||||
|
setInt32: function(idx, val, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 4)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
DataView._setu(
|
||||||
|
DataView._pk(this._buf, idx), val, 4, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`myDW.setUint32(idx, val, le)`**
|
||||||
|
// Set an unsigned 4-byte value into the dataview's buffer at the given
|
||||||
|
// index `idx`. `val` should be a number from 0 to 4294967295. By default
|
||||||
|
// the data is written in big-endian format; if `le` is true, then
|
||||||
|
// little-endian will be used.
|
||||||
|
// Returned value: none.
|
||||||
|
setUint32: function(idx, val, le) {
|
||||||
|
if (!DataView._cl(idx, this._len, 4)) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
DataView._setu(
|
||||||
|
DataView._pk(this._buf, idx), val, 4, !le
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
_cl: function(idx, len, ilen) {
|
||||||
|
if (len !== undefined && idx + ilen > len) {
|
||||||
|
die(DataView._errm);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
_p: ffi('void *mjs_mem_to_ptr(int)'),
|
||||||
|
_pk: ffi('void *mjs_mem_get_ptr(void *, int)'),
|
||||||
|
_getu: ffi('double mjs_mem_get_uint(void *, int, int)'),
|
||||||
|
_gets: ffi('double mjs_mem_get_int(void *, int, int)'),
|
||||||
|
_setu: ffi('void mjs_mem_set_uint(void *, int, int, int)'),
|
||||||
|
_errm: "Offset is outside of the bounds of the DataView",
|
||||||
|
};
|
|
@ -0,0 +1,51 @@
|
||||||
|
// Mongoose OS DHT library API. Source C API is defined at:
|
||||||
|
// [mgos_dht.h](https://github.com/mongoose-os-libs/dht/tree/master/src/mgos_dht.h)
|
||||||
|
|
||||||
|
let DHT = {
|
||||||
|
_crt: ffi('void *mgos_dht_create(int, int)'),
|
||||||
|
_cls: ffi('void mgos_dht_close(void *)'),
|
||||||
|
_gt: ffi('float mgos_dht_get_temp(void *)'),
|
||||||
|
_gh: ffi('float mgos_dht_get_humidity(void *)'),
|
||||||
|
|
||||||
|
// Define type of sensors.
|
||||||
|
DHT11: 11,
|
||||||
|
DHT21: 21,
|
||||||
|
AM2301: 21,
|
||||||
|
DHT22: 22,
|
||||||
|
AM2302: 22,
|
||||||
|
|
||||||
|
// **`DHT.create(pin, type)`**
|
||||||
|
// Create a DHT object. `type` could be `DHT.DHT11`, `DHT.DHT21`,
|
||||||
|
// `DHT.DHT22`. Return value: an object with the methods described below, or
|
||||||
|
// 'null' in case of a failure.
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// let mydht = DHT.create(5, DHT.DHT11);
|
||||||
|
// print('Temperature:', mydht.getTemp());
|
||||||
|
// ```
|
||||||
|
create: function(pin, type) {
|
||||||
|
let obj = Object.create(DHT._proto);
|
||||||
|
obj.dht = DHT._crt(pin, type);
|
||||||
|
return obj;
|
||||||
|
},
|
||||||
|
|
||||||
|
_proto: {
|
||||||
|
// **`mydht.close()`**
|
||||||
|
// Close DHT handle. Return value: none.
|
||||||
|
close: function() {
|
||||||
|
return DHT._cls(this.dht);
|
||||||
|
},
|
||||||
|
|
||||||
|
// **`mydht.getTemp()`**
|
||||||
|
// Return temperature in degrees C or 'NaN' in case of a failure.
|
||||||
|
getTemp: function() {
|
||||||
|
return DHT._gt(this.dht);
|
||||||
|
},
|
||||||
|
|
||||||
|
// **`mydht.getHumidity()`**
|
||||||
|
// Return humidity in RH% or 'NaN' in case of a failure.
|
||||||
|
getHumidity: function() {
|
||||||
|
return DHT._gh(this.dht);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,14 @@
|
||||||
|
let ESP32 = {
|
||||||
|
// ## **`ESP32.temp()`**
|
||||||
|
// Read built-in temperature sensor. Return value: integer.
|
||||||
|
temp: ffi('int temprature_sens_read(void)'),
|
||||||
|
|
||||||
|
// ## **`ESP32.hall()`**
|
||||||
|
// Read built-in Hall sensor. Return value: integer.
|
||||||
|
hall: ffi('int hall_sens_read(void)'),
|
||||||
|
|
||||||
|
// ## **`ESP32.deepSleep(microseconds)`**
|
||||||
|
// Deep Sleep given number of microseconds.
|
||||||
|
// Return value: does not return.
|
||||||
|
deepSleep: ffi('void mgos_esp_deep_sleep_d(double)'),
|
||||||
|
};
|
|
@ -0,0 +1,102 @@
|
||||||
|
let Event = {
|
||||||
|
// ## **`Event.addHandler(ev, callback, userdata)`**
|
||||||
|
// Add a handler for the given event `ev`. Callback should look like:
|
||||||
|
//
|
||||||
|
// function(ev, evdata, userdata) { /* ... */ }
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
//
|
||||||
|
// Event.addHandler(Event.REBOOT, function(ev, evdata, ud) {
|
||||||
|
// print("Going to reboot!");
|
||||||
|
// }, null);
|
||||||
|
// ```
|
||||||
|
addHandler: ffi(
|
||||||
|
'bool mgos_event_add_handler(int, void(*)(int, void *, userdata), userdata)'),
|
||||||
|
|
||||||
|
// ## **`Event.addGroupHandler(evgrp, callback, userdata)`**
|
||||||
|
// Like `Event.addHandler()`, but subscribes on all events in the given
|
||||||
|
// event group `evgrp`. Event group includes all events from `evgrp & ~0xff`
|
||||||
|
// to `evgrp | 0xff`.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
//
|
||||||
|
// Event.addGroupHandler(Event.SYS, function(ev, evdata, ud) {
|
||||||
|
// print("Sys event:", ev);
|
||||||
|
// }, null);
|
||||||
|
// ```
|
||||||
|
addGroupHandler: ffi(
|
||||||
|
'bool mgos_event_add_group_handler(int, void(*)(int, void *, userdata), userdata)'),
|
||||||
|
|
||||||
|
// ## **`Event.regBase(base_event_number, name)`**
|
||||||
|
// Register a base event number in order to prevent event number conflicts.
|
||||||
|
// Use `Event.baseNumber(id)` to get `base_event_number`; `name` is an
|
||||||
|
// arbitrary event name.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// let bn = Event.baseNumber("ABC");
|
||||||
|
// if (!Event.regBase(bn, "My module")) {
|
||||||
|
// die("Failed to register base event number");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// let MY_EVENT_FOO = bn + 0;
|
||||||
|
// let MY_EVENT_BAR = bn + 1;
|
||||||
|
// let MY_EVENT_BAZ = bn + 2;
|
||||||
|
// ```
|
||||||
|
regBase: ffi('bool mgos_event_register_base(int, char *)'),
|
||||||
|
|
||||||
|
// ## **`Event.baseNumber(id)`**
|
||||||
|
// Generates unique base event number (32-bit) by a 3-char string.
|
||||||
|
// LSB is always zero, and a library can use it to create up to 256 unique
|
||||||
|
// events.
|
||||||
|
//
|
||||||
|
// A library should call `Event.regBase()` in order to claim
|
||||||
|
// it and prevent event number conflicts. (see example there)
|
||||||
|
baseNumber: function(id) {
|
||||||
|
if (id.length !== 3) {
|
||||||
|
die("Base event id should have exactly 3 chars");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (id.at(0) << 24) | (id.at(1) << 16) | (id.at(2) << 8);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Event.trigger(ev, evdata)`**
|
||||||
|
// Trigger an event with the given id `ev` and event data `evdata`.
|
||||||
|
trigger: ffi('int mgos_event_trigger(int, void *)'),
|
||||||
|
|
||||||
|
// ## **`Event.evdataLogStr(evdata)`**
|
||||||
|
// Getter function for the `evdata` given to the event callback for the event
|
||||||
|
// `Event.LOG`, see `Event.addHandler()`.
|
||||||
|
evdataLogStr: function(evdata) {
|
||||||
|
return mkstr(Event._gdd(evdata), 0, Event._gdl(evdata), true);
|
||||||
|
},
|
||||||
|
|
||||||
|
_gdd: ffi('void *mgos_debug_event_get_ptr(void *)'),
|
||||||
|
_gdl: ffi('int mgos_debug_event_get_len(void *)'),
|
||||||
|
};
|
||||||
|
|
||||||
|
Event.SYS = Event.baseNumber("MOS");
|
||||||
|
|
||||||
|
// NOTE: INIT_DONE is unavailable here because init.js is executed in
|
||||||
|
// INIT_DONE hook
|
||||||
|
|
||||||
|
// ## **`Event.LOG`**
|
||||||
|
// System event which is triggered every time something is printed to the
|
||||||
|
// log. In the callback, use `Event.evdataLogStr(evdata)` to get string
|
||||||
|
// which was printed.
|
||||||
|
Event.LOG = Event.SYS + 1;
|
||||||
|
|
||||||
|
// ## **`Event.REBOOT`**
|
||||||
|
// System event which is triggered right before going to reboot. `evdata`
|
||||||
|
// is irrelevant for this event.
|
||||||
|
Event.REBOOT = Event.SYS + 2;
|
||||||
|
|
||||||
|
// ## **`Event.OTA_STATUS`**
|
||||||
|
// System event which is triggered when OTA status changes.
|
||||||
|
//
|
||||||
|
// In the callback, use `OTA.evdataOtaStatusMsg(evdata)` from `api_ota.js` to
|
||||||
|
// get the OTA status message.
|
||||||
|
Event.OTA_STATUS = Event.SYS + 3;
|
|
@ -0,0 +1,63 @@
|
||||||
|
let File = {
|
||||||
|
// **`File.read(name)`**
|
||||||
|
// Read the whole file into a string variable.
|
||||||
|
//
|
||||||
|
// Return value: a string contents of the file.
|
||||||
|
// If file does not exist, an empty string is returned.
|
||||||
|
//
|
||||||
|
// Example: read a .json configuration file into a config object:
|
||||||
|
// ```javascript
|
||||||
|
// let obj = JSON.parse(File.read('settings.json'));
|
||||||
|
// ```
|
||||||
|
read: function(path) {
|
||||||
|
let n = 0; let res = ''; let buf = 'xxxxxxxxxx'; // Should be > 5
|
||||||
|
let fp = File.fopen(path, 'r');
|
||||||
|
if (fp === null) return null;
|
||||||
|
while ((n = File.fread(buf, 1, buf.length, fp)) > 0) {
|
||||||
|
res += buf.slice(0, n);
|
||||||
|
}
|
||||||
|
File.fclose(fp);
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
|
||||||
|
// **`File.remove(name)`**
|
||||||
|
// Delete file with a given name. Return value: 0
|
||||||
|
// on success, non-0 on failure.
|
||||||
|
remove: ffi('int remove(char *)'),
|
||||||
|
|
||||||
|
// **`File.rename(old, new)`**
|
||||||
|
// Rename file `old` to `new`. Return 0 on success, non-0 on failure.
|
||||||
|
rename: ffi('int rename(char *, char *)'),
|
||||||
|
|
||||||
|
// **`File.write(str, name, mode)`**
|
||||||
|
// Write string `str` into file `name`.
|
||||||
|
//
|
||||||
|
// If file does not exist, it is created. `mode` is an optional file open
|
||||||
|
// mode argument, `'w'` by default, which means that previous content is
|
||||||
|
// deleted. Set `mode` to `'a'` in order to append to the existing content.
|
||||||
|
// Return value: number of bytes written.
|
||||||
|
//
|
||||||
|
// Example - write a configuration object into a file:
|
||||||
|
// ```javascript
|
||||||
|
// File.write(JSON.stringify(obj, 'settings.json'));
|
||||||
|
// ```
|
||||||
|
write: function(str, path, oMode) {
|
||||||
|
let fp = File.fopen(path, oMode || 'w');
|
||||||
|
if (fp === null) return 0;
|
||||||
|
let off = 0; let tot = str.length;
|
||||||
|
while (off < tot) {
|
||||||
|
let len = 5; // Use light 5-byte strings for writing
|
||||||
|
if (off + len > tot) len = tot - off;
|
||||||
|
let n = File.fwrite(str.slice(off, off + len), 1, len, fp);
|
||||||
|
// if (n <= 0) break;
|
||||||
|
off += n;
|
||||||
|
}
|
||||||
|
File.fclose(fp);
|
||||||
|
return off;
|
||||||
|
},
|
||||||
|
|
||||||
|
fopen: ffi('void *fopen(char *, char *)'),
|
||||||
|
fclose: ffi('void fclose(void *)'),
|
||||||
|
fread: ffi('int fread(char *, int, int, void *)'),
|
||||||
|
fwrite: ffi('int fwrite(char *, int, int, void *)'),
|
||||||
|
};
|
|
@ -0,0 +1,75 @@
|
||||||
|
let GPIO = {
|
||||||
|
// ## **`GPIO.set_mode(pin, mode)`**
|
||||||
|
// Set GPIO pin mode.
|
||||||
|
// `mode` can be either `GPIO.MODE_INPUT` or `GPIO.MODE_OUTPUT`.
|
||||||
|
set_mode: ffi('int mgos_gpio_set_mode(int,int)'),
|
||||||
|
MODE_INPUT: 0,
|
||||||
|
MODE_OUTPUT: 1,
|
||||||
|
|
||||||
|
// ## **`GPIO.set_pull(pin, type)`**
|
||||||
|
// Set GPIO pin pull type.
|
||||||
|
// `type` can be either `GPIO.PULL_NONE`, `GPIO.PULL_UP`, or `GPIO.PULL_DOWN`.
|
||||||
|
set_pull: ffi('int mgos_gpio_set_pull(int,int)'),
|
||||||
|
PULL_NONE: 0,
|
||||||
|
PULL_UP: 1,
|
||||||
|
PULL_DOWN: 2,
|
||||||
|
|
||||||
|
// ## **`GPIO.toggle(pin)`**
|
||||||
|
// Toggle the level of certain GPIO pin.
|
||||||
|
// Return value: 0 or 1, indicating the resulting pin level.
|
||||||
|
toggle: ffi('int mgos_gpio_toggle(int)'),
|
||||||
|
|
||||||
|
// ## **`GPIO.write(pin, level)`**
|
||||||
|
// Set GPIO pin level to either 0 or 1. Return value: none.
|
||||||
|
write: ffi('void mgos_gpio_write(int,int)'),
|
||||||
|
|
||||||
|
// ## **`GPIO.read(pin)`**
|
||||||
|
// Read GPIO pin level. Return value: 0 or 1.
|
||||||
|
read: ffi('int mgos_gpio_read(int)'),
|
||||||
|
|
||||||
|
// ## **`GPIO.enable_int(pin)`**
|
||||||
|
// Enable interrupts on GPIO pin.
|
||||||
|
// This function must be called AFTER the interrupt handler is installed.
|
||||||
|
// Return value: 1 in case of success, 0 otherwise.
|
||||||
|
enable_int: ffi('int mgos_gpio_enable_int(int)'),
|
||||||
|
|
||||||
|
// ## **`GPIO.disable_int(pin)`**
|
||||||
|
// Disable interrupts on GPIO pin.
|
||||||
|
// Return value: 1 in case of success, 0 otherwise.
|
||||||
|
disable_int: ffi('int mgos_gpio_disable_int(int)'),
|
||||||
|
|
||||||
|
// ## **`GPIO.set_int_handler(pin, mode, handler)`**
|
||||||
|
// Install GPIO interrupt handler. `mode` could be one of: `GPIO.INT_NONE`,
|
||||||
|
// `GPIO.INT_EDGE_POS`, `GPIO.INT_EDGE_NEG`, `GPIO.INT_EDGE_ANY`,
|
||||||
|
// `GPIO.INT_LEVEL_HI`, `GPIO.INT_LEVEL_LO`.
|
||||||
|
// Return value: 1 in case of success, 0 otherwise.
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// GPIO.set_mode(pin, GPIO.MODE_INPUT);
|
||||||
|
// GPIO.set_int_handler(pin, GPIO.INT_EDGE_NEG, function(pin) {
|
||||||
|
// print('Pin', pin, 'got interrupt');
|
||||||
|
// }, null);
|
||||||
|
// GPIO.enable_int(pin);
|
||||||
|
// ```
|
||||||
|
set_int_handler: ffi('int mgos_gpio_set_int_handler(int,int,void(*)(int,userdata),userdata)'),
|
||||||
|
INT_NONE: 0,
|
||||||
|
INT_EDGE_POS: 1,
|
||||||
|
INT_EDGE_NEG: 2,
|
||||||
|
INT_EDGE_ANY: 3,
|
||||||
|
INT_LEVEL_HI: 4,
|
||||||
|
INT_LEVEL_LO: 5,
|
||||||
|
|
||||||
|
// ## **`GPIO.set_button_handler(pin, pull, intmode, period, handler)`**
|
||||||
|
// Install
|
||||||
|
// GPIO button handler. `pull` is pull type, `intmode` is interrupt mode,
|
||||||
|
// `period` is debounce interval in milliseconds, handler is a function that
|
||||||
|
// receives pin number.
|
||||||
|
// Return value: 1 in case of success, 0 otherwise.
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// GPIO.set_button_handler(pin, GPIO.PULL_UP, GPIO.INT_EDGE_NEG, 200, function(x) {
|
||||||
|
// print('Button press, pin: ', x);
|
||||||
|
// }, null);
|
||||||
|
// ```
|
||||||
|
set_button_handler: ffi('int mgos_gpio_set_button_handler(int,int,int,int,void(*)(int, userdata), userdata)'),
|
||||||
|
};
|
|
@ -0,0 +1,88 @@
|
||||||
|
load('api_gpio.js');
|
||||||
|
load('api_adc.js');
|
||||||
|
|
||||||
|
let Grove = {
|
||||||
|
Button: {
|
||||||
|
// ## **`Grove.Button.attach(pin, handler)`**
|
||||||
|
// Attach a handler for the button on the given pin. Example:
|
||||||
|
// ```javascript
|
||||||
|
// Grove.Button.attach(pin, function(pin) {
|
||||||
|
// print('Button event at pin', pin);
|
||||||
|
// }, null);
|
||||||
|
// ```
|
||||||
|
attach: function(pin, handler) {
|
||||||
|
GPIO.set_button_handler(pin, GPIO.PULL_UP, GPIO.INT_EDGE_NEG, 200,
|
||||||
|
handler, true);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
_motionHandler: undefined,
|
||||||
|
MotionSensor: {
|
||||||
|
// ## **`Grove.MotionSensor.attach(pin, handler)`**
|
||||||
|
// Attach a handler for the motion sensor on the given pin. Example:
|
||||||
|
// ```javascript
|
||||||
|
// Grove.MotionSensor.attach(pin, function(pin) {
|
||||||
|
// print('Motion sensor event at pin', pin);
|
||||||
|
// }, null);
|
||||||
|
// ```
|
||||||
|
attach: function(pin, handler) {
|
||||||
|
GPIO.set_mode(pin, GPIO.MODE_INPUT);
|
||||||
|
GPIO.set_int_handler(pin, GPIO.INT_EDGE_POS, handler, null);
|
||||||
|
GPIO.enable_int(pin);
|
||||||
|
Grove._motionHandler = handler;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
LightSensor: {
|
||||||
|
// ## **`Grove.LightSensor.get(pin)`**
|
||||||
|
// Not implemented yet
|
||||||
|
get: function(pin) {
|
||||||
|
return ADC.read(pin);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
MoistureSensor: {
|
||||||
|
// ## **`Grove.MoistureSensor.get(pin)`**
|
||||||
|
// Not implemented yet
|
||||||
|
get: function(pin) {
|
||||||
|
return ADC.read(pin);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
UVSensor: {
|
||||||
|
// ## **`Grove.MoistureSensor.get(pin)`**
|
||||||
|
// Not implemented yet
|
||||||
|
get: function(pin) {
|
||||||
|
return ADC.read(pin);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
_relayInited: undefined,
|
||||||
|
_relayClosed: 0,
|
||||||
|
Relay: {
|
||||||
|
_init: function(pin) {
|
||||||
|
if (Grove._relayInited !== 1) {
|
||||||
|
GPIO.set_mode(pin, GPIO.MODE_OUTPUT);
|
||||||
|
GPIO.set_pull(pin, GPIO.PULL_DOWN);
|
||||||
|
Grove._relayInited = 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Grove.Relay.open(pin)`**
|
||||||
|
// Open relay at the given pin.
|
||||||
|
open: function(pin) {
|
||||||
|
this._init(pin);
|
||||||
|
GPIO.write(pin, 0);
|
||||||
|
Grove._relayClosed = 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Grove.Relay.close(pin)`**
|
||||||
|
// Close relay at the given pin.
|
||||||
|
close: function(pin) {
|
||||||
|
this._init(pin);
|
||||||
|
GPIO.write(pin, 1);
|
||||||
|
Grove._relayClosed = 1;
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Grove.Relay.isClosed(pin)`**
|
||||||
|
// Returns 0 if relay is opened, or 1 if it's closed.
|
||||||
|
isClosed: function(pin) {
|
||||||
|
return Grove._relayClosed;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,111 @@
|
||||||
|
load('api_net.js');
|
||||||
|
|
||||||
|
let URL = {
|
||||||
|
// ## **`URL.parse(url)`**
|
||||||
|
// Parse URL string, return and object with `ssl`, `addr`, `uri` keys.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// print(JSON.stringify(URL.parse('https://a.b:1234/foo?bar')));
|
||||||
|
// // Prints: {"uri":"/foo?bar","addr":"a.b:1234","ssl":true}
|
||||||
|
// ```
|
||||||
|
parse: function(url) {
|
||||||
|
let ssl = false, addr, port = '80', uri = '/', app = true;
|
||||||
|
if (url.slice(0, 8) === 'https://') {
|
||||||
|
port = '443';
|
||||||
|
ssl = true;
|
||||||
|
url = url.slice(8);
|
||||||
|
}
|
||||||
|
if (url.slice(0, 7) === 'http://') {
|
||||||
|
url = url.slice(7);
|
||||||
|
}
|
||||||
|
addr = url;
|
||||||
|
for (let i = 0; i < url.length; i++) {
|
||||||
|
let ch = url[i];
|
||||||
|
if (ch === ':') app = false;
|
||||||
|
if (ch === '/') {
|
||||||
|
addr = url.slice(0, i);
|
||||||
|
uri = url.slice(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (app) addr += ':' + port;
|
||||||
|
return {ssl: ssl, addr: addr, uri: uri};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
let HTTP = {
|
||||||
|
_getm: ffi('void *mgos_get_msg_ptr(void *)'),
|
||||||
|
_getb: ffi('void *mgos_get_body_ptr(void *)'),
|
||||||
|
_mgp: ffi('void *mgos_get_mgstr_ptr(void *)'),
|
||||||
|
_mgl: ffi('int mgos_get_mgstr_len(void *)'),
|
||||||
|
|
||||||
|
_c: ffi('void *mgos_connect_http(char *, void (*)(void *, int, void *, userdata), userdata)'),
|
||||||
|
_cs: ffi('void *mgos_connect_http_ssl(char *, void (*)(void *, int, void *, userdata), userdata, char *, char *, char *)'),
|
||||||
|
_sp: ffi('void mg_set_protocol_http_websocket(void *)'),
|
||||||
|
|
||||||
|
_mstr: function(hmptr, func) {
|
||||||
|
let mgstr = func(hmptr);
|
||||||
|
return mkstr(this._mgp(mgstr), this._mgl(mgstr));
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`HTTP.query(options);`**
|
||||||
|
// Send HTTP request. Options object accepts the following fields:
|
||||||
|
// `url` - mandatory URL to fetch, `success` - optional callback function
|
||||||
|
// that receives reply body, `error` - optional error callback that receives
|
||||||
|
// error string, `data` - optional object with request parameters.
|
||||||
|
// By default, `GET` method is used. If `data` is specified, POST method
|
||||||
|
// is used, the `data` object gets `JSON.stringify()`-ed and used as a
|
||||||
|
// HTTP message body.
|
||||||
|
//
|
||||||
|
// In order to send HTTPS request, use `https://...` URL. Note that in that
|
||||||
|
// case `ca.pem` file must contain CA certificate of the requested server.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// HTTP.query({
|
||||||
|
// url: 'http://httpbin.org/post',
|
||||||
|
// headers: { 'X-Foo': 'bar' }, // Optional - headers
|
||||||
|
// data: {foo: 1, bar: 'baz'}, // Optional. If set, JSON-encoded and POST-ed
|
||||||
|
// success: function(body, full_http_msg) { print(body); },
|
||||||
|
// error: function(err) { print(err); }, // Optional
|
||||||
|
// });
|
||||||
|
// ```
|
||||||
|
query: function(opts) {
|
||||||
|
let url = URL.parse(opts.url || '');
|
||||||
|
return Net.connect({
|
||||||
|
addr: url.addr,
|
||||||
|
ssl: url.ssl,
|
||||||
|
u: url,
|
||||||
|
opts: opts,
|
||||||
|
onconnect: function(conn, edata, ud) {
|
||||||
|
let opts = ud.opts;
|
||||||
|
let body = opts.data || '';
|
||||||
|
if (typeof(body) !== 'string') body = JSON.stringify(body);
|
||||||
|
let meth = body ? 'POST' : 'GET';
|
||||||
|
let host = 'Host: ' + ud.u.addr + '\r\n';
|
||||||
|
let cl = 'Content-Length: ' + JSON.stringify(body.length) + '\r\n';
|
||||||
|
let hdrs = opts.headers || {};
|
||||||
|
for (let k in hdrs) {
|
||||||
|
cl += k + ': ' + hdrs[k] + '\r\n';
|
||||||
|
}
|
||||||
|
let req = meth + ' ' + ud.u.uri + ' HTTP/1.0\r\n' + host + cl + '\r\n';
|
||||||
|
Net.send(conn, req);
|
||||||
|
Net.send(conn, body);
|
||||||
|
HTTP._sp(conn);
|
||||||
|
},
|
||||||
|
onevent: function(conn, buf, ev, edata, ud) {
|
||||||
|
if (ev === 101 && ud.opts.success) {
|
||||||
|
let body = HTTP._mstr(edata, HTTP._getb);
|
||||||
|
let full = HTTP._mstr(edata, HTTP._getm);
|
||||||
|
ud.opts.success(body, full);
|
||||||
|
ud.ok = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onclose: function(conn, ud) {
|
||||||
|
let opts = ud.opts;
|
||||||
|
if (!ud.ok && opts.error) opts.error('', 'Request failed', opts);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,76 @@
|
||||||
|
let Log = {
|
||||||
|
// ## **`Log.print(level, msg)`**
|
||||||
|
// Print message to stderr if provided
|
||||||
|
// level is >= `Cfg.get('debug.level')`. Possible levels are:
|
||||||
|
// - `Log.ERROR` (0)
|
||||||
|
// - `Log.WARN` (1)
|
||||||
|
// - `Log.INFO` (2)
|
||||||
|
// - `Log.DEBUG` (3)
|
||||||
|
// - `Log.VERBOSE_DEBUG` (4)
|
||||||
|
print: function(level, msg) {
|
||||||
|
let mjs = getMJS();
|
||||||
|
// Frame number: we're starting from the third frame, ignoring the first
|
||||||
|
// two:
|
||||||
|
// - this._off() or this._fn()
|
||||||
|
// - Log.print()
|
||||||
|
let cfn = 2;
|
||||||
|
|
||||||
|
// bcode offset of interest, and the corresponding function:lineno
|
||||||
|
let offs, fn, ln;
|
||||||
|
|
||||||
|
// We'll go up by call trace until we find the frame not from the current
|
||||||
|
// file
|
||||||
|
while (true) {
|
||||||
|
offs = this._off(mjs, cfn) - 1;
|
||||||
|
fn = this._fn(mjs, offs);
|
||||||
|
if (fn !== "api_log.js") {
|
||||||
|
// Found the first frame from other file, we're done.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
cfn++;
|
||||||
|
}
|
||||||
|
ln = this._ln(mjs, offs);
|
||||||
|
this._pr(fn, ln, level, msg);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Log.error(msg)`**
|
||||||
|
// Shortcut for `Log.print(Log.ERROR, msg)`
|
||||||
|
error: function(msg) {
|
||||||
|
this.print(this.ERROR, msg);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Log.warn(msg)`**
|
||||||
|
// Shortcut for `Log.print(Log.WARN, msg)`
|
||||||
|
warn: function(msg) {
|
||||||
|
this.print(this.WARN, msg);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Log.info(msg)`**
|
||||||
|
// Shortcut for `Log.print(Log.INFO, msg)`
|
||||||
|
info: function(msg) {
|
||||||
|
this.print(this.INFO, msg);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Log.debug(msg)`**
|
||||||
|
// Shortcut for `Log.print(Log.DEBUG, msg)`
|
||||||
|
debug: function(msg) {
|
||||||
|
this.print(this.DEBUG, msg);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Log.verboseDebug(msg)`**
|
||||||
|
// Shortcut for `Log.print(Log.VERBOSE_DEBUG, msg)`
|
||||||
|
verboseDebug: function(msg) {
|
||||||
|
this.print(this.VERBOSE_DEBUG, msg);
|
||||||
|
},
|
||||||
|
|
||||||
|
ERROR: 0,
|
||||||
|
WARN: 1,
|
||||||
|
INFO: 2,
|
||||||
|
DEBUG: 3,
|
||||||
|
VERBOSE_DEBUG: 4,
|
||||||
|
|
||||||
|
_pr: ffi('void mgos_log(char *, int, int, char *)'),
|
||||||
|
_fn: ffi('char *mjs_get_bcode_filename_by_offset(void *, int)'),
|
||||||
|
_ln: ffi('int mjs_get_lineno_by_offset(void *, int)'),
|
||||||
|
_off: ffi('int mjs_get_offset_by_call_frame_num(void *, int)'),
|
||||||
|
};
|
|
@ -0,0 +1,62 @@
|
||||||
|
let Math = {
|
||||||
|
|
||||||
|
// ## **`Math.ceil(x)`**
|
||||||
|
// Rounds x upward, returning the smallest integral value that is not less
|
||||||
|
// than x.
|
||||||
|
ceil: ffi('double ceil(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.floor(x)`**
|
||||||
|
// Rounds x downward, returning the largest integral value that is not
|
||||||
|
// greater than x.
|
||||||
|
floor: ffi('double floor(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.round(x)`**
|
||||||
|
// Returns the integral value that is nearest to x, with halfway cases
|
||||||
|
// rounded away from zero.
|
||||||
|
round: ffi('double round(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.max(x, y)`**
|
||||||
|
// Returns the larger of its arguments: either `x` or `y`.
|
||||||
|
// If one of the arguments in a NaN, the other is returned.
|
||||||
|
max: ffi('double fmax(double, double)'),
|
||||||
|
|
||||||
|
// ## **`Math.min(x, y)`**
|
||||||
|
// Returns the smaller of its arguments: either `x` or `y`.
|
||||||
|
// If one of the arguments in a NaN, the other is returned.
|
||||||
|
min: ffi('double fmin(double, double)'),
|
||||||
|
|
||||||
|
// ## **`Math.abs(x)`**
|
||||||
|
// Returns the absolute value of `x`: |x|.
|
||||||
|
abs: ffi('double fabs(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.sqrt(x)`**
|
||||||
|
// Returns the square root of `x`.
|
||||||
|
sqrt: ffi('double sqrt(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.floor(x)`**
|
||||||
|
// Returns the base-e exponential function of `x`, which is e raised to the
|
||||||
|
// power `x`.
|
||||||
|
exp: ffi('double exp(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.log(x)`**
|
||||||
|
// Returns the natural logarithm of `x`.
|
||||||
|
log: ffi('double log(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.pow(base, exponent)`**
|
||||||
|
// Returns `base` raised to the power `exponent`
|
||||||
|
pow: ffi('double pow(double, double)'),
|
||||||
|
|
||||||
|
// ## **`Math.sin(x)`**
|
||||||
|
// Returns the sine of an angle of `x` radians.
|
||||||
|
sin: ffi('double sin(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.cos(x)`**
|
||||||
|
// Returns the cosine of an angle of `x` radians.
|
||||||
|
cos: ffi('double cos(double)'),
|
||||||
|
|
||||||
|
// ## **`Math.random(x)`**
|
||||||
|
// Returns the pseudo-random number from 0.0 to 1.0
|
||||||
|
random: function() { return Math.rand() / 0x7fffffff; },
|
||||||
|
|
||||||
|
rand: ffi('int rand()'),
|
||||||
|
};
|
|
@ -0,0 +1,136 @@
|
||||||
|
load('api_events.js');
|
||||||
|
|
||||||
|
let Net = {
|
||||||
|
_rb: ffi('void *mgos_get_recv_mbuf(void *)'),
|
||||||
|
_mptr: ffi('void *mgos_get_mbuf_ptr(void *)'),
|
||||||
|
_glen: ffi('int mgos_get_mbuf_len(void *)'),
|
||||||
|
_mrem: ffi('void mbuf_remove(void *, int)'),
|
||||||
|
_isin: ffi('bool mgos_is_inbound(void *)'),
|
||||||
|
|
||||||
|
_bind: ffi('void *mgos_bind(char *, void (*)(void *, int, void *, userdata), userdata)'),
|
||||||
|
_c: ffi('void *mgos_connect(char *, void (*)(void *, int, void *, userdata), userdata)'),
|
||||||
|
_cs: ffi('void *mgos_connect_ssl(char *, void (*)(void *, int, void *, userdata), userdata, char *, char *, char *)'),
|
||||||
|
_send: ffi('void mg_send(void *, void *, int)'),
|
||||||
|
_ctos: ffi('int mg_conn_addr_to_str(void *, char *, int, int)'),
|
||||||
|
|
||||||
|
// Return string contained in connection's recv_mbuf
|
||||||
|
_rbuf: function(conn) {
|
||||||
|
let rb = this._rb(conn);
|
||||||
|
return mkstr(this._mptr(rb), this._glen(rb));
|
||||||
|
},
|
||||||
|
|
||||||
|
// **`Net.ctos(conn, local, ip, port)`**
|
||||||
|
// Convert address of a connection `conn` to string. Set `local` to
|
||||||
|
// `true` to stringify local address, otherwise `false` to stringify remote.
|
||||||
|
// Set `ip` to `true` to stringify IP, `port` to stringify port. Example:
|
||||||
|
// ```javascript
|
||||||
|
// print('Connection from:', Net.ctos(conn, false, true, true));
|
||||||
|
// ```
|
||||||
|
ctos: function(conn, local, ip, port) {
|
||||||
|
let buf = ' ';
|
||||||
|
let flags = (local ? 0 : 4) | (ip ? 1 : 0) | (port ? 2 : 0);
|
||||||
|
let n = this._ctos(conn, buf, buf.length, flags);
|
||||||
|
return buf.slice(0, n);
|
||||||
|
},
|
||||||
|
|
||||||
|
// **`Net.discard(conn, len)`**
|
||||||
|
// Remove initial `len` bytes of data from the connection's `conn`
|
||||||
|
// receive buffer in order to discard that data and reclaim RAM to the system.
|
||||||
|
discard: function(conn, len) {
|
||||||
|
this._mrem(this._rb(conn), len);
|
||||||
|
},
|
||||||
|
|
||||||
|
// Event handler. Expects an object with connect/data/close/event user funcs.
|
||||||
|
_evh: function(conn, ev, edata, obj) {
|
||||||
|
if (ev === 0) return;
|
||||||
|
|
||||||
|
if (ev === 1 || ev === 2) {
|
||||||
|
if (obj.onconnect) obj.onconnect(conn, edata, obj);
|
||||||
|
} else if (ev === 3) {
|
||||||
|
if (obj.ondata) obj.ondata(conn, Net._rbuf(conn), obj);
|
||||||
|
} else if (ev === 5) {
|
||||||
|
if (obj.onclose) obj.onclose(conn, obj);
|
||||||
|
let inb = Net._isin(conn); // Is this an inbound connection ?
|
||||||
|
if (!inb) ffi_cb_free(Net._evh, obj);
|
||||||
|
} else if (ev >= 6) {
|
||||||
|
if (obj.onevent) obj.onevent(conn, Net._rbuf(conn), ev, edata, obj);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Net.serve(options)`**
|
||||||
|
// Start TCP or UDP server. `options` is an object:
|
||||||
|
// ```javascript
|
||||||
|
// {
|
||||||
|
// // Required. Port to listen on, 'tcp://PORT' or `udp://PORT`.
|
||||||
|
// addr: 'tcp://1234',
|
||||||
|
// // Optional. Called when connection is established.
|
||||||
|
// onconnect: function(conn) {},
|
||||||
|
// // Optional. Called when new data is arrived.
|
||||||
|
// ondata: function(conn, data) {},
|
||||||
|
// // Optional. Called when protocol-specific event is triggered.
|
||||||
|
// onevent: function(conn, data, ev, edata) {},
|
||||||
|
// // Optional. Called when the connection is about to close.
|
||||||
|
// onclose: function(conn) {},
|
||||||
|
// // Optional. Called when on connection error.
|
||||||
|
// onerror: function(conn) {},
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
// Example - a UDP echo server. Change `udp://` to `tcp://` to turn this
|
||||||
|
// example into the TCP echo server:
|
||||||
|
// ```javascript
|
||||||
|
// Net.serve({
|
||||||
|
// addr: 'udp://1234',
|
||||||
|
// ondata: function(conn, data) {
|
||||||
|
// print('Received from:', Net.ctos(conn, false, true, true), ':', data);
|
||||||
|
// Net.send(conn, data); // Echo received data back
|
||||||
|
// Net.discard(conn, data.length); // Discard received data
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// ```
|
||||||
|
serve: function(obj) {
|
||||||
|
return this._bind(obj.addr, this._evh, obj);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Net.connect(options)`**
|
||||||
|
// Connect to a remote host. `options` is the same as for the `Net.serve`.
|
||||||
|
// The addr format is `[PROTO://]HOST:PORT`. `PROTO` could be `tcp` or
|
||||||
|
// `udp`. `HOST` could be an IP address or a host name. If `HOST` is a name,
|
||||||
|
// it will be resolved asynchronously.
|
||||||
|
//
|
||||||
|
// Examples of valid addresses: `google.com:80`, `udp://1.2.3.4:53`,
|
||||||
|
// `10.0.0.1:443`, `[::1]:80`.
|
||||||
|
connect: function(obj) {
|
||||||
|
if (obj.ssl) {
|
||||||
|
return this._cs(obj.addr, this._evh, obj, obj.cert || '', obj.key || '', obj.ca_cert || 'ca.pem');
|
||||||
|
} else {
|
||||||
|
return this._c(obj.addr, this._evh, obj);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Net.close(conn)`**
|
||||||
|
// Send all pending data to the remote peer,
|
||||||
|
// and disconnect when all data is sent.
|
||||||
|
// Return value: none.
|
||||||
|
close: ffi('void mgos_disconnect(void *)'),
|
||||||
|
|
||||||
|
// ## **`Net.send(conn, data)`**
|
||||||
|
// Send data to the remote peer. `data` is an mJS string.
|
||||||
|
// Return value: none.
|
||||||
|
send: function(c, msg) {
|
||||||
|
return Net._send(c, msg, msg.length);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Net.EVENT_GRP`**
|
||||||
|
// Net events group, to be used with `Event.addGroupHandler()`. Possible
|
||||||
|
// events are:
|
||||||
|
// - `Net.STATUS_DISCONNECTED`
|
||||||
|
// - `Net.STATUS_CONNECTING`
|
||||||
|
// - `Net.STATUS_CONNECTED`
|
||||||
|
// - `Net.STATUS_GOT_IP`
|
||||||
|
EVENT_GRP: Event.baseNumber("NET"),
|
||||||
|
};
|
||||||
|
|
||||||
|
Net.STATUS_DISCONNECTED = Net.EVENT_GRP + 0;
|
||||||
|
Net.STATUS_CONNECTING = Net.EVENT_GRP + 1;
|
||||||
|
Net.STATUS_CONNECTED = Net.EVENT_GRP + 2;
|
||||||
|
Net.STATUS_GOT_IP = Net.EVENT_GRP + 3;
|
|
@ -0,0 +1,71 @@
|
||||||
|
let RPC = {
|
||||||
|
_sdup: ffi('void *strdup(char *)'),
|
||||||
|
_ah: ffi('void *mgos_rpc_add_handler(void *, void (*)(void *, char *, char *, userdata), userdata)'),
|
||||||
|
_resp: ffi('bool mgos_rpc_send_response(void *, char *)'),
|
||||||
|
_call: ffi('bool mgos_rpc_call(char *, char *, char *, void (*)(char *, int, char *, userdata), userdata)'),
|
||||||
|
_err: ffi('bool mg_rpc_send_errorf(void *, int, char *, char *)'),
|
||||||
|
|
||||||
|
_ahcb: function(ri, args, src, ud) {
|
||||||
|
// NOTE(lsm): not using `this` here deliberately. Calleth from C.
|
||||||
|
let resp = ud.cb(JSON.parse(args || 'null'), src, ud.ud);
|
||||||
|
if (typeof(resp) === 'object' && typeof(resp.error) === 'number') {
|
||||||
|
RPC._err(ri, resp.error, '%s', resp.message || '');
|
||||||
|
} else {
|
||||||
|
RPC._resp(ri, JSON.stringify(resp));
|
||||||
|
}
|
||||||
|
// NOTE: we don't call ffi_cb_free here because this handler might be used
|
||||||
|
// more than once
|
||||||
|
},
|
||||||
|
|
||||||
|
_ccb: function(res, code, msg, ud) {
|
||||||
|
ud.cb(res ? JSON.parse(res) : null, code, msg, ud.ud);
|
||||||
|
ffi_cb_free(RPC._ccb, ud);
|
||||||
|
},
|
||||||
|
|
||||||
|
LOCAL: "RPC.LOCAL",
|
||||||
|
|
||||||
|
// ## **`RPC.addHandler(name, handler)`**
|
||||||
|
// Add RPC handler. `name` is a string like `'MyMethod'`, `handler`
|
||||||
|
// is a callback function which takes `args` arguments object.
|
||||||
|
// If a handler returns an object with a numeric `error` attribute and
|
||||||
|
// optional `message` string attribute, the caller will get a failure.
|
||||||
|
//
|
||||||
|
// Return value: none.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// RPC.addHandler('Sum', function(args) {
|
||||||
|
// if (typeof(args) === 'object' && typeof(args.a) === 'number' &&
|
||||||
|
// typeof(args.b) === 'number') {
|
||||||
|
// return args.a + args.b;
|
||||||
|
// } else {
|
||||||
|
// return {error: -1, message: 'Bad request. Expected: {"a":N1,"b":N2}'};
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// ```
|
||||||
|
addHandler: function(name, cb, ud) {
|
||||||
|
let data = {cb: cb, ud: ud};
|
||||||
|
// TODO(lsm): get rid of this strdup() leak. One-off, but still ugly.
|
||||||
|
this._ah(this._sdup(name), this._ahcb, data);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`RPC.call(dst, method, args, callback)`**
|
||||||
|
// Call remote or local RPC service.
|
||||||
|
// Return value: true in case of success, false otherwise.
|
||||||
|
//
|
||||||
|
// If `dst` is empty, connected server is implied. `method` is a string
|
||||||
|
// like "MyMethod", `callback` is a callback function which takes the following
|
||||||
|
// arguments: res (results object), err_code (0 means success, or error code
|
||||||
|
// otherwise), err_msg (error messasge for non-0 error code), userdata. Example:
|
||||||
|
//
|
||||||
|
// ```javascript
|
||||||
|
// RPC.call(RPC.LOCAL, 'Config.Save', {reboot: true}, function (resp, ud) {
|
||||||
|
// print('Response:', JSON.stringify(resp));
|
||||||
|
// }, null);
|
||||||
|
// ```
|
||||||
|
call: function(dst, name, args, cb, ud) {
|
||||||
|
let data = {cb: cb, ud: ud};
|
||||||
|
return this._call(dst, name, JSON.stringify(args), this._ccb, data);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
let Sys = {
|
||||||
|
// ## **`Sys._sbuf(len)`**
|
||||||
|
// Helper function to allocate string of at least given length. Note that
|
||||||
|
// the resulting string is usually bigger than this, and it is always
|
||||||
|
// longer than 5 bytes; that's to guarantee that the string data is stored in
|
||||||
|
// a common buffer and not inlined into mjs_val_t, thus the buffer can be
|
||||||
|
// used as an "output" buffer: a string can be passed to some function which
|
||||||
|
// will alter the contents, and these changes will be visible to the caller.
|
||||||
|
_sbuf: function(len) {
|
||||||
|
let chunk = ' ', buf = chunk;
|
||||||
|
while (buf.length < len) buf += chunk;
|
||||||
|
return buf;
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`Sys.calloc(nmemb, size)`**
|
||||||
|
// Allocate a memory region.
|
||||||
|
// Note: currently memory allocated this way must be explicitly released with `free()`.
|
||||||
|
malloc: ffi('void *malloc(int)'),
|
||||||
|
free: ffi('void free(void *)'),
|
||||||
|
|
||||||
|
// ## **`Sys.total_ram()`**
|
||||||
|
// Return total available RAM in bytes.
|
||||||
|
total_ram: ffi('int mgos_get_heap_size()'),
|
||||||
|
|
||||||
|
// ## **`Sys.free_ram()`**
|
||||||
|
// Return free available RAM in bytes.
|
||||||
|
free_ram: ffi('int mgos_get_free_heap_size()'),
|
||||||
|
|
||||||
|
// ## **`Sys.reboot(us)`**
|
||||||
|
// Reboot the system after `us` microseconds. Return value: none.
|
||||||
|
reboot: ffi('void mgos_system_restart(int)'),
|
||||||
|
|
||||||
|
// ## **`Sys.uptime()`**
|
||||||
|
// Return number of seconds since last reboot.
|
||||||
|
uptime: ffi('double mgos_uptime()'),
|
||||||
|
|
||||||
|
// ## **`Sys.usleep(microseconds)`**
|
||||||
|
// Sleep given number of microseconds.
|
||||||
|
// Return value: none.
|
||||||
|
usleep: ffi('void mgos_usleep(int)'),
|
||||||
|
|
||||||
|
// ## **`Sys.wdt_feed()`**
|
||||||
|
// Feed the watchdog timer.
|
||||||
|
// Return value: none.
|
||||||
|
wdt_feed: ffi('void mgos_wdt_feed()')
|
||||||
|
};
|
|
@ -0,0 +1,54 @@
|
||||||
|
load('api_math.js');
|
||||||
|
|
||||||
|
let Timer = {
|
||||||
|
_f: ffi('int mgos_strftime(char *, int, char *, int)'),
|
||||||
|
|
||||||
|
// ## **`Timer.set(milliseconds, flags, handler, userdata)`**
|
||||||
|
// Setup timer with `milliseconds` timeout and `handler` as a callback.
|
||||||
|
// `flags` can be either 0 or `Timer.REPEAT`. In the latter case, the call
|
||||||
|
// will be repeated indefinitely (but can be cancelled with `Timer.del()`),
|
||||||
|
// otherwise it's a one-off.
|
||||||
|
//
|
||||||
|
// Return value: numeric timer ID.
|
||||||
|
//
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// // Call every second
|
||||||
|
// Timer.set(1000, Timer.REPEAT, function() {
|
||||||
|
// let value = GPIO.toggle(2);
|
||||||
|
// print(value ? 'Tick' : 'Tock');
|
||||||
|
// }, null);
|
||||||
|
// ```
|
||||||
|
set: ffi('int mgos_set_timer(int,int,void(*)(userdata),userdata)'),
|
||||||
|
|
||||||
|
REPEAT: 1,
|
||||||
|
|
||||||
|
// ## **`Timer.now()`**
|
||||||
|
// Return current time as double value, UNIX epoch (seconds since 1970).
|
||||||
|
now: ffi('double mg_time(void)'),
|
||||||
|
|
||||||
|
// ## **`Timer.del(id)`**
|
||||||
|
// Cancel previously installed timer.
|
||||||
|
del: ffi('void mgos_clear_timer(int)'),
|
||||||
|
|
||||||
|
// ## **`Timer.fmt(fmt, time)`**
|
||||||
|
// Formats the time 'time' according to the strftime-like format
|
||||||
|
// specification 'fmt'. The strftime reference can be found e.g.
|
||||||
|
// [here](http://www.cplusplus.com/reference/ctime/strftime/).
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// let now = Timer.now();
|
||||||
|
// let s = Timer.fmt("Now it's %I:%M%p.", now);
|
||||||
|
// print(s); // Example output: "Now it's 12:01AM."
|
||||||
|
// ```
|
||||||
|
fmt: function(fmt, time) {
|
||||||
|
if (!fmt) return 'invalid format';
|
||||||
|
let res = 0, t = Math.round(time || Timer.now()), s = ' ';
|
||||||
|
while (res === 0) {
|
||||||
|
res = this._f(s, s.length, fmt, t);
|
||||||
|
if (res === -1) return 'invalid time';
|
||||||
|
if (res === 0) s += ' ';
|
||||||
|
}
|
||||||
|
return s.slice(0, res);
|
||||||
|
},
|
||||||
|
};
|
|
@ -0,0 +1,165 @@
|
||||||
|
// UART API. Source C API is defined at:
|
||||||
|
// [mgos_uart.h](https://github.com/cesanta/mongoose-os/blob/master/fw/src/mgos_uart.h)
|
||||||
|
let UART = {
|
||||||
|
_free: ffi('void free(void *)'),
|
||||||
|
_cdef: ffi('void *mgos_uart_config_get_default(int)'),
|
||||||
|
_cbp: ffi('void mgos_uart_config_set_basic_params(void *, int, int, int, int)'),
|
||||||
|
_crx: ffi('void mgos_uart_config_set_rx_params(void *, int, int, int)'),
|
||||||
|
_ctx: ffi('void mgos_uart_config_set_tx_params(void *, int, int)'),
|
||||||
|
_cfg: ffi('int mgos_uart_configure(int, void *)'),
|
||||||
|
_wr: ffi('int mgos_uart_write(int, char *, int)'),
|
||||||
|
_rd: ffi('int mgos_uart_read(int, void *, int)'),
|
||||||
|
|
||||||
|
// ## **`UART.setConfig(uartNo, param)`**
|
||||||
|
// Set UART config. `param` is an
|
||||||
|
// object with the following optional fields:
|
||||||
|
//
|
||||||
|
// - `baudRate`: baud rate, integer, default: 115200;
|
||||||
|
// - `numDataBits`: Number of data bits, default: 8;
|
||||||
|
// - `parity`: Parity: 0 - none, 1 - even, 2 - odd; default: none;
|
||||||
|
// - `numStopBits`: Number of stop bits: 1 - 1 bit, 2 - 2 bits, 3 - 1.5; default: 1;
|
||||||
|
// - `rxBufSize`: size of the Rx buffer, integer, default: 256;
|
||||||
|
// - `rxFlowControl`: whether Rx flow control (RTS pin) is enabled, boolean,
|
||||||
|
// default: false;
|
||||||
|
// - `rxLingerMicros`: how many microseconds to linger after Rx fifo
|
||||||
|
// is empty, in case more data arrives. Integer, default: 15;
|
||||||
|
// - `txBufSize`: size of the Tx buffer, integer, default: 256;
|
||||||
|
// - `txFlowControl`: whether Tx flow control (CTS pin) is enabled, boolean,
|
||||||
|
// default: false;
|
||||||
|
//
|
||||||
|
// Other than that, there are architecture-dependent settings, grouped in
|
||||||
|
// the objects named with the architecture name: "esp32", "esp8266", etc.
|
||||||
|
//
|
||||||
|
// Settings for esp32:
|
||||||
|
//
|
||||||
|
// ```
|
||||||
|
// esp32: {
|
||||||
|
// /*
|
||||||
|
// * GPIO pin numbers, default values depend on UART.
|
||||||
|
// *
|
||||||
|
// * UART 0: Rx: 3, Tx: 1, CTS: 19, RTS: 22
|
||||||
|
// * UART 1: Rx: 13, Tx: 14, CTS: 15, RTS: 16
|
||||||
|
// * UART 2: Rx: 17, Tx: 25, CTS: 26, RTS: 27
|
||||||
|
// */
|
||||||
|
// gpio: {
|
||||||
|
// rx: number,
|
||||||
|
// tx: number,
|
||||||
|
// cts: number,
|
||||||
|
// rts: number,
|
||||||
|
// },
|
||||||
|
//
|
||||||
|
// /* Hardware FIFO tweaks */
|
||||||
|
// fifo: {
|
||||||
|
// /*
|
||||||
|
// * A number of bytes in the hardware Rx fifo, should be between 1 and 127.
|
||||||
|
// * How full hardware Rx fifo should be before "rx fifo full" interrupt is
|
||||||
|
// * fired.
|
||||||
|
// */
|
||||||
|
// rxFullThresh: number,
|
||||||
|
//
|
||||||
|
// /*
|
||||||
|
// * A number of bytes in the hardware Rx fifo, should be more than
|
||||||
|
// * rx_fifo_full_thresh.
|
||||||
|
// *
|
||||||
|
// * How full hardware Rx fifo should be before CTS is deasserted, telling
|
||||||
|
// * the other side to stop sending data.
|
||||||
|
// */
|
||||||
|
// rxFcThresh: number,
|
||||||
|
//
|
||||||
|
// /*
|
||||||
|
// * Time in uart bit intervals when "rx fifo full" interrupt fires even if
|
||||||
|
// * it's not full enough
|
||||||
|
// */
|
||||||
|
// rxAlarm: number,
|
||||||
|
//
|
||||||
|
// /*
|
||||||
|
// * A number of bytes in the hardware Tx fifo, should be between 1 and 127.
|
||||||
|
// * When the number of bytes in Tx buffer becomes less than
|
||||||
|
// * tx_fifo_empty_thresh, "tx fifo empty" interrupt fires.
|
||||||
|
// */
|
||||||
|
// txEmptyThresh: number,
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
setConfig: function(uartNo, param) {
|
||||||
|
let cfg = this._cdef(uartNo);
|
||||||
|
|
||||||
|
this._cbp(cfg, param.baudRate || 115200,
|
||||||
|
param.numDataBits || 8,
|
||||||
|
param.parity || 0,
|
||||||
|
param.numStopBits || 1);
|
||||||
|
|
||||||
|
this._crx(
|
||||||
|
cfg,
|
||||||
|
param.rxBufSize || 256,
|
||||||
|
param.rxFlowControl || false,
|
||||||
|
param.rxLingerMicros || 15
|
||||||
|
);
|
||||||
|
|
||||||
|
this._ctx(
|
||||||
|
cfg,
|
||||||
|
param.txBufSize || 256,
|
||||||
|
param.txFlowControl || false
|
||||||
|
);
|
||||||
|
|
||||||
|
// Apply arch-specific config
|
||||||
|
if (this._arch !== undefined) {
|
||||||
|
this._arch.scfg(uartNo, cfg, param);
|
||||||
|
}
|
||||||
|
|
||||||
|
let res = this._cfg(uartNo, cfg);
|
||||||
|
|
||||||
|
this._free(cfg);
|
||||||
|
cfg = null;
|
||||||
|
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`UART.setDispatcher(uartNo, callback, userdata)`**
|
||||||
|
// Set UART dispatcher
|
||||||
|
// callback which gets invoked when there is a new data in the input buffer
|
||||||
|
// or when the space becomes available on the output buffer.
|
||||||
|
//
|
||||||
|
// Callback receives the following arguments: `(uartNo, userdata)`.
|
||||||
|
setDispatcher: ffi('void mgos_uart_set_dispatcher(int, void(*)(int, userdata), userdata)'),
|
||||||
|
|
||||||
|
// ## **`UART.write(uartNo, data)`**
|
||||||
|
// Write data to the buffer. Returns number of bytes written.
|
||||||
|
//
|
||||||
|
// Example usage: `UART.write(1, "foobar")`, in this case, 6 bytes will be written.
|
||||||
|
write: function(uartNo, data) {
|
||||||
|
this._wr(uartNo, data, data.length);
|
||||||
|
},
|
||||||
|
|
||||||
|
// ## **`UART.writeAvail(uartNo)`**
|
||||||
|
// Return amount of space available in the output buffer.
|
||||||
|
writeAvail: ffi('int mgos_uart_write_avail(int)'),
|
||||||
|
|
||||||
|
// ## **`UART.read(uartNo)`**
|
||||||
|
// It never blocks, and returns a string containing
|
||||||
|
// read data (which will be empty if there's no data available).
|
||||||
|
read: function(uartNo) {
|
||||||
|
let n = 0; let res = ''; let buf = 'xxxxxxxxxx'; // Should be > 5
|
||||||
|
while ((n = this._rd(uartNo, buf, buf.length)) > 0) {
|
||||||
|
res += buf.slice(0, n);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
// ## **`UART.readAvail(uartNo)`**
|
||||||
|
// Return amount of data available in the input buffer.
|
||||||
|
readAvail: ffi('int mgos_uart_read_avail(int)'),
|
||||||
|
|
||||||
|
// ## **`UART.setRxEnabled(uartNo)`**
|
||||||
|
// Set whether Rx is enabled.
|
||||||
|
setRxEnabled: ffi('void mgos_uart_set_rx_enabled(int, int)'),
|
||||||
|
// ## **`UART.isRxEnabled(uartNo)`**
|
||||||
|
// Returns whether Rx is enabled.
|
||||||
|
isRxEnabled: ffi('int mgos_uart_is_rx_enabled(int)'),
|
||||||
|
|
||||||
|
// ## **`UART.flush(uartNo)`**
|
||||||
|
// Flush the UART output buffer, wait for the data to be sent.
|
||||||
|
flush: ffi('void mgos_uart_flush(int)'),
|
||||||
|
};
|
||||||
|
|
||||||
|
// Load arch-specific API
|
||||||
|
load('api_arch_uart.js');
|
|
@ -0,0 +1,36 @@
|
||||||
|
// Wifi global object is created during C initialization.
|
||||||
|
|
||||||
|
// ## **`Wifi.scan(cb)`**
|
||||||
|
// Scan WiFi networks, call `cb` when done.
|
||||||
|
// `cb` accepts a single argument `results`, which is
|
||||||
|
// either `undefined` in case of error, or an array of object containing:
|
||||||
|
// ```javascript
|
||||||
|
// {
|
||||||
|
// "ssid": "NetworkName",
|
||||||
|
// "bssid": "12:34:56:78:90:ab",
|
||||||
|
// "authMode": Wifi.AUTH_MODE_WPA_PSK, // Auth mode, one of AUTH constants.
|
||||||
|
// "channel": 11,
|
||||||
|
// "rssi": -70
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
// Example:
|
||||||
|
// ```javascript
|
||||||
|
// Wifi.scan(function(results) {
|
||||||
|
// print(JSON.stringify(results));
|
||||||
|
// });
|
||||||
|
// ```
|
||||||
|
|
||||||
|
// Must be kept in sync with enum mgos_wifi_auth_mode
|
||||||
|
// ## **Auth modes**
|
||||||
|
// - `Wifi.AUTH_MODE_OPEN`
|
||||||
|
// - `Wifi.AUTH_MODE_WEP`
|
||||||
|
// - `Wifi.AUTH_MODE_WPA_PSK`
|
||||||
|
// - `Wifi.AUTH_MODE_WPA2_PSK`
|
||||||
|
// - `Wifi.AUTH_MODE_WPA_WPA2_PSK`
|
||||||
|
// - `Wifi.AUTH_MODE_WPA2_ENTERPRISE`
|
||||||
|
Wifi.AUTH_MODE_OPEN = 0;
|
||||||
|
Wifi.AUTH_MODE_WEP = 1;
|
||||||
|
Wifi.AUTH_MODE_WPA_PSK = 2;
|
||||||
|
Wifi.AUTH_MODE_WPA2_PSK = 3;
|
||||||
|
Wifi.AUTH_MODE_WPA_WPA2_PSK = 4;
|
||||||
|
Wifi.AUTH_MODE_WPA2_ENTERPRISE = 5;
|
|
@ -0,0 +1,298 @@
|
||||||
|
Subject: O=Digital Signature Trust Co., CN=DST Root CA X3
|
||||||
|
Not Before: Sep 30 21:12:19 2000 GMT
|
||||||
|
Not After : Sep 30 14:01:15 2021 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
|
||||||
|
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||||
|
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
|
||||||
|
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
|
||||||
|
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||||
|
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
|
||||||
|
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
|
||||||
|
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
|
||||||
|
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
|
||||||
|
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
|
||||||
|
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
||||||
|
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
|
||||||
|
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
|
||||||
|
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
|
||||||
|
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
|
||||||
|
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
|
||||||
|
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
|
||||||
|
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=IE, O=Baltimore, OU=CyberTrust, CN=Baltimore CyberTrust Root
|
||||||
|
Not Before: May 12 18:46:00 2000 GMT
|
||||||
|
Not After : May 12 23:59:00 2025 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
|
||||||
|
RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
|
||||||
|
VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
|
||||||
|
DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
|
||||||
|
ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
|
||||||
|
VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
|
||||||
|
mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
|
||||||
|
IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
|
||||||
|
mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
|
||||||
|
XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
|
||||||
|
dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
|
||||||
|
jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
|
||||||
|
BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
|
||||||
|
DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
|
||||||
|
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
|
||||||
|
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
|
||||||
|
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
|
||||||
|
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
|
||||||
|
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
|
||||||
|
Not Before: May 21 04:00:00 2002 GMT
|
||||||
|
Not After : May 21 04:00:00 2022 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
|
||||||
|
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
|
||||||
|
YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
|
||||||
|
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
|
||||||
|
R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
|
||||||
|
9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
|
||||||
|
fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
|
||||||
|
iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
|
||||||
|
1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
|
||||||
|
bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
|
||||||
|
MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
|
||||||
|
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
|
||||||
|
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
|
||||||
|
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
|
||||||
|
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
|
||||||
|
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
|
||||||
|
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
|
||||||
|
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=US, O=Symantec Corporation, OU=Symantec Trust Network, CN=Symantec Class 3 ECC 256 bit SSL CA - G2
|
||||||
|
Not Before: May 12 00:00:00 2015 GMT
|
||||||
|
Not After : May 11 23:59:59 2025 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEajCCA1KgAwIBAgIQP5KHvp0dpKN6nfYoLndaxDANBgkqhkiG9w0BAQsFADCB
|
||||||
|
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||||
|
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||||
|
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||||
|
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||||
|
aG9yaXR5IC0gRzUwHhcNMTUwNTEyMDAwMDAwWhcNMjUwNTExMjM1OTU5WjCBgDEL
|
||||||
|
MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYD
|
||||||
|
VQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEwLwYDVQQDEyhTeW1hbnRlYyBD
|
||||||
|
bGFzcyAzIEVDQyAyNTYgYml0IFNTTCBDQSAtIEcyMFkwEwYHKoZIzj0CAQYIKoZI
|
||||||
|
zj0DAQcDQgAEDxukkdfnrOfRTk63ZFvhj39uBNOrONtEt0Bcbb2WljffeYmGZ/ex
|
||||||
|
Hwie/WM7RoyfvVPoFdyXPiuBRq2Gfw4BOaOCAV0wggFZMC4GCCsGAQUFBwEBBCIw
|
||||||
|
IDAeBggrBgEFBQcwAYYSaHR0cDovL3Muc3ltY2QuY29tMBIGA1UdEwEB/wQIMAYB
|
||||||
|
Af8CAQAwZQYDVR0gBF4wXDBaBgpghkgBhvhFAQc2MEwwIwYIKwYBBQUHAgEWF2h0
|
||||||
|
dHBzOi8vZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUFBwICMBkaF2h0dHBzOi8vZC5z
|
||||||
|
eW1jYi5jb20vcnBhMC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly9zLnN5bWNiLmNv
|
||||||
|
bS9wY2EzLWc1LmNybDAOBgNVHQ8BAf8EBAMCAQYwKwYDVR0RBCQwIqQgMB4xHDAa
|
||||||
|
BgNVBAMTE1NZTUMtRUNDLUNBLXAyNTYtMjIwHQYDVR0OBBYEFCXwiuFLetkBlQrt
|
||||||
|
xlPxjHgf2fP4MB8GA1UdIwQYMBaAFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
|
||||||
|
SIb3DQEBCwUAA4IBAQAMMGUXBaWTdaLxsTGtcB/naqjIQrLvoV9NG+7MoHpGd/69
|
||||||
|
dZ/h2zOy7sGFUHoG/0HGRA9rxT/5w5GkEVIVkxtWyIWWq6rs4CTZt8Bej/KHYRbo
|
||||||
|
jtEDUkCTZSTLiCvguPyvinXgxy+LHT+PmdtEfXsvcdbeBSWUYpOsDYvD2hNtz9dw
|
||||||
|
Od5nBosMApmdxt+z7LQyZu8wMnfI1U6IMO+RWowxZ8uy0oswdFYd32l9xe+aAE/k
|
||||||
|
y9alLu/M9pvxiUKufqHJRgDBKA6uDjHLMPX+/nxXaNCPX3SI4KVZ1stHQ/U5oNlM
|
||||||
|
dHN9umAvlU313g0IgJrjsQ2nIdf9dsdP+6lrmP7s
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=(c) 2006 VeriSign, Inc. - For authorized use only, CN=VeriSign Class 3 Public Primary Certification Authority - G5
|
||||||
|
Not Before: Nov 8 00:00:00 2006 GMT
|
||||||
|
Not After : Jul 16 23:59:59 2036 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
||||||
|
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||||
|
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||||
|
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||||
|
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||||
|
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
||||||
|
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||||
|
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
||||||
|
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
||||||
|
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
||||||
|
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
||||||
|
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
||||||
|
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
||||||
|
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
||||||
|
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
||||||
|
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
||||||
|
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
||||||
|
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
||||||
|
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
||||||
|
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
||||||
|
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
||||||
|
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
||||||
|
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
||||||
|
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
||||||
|
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
||||||
|
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
|
||||||
|
Not Before: Jun 29 17:06:20 2004 GMT
|
||||||
|
Not After : Jun 29 17:06:20 2034 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
|
||||||
|
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
|
||||||
|
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
|
||||||
|
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
|
||||||
|
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
|
||||||
|
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
|
||||||
|
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
|
||||||
|
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
|
||||||
|
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
|
||||||
|
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
|
||||||
|
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
|
||||||
|
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
|
||||||
|
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
|
||||||
|
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
|
||||||
|
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
|
||||||
|
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
|
||||||
|
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
|
||||||
|
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
|
||||||
|
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
||||||
|
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
|
||||||
|
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
|
||||||
|
ReYNnyicsbkqWletNw+vHX/bvZ8=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=US, O=Starfield Technologies, Inc., OU=Starfield Class 2 Certification Authority
|
||||||
|
Not Before: Jun 29 17:39:16 2004 GMT
|
||||||
|
Not After : Jun 29 17:39:16 2034 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
|
||||||
|
MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
|
||||||
|
U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
|
||||||
|
NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
|
||||||
|
ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
|
||||||
|
ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
|
||||||
|
DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
|
||||||
|
8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
|
||||||
|
+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
|
||||||
|
X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
|
||||||
|
K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
|
||||||
|
1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
|
||||||
|
A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
|
||||||
|
zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
|
||||||
|
YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
|
||||||
|
bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
|
||||||
|
DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
|
||||||
|
L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
|
||||||
|
eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
||||||
|
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
|
||||||
|
VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
|
||||||
|
WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Not Before: Sep 1 00:00:00 2009 GMT
|
||||||
|
Not After : Dec 31 23:59:59 2037 GMT
|
||||||
|
Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Root Certificate Authority - G2
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
|
||||||
|
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
|
||||||
|
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
|
||||||
|
ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
|
||||||
|
MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
|
||||||
|
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
|
||||||
|
aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
|
||||||
|
Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||||
|
ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
|
||||||
|
nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
|
||||||
|
HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
|
||||||
|
Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
|
||||||
|
dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
|
||||||
|
HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
|
||||||
|
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
|
||||||
|
CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
|
||||||
|
sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
|
||||||
|
4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
|
||||||
|
8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
|
||||||
|
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
|
||||||
|
mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
|
||||||
|
Not Before: Sep 1 00:00:00 2009 GMT
|
||||||
|
Not After : Dec 31 23:59:59 2037 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
|
||||||
|
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
|
||||||
|
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
|
||||||
|
ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
|
||||||
|
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
|
||||||
|
VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
|
||||||
|
ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
|
||||||
|
dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
|
||||||
|
hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
|
||||||
|
OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
|
||||||
|
8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
|
||||||
|
Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
|
||||||
|
hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
|
||||||
|
6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
|
||||||
|
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
|
||||||
|
AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
|
||||||
|
bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
|
||||||
|
ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
|
||||||
|
qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
|
||||||
|
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
|
||||||
|
0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
|
||||||
|
sSi6
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: OU=GlobalSign Root CA - R2, O=GlobalSign, CN=GlobalSign
|
||||||
|
Not Before: Dec 15 08:00:00 2006 GMT
|
||||||
|
Not After : Dec 15 08:00:00 2021 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
|
||||||
|
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
|
||||||
|
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
|
||||||
|
MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
|
||||||
|
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
|
||||||
|
hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
|
||||||
|
v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
|
||||||
|
eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
|
||||||
|
tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
|
||||||
|
C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
|
||||||
|
zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
|
||||||
|
mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
|
||||||
|
V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
|
||||||
|
bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
|
||||||
|
3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
|
||||||
|
J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
|
||||||
|
291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
|
||||||
|
ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
|
||||||
|
AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
||||||
|
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
|
||||||
|
Not Before: Nov 10 00:00:00 2006 GMT
|
||||||
|
Not After : Nov 10 00:00:00 2031 GMT
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
|
||||||
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||||
|
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
||||||
|
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
|
||||||
|
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
||||||
|
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
|
||||||
|
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
|
||||||
|
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
|
||||||
|
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
|
||||||
|
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
|
||||||
|
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
|
||||||
|
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
|
||||||
|
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
|
||||||
|
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
|
||||||
|
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
|
||||||
|
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
|
||||||
|
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
|
||||||
|
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
|
||||||
|
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
||||||
|
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
||||||
|
+OkuE6N36B9K
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,115 @@
|
||||||
|
{
|
||||||
|
"device": {
|
||||||
|
"id": "HiGrow_??????",
|
||||||
|
"password": ""
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"udp_log_addr": "",
|
||||||
|
"level": 2,
|
||||||
|
"filter": "",
|
||||||
|
"stdout_uart": 0,
|
||||||
|
"stderr_uart": 0,
|
||||||
|
"factory_reset_gpio": -1,
|
||||||
|
"mg_mgr_hexdump_file": "",
|
||||||
|
"mbedtls_level": 0
|
||||||
|
},
|
||||||
|
"sys": {
|
||||||
|
"mount": {
|
||||||
|
"path": "",
|
||||||
|
"dev_type": "",
|
||||||
|
"dev_opts": "",
|
||||||
|
"fs_type": "",
|
||||||
|
"fs_opts": ""
|
||||||
|
},
|
||||||
|
"tz_spec": "",
|
||||||
|
"wdt_timeout": 30,
|
||||||
|
"pref_ota_lib": "",
|
||||||
|
"esp32_adc_vref": 0
|
||||||
|
},
|
||||||
|
"conf_acl": "*",
|
||||||
|
"bt": {
|
||||||
|
"enable": true,
|
||||||
|
"dev_name": "HiGrowBT_",
|
||||||
|
"adv_enable": true,
|
||||||
|
"scan_rsp_data_hex": "",
|
||||||
|
"keep_enabled": false,
|
||||||
|
"allow_pairing": true,
|
||||||
|
"max_paired_devices": -1,
|
||||||
|
"random_address": true,
|
||||||
|
"gatts": {
|
||||||
|
"min_sec_level": 0,
|
||||||
|
"require_pairing": false
|
||||||
|
},
|
||||||
|
"config_svc_enable": true
|
||||||
|
},
|
||||||
|
"mjs": {
|
||||||
|
"generate_jsc": true
|
||||||
|
},
|
||||||
|
"rpc": {
|
||||||
|
"enable": true,
|
||||||
|
"max_frame_size": 4096,
|
||||||
|
"max_queue_length": 25,
|
||||||
|
"default_out_channel_idle_close_timeout": 10,
|
||||||
|
"acl_file": "",
|
||||||
|
"auth_domain": "",
|
||||||
|
"auth_file": "",
|
||||||
|
"ws": {
|
||||||
|
"enable": true,
|
||||||
|
"server_address": "",
|
||||||
|
"reconnect_interval_min": 1,
|
||||||
|
"reconnect_interval_max": 60,
|
||||||
|
"ssl_server_name": "",
|
||||||
|
"ssl_ca_file": "",
|
||||||
|
"ssl_client_cert_file": ""
|
||||||
|
},
|
||||||
|
"uart": {
|
||||||
|
"uart_no": 0,
|
||||||
|
"baud_rate": 115200,
|
||||||
|
"fc_type": 2,
|
||||||
|
"wait_for_start_frame": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wifi": {
|
||||||
|
"sta": {
|
||||||
|
"enable": false,
|
||||||
|
"ssid": "",
|
||||||
|
"pass": "",
|
||||||
|
"user": "",
|
||||||
|
"anon_identity": "",
|
||||||
|
"cert": "",
|
||||||
|
"key": "",
|
||||||
|
"ca_cert": "",
|
||||||
|
"ip": "",
|
||||||
|
"netmask": "",
|
||||||
|
"gw": "",
|
||||||
|
"nameserver": "",
|
||||||
|
"dhcp_hostname": ""
|
||||||
|
},
|
||||||
|
"ap": {
|
||||||
|
"enable": false,
|
||||||
|
"ssid": "Mongoose_??????",
|
||||||
|
"pass": "Mongoose",
|
||||||
|
"hidden": false,
|
||||||
|
"channel": 6,
|
||||||
|
"max_connections": 10,
|
||||||
|
"ip": "192.168.4.1",
|
||||||
|
"netmask": "255.255.255.0",
|
||||||
|
"gw": "192.168.4.1",
|
||||||
|
"dhcp_start": "192.168.4.2",
|
||||||
|
"dhcp_end": "192.168.4.100",
|
||||||
|
"trigger_on_gpio": -1,
|
||||||
|
"disable_after": 0,
|
||||||
|
"hostname": "",
|
||||||
|
"keep_enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"higrow": {
|
||||||
|
"deviceId": "",
|
||||||
|
"temperature": 0.0,
|
||||||
|
"humidity": 0.0,
|
||||||
|
"light": 0,
|
||||||
|
"moisture": 0,
|
||||||
|
"connected": false,
|
||||||
|
"battery_calibration": 2360
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
load('api_config.js');
|
||||||
|
load('api_events.js');
|
||||||
|
load('api_gpio.js');
|
||||||
|
load('api_http.js');
|
||||||
|
load('api_net.js');
|
||||||
|
load('api_sys.js');
|
||||||
|
load('api_timer.js');
|
||||||
|
load('api_esp32.js');
|
||||||
|
load('api_dht.js');
|
||||||
|
load('api_adc.js');
|
||||||
|
load('api_rpc.js');
|
||||||
|
|
||||||
|
//Pins
|
||||||
|
let ResetPin = 0;
|
||||||
|
let LedPin = 16;
|
||||||
|
let DHTpin = 22;
|
||||||
|
let SOILpin = 32;
|
||||||
|
let LIGHTpin = 34;
|
||||||
|
|
||||||
|
// Turn on status led
|
||||||
|
GPIO.set_mode(LedPin, GPIO.MODE_OUTPUT);
|
||||||
|
GPIO.write(LedPin, 0);
|
||||||
|
|
||||||
|
//Reset Handler
|
||||||
|
GPIO.set_mode(ResetPin, GPIO.MODE_INPUT);
|
||||||
|
GPIO.set_int_handler(ResetPin, GPIO.INT_EDGE_NEG, function(ResetPin) {
|
||||||
|
print('Pin', ResetPin, 'got interrupt');
|
||||||
|
GPIO.toggle(LedPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(LedPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(LedPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(LedPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(LedPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.write(LedPin, 0);
|
||||||
|
|
||||||
|
Cfg.set({bt:{enable:true}});
|
||||||
|
Cfg.set({wifi:{sta:{enable:false}}});
|
||||||
|
Cfg.set({wifi:{ap:{enable:false}}});
|
||||||
|
Cfg.set({wifi:{sta:{ssid:'',pass:''}}});
|
||||||
|
|
||||||
|
Sys.reboot(1000);
|
||||||
|
}, null);
|
||||||
|
GPIO.enable_int(ResetPin);
|
||||||
|
|
||||||
|
ADC.enable(SOILpin);
|
||||||
|
let dht = DHT.create(DHTpin, DHT.DHT11);
|
||||||
|
let deviceId = Cfg.get("higrow.deviceId");
|
||||||
|
if (deviceId === "")
|
||||||
|
{
|
||||||
|
deviceId = Cfg.get("device.id");
|
||||||
|
Cfg.set("higrow.devideId", deviceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
let connected = false;
|
||||||
|
let readSensors = Timer.set(15000, Timer.REPEAT, function() {
|
||||||
|
let t = dht.getTemp();
|
||||||
|
let h = dht.getHumidity();
|
||||||
|
let m = ADC.read(SOILpin);
|
||||||
|
let l = ADC.read(LIGHTpin);
|
||||||
|
|
||||||
|
print("DeviceId:", deviceId,"Temperature:",t,"Humidity:",h,"Moisture:",m,"Light:",l);
|
||||||
|
|
||||||
|
//Timer.del(readSensors);
|
||||||
|
|
||||||
|
//ESP32.deepSleep(3600000000); //3600 seconds / 60 minutes
|
||||||
|
/*
|
||||||
|
Cfg.set({higrow:{temperature:jsonData.Temperature}});
|
||||||
|
Cfg.set({higrow:{moisture:jsonData.Water}});
|
||||||
|
Cfg.set({higrow:{humidity:jsonData.Humidity}});
|
||||||
|
Cfg.set({higrow:{light:jsonData.Light}});
|
||||||
|
*/
|
||||||
|
}, null);
|
||||||
|
|
||||||
|
// Monitor network connectivity.
|
||||||
|
Event.addGroupHandler(Net.EVENT_GRP, function(ev, evdata, arg) {
|
||||||
|
let status = true && connected;
|
||||||
|
let evs = '???';
|
||||||
|
if (ev === Net.STATUS_DISCONNECTED) {
|
||||||
|
evs = 'DISCONNECTED';
|
||||||
|
connected = false;
|
||||||
|
} else if (ev === Net.STATUS_CONNECTING) {
|
||||||
|
evs = 'CONNECTING';
|
||||||
|
connected = false;
|
||||||
|
} else if (ev === Net.STATUS_CONNECTED) {
|
||||||
|
evs = 'CONNECTED';
|
||||||
|
connected = false;
|
||||||
|
} else if (ev === Net.STATUS_GOT_IP) {
|
||||||
|
evs = 'GOT_IP';
|
||||||
|
connected = true;
|
||||||
|
}
|
||||||
|
}, null);
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
build_ctx_913791226
|
|
@ -0,0 +1,4 @@
|
||||||
|
/* Auto-generated, do not edit. */
|
||||||
|
const char *build_id = "20180218-011554/???";
|
||||||
|
const char *build_timestamp = "2018-02-18T01:15:54Z";
|
||||||
|
const char *build_version = "1.0";
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"build_id": "20180218-011554/???",
|
||||||
|
"build_timestamp": "2018-02-18T01:15:54Z",
|
||||||
|
"build_version": "1.0"
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"arch": "esp32",
|
||||||
|
"platform": "esp32",
|
||||||
|
"app_name": "LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware",
|
||||||
|
"build_time_ms": 31259
|
||||||
|
}
|
|
@ -0,0 +1,115 @@
|
||||||
|
{
|
||||||
|
"device": {
|
||||||
|
"id": "HiGrow_??????",
|
||||||
|
"password": ""
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"udp_log_addr": "",
|
||||||
|
"level": 2,
|
||||||
|
"filter": "",
|
||||||
|
"stdout_uart": 0,
|
||||||
|
"stderr_uart": 0,
|
||||||
|
"factory_reset_gpio": -1,
|
||||||
|
"mg_mgr_hexdump_file": "",
|
||||||
|
"mbedtls_level": 0
|
||||||
|
},
|
||||||
|
"sys": {
|
||||||
|
"mount": {
|
||||||
|
"path": "",
|
||||||
|
"dev_type": "",
|
||||||
|
"dev_opts": "",
|
||||||
|
"fs_type": "",
|
||||||
|
"fs_opts": ""
|
||||||
|
},
|
||||||
|
"tz_spec": "",
|
||||||
|
"wdt_timeout": 30,
|
||||||
|
"pref_ota_lib": "",
|
||||||
|
"esp32_adc_vref": 0
|
||||||
|
},
|
||||||
|
"conf_acl": "*",
|
||||||
|
"bt": {
|
||||||
|
"enable": true,
|
||||||
|
"dev_name": "HiGrowBT_",
|
||||||
|
"adv_enable": true,
|
||||||
|
"scan_rsp_data_hex": "",
|
||||||
|
"keep_enabled": false,
|
||||||
|
"allow_pairing": true,
|
||||||
|
"max_paired_devices": -1,
|
||||||
|
"random_address": true,
|
||||||
|
"gatts": {
|
||||||
|
"min_sec_level": 0,
|
||||||
|
"require_pairing": false
|
||||||
|
},
|
||||||
|
"config_svc_enable": true
|
||||||
|
},
|
||||||
|
"mjs": {
|
||||||
|
"generate_jsc": true
|
||||||
|
},
|
||||||
|
"rpc": {
|
||||||
|
"enable": true,
|
||||||
|
"max_frame_size": 4096,
|
||||||
|
"max_queue_length": 25,
|
||||||
|
"default_out_channel_idle_close_timeout": 10,
|
||||||
|
"acl_file": "",
|
||||||
|
"auth_domain": "",
|
||||||
|
"auth_file": "",
|
||||||
|
"ws": {
|
||||||
|
"enable": true,
|
||||||
|
"server_address": "",
|
||||||
|
"reconnect_interval_min": 1,
|
||||||
|
"reconnect_interval_max": 60,
|
||||||
|
"ssl_server_name": "",
|
||||||
|
"ssl_ca_file": "",
|
||||||
|
"ssl_client_cert_file": ""
|
||||||
|
},
|
||||||
|
"uart": {
|
||||||
|
"uart_no": 0,
|
||||||
|
"baud_rate": 115200,
|
||||||
|
"fc_type": 2,
|
||||||
|
"wait_for_start_frame": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wifi": {
|
||||||
|
"sta": {
|
||||||
|
"enable": false,
|
||||||
|
"ssid": "",
|
||||||
|
"pass": "",
|
||||||
|
"user": "",
|
||||||
|
"anon_identity": "",
|
||||||
|
"cert": "",
|
||||||
|
"key": "",
|
||||||
|
"ca_cert": "",
|
||||||
|
"ip": "",
|
||||||
|
"netmask": "",
|
||||||
|
"gw": "",
|
||||||
|
"nameserver": "",
|
||||||
|
"dhcp_hostname": ""
|
||||||
|
},
|
||||||
|
"ap": {
|
||||||
|
"enable": false,
|
||||||
|
"ssid": "Mongoose_??????",
|
||||||
|
"pass": "Mongoose",
|
||||||
|
"hidden": false,
|
||||||
|
"channel": 6,
|
||||||
|
"max_connections": 10,
|
||||||
|
"ip": "192.168.4.1",
|
||||||
|
"netmask": "255.255.255.0",
|
||||||
|
"gw": "192.168.4.1",
|
||||||
|
"dhcp_start": "192.168.4.2",
|
||||||
|
"dhcp_end": "192.168.4.100",
|
||||||
|
"trigger_on_gpio": -1,
|
||||||
|
"disable_after": 0,
|
||||||
|
"hostname": "",
|
||||||
|
"keep_enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"higrow": {
|
||||||
|
"deviceId": "",
|
||||||
|
"temperature": 0.0,
|
||||||
|
"humidity": 0.0,
|
||||||
|
"light": 0,
|
||||||
|
"moisture": 0,
|
||||||
|
"connected": false,
|
||||||
|
"battery_calibration": 2360
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,105 @@
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "common/cs_dbg.h"
|
||||||
|
|
||||||
|
#include "mgos_app.h"
|
||||||
|
|
||||||
|
|
||||||
|
extern bool mgos_adc_init(void);
|
||||||
|
extern bool mgos_bt_common_init(void);
|
||||||
|
extern bool mgos_bt_service_config_init(void);
|
||||||
|
extern bool mgos_ca_bundle_init(void);
|
||||||
|
extern bool mgos_dht_init(void);
|
||||||
|
extern bool mgos_mjs_init(void);
|
||||||
|
extern bool mgos_rpc_common_init(void);
|
||||||
|
extern bool mgos_rpc_service_config_init(void);
|
||||||
|
extern bool mgos_rpc_service_fs_init(void);
|
||||||
|
extern bool mgos_rpc_uart_init(void);
|
||||||
|
extern bool mgos_wifi_init(void);
|
||||||
|
|
||||||
|
static const struct lib_descr {
|
||||||
|
const char *title;
|
||||||
|
bool (*init)(void);
|
||||||
|
} descrs[] = {
|
||||||
|
|
||||||
|
// "adc". deps: [ ]
|
||||||
|
{
|
||||||
|
.title = "adc",
|
||||||
|
.init = mgos_adc_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "bt_common". deps: [ ]
|
||||||
|
{
|
||||||
|
.title = "bt_common",
|
||||||
|
.init = mgos_bt_common_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "bt_service_config". deps: [ "bt-common" ]
|
||||||
|
{
|
||||||
|
.title = "bt_service_config",
|
||||||
|
.init = mgos_bt_service_config_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "ca_bundle". deps: [ ]
|
||||||
|
{
|
||||||
|
.title = "ca_bundle",
|
||||||
|
.init = mgos_ca_bundle_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "dht". deps: [ ]
|
||||||
|
{
|
||||||
|
.title = "dht",
|
||||||
|
.init = mgos_dht_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "mjs". deps: [ ]
|
||||||
|
{
|
||||||
|
.title = "mjs",
|
||||||
|
.init = mgos_mjs_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "rpc_common". deps: [ "http-server" ]
|
||||||
|
{
|
||||||
|
.title = "rpc_common",
|
||||||
|
.init = mgos_rpc_common_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "rpc_service_config". deps: [ "rpc-common" ]
|
||||||
|
{
|
||||||
|
.title = "rpc_service_config",
|
||||||
|
.init = mgos_rpc_service_config_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "rpc_service_fs". deps: [ "rpc-common" ]
|
||||||
|
{
|
||||||
|
.title = "rpc_service_fs",
|
||||||
|
.init = mgos_rpc_service_fs_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "rpc_uart". deps: [ "rpc-common" ]
|
||||||
|
{
|
||||||
|
.title = "rpc_uart",
|
||||||
|
.init = mgos_rpc_uart_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
// "wifi". deps: [ ]
|
||||||
|
{
|
||||||
|
.title = "wifi",
|
||||||
|
.init = mgos_wifi_init,
|
||||||
|
},
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
bool mgos_deps_init(void) {
|
||||||
|
size_t i;
|
||||||
|
for (i = 0; i < sizeof(descrs) / sizeof(struct lib_descr); i++) {
|
||||||
|
LOG(LL_DEBUG, ("init %s...", descrs[i].title));
|
||||||
|
if (!descrs[i].init()) {
|
||||||
|
LOG(LL_ERROR, ("%s init failed", descrs[i].title));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
|
@ -0,0 +1,239 @@
|
||||||
|
/* Auto-generated, do not edit. */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Symbols filtered by the following globs:
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "mgos_dlsym.h"
|
||||||
|
|
||||||
|
/* NOTE: signatures are fake */
|
||||||
|
double ceil(double);
|
||||||
|
double cos(double);
|
||||||
|
void esp32_uart_config_set_fifo(int, void *, int, int, int, int);
|
||||||
|
void esp32_uart_config_set_pins(int, void *, int, int, int, int);
|
||||||
|
double exp(double);
|
||||||
|
double fabs(double);
|
||||||
|
void fclose(void *);
|
||||||
|
double floor(double);
|
||||||
|
double fmax(double, double);
|
||||||
|
double fmin(double, double);
|
||||||
|
void * fopen(char *, char *);
|
||||||
|
int fread(char *, int, int, void *);
|
||||||
|
void free(void *);
|
||||||
|
void free(void *);
|
||||||
|
int fwrite(char *, int, int, void *);
|
||||||
|
int hall_sens_read(void);
|
||||||
|
double log(double);
|
||||||
|
void * malloc(int);
|
||||||
|
void mbuf_remove(void *, int);
|
||||||
|
int mg_conn_addr_to_str(void *, char *, int, int);
|
||||||
|
bool mg_rpc_send_errorf(void *, int, char *, char *);
|
||||||
|
void mg_send(void *, void *, int);
|
||||||
|
void mg_set_protocol_http_websocket(void *);
|
||||||
|
double mg_time(void);
|
||||||
|
int mgos_adc_enable(int);
|
||||||
|
int mgos_adc_read(int);
|
||||||
|
void * mgos_bind(char *, void (*)(void *, int, void *, void *), void *);
|
||||||
|
void mgos_bitbang_write_bits_js(int, int, int, void *, int);
|
||||||
|
void mgos_clear_timer(int);
|
||||||
|
void * mgos_conf_find_schema_entry(char *, void *);
|
||||||
|
double mgos_conf_value_double(void *, void *);
|
||||||
|
int mgos_conf_value_int(void *, void *);
|
||||||
|
char * mgos_conf_value_string_nonnull(void *, void *);
|
||||||
|
int mgos_conf_value_type(void *);
|
||||||
|
bool mgos_config_apply(char *, bool);
|
||||||
|
void * mgos_config_schema();
|
||||||
|
void * mgos_connect(char *, void (*)(void *, int, void *, void *), void *);
|
||||||
|
void * mgos_connect_http(char *, void (*)(void *, int, void *, void *), void *);
|
||||||
|
void * mgos_connect_http_ssl(char *, void (*)(void *, int, void *, void *), void *, char *, char *, char *);
|
||||||
|
void * mgos_connect_ssl(char *, void (*)(void *, int, void *, void *), void *, char *, char *, char *);
|
||||||
|
int mgos_debug_event_get_len(void *);
|
||||||
|
void * mgos_debug_event_get_ptr(void *);
|
||||||
|
void mgos_dht_close(void *);
|
||||||
|
void * mgos_dht_create(int, int);
|
||||||
|
float mgos_dht_get_humidity(void *);
|
||||||
|
float mgos_dht_get_temp(void *);
|
||||||
|
void mgos_disconnect(void *);
|
||||||
|
void mgos_esp_deep_sleep_d(double);
|
||||||
|
bool mgos_event_add_group_handler(int, void(*)(int, void *, void *), void *);
|
||||||
|
bool mgos_event_add_handler(int, void(*)(int, void *, void *), void *);
|
||||||
|
bool mgos_event_register_base(int, char *);
|
||||||
|
int mgos_event_trigger(int, void *);
|
||||||
|
void * mgos_get_body_ptr(void *);
|
||||||
|
int mgos_get_free_heap_size();
|
||||||
|
int mgos_get_heap_size();
|
||||||
|
int mgos_get_mbuf_len(void *);
|
||||||
|
void * mgos_get_mbuf_ptr(void *);
|
||||||
|
int mgos_get_mgstr_len(void *);
|
||||||
|
void * mgos_get_mgstr_ptr(void *);
|
||||||
|
void * mgos_get_msg_ptr(void *);
|
||||||
|
void * mgos_get_recv_mbuf(void *);
|
||||||
|
int mgos_gpio_disable_int(int);
|
||||||
|
int mgos_gpio_enable_int(int);
|
||||||
|
int mgos_gpio_read(int);
|
||||||
|
int mgos_gpio_set_button_handler(int,int,int,int,void(*)(int, void *), void *);
|
||||||
|
int mgos_gpio_set_int_handler(int,int,void(*)(int,void *),void *);
|
||||||
|
int mgos_gpio_set_mode(int,int);
|
||||||
|
int mgos_gpio_set_pull(int,int);
|
||||||
|
int mgos_gpio_toggle(int);
|
||||||
|
void mgos_gpio_write(int,int);
|
||||||
|
bool mgos_is_inbound(void *);
|
||||||
|
void mgos_log(char *, int, int, char *);
|
||||||
|
void * mgos_mjs_get_config();
|
||||||
|
void * mgos_rpc_add_handler(void *, void (*)(void *, char *, char *, void *), void *);
|
||||||
|
bool mgos_rpc_call(char *, char *, char *, void (*)(char *, int, char *, void *), void *);
|
||||||
|
bool mgos_rpc_send_response(void *, char *);
|
||||||
|
int mgos_set_timer(int,int,void(*)(void *),void *);
|
||||||
|
int mgos_strftime(char *, int, char *, int);
|
||||||
|
void mgos_system_restart(int);
|
||||||
|
void * mgos_uart_config_get_default(int);
|
||||||
|
void mgos_uart_config_set_basic_params(void *, int, int, int, int);
|
||||||
|
void mgos_uart_config_set_rx_params(void *, int, int, int);
|
||||||
|
void mgos_uart_config_set_tx_params(void *, int, int);
|
||||||
|
int mgos_uart_configure(int, void *);
|
||||||
|
void mgos_uart_flush(int);
|
||||||
|
int mgos_uart_is_rx_enabled(int);
|
||||||
|
int mgos_uart_read(int, void *, int);
|
||||||
|
int mgos_uart_read_avail(int);
|
||||||
|
void mgos_uart_set_dispatcher(int, void(*)(int, void *), void *);
|
||||||
|
void mgos_uart_set_rx_enabled(int, int);
|
||||||
|
int mgos_uart_write(int, char *, int);
|
||||||
|
int mgos_uart_write_avail(int);
|
||||||
|
double mgos_uptime();
|
||||||
|
void mgos_usleep(int);
|
||||||
|
void mgos_wdt_feed();
|
||||||
|
char * mjs_get_bcode_filename_by_offset(void *, int);
|
||||||
|
int mjs_get_lineno_by_offset(void *, int);
|
||||||
|
int mjs_get_offset_by_call_frame_num(void *, int);
|
||||||
|
double mjs_mem_get_int(void *, int, int);
|
||||||
|
void * mjs_mem_get_ptr(void *, int);
|
||||||
|
double mjs_mem_get_uint(void *, int, int);
|
||||||
|
void mjs_mem_set_uint(void *, int, int, int);
|
||||||
|
void * mjs_mem_to_ptr(int);
|
||||||
|
double pow(double, double);
|
||||||
|
int rand();
|
||||||
|
int remove(char *);
|
||||||
|
int rename(char *, char *);
|
||||||
|
double round(double);
|
||||||
|
double sin(double);
|
||||||
|
double sqrt(double);
|
||||||
|
void * strdup(char *);
|
||||||
|
int temprature_sens_read(void);
|
||||||
|
|
||||||
|
const struct mgos_ffi_export ffi_exports[] = {
|
||||||
|
{"ceil", ceil},
|
||||||
|
{"cos", cos},
|
||||||
|
{"esp32_uart_config_set_fifo", esp32_uart_config_set_fifo},
|
||||||
|
{"esp32_uart_config_set_pins", esp32_uart_config_set_pins},
|
||||||
|
{"exp", exp},
|
||||||
|
{"fabs", fabs},
|
||||||
|
{"fclose", fclose},
|
||||||
|
{"floor", floor},
|
||||||
|
{"fmax", fmax},
|
||||||
|
{"fmin", fmin},
|
||||||
|
{"fopen", fopen},
|
||||||
|
{"fread", fread},
|
||||||
|
{"free", free},
|
||||||
|
{"free", free},
|
||||||
|
{"fwrite", fwrite},
|
||||||
|
{"hall_sens_read", hall_sens_read},
|
||||||
|
{"log", log},
|
||||||
|
{"malloc", malloc},
|
||||||
|
{"mbuf_remove", mbuf_remove},
|
||||||
|
{"mg_conn_addr_to_str", mg_conn_addr_to_str},
|
||||||
|
{"mg_rpc_send_errorf", mg_rpc_send_errorf},
|
||||||
|
{"mg_send", mg_send},
|
||||||
|
{"mg_set_protocol_http_websocket", mg_set_protocol_http_websocket},
|
||||||
|
{"mg_time", mg_time},
|
||||||
|
{"mgos_adc_enable", mgos_adc_enable},
|
||||||
|
{"mgos_adc_read", mgos_adc_read},
|
||||||
|
{"mgos_bind", mgos_bind},
|
||||||
|
{"mgos_bitbang_write_bits_js", mgos_bitbang_write_bits_js},
|
||||||
|
{"mgos_clear_timer", mgos_clear_timer},
|
||||||
|
{"mgos_conf_find_schema_entry", mgos_conf_find_schema_entry},
|
||||||
|
{"mgos_conf_value_double", mgos_conf_value_double},
|
||||||
|
{"mgos_conf_value_int", mgos_conf_value_int},
|
||||||
|
{"mgos_conf_value_string_nonnull", mgos_conf_value_string_nonnull},
|
||||||
|
{"mgos_conf_value_type", mgos_conf_value_type},
|
||||||
|
{"mgos_config_apply", mgos_config_apply},
|
||||||
|
{"mgos_config_schema", mgos_config_schema},
|
||||||
|
{"mgos_connect", mgos_connect},
|
||||||
|
{"mgos_connect_http", mgos_connect_http},
|
||||||
|
{"mgos_connect_http_ssl", mgos_connect_http_ssl},
|
||||||
|
{"mgos_connect_ssl", mgos_connect_ssl},
|
||||||
|
{"mgos_debug_event_get_len", mgos_debug_event_get_len},
|
||||||
|
{"mgos_debug_event_get_ptr", mgos_debug_event_get_ptr},
|
||||||
|
{"mgos_dht_close", mgos_dht_close},
|
||||||
|
{"mgos_dht_create", mgos_dht_create},
|
||||||
|
{"mgos_dht_get_humidity", mgos_dht_get_humidity},
|
||||||
|
{"mgos_dht_get_temp", mgos_dht_get_temp},
|
||||||
|
{"mgos_disconnect", mgos_disconnect},
|
||||||
|
{"mgos_esp_deep_sleep_d", mgos_esp_deep_sleep_d},
|
||||||
|
{"mgos_event_add_group_handler", mgos_event_add_group_handler},
|
||||||
|
{"mgos_event_add_handler", mgos_event_add_handler},
|
||||||
|
{"mgos_event_register_base", mgos_event_register_base},
|
||||||
|
{"mgos_event_trigger", mgos_event_trigger},
|
||||||
|
{"mgos_get_body_ptr", mgos_get_body_ptr},
|
||||||
|
{"mgos_get_free_heap_size", mgos_get_free_heap_size},
|
||||||
|
{"mgos_get_heap_size", mgos_get_heap_size},
|
||||||
|
{"mgos_get_mbuf_len", mgos_get_mbuf_len},
|
||||||
|
{"mgos_get_mbuf_ptr", mgos_get_mbuf_ptr},
|
||||||
|
{"mgos_get_mgstr_len", mgos_get_mgstr_len},
|
||||||
|
{"mgos_get_mgstr_ptr", mgos_get_mgstr_ptr},
|
||||||
|
{"mgos_get_msg_ptr", mgos_get_msg_ptr},
|
||||||
|
{"mgos_get_recv_mbuf", mgos_get_recv_mbuf},
|
||||||
|
{"mgos_gpio_disable_int", mgos_gpio_disable_int},
|
||||||
|
{"mgos_gpio_enable_int", mgos_gpio_enable_int},
|
||||||
|
{"mgos_gpio_read", mgos_gpio_read},
|
||||||
|
{"mgos_gpio_set_button_handler", mgos_gpio_set_button_handler},
|
||||||
|
{"mgos_gpio_set_int_handler", mgos_gpio_set_int_handler},
|
||||||
|
{"mgos_gpio_set_mode", mgos_gpio_set_mode},
|
||||||
|
{"mgos_gpio_set_pull", mgos_gpio_set_pull},
|
||||||
|
{"mgos_gpio_toggle", mgos_gpio_toggle},
|
||||||
|
{"mgos_gpio_write", mgos_gpio_write},
|
||||||
|
{"mgos_is_inbound", mgos_is_inbound},
|
||||||
|
{"mgos_log", mgos_log},
|
||||||
|
{"mgos_mjs_get_config", mgos_mjs_get_config},
|
||||||
|
{"mgos_rpc_add_handler", mgos_rpc_add_handler},
|
||||||
|
{"mgos_rpc_call", mgos_rpc_call},
|
||||||
|
{"mgos_rpc_send_response", mgos_rpc_send_response},
|
||||||
|
{"mgos_set_timer", mgos_set_timer},
|
||||||
|
{"mgos_strftime", mgos_strftime},
|
||||||
|
{"mgos_system_restart", mgos_system_restart},
|
||||||
|
{"mgos_uart_config_get_default", mgos_uart_config_get_default},
|
||||||
|
{"mgos_uart_config_set_basic_params", mgos_uart_config_set_basic_params},
|
||||||
|
{"mgos_uart_config_set_rx_params", mgos_uart_config_set_rx_params},
|
||||||
|
{"mgos_uart_config_set_tx_params", mgos_uart_config_set_tx_params},
|
||||||
|
{"mgos_uart_configure", mgos_uart_configure},
|
||||||
|
{"mgos_uart_flush", mgos_uart_flush},
|
||||||
|
{"mgos_uart_is_rx_enabled", mgos_uart_is_rx_enabled},
|
||||||
|
{"mgos_uart_read", mgos_uart_read},
|
||||||
|
{"mgos_uart_read_avail", mgos_uart_read_avail},
|
||||||
|
{"mgos_uart_set_dispatcher", mgos_uart_set_dispatcher},
|
||||||
|
{"mgos_uart_set_rx_enabled", mgos_uart_set_rx_enabled},
|
||||||
|
{"mgos_uart_write", mgos_uart_write},
|
||||||
|
{"mgos_uart_write_avail", mgos_uart_write_avail},
|
||||||
|
{"mgos_uptime", mgos_uptime},
|
||||||
|
{"mgos_usleep", mgos_usleep},
|
||||||
|
{"mgos_wdt_feed", mgos_wdt_feed},
|
||||||
|
{"mjs_get_bcode_filename_by_offset", mjs_get_bcode_filename_by_offset},
|
||||||
|
{"mjs_get_lineno_by_offset", mjs_get_lineno_by_offset},
|
||||||
|
{"mjs_get_offset_by_call_frame_num", mjs_get_offset_by_call_frame_num},
|
||||||
|
{"mjs_mem_get_int", mjs_mem_get_int},
|
||||||
|
{"mjs_mem_get_ptr", mjs_mem_get_ptr},
|
||||||
|
{"mjs_mem_get_uint", mjs_mem_get_uint},
|
||||||
|
{"mjs_mem_set_uint", mjs_mem_set_uint},
|
||||||
|
{"mjs_mem_to_ptr", mjs_mem_to_ptr},
|
||||||
|
{"pow", pow},
|
||||||
|
{"rand", rand},
|
||||||
|
{"remove", remove},
|
||||||
|
{"rename", rename},
|
||||||
|
{"round", round},
|
||||||
|
{"sin", sin},
|
||||||
|
{"sqrt", sqrt},
|
||||||
|
{"strdup", strdup},
|
||||||
|
{"temprature_sens_read", temprature_sens_read},
|
||||||
|
};
|
||||||
|
const int ffi_exports_cnt = 112;
|
|
@ -0,0 +1,4 @@
|
||||||
|
/* Auto-generated, do not edit. */
|
||||||
|
const char *mg_build_id = "20180218-011551/???";
|
||||||
|
const char *mg_build_timestamp = "2018-02-18T01:15:51Z";
|
||||||
|
const char *mg_build_version = "2018021801";
|
|
@ -0,0 +1,672 @@
|
||||||
|
/* Generated file - do not edit. */
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include "mgos_config.h"
|
||||||
|
|
||||||
|
const struct mgos_conf_entry mgos_config_schema_[100] = {
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "", .num_desc = 99},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "device", .num_desc = 2},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "id", .offset = offsetof(struct mgos_config, device.id)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "password", .offset = offsetof(struct mgos_config, device.password)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "debug", .num_desc = 8},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "udp_log_addr", .offset = offsetof(struct mgos_config, debug.udp_log_addr)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "level", .offset = offsetof(struct mgos_config, debug.level)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "filter", .offset = offsetof(struct mgos_config, debug.filter)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "stdout_uart", .offset = offsetof(struct mgos_config, debug.stdout_uart)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "stderr_uart", .offset = offsetof(struct mgos_config, debug.stderr_uart)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "factory_reset_gpio", .offset = offsetof(struct mgos_config, debug.factory_reset_gpio)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "mg_mgr_hexdump_file", .offset = offsetof(struct mgos_config, debug.mg_mgr_hexdump_file)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "mbedtls_level", .offset = offsetof(struct mgos_config, debug.mbedtls_level)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "sys", .num_desc = 10},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "mount", .num_desc = 5},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "path", .offset = offsetof(struct mgos_config, sys.mount.path)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "dev_type", .offset = offsetof(struct mgos_config, sys.mount.dev_type)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "dev_opts", .offset = offsetof(struct mgos_config, sys.mount.dev_opts)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "fs_type", .offset = offsetof(struct mgos_config, sys.mount.fs_type)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "fs_opts", .offset = offsetof(struct mgos_config, sys.mount.fs_opts)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "tz_spec", .offset = offsetof(struct mgos_config, sys.tz_spec)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "wdt_timeout", .offset = offsetof(struct mgos_config, sys.wdt_timeout)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "pref_ota_lib", .offset = offsetof(struct mgos_config, sys.pref_ota_lib)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "esp32_adc_vref", .offset = offsetof(struct mgos_config, sys.esp32_adc_vref)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "conf_acl", .offset = offsetof(struct mgos_config, conf_acl)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "bt", .num_desc = 12},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "enable", .offset = offsetof(struct mgos_config, bt.enable)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "dev_name", .offset = offsetof(struct mgos_config, bt.dev_name)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "adv_enable", .offset = offsetof(struct mgos_config, bt.adv_enable)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "scan_rsp_data_hex", .offset = offsetof(struct mgos_config, bt.scan_rsp_data_hex)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "keep_enabled", .offset = offsetof(struct mgos_config, bt.keep_enabled)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "allow_pairing", .offset = offsetof(struct mgos_config, bt.allow_pairing)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "max_paired_devices", .offset = offsetof(struct mgos_config, bt.max_paired_devices)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "random_address", .offset = offsetof(struct mgos_config, bt.random_address)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "gatts", .num_desc = 2},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "min_sec_level", .offset = offsetof(struct mgos_config, bt.gatts.min_sec_level)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "require_pairing", .offset = offsetof(struct mgos_config, bt.gatts.require_pairing)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "config_svc_enable", .offset = offsetof(struct mgos_config, bt.config_svc_enable)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "mjs", .num_desc = 1},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "generate_jsc", .offset = offsetof(struct mgos_config, mjs.generate_jsc)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "rpc", .num_desc = 20},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "enable", .offset = offsetof(struct mgos_config, rpc.enable)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "max_frame_size", .offset = offsetof(struct mgos_config, rpc.max_frame_size)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "max_queue_length", .offset = offsetof(struct mgos_config, rpc.max_queue_length)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "default_out_channel_idle_close_timeout", .offset = offsetof(struct mgos_config, rpc.default_out_channel_idle_close_timeout)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "acl_file", .offset = offsetof(struct mgos_config, rpc.acl_file)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "auth_domain", .offset = offsetof(struct mgos_config, rpc.auth_domain)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "auth_file", .offset = offsetof(struct mgos_config, rpc.auth_file)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "ws", .num_desc = 7},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "enable", .offset = offsetof(struct mgos_config, rpc.ws.enable)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "server_address", .offset = offsetof(struct mgos_config, rpc.ws.server_address)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "reconnect_interval_min", .offset = offsetof(struct mgos_config, rpc.ws.reconnect_interval_min)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "reconnect_interval_max", .offset = offsetof(struct mgos_config, rpc.ws.reconnect_interval_max)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ssl_server_name", .offset = offsetof(struct mgos_config, rpc.ws.ssl_server_name)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ssl_ca_file", .offset = offsetof(struct mgos_config, rpc.ws.ssl_ca_file)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ssl_client_cert_file", .offset = offsetof(struct mgos_config, rpc.ws.ssl_client_cert_file)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "uart", .num_desc = 4},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "uart_no", .offset = offsetof(struct mgos_config, rpc.uart.uart_no)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "baud_rate", .offset = offsetof(struct mgos_config, rpc.uart.baud_rate)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "fc_type", .offset = offsetof(struct mgos_config, rpc.uart.fc_type)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "wait_for_start_frame", .offset = offsetof(struct mgos_config, rpc.uart.wait_for_start_frame)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "wifi", .num_desc = 30},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "sta", .num_desc = 13},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "enable", .offset = offsetof(struct mgos_config, wifi.sta.enable)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ssid", .offset = offsetof(struct mgos_config, wifi.sta.ssid)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "pass", .offset = offsetof(struct mgos_config, wifi.sta.pass)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "user", .offset = offsetof(struct mgos_config, wifi.sta.user)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "anon_identity", .offset = offsetof(struct mgos_config, wifi.sta.anon_identity)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "cert", .offset = offsetof(struct mgos_config, wifi.sta.cert)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "key", .offset = offsetof(struct mgos_config, wifi.sta.key)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ca_cert", .offset = offsetof(struct mgos_config, wifi.sta.ca_cert)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ip", .offset = offsetof(struct mgos_config, wifi.sta.ip)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "netmask", .offset = offsetof(struct mgos_config, wifi.sta.netmask)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "gw", .offset = offsetof(struct mgos_config, wifi.sta.gw)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "nameserver", .offset = offsetof(struct mgos_config, wifi.sta.nameserver)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "dhcp_hostname", .offset = offsetof(struct mgos_config, wifi.sta.dhcp_hostname)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "ap", .num_desc = 15},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "enable", .offset = offsetof(struct mgos_config, wifi.ap.enable)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ssid", .offset = offsetof(struct mgos_config, wifi.ap.ssid)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "pass", .offset = offsetof(struct mgos_config, wifi.ap.pass)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "hidden", .offset = offsetof(struct mgos_config, wifi.ap.hidden)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "channel", .offset = offsetof(struct mgos_config, wifi.ap.channel)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "max_connections", .offset = offsetof(struct mgos_config, wifi.ap.max_connections)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "ip", .offset = offsetof(struct mgos_config, wifi.ap.ip)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "netmask", .offset = offsetof(struct mgos_config, wifi.ap.netmask)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "gw", .offset = offsetof(struct mgos_config, wifi.ap.gw)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "dhcp_start", .offset = offsetof(struct mgos_config, wifi.ap.dhcp_start)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "dhcp_end", .offset = offsetof(struct mgos_config, wifi.ap.dhcp_end)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "trigger_on_gpio", .offset = offsetof(struct mgos_config, wifi.ap.trigger_on_gpio)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "disable_after", .offset = offsetof(struct mgos_config, wifi.ap.disable_after)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "hostname", .offset = offsetof(struct mgos_config, wifi.ap.hostname)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "keep_enabled", .offset = offsetof(struct mgos_config, wifi.ap.keep_enabled)},
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "higrow", .num_desc = 7},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "deviceId", .offset = offsetof(struct mgos_config, higrow.deviceId)},
|
||||||
|
{.type = CONF_TYPE_DOUBLE, .key = "temperature", .offset = offsetof(struct mgos_config, higrow.temperature)},
|
||||||
|
{.type = CONF_TYPE_DOUBLE, .key = "humidity", .offset = offsetof(struct mgos_config, higrow.humidity)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "light", .offset = offsetof(struct mgos_config, higrow.light)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "moisture", .offset = offsetof(struct mgos_config, higrow.moisture)},
|
||||||
|
{.type = CONF_TYPE_BOOL, .key = "connected", .offset = offsetof(struct mgos_config, higrow.connected)},
|
||||||
|
{.type = CONF_TYPE_INT, .key = "battery_calibration", .offset = offsetof(struct mgos_config, higrow.battery_calibration)},
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct mgos_conf_entry *mgos_config_schema() {
|
||||||
|
return mgos_config_schema_;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global instance */
|
||||||
|
struct mgos_config mgos_sys_config;
|
||||||
|
|
||||||
|
/* Getters {{{ */
|
||||||
|
const struct mgos_config_device *mgos_config_get_device(struct mgos_config *cfg) {
|
||||||
|
return &cfg->device;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_device_id(struct mgos_config *cfg) {
|
||||||
|
return cfg->device.id;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_device_password(struct mgos_config *cfg) {
|
||||||
|
return cfg->device.password;
|
||||||
|
}
|
||||||
|
const struct mgos_config_debug *mgos_config_get_debug(struct mgos_config *cfg) {
|
||||||
|
return &cfg->debug;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_debug_udp_log_addr(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.udp_log_addr;
|
||||||
|
}
|
||||||
|
int mgos_config_get_debug_level(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.level;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_debug_filter(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.filter;
|
||||||
|
}
|
||||||
|
int mgos_config_get_debug_stdout_uart(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.stdout_uart;
|
||||||
|
}
|
||||||
|
int mgos_config_get_debug_stderr_uart(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.stderr_uart;
|
||||||
|
}
|
||||||
|
int mgos_config_get_debug_factory_reset_gpio(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.factory_reset_gpio;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_debug_mg_mgr_hexdump_file(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.mg_mgr_hexdump_file;
|
||||||
|
}
|
||||||
|
int mgos_config_get_debug_mbedtls_level(struct mgos_config *cfg) {
|
||||||
|
return cfg->debug.mbedtls_level;
|
||||||
|
}
|
||||||
|
const struct mgos_config_sys *mgos_config_get_sys(struct mgos_config *cfg) {
|
||||||
|
return &cfg->sys;
|
||||||
|
}
|
||||||
|
const struct mgos_config_sys_mount *mgos_config_get_sys_mount(struct mgos_config *cfg) {
|
||||||
|
return &cfg->sys.mount;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_sys_mount_path(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.mount.path;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_sys_mount_dev_type(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.mount.dev_type;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_sys_mount_dev_opts(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.mount.dev_opts;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_sys_mount_fs_type(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.mount.fs_type;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_sys_mount_fs_opts(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.mount.fs_opts;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_sys_tz_spec(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.tz_spec;
|
||||||
|
}
|
||||||
|
int mgos_config_get_sys_wdt_timeout(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.wdt_timeout;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_sys_pref_ota_lib(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.pref_ota_lib;
|
||||||
|
}
|
||||||
|
int mgos_config_get_sys_esp32_adc_vref(struct mgos_config *cfg) {
|
||||||
|
return cfg->sys.esp32_adc_vref;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_conf_acl(struct mgos_config *cfg) {
|
||||||
|
return cfg->conf_acl;
|
||||||
|
}
|
||||||
|
const struct mgos_config_bt *mgos_config_get_bt(struct mgos_config *cfg) {
|
||||||
|
return &cfg->bt;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_enable(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.enable;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_bt_dev_name(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.dev_name;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_adv_enable(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.adv_enable;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_bt_scan_rsp_data_hex(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.scan_rsp_data_hex;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_keep_enabled(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.keep_enabled;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_allow_pairing(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.allow_pairing;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_max_paired_devices(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.max_paired_devices;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_random_address(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.random_address;
|
||||||
|
}
|
||||||
|
const struct mgos_config_bt_gatts *mgos_config_get_bt_gatts(struct mgos_config *cfg) {
|
||||||
|
return &cfg->bt.gatts;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_gatts_min_sec_level(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.gatts.min_sec_level;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_gatts_require_pairing(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.gatts.require_pairing;
|
||||||
|
}
|
||||||
|
int mgos_config_get_bt_config_svc_enable(struct mgos_config *cfg) {
|
||||||
|
return cfg->bt.config_svc_enable;
|
||||||
|
}
|
||||||
|
const struct mgos_config_mjs *mgos_config_get_mjs(struct mgos_config *cfg) {
|
||||||
|
return &cfg->mjs;
|
||||||
|
}
|
||||||
|
int mgos_config_get_mjs_generate_jsc(struct mgos_config *cfg) {
|
||||||
|
return cfg->mjs.generate_jsc;
|
||||||
|
}
|
||||||
|
const struct mgos_config_rpc *mgos_config_get_rpc(struct mgos_config *cfg) {
|
||||||
|
return &cfg->rpc;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_enable(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.enable;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_max_frame_size(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.max_frame_size;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_max_queue_length(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.max_queue_length;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_default_out_channel_idle_close_timeout(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.default_out_channel_idle_close_timeout;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_rpc_acl_file(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.acl_file;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_rpc_auth_domain(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.auth_domain;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_rpc_auth_file(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.auth_file;
|
||||||
|
}
|
||||||
|
const struct mgos_config_rpc_ws *mgos_config_get_rpc_ws(struct mgos_config *cfg) {
|
||||||
|
return &cfg->rpc.ws;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_ws_enable(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.ws.enable;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_rpc_ws_server_address(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.ws.server_address;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_ws_reconnect_interval_min(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.ws.reconnect_interval_min;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_ws_reconnect_interval_max(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.ws.reconnect_interval_max;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_rpc_ws_ssl_server_name(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.ws.ssl_server_name;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_rpc_ws_ssl_ca_file(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.ws.ssl_ca_file;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_rpc_ws_ssl_client_cert_file(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.ws.ssl_client_cert_file;
|
||||||
|
}
|
||||||
|
const struct mgos_config_rpc_uart *mgos_config_get_rpc_uart(struct mgos_config *cfg) {
|
||||||
|
return &cfg->rpc.uart;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_uart_uart_no(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.uart.uart_no;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_uart_baud_rate(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.uart.baud_rate;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_uart_fc_type(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.uart.fc_type;
|
||||||
|
}
|
||||||
|
int mgos_config_get_rpc_uart_wait_for_start_frame(struct mgos_config *cfg) {
|
||||||
|
return cfg->rpc.uart.wait_for_start_frame;
|
||||||
|
}
|
||||||
|
const struct mgos_config_wifi *mgos_config_get_wifi(struct mgos_config *cfg) {
|
||||||
|
return &cfg->wifi;
|
||||||
|
}
|
||||||
|
const struct mgos_config_wifi_sta *mgos_config_get_wifi_sta(struct mgos_config *cfg) {
|
||||||
|
return &cfg->wifi.sta;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_sta_enable(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.enable;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_ssid(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.ssid;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_pass(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.pass;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_user(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.user;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_anon_identity(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.anon_identity;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_cert(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.cert;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_key(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.key;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_ca_cert(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.ca_cert;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_ip(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.ip;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_netmask(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.netmask;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_gw(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.gw;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_nameserver(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.nameserver;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_sta_dhcp_hostname(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.sta.dhcp_hostname;
|
||||||
|
}
|
||||||
|
const struct mgos_config_wifi_ap *mgos_config_get_wifi_ap(struct mgos_config *cfg) {
|
||||||
|
return &cfg->wifi.ap;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_ap_enable(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.enable;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_ssid(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.ssid;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_pass(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.pass;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_ap_hidden(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.hidden;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_ap_channel(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.channel;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_ap_max_connections(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.max_connections;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_ip(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.ip;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_netmask(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.netmask;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_gw(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.gw;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_dhcp_start(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.dhcp_start;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_dhcp_end(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.dhcp_end;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_ap_trigger_on_gpio(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.trigger_on_gpio;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_ap_disable_after(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.disable_after;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_wifi_ap_hostname(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.hostname;
|
||||||
|
}
|
||||||
|
int mgos_config_get_wifi_ap_keep_enabled(struct mgos_config *cfg) {
|
||||||
|
return cfg->wifi.ap.keep_enabled;
|
||||||
|
}
|
||||||
|
const struct mgos_config_higrow *mgos_config_get_higrow(struct mgos_config *cfg) {
|
||||||
|
return &cfg->higrow;
|
||||||
|
}
|
||||||
|
const char *mgos_config_get_higrow_deviceId(struct mgos_config *cfg) {
|
||||||
|
return cfg->higrow.deviceId;
|
||||||
|
}
|
||||||
|
double mgos_config_get_higrow_temperature(struct mgos_config *cfg) {
|
||||||
|
return cfg->higrow.temperature;
|
||||||
|
}
|
||||||
|
double mgos_config_get_higrow_humidity(struct mgos_config *cfg) {
|
||||||
|
return cfg->higrow.humidity;
|
||||||
|
}
|
||||||
|
int mgos_config_get_higrow_light(struct mgos_config *cfg) {
|
||||||
|
return cfg->higrow.light;
|
||||||
|
}
|
||||||
|
int mgos_config_get_higrow_moisture(struct mgos_config *cfg) {
|
||||||
|
return cfg->higrow.moisture;
|
||||||
|
}
|
||||||
|
int mgos_config_get_higrow_connected(struct mgos_config *cfg) {
|
||||||
|
return cfg->higrow.connected;
|
||||||
|
}
|
||||||
|
int mgos_config_get_higrow_battery_calibration(struct mgos_config *cfg) {
|
||||||
|
return cfg->higrow.battery_calibration;
|
||||||
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
|
/* Setters {{{ */
|
||||||
|
void mgos_config_set_device_id(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->device.id, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_device_password(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->device.password, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_udp_log_addr(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->debug.udp_log_addr, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_level(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->debug.level = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_filter(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->debug.filter, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_stdout_uart(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->debug.stdout_uart = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_stderr_uart(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->debug.stderr_uart = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_factory_reset_gpio(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->debug.factory_reset_gpio = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_mg_mgr_hexdump_file(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->debug.mg_mgr_hexdump_file, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_debug_mbedtls_level(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->debug.mbedtls_level = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_mount_path(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->sys.mount.path, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_mount_dev_type(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->sys.mount.dev_type, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_mount_dev_opts(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->sys.mount.dev_opts, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_mount_fs_type(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->sys.mount.fs_type, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_mount_fs_opts(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->sys.mount.fs_opts, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_tz_spec(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->sys.tz_spec, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_wdt_timeout(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->sys.wdt_timeout = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_pref_ota_lib(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->sys.pref_ota_lib, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_sys_esp32_adc_vref(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->sys.esp32_adc_vref = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_conf_acl(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->conf_acl, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_enable(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.enable = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_dev_name(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->bt.dev_name, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_adv_enable(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.adv_enable = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_scan_rsp_data_hex(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->bt.scan_rsp_data_hex, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_keep_enabled(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.keep_enabled = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_allow_pairing(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.allow_pairing = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_max_paired_devices(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.max_paired_devices = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_random_address(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.random_address = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_gatts_min_sec_level(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.gatts.min_sec_level = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_gatts_require_pairing(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.gatts.require_pairing = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_bt_config_svc_enable(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->bt.config_svc_enable = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_mjs_generate_jsc(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->mjs.generate_jsc = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_enable(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.enable = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_max_frame_size(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.max_frame_size = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_max_queue_length(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.max_queue_length = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_default_out_channel_idle_close_timeout(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.default_out_channel_idle_close_timeout = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_acl_file(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->rpc.acl_file, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_auth_domain(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->rpc.auth_domain, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_auth_file(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->rpc.auth_file, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_ws_enable(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.ws.enable = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_ws_server_address(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->rpc.ws.server_address, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_ws_reconnect_interval_min(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.ws.reconnect_interval_min = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_ws_reconnect_interval_max(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.ws.reconnect_interval_max = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_ws_ssl_server_name(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->rpc.ws.ssl_server_name, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_ws_ssl_ca_file(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->rpc.ws.ssl_ca_file, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_ws_ssl_client_cert_file(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->rpc.ws.ssl_client_cert_file, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_uart_uart_no(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.uart.uart_no = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_uart_baud_rate(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.uart.baud_rate = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_uart_fc_type(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.uart.fc_type = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_rpc_uart_wait_for_start_frame(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->rpc.uart.wait_for_start_frame = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_enable(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.sta.enable = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_ssid(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.ssid, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_pass(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.pass, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_user(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.user, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_anon_identity(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.anon_identity, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_cert(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.cert, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_key(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.key, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_ca_cert(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.ca_cert, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_ip(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.ip, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_netmask(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.netmask, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_gw(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.gw, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_nameserver(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.nameserver, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_sta_dhcp_hostname(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.sta.dhcp_hostname, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_enable(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.ap.enable = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_ssid(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.ssid, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_pass(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.pass, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_hidden(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.ap.hidden = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_channel(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.ap.channel = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_max_connections(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.ap.max_connections = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_ip(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.ip, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_netmask(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.netmask, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_gw(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.gw, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_dhcp_start(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.dhcp_start, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_dhcp_end(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.dhcp_end, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_trigger_on_gpio(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.ap.trigger_on_gpio = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_disable_after(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.ap.disable_after = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_hostname(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->wifi.ap.hostname, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_wifi_ap_keep_enabled(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->wifi.ap.keep_enabled = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_higrow_deviceId(struct mgos_config *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->higrow.deviceId, val);
|
||||||
|
}
|
||||||
|
void mgos_config_set_higrow_temperature(struct mgos_config *cfg, double val) {
|
||||||
|
cfg->higrow.temperature = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_higrow_humidity(struct mgos_config *cfg, double val) {
|
||||||
|
cfg->higrow.humidity = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_higrow_light(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->higrow.light = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_higrow_moisture(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->higrow.moisture = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_higrow_connected(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->higrow.connected = val;
|
||||||
|
}
|
||||||
|
void mgos_config_set_higrow_battery_calibration(struct mgos_config *cfg, int val) {
|
||||||
|
cfg->higrow.battery_calibration = val;
|
||||||
|
}
|
||||||
|
/* }}} */
|
|
@ -0,0 +1,175 @@
|
||||||
|
/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/mgos_config.o: \
|
||||||
|
/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/mgos_config.c \
|
||||||
|
/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/mgos_config.h \
|
||||||
|
/mongoose-os/fw/include/mgos_config_util.h /mongoose-os/common/mbuf.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/stdlib.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/ieeefp.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/_ansi.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/newlib.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/config.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/features.h \
|
||||||
|
/opt/Espressif/esp-idf/components/esp32/include/xtensa/config/core-isa.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/reent.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/_ansi.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/_types.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/_types.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/_default_types.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/lock.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/cdefs.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/stdlib.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/alloca.h \
|
||||||
|
/mongoose-os/common/platform.h \
|
||||||
|
/mongoose-os/common/platforms/platform_unix.h \
|
||||||
|
/mongoose-os/common/platforms/platform_windows.h \
|
||||||
|
/mongoose-os/common/platforms/platform_esp32.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/platform_include/assert.h \
|
||||||
|
/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/objs/include/sdkconfig.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/assert.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/ctype.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/dirent.h \
|
||||||
|
/opt/Espressif/esp-idf/components/vfs/include/sys/dirent.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/stdint.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/_intsup.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/fcntl.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/fcntl.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/_default_fcntl.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/types.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/types.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/sched.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/stat.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/time.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/time.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/inttypes.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/endian.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/string.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/string.h \
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/time.h \
|
||||||
|
/mongoose-os/common/platforms/platform_esp8266.h \
|
||||||
|
/mongoose-os/common/platforms/platform_cc3100.h \
|
||||||
|
/mongoose-os/common/platforms/platform_cc3200.h \
|
||||||
|
/mongoose-os/common/platforms/platform_cc3220.h \
|
||||||
|
/mongoose-os/common/platforms/platform_mbed.h \
|
||||||
|
/mongoose-os/common/platforms/platform_nrf51.h \
|
||||||
|
/mongoose-os/common/platforms/platform_nrf52.h \
|
||||||
|
/mongoose-os/common/platforms/platform_wince.h \
|
||||||
|
/mongoose-os/common/platforms/platform_nxp_lpc.h \
|
||||||
|
/mongoose-os/common/platforms/platform_nxp_kinetis.h \
|
||||||
|
/mongoose-os/common/platforms/platform_pic32.h \
|
||||||
|
/mongoose-os/common/platforms/platform_stm32.h \
|
||||||
|
/mongoose-os/common/mg_str.h
|
||||||
|
|
||||||
|
/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/mgos_config.h:
|
||||||
|
|
||||||
|
/mongoose-os/fw/include/mgos_config_util.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/mbuf.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/stdlib.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/_ansi.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/newlib.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/config.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/features.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/esp32/include/xtensa/config/core-isa.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/reent.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/_ansi.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/_types.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/_types.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/lock.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/cdefs.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/stdlib.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/alloca.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platform.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_unix.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_windows.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_esp32.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/platform_include/assert.h:
|
||||||
|
|
||||||
|
/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/objs/include/sdkconfig.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/assert.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/ctype.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/dirent.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/vfs/include/sys/dirent.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/stdint.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/_intsup.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/fcntl.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/fcntl.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/_default_fcntl.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/types.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/types.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/sched.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/stat.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/time.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/time.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/inttypes.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/machine/endian.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/string.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/string.h:
|
||||||
|
|
||||||
|
/opt/Espressif/esp-idf/components/newlib/include/sys/time.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_esp8266.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_cc3100.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_cc3200.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_cc3220.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_mbed.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_nrf51.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_nrf52.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_wince.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_nxp_lpc.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_nxp_kinetis.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_pic32.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/platforms/platform_stm32.h:
|
||||||
|
|
||||||
|
/mongoose-os/common/mg_str.h:
|
|
@ -0,0 +1,542 @@
|
||||||
|
/*
|
||||||
|
* Generated file - do not edit.
|
||||||
|
* Command: /mongoose-os/fw/tools/gen_sys_config.py --c_name=mgos_config --c_global_name=mgos_sys_config --dest_dir=/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/ /mongoose-os/fw/src/mgos_debug_udp_config.yaml /mongoose-os/fw/src/mgos_sys_config.yaml /mongoose-os/fw/platforms/esp32/src/esp32_sys_config.yaml /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/mos_conf_schema.yml
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MGOS_CONFIG_H_
|
||||||
|
#define MGOS_CONFIG_H_
|
||||||
|
|
||||||
|
#include "mgos_config_util.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
struct mgos_config_device {
|
||||||
|
char *id;
|
||||||
|
char *password;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_debug {
|
||||||
|
char *udp_log_addr;
|
||||||
|
int level;
|
||||||
|
char *filter;
|
||||||
|
int stdout_uart;
|
||||||
|
int stderr_uart;
|
||||||
|
int factory_reset_gpio;
|
||||||
|
char *mg_mgr_hexdump_file;
|
||||||
|
int mbedtls_level;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_sys_mount {
|
||||||
|
char *path;
|
||||||
|
char *dev_type;
|
||||||
|
char *dev_opts;
|
||||||
|
char *fs_type;
|
||||||
|
char *fs_opts;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_sys {
|
||||||
|
struct mgos_config_sys_mount mount;
|
||||||
|
char *tz_spec;
|
||||||
|
int wdt_timeout;
|
||||||
|
char *pref_ota_lib;
|
||||||
|
int esp32_adc_vref;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_bt_gatts {
|
||||||
|
int min_sec_level;
|
||||||
|
int require_pairing;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_bt {
|
||||||
|
int enable;
|
||||||
|
char *dev_name;
|
||||||
|
int adv_enable;
|
||||||
|
char *scan_rsp_data_hex;
|
||||||
|
int keep_enabled;
|
||||||
|
int allow_pairing;
|
||||||
|
int max_paired_devices;
|
||||||
|
int random_address;
|
||||||
|
struct mgos_config_bt_gatts gatts;
|
||||||
|
int config_svc_enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_mjs {
|
||||||
|
int generate_jsc;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_rpc_ws {
|
||||||
|
int enable;
|
||||||
|
char *server_address;
|
||||||
|
int reconnect_interval_min;
|
||||||
|
int reconnect_interval_max;
|
||||||
|
char *ssl_server_name;
|
||||||
|
char *ssl_ca_file;
|
||||||
|
char *ssl_client_cert_file;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_rpc_uart {
|
||||||
|
int uart_no;
|
||||||
|
int baud_rate;
|
||||||
|
int fc_type;
|
||||||
|
int wait_for_start_frame;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_rpc {
|
||||||
|
int enable;
|
||||||
|
int max_frame_size;
|
||||||
|
int max_queue_length;
|
||||||
|
int default_out_channel_idle_close_timeout;
|
||||||
|
char *acl_file;
|
||||||
|
char *auth_domain;
|
||||||
|
char *auth_file;
|
||||||
|
struct mgos_config_rpc_ws ws;
|
||||||
|
struct mgos_config_rpc_uart uart;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_wifi_sta {
|
||||||
|
int enable;
|
||||||
|
char *ssid;
|
||||||
|
char *pass;
|
||||||
|
char *user;
|
||||||
|
char *anon_identity;
|
||||||
|
char *cert;
|
||||||
|
char *key;
|
||||||
|
char *ca_cert;
|
||||||
|
char *ip;
|
||||||
|
char *netmask;
|
||||||
|
char *gw;
|
||||||
|
char *nameserver;
|
||||||
|
char *dhcp_hostname;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_wifi_ap {
|
||||||
|
int enable;
|
||||||
|
char *ssid;
|
||||||
|
char *pass;
|
||||||
|
int hidden;
|
||||||
|
int channel;
|
||||||
|
int max_connections;
|
||||||
|
char *ip;
|
||||||
|
char *netmask;
|
||||||
|
char *gw;
|
||||||
|
char *dhcp_start;
|
||||||
|
char *dhcp_end;
|
||||||
|
int trigger_on_gpio;
|
||||||
|
int disable_after;
|
||||||
|
char *hostname;
|
||||||
|
int keep_enabled;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_wifi {
|
||||||
|
struct mgos_config_wifi_sta sta;
|
||||||
|
struct mgos_config_wifi_ap ap;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config_higrow {
|
||||||
|
char *deviceId;
|
||||||
|
double temperature;
|
||||||
|
double humidity;
|
||||||
|
int light;
|
||||||
|
int moisture;
|
||||||
|
int connected;
|
||||||
|
int battery_calibration;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mgos_config {
|
||||||
|
struct mgos_config_device device;
|
||||||
|
struct mgos_config_debug debug;
|
||||||
|
struct mgos_config_sys sys;
|
||||||
|
char *conf_acl;
|
||||||
|
struct mgos_config_bt bt;
|
||||||
|
struct mgos_config_mjs mjs;
|
||||||
|
struct mgos_config_rpc rpc;
|
||||||
|
struct mgos_config_wifi wifi;
|
||||||
|
struct mgos_config_higrow higrow;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Parametrized accessor prototypes {{{ */
|
||||||
|
const struct mgos_config_device *mgos_config_get_device(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_device_id(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_device_password(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_debug *mgos_config_get_debug(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_debug_udp_log_addr(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_debug_level(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_debug_filter(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_debug_stdout_uart(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_debug_stderr_uart(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_debug_factory_reset_gpio(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_debug_mg_mgr_hexdump_file(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_debug_mbedtls_level(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_sys *mgos_config_get_sys(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_sys_mount *mgos_config_get_sys_mount(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_sys_mount_path(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_sys_mount_dev_type(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_sys_mount_dev_opts(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_sys_mount_fs_type(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_sys_mount_fs_opts(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_sys_tz_spec(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_sys_wdt_timeout(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_sys_pref_ota_lib(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_sys_esp32_adc_vref(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_conf_acl(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_bt *mgos_config_get_bt(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_enable(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_bt_dev_name(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_adv_enable(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_bt_scan_rsp_data_hex(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_keep_enabled(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_allow_pairing(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_max_paired_devices(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_random_address(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_bt_gatts *mgos_config_get_bt_gatts(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_gatts_min_sec_level(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_gatts_require_pairing(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_bt_config_svc_enable(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_mjs *mgos_config_get_mjs(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_mjs_generate_jsc(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_rpc *mgos_config_get_rpc(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_enable(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_max_frame_size(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_max_queue_length(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_default_out_channel_idle_close_timeout(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_rpc_acl_file(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_rpc_auth_domain(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_rpc_auth_file(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_rpc_ws *mgos_config_get_rpc_ws(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_ws_enable(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_rpc_ws_server_address(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_ws_reconnect_interval_min(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_ws_reconnect_interval_max(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_rpc_ws_ssl_server_name(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_rpc_ws_ssl_ca_file(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_rpc_ws_ssl_client_cert_file(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_rpc_uart *mgos_config_get_rpc_uart(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_uart_uart_no(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_uart_baud_rate(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_uart_fc_type(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_rpc_uart_wait_for_start_frame(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_wifi *mgos_config_get_wifi(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_wifi_sta *mgos_config_get_wifi_sta(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_sta_enable(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_ssid(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_pass(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_user(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_anon_identity(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_cert(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_key(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_ca_cert(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_ip(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_netmask(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_gw(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_nameserver(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_sta_dhcp_hostname(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_wifi_ap *mgos_config_get_wifi_ap(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_ap_enable(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_ssid(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_pass(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_ap_hidden(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_ap_channel(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_ap_max_connections(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_ip(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_netmask(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_gw(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_dhcp_start(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_dhcp_end(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_ap_trigger_on_gpio(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_ap_disable_after(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_wifi_ap_hostname(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_wifi_ap_keep_enabled(struct mgos_config *cfg);
|
||||||
|
const struct mgos_config_higrow *mgos_config_get_higrow(struct mgos_config *cfg);
|
||||||
|
const char *mgos_config_get_higrow_deviceId(struct mgos_config *cfg);
|
||||||
|
double mgos_config_get_higrow_temperature(struct mgos_config *cfg);
|
||||||
|
double mgos_config_get_higrow_humidity(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_higrow_light(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_higrow_moisture(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_higrow_connected(struct mgos_config *cfg);
|
||||||
|
int mgos_config_get_higrow_battery_calibration(struct mgos_config *cfg);
|
||||||
|
|
||||||
|
void mgos_config_set_device_id(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_device_password(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_debug_udp_log_addr(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_debug_level(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_debug_filter(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_debug_stdout_uart(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_debug_stderr_uart(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_debug_factory_reset_gpio(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_debug_mg_mgr_hexdump_file(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_debug_mbedtls_level(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_sys_mount_path(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_sys_mount_dev_type(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_sys_mount_dev_opts(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_sys_mount_fs_type(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_sys_mount_fs_opts(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_sys_tz_spec(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_sys_wdt_timeout(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_sys_pref_ota_lib(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_sys_esp32_adc_vref(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_conf_acl(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_bt_enable(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_dev_name(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_bt_adv_enable(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_scan_rsp_data_hex(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_bt_keep_enabled(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_allow_pairing(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_max_paired_devices(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_random_address(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_gatts_min_sec_level(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_gatts_require_pairing(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_bt_config_svc_enable(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_mjs_generate_jsc(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_enable(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_max_frame_size(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_max_queue_length(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_default_out_channel_idle_close_timeout(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_acl_file(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_rpc_auth_domain(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_rpc_auth_file(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_rpc_ws_enable(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_ws_server_address(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_rpc_ws_reconnect_interval_min(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_ws_reconnect_interval_max(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_ws_ssl_server_name(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_rpc_ws_ssl_ca_file(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_rpc_ws_ssl_client_cert_file(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_rpc_uart_uart_no(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_uart_baud_rate(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_uart_fc_type(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_rpc_uart_wait_for_start_frame(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_sta_enable(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_sta_ssid(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_pass(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_user(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_anon_identity(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_cert(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_key(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_ca_cert(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_ip(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_netmask(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_gw(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_nameserver(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_sta_dhcp_hostname(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_enable(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_ap_ssid(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_pass(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_hidden(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_ap_channel(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_ap_max_connections(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_ap_ip(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_netmask(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_gw(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_dhcp_start(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_dhcp_end(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_trigger_on_gpio(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_ap_disable_after(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_wifi_ap_hostname(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_wifi_ap_keep_enabled(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_higrow_deviceId(struct mgos_config *cfg, const char *val);
|
||||||
|
void mgos_config_set_higrow_temperature(struct mgos_config *cfg, double val);
|
||||||
|
void mgos_config_set_higrow_humidity(struct mgos_config *cfg, double val);
|
||||||
|
void mgos_config_set_higrow_light(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_higrow_moisture(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_higrow_connected(struct mgos_config *cfg, int val);
|
||||||
|
void mgos_config_set_higrow_battery_calibration(struct mgos_config *cfg, int val);
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
|
extern struct mgos_config mgos_sys_config;
|
||||||
|
|
||||||
|
static inline const struct mgos_config_device *mgos_sys_config_get_device(void) { return mgos_config_get_device(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_device_id(void) { return mgos_config_get_device_id(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_device_password(void) { return mgos_config_get_device_password(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_debug *mgos_sys_config_get_debug(void) { return mgos_config_get_debug(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_debug_udp_log_addr(void) { return mgos_config_get_debug_udp_log_addr(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_debug_level(void) { return mgos_config_get_debug_level(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_debug_filter(void) { return mgos_config_get_debug_filter(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_debug_stdout_uart(void) { return mgos_config_get_debug_stdout_uart(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_debug_stderr_uart(void) { return mgos_config_get_debug_stderr_uart(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_debug_factory_reset_gpio(void) { return mgos_config_get_debug_factory_reset_gpio(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_debug_mg_mgr_hexdump_file(void) { return mgos_config_get_debug_mg_mgr_hexdump_file(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_debug_mbedtls_level(void) { return mgos_config_get_debug_mbedtls_level(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_sys *mgos_sys_config_get_sys(void) { return mgos_config_get_sys(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_sys_mount *mgos_sys_config_get_sys_mount(void) { return mgos_config_get_sys_mount(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_sys_mount_path(void) { return mgos_config_get_sys_mount_path(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_sys_mount_dev_type(void) { return mgos_config_get_sys_mount_dev_type(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_sys_mount_dev_opts(void) { return mgos_config_get_sys_mount_dev_opts(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_sys_mount_fs_type(void) { return mgos_config_get_sys_mount_fs_type(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_sys_mount_fs_opts(void) { return mgos_config_get_sys_mount_fs_opts(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_sys_tz_spec(void) { return mgos_config_get_sys_tz_spec(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_sys_wdt_timeout(void) { return mgos_config_get_sys_wdt_timeout(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_sys_pref_ota_lib(void) { return mgos_config_get_sys_pref_ota_lib(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_sys_esp32_adc_vref(void) { return mgos_config_get_sys_esp32_adc_vref(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_conf_acl(void) { return mgos_config_get_conf_acl(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_bt *mgos_sys_config_get_bt(void) { return mgos_config_get_bt(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_enable(void) { return mgos_config_get_bt_enable(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_bt_dev_name(void) { return mgos_config_get_bt_dev_name(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_adv_enable(void) { return mgos_config_get_bt_adv_enable(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_bt_scan_rsp_data_hex(void) { return mgos_config_get_bt_scan_rsp_data_hex(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_keep_enabled(void) { return mgos_config_get_bt_keep_enabled(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_allow_pairing(void) { return mgos_config_get_bt_allow_pairing(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_max_paired_devices(void) { return mgos_config_get_bt_max_paired_devices(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_random_address(void) { return mgos_config_get_bt_random_address(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_bt_gatts *mgos_sys_config_get_bt_gatts(void) { return mgos_config_get_bt_gatts(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_gatts_min_sec_level(void) { return mgos_config_get_bt_gatts_min_sec_level(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_gatts_require_pairing(void) { return mgos_config_get_bt_gatts_require_pairing(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_bt_config_svc_enable(void) { return mgos_config_get_bt_config_svc_enable(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_mjs *mgos_sys_config_get_mjs(void) { return mgos_config_get_mjs(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_mjs_generate_jsc(void) { return mgos_config_get_mjs_generate_jsc(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_rpc *mgos_sys_config_get_rpc(void) { return mgos_config_get_rpc(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_enable(void) { return mgos_config_get_rpc_enable(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_max_frame_size(void) { return mgos_config_get_rpc_max_frame_size(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_max_queue_length(void) { return mgos_config_get_rpc_max_queue_length(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_default_out_channel_idle_close_timeout(void) { return mgos_config_get_rpc_default_out_channel_idle_close_timeout(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_rpc_acl_file(void) { return mgos_config_get_rpc_acl_file(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_rpc_auth_domain(void) { return mgos_config_get_rpc_auth_domain(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_rpc_auth_file(void) { return mgos_config_get_rpc_auth_file(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_rpc_ws *mgos_sys_config_get_rpc_ws(void) { return mgos_config_get_rpc_ws(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_ws_enable(void) { return mgos_config_get_rpc_ws_enable(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_rpc_ws_server_address(void) { return mgos_config_get_rpc_ws_server_address(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_ws_reconnect_interval_min(void) { return mgos_config_get_rpc_ws_reconnect_interval_min(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_ws_reconnect_interval_max(void) { return mgos_config_get_rpc_ws_reconnect_interval_max(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_rpc_ws_ssl_server_name(void) { return mgos_config_get_rpc_ws_ssl_server_name(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_rpc_ws_ssl_ca_file(void) { return mgos_config_get_rpc_ws_ssl_ca_file(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_rpc_ws_ssl_client_cert_file(void) { return mgos_config_get_rpc_ws_ssl_client_cert_file(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_rpc_uart *mgos_sys_config_get_rpc_uart(void) { return mgos_config_get_rpc_uart(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_uart_uart_no(void) { return mgos_config_get_rpc_uart_uart_no(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_uart_baud_rate(void) { return mgos_config_get_rpc_uart_baud_rate(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_uart_fc_type(void) { return mgos_config_get_rpc_uart_fc_type(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_rpc_uart_wait_for_start_frame(void) { return mgos_config_get_rpc_uart_wait_for_start_frame(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_wifi *mgos_sys_config_get_wifi(void) { return mgos_config_get_wifi(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_wifi_sta *mgos_sys_config_get_wifi_sta(void) { return mgos_config_get_wifi_sta(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_sta_enable(void) { return mgos_config_get_wifi_sta_enable(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_ssid(void) { return mgos_config_get_wifi_sta_ssid(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_pass(void) { return mgos_config_get_wifi_sta_pass(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_user(void) { return mgos_config_get_wifi_sta_user(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_anon_identity(void) { return mgos_config_get_wifi_sta_anon_identity(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_cert(void) { return mgos_config_get_wifi_sta_cert(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_key(void) { return mgos_config_get_wifi_sta_key(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_ca_cert(void) { return mgos_config_get_wifi_sta_ca_cert(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_ip(void) { return mgos_config_get_wifi_sta_ip(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_netmask(void) { return mgos_config_get_wifi_sta_netmask(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_gw(void) { return mgos_config_get_wifi_sta_gw(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_nameserver(void) { return mgos_config_get_wifi_sta_nameserver(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_sta_dhcp_hostname(void) { return mgos_config_get_wifi_sta_dhcp_hostname(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_wifi_ap *mgos_sys_config_get_wifi_ap(void) { return mgos_config_get_wifi_ap(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_ap_enable(void) { return mgos_config_get_wifi_ap_enable(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_ssid(void) { return mgos_config_get_wifi_ap_ssid(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_pass(void) { return mgos_config_get_wifi_ap_pass(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_ap_hidden(void) { return mgos_config_get_wifi_ap_hidden(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_ap_channel(void) { return mgos_config_get_wifi_ap_channel(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_ap_max_connections(void) { return mgos_config_get_wifi_ap_max_connections(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_ip(void) { return mgos_config_get_wifi_ap_ip(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_netmask(void) { return mgos_config_get_wifi_ap_netmask(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_gw(void) { return mgos_config_get_wifi_ap_gw(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_dhcp_start(void) { return mgos_config_get_wifi_ap_dhcp_start(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_dhcp_end(void) { return mgos_config_get_wifi_ap_dhcp_end(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_ap_trigger_on_gpio(void) { return mgos_config_get_wifi_ap_trigger_on_gpio(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_ap_disable_after(void) { return mgos_config_get_wifi_ap_disable_after(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_wifi_ap_hostname(void) { return mgos_config_get_wifi_ap_hostname(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_wifi_ap_keep_enabled(void) { return mgos_config_get_wifi_ap_keep_enabled(&mgos_sys_config); }
|
||||||
|
static inline const struct mgos_config_higrow *mgos_sys_config_get_higrow(void) { return mgos_config_get_higrow(&mgos_sys_config); }
|
||||||
|
static inline const char *mgos_sys_config_get_higrow_deviceId(void) { return mgos_config_get_higrow_deviceId(&mgos_sys_config); }
|
||||||
|
static inline double mgos_sys_config_get_higrow_temperature(void) { return mgos_config_get_higrow_temperature(&mgos_sys_config); }
|
||||||
|
static inline double mgos_sys_config_get_higrow_humidity(void) { return mgos_config_get_higrow_humidity(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_higrow_light(void) { return mgos_config_get_higrow_light(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_higrow_moisture(void) { return mgos_config_get_higrow_moisture(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_higrow_connected(void) { return mgos_config_get_higrow_connected(&mgos_sys_config); }
|
||||||
|
static inline int mgos_sys_config_get_higrow_battery_calibration(void) { return mgos_config_get_higrow_battery_calibration(&mgos_sys_config); }
|
||||||
|
|
||||||
|
static inline void mgos_sys_config_set_device_id(const char *val) { mgos_config_set_device_id(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_device_password(const char *val) { mgos_config_set_device_password(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_udp_log_addr(const char *val) { mgos_config_set_debug_udp_log_addr(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_level(int val) { mgos_config_set_debug_level(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_filter(const char *val) { mgos_config_set_debug_filter(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_stdout_uart(int val) { mgos_config_set_debug_stdout_uart(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_stderr_uart(int val) { mgos_config_set_debug_stderr_uart(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_factory_reset_gpio(int val) { mgos_config_set_debug_factory_reset_gpio(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_mg_mgr_hexdump_file(const char *val) { mgos_config_set_debug_mg_mgr_hexdump_file(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_debug_mbedtls_level(int val) { mgos_config_set_debug_mbedtls_level(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_mount_path(const char *val) { mgos_config_set_sys_mount_path(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_mount_dev_type(const char *val) { mgos_config_set_sys_mount_dev_type(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_mount_dev_opts(const char *val) { mgos_config_set_sys_mount_dev_opts(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_mount_fs_type(const char *val) { mgos_config_set_sys_mount_fs_type(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_mount_fs_opts(const char *val) { mgos_config_set_sys_mount_fs_opts(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_tz_spec(const char *val) { mgos_config_set_sys_tz_spec(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_wdt_timeout(int val) { mgos_config_set_sys_wdt_timeout(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_pref_ota_lib(const char *val) { mgos_config_set_sys_pref_ota_lib(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_sys_esp32_adc_vref(int val) { mgos_config_set_sys_esp32_adc_vref(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_conf_acl(const char *val) { mgos_config_set_conf_acl(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_enable(int val) { mgos_config_set_bt_enable(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_dev_name(const char *val) { mgos_config_set_bt_dev_name(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_adv_enable(int val) { mgos_config_set_bt_adv_enable(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_scan_rsp_data_hex(const char *val) { mgos_config_set_bt_scan_rsp_data_hex(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_keep_enabled(int val) { mgos_config_set_bt_keep_enabled(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_allow_pairing(int val) { mgos_config_set_bt_allow_pairing(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_max_paired_devices(int val) { mgos_config_set_bt_max_paired_devices(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_random_address(int val) { mgos_config_set_bt_random_address(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_gatts_min_sec_level(int val) { mgos_config_set_bt_gatts_min_sec_level(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_gatts_require_pairing(int val) { mgos_config_set_bt_gatts_require_pairing(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_bt_config_svc_enable(int val) { mgos_config_set_bt_config_svc_enable(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_mjs_generate_jsc(int val) { mgos_config_set_mjs_generate_jsc(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_enable(int val) { mgos_config_set_rpc_enable(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_max_frame_size(int val) { mgos_config_set_rpc_max_frame_size(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_max_queue_length(int val) { mgos_config_set_rpc_max_queue_length(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_default_out_channel_idle_close_timeout(int val) { mgos_config_set_rpc_default_out_channel_idle_close_timeout(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_acl_file(const char *val) { mgos_config_set_rpc_acl_file(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_auth_domain(const char *val) { mgos_config_set_rpc_auth_domain(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_auth_file(const char *val) { mgos_config_set_rpc_auth_file(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_ws_enable(int val) { mgos_config_set_rpc_ws_enable(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_ws_server_address(const char *val) { mgos_config_set_rpc_ws_server_address(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_ws_reconnect_interval_min(int val) { mgos_config_set_rpc_ws_reconnect_interval_min(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_ws_reconnect_interval_max(int val) { mgos_config_set_rpc_ws_reconnect_interval_max(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_ws_ssl_server_name(const char *val) { mgos_config_set_rpc_ws_ssl_server_name(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_ws_ssl_ca_file(const char *val) { mgos_config_set_rpc_ws_ssl_ca_file(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_ws_ssl_client_cert_file(const char *val) { mgos_config_set_rpc_ws_ssl_client_cert_file(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_uart_uart_no(int val) { mgos_config_set_rpc_uart_uart_no(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_uart_baud_rate(int val) { mgos_config_set_rpc_uart_baud_rate(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_uart_fc_type(int val) { mgos_config_set_rpc_uart_fc_type(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_rpc_uart_wait_for_start_frame(int val) { mgos_config_set_rpc_uart_wait_for_start_frame(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_enable(int val) { mgos_config_set_wifi_sta_enable(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_ssid(const char *val) { mgos_config_set_wifi_sta_ssid(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_pass(const char *val) { mgos_config_set_wifi_sta_pass(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_user(const char *val) { mgos_config_set_wifi_sta_user(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_anon_identity(const char *val) { mgos_config_set_wifi_sta_anon_identity(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_cert(const char *val) { mgos_config_set_wifi_sta_cert(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_key(const char *val) { mgos_config_set_wifi_sta_key(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_ca_cert(const char *val) { mgos_config_set_wifi_sta_ca_cert(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_ip(const char *val) { mgos_config_set_wifi_sta_ip(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_netmask(const char *val) { mgos_config_set_wifi_sta_netmask(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_gw(const char *val) { mgos_config_set_wifi_sta_gw(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_nameserver(const char *val) { mgos_config_set_wifi_sta_nameserver(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_sta_dhcp_hostname(const char *val) { mgos_config_set_wifi_sta_dhcp_hostname(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_enable(int val) { mgos_config_set_wifi_ap_enable(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_ssid(const char *val) { mgos_config_set_wifi_ap_ssid(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_pass(const char *val) { mgos_config_set_wifi_ap_pass(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_hidden(int val) { mgos_config_set_wifi_ap_hidden(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_channel(int val) { mgos_config_set_wifi_ap_channel(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_max_connections(int val) { mgos_config_set_wifi_ap_max_connections(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_ip(const char *val) { mgos_config_set_wifi_ap_ip(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_netmask(const char *val) { mgos_config_set_wifi_ap_netmask(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_gw(const char *val) { mgos_config_set_wifi_ap_gw(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_dhcp_start(const char *val) { mgos_config_set_wifi_ap_dhcp_start(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_dhcp_end(const char *val) { mgos_config_set_wifi_ap_dhcp_end(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_trigger_on_gpio(int val) { mgos_config_set_wifi_ap_trigger_on_gpio(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_disable_after(int val) { mgos_config_set_wifi_ap_disable_after(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_hostname(const char *val) { mgos_config_set_wifi_ap_hostname(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_wifi_ap_keep_enabled(int val) { mgos_config_set_wifi_ap_keep_enabled(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_higrow_deviceId(const char *val) { mgos_config_set_higrow_deviceId(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_higrow_temperature(double val) { mgos_config_set_higrow_temperature(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_higrow_humidity(double val) { mgos_config_set_higrow_humidity(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_higrow_light(int val) { mgos_config_set_higrow_light(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_higrow_moisture(int val) { mgos_config_set_higrow_moisture(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_higrow_connected(int val) { mgos_config_set_higrow_connected(&mgos_sys_config, val); }
|
||||||
|
static inline void mgos_sys_config_set_higrow_battery_calibration(int val) { mgos_config_set_higrow_battery_calibration(&mgos_sys_config, val); }
|
||||||
|
|
||||||
|
|
||||||
|
const struct mgos_conf_entry *mgos_config_schema();
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#endif /* MGOS_CONFIG_H_ */
|
Binary file not shown.
|
@ -0,0 +1,115 @@
|
||||||
|
{
|
||||||
|
"device": {
|
||||||
|
"id": "HiGrow_??????",
|
||||||
|
"password": ""
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"udp_log_addr": "",
|
||||||
|
"level": 2,
|
||||||
|
"filter": "",
|
||||||
|
"stdout_uart": 0,
|
||||||
|
"stderr_uart": 0,
|
||||||
|
"factory_reset_gpio": -1,
|
||||||
|
"mg_mgr_hexdump_file": "",
|
||||||
|
"mbedtls_level": 0
|
||||||
|
},
|
||||||
|
"sys": {
|
||||||
|
"mount": {
|
||||||
|
"path": "",
|
||||||
|
"dev_type": "",
|
||||||
|
"dev_opts": "",
|
||||||
|
"fs_type": "",
|
||||||
|
"fs_opts": ""
|
||||||
|
},
|
||||||
|
"tz_spec": "",
|
||||||
|
"wdt_timeout": 30,
|
||||||
|
"pref_ota_lib": "",
|
||||||
|
"esp32_adc_vref": 0
|
||||||
|
},
|
||||||
|
"conf_acl": "*",
|
||||||
|
"bt": {
|
||||||
|
"enable": true,
|
||||||
|
"dev_name": "HiGrowBT_",
|
||||||
|
"adv_enable": true,
|
||||||
|
"scan_rsp_data_hex": "",
|
||||||
|
"keep_enabled": false,
|
||||||
|
"allow_pairing": true,
|
||||||
|
"max_paired_devices": -1,
|
||||||
|
"random_address": true,
|
||||||
|
"gatts": {
|
||||||
|
"min_sec_level": 0,
|
||||||
|
"require_pairing": false
|
||||||
|
},
|
||||||
|
"config_svc_enable": true
|
||||||
|
},
|
||||||
|
"mjs": {
|
||||||
|
"generate_jsc": true
|
||||||
|
},
|
||||||
|
"rpc": {
|
||||||
|
"enable": true,
|
||||||
|
"max_frame_size": 4096,
|
||||||
|
"max_queue_length": 25,
|
||||||
|
"default_out_channel_idle_close_timeout": 10,
|
||||||
|
"acl_file": "",
|
||||||
|
"auth_domain": "",
|
||||||
|
"auth_file": "",
|
||||||
|
"ws": {
|
||||||
|
"enable": true,
|
||||||
|
"server_address": "",
|
||||||
|
"reconnect_interval_min": 1,
|
||||||
|
"reconnect_interval_max": 60,
|
||||||
|
"ssl_server_name": "",
|
||||||
|
"ssl_ca_file": "",
|
||||||
|
"ssl_client_cert_file": ""
|
||||||
|
},
|
||||||
|
"uart": {
|
||||||
|
"uart_no": 0,
|
||||||
|
"baud_rate": 115200,
|
||||||
|
"fc_type": 2,
|
||||||
|
"wait_for_start_frame": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wifi": {
|
||||||
|
"sta": {
|
||||||
|
"enable": false,
|
||||||
|
"ssid": "",
|
||||||
|
"pass": "",
|
||||||
|
"user": "",
|
||||||
|
"anon_identity": "",
|
||||||
|
"cert": "",
|
||||||
|
"key": "",
|
||||||
|
"ca_cert": "",
|
||||||
|
"ip": "",
|
||||||
|
"netmask": "",
|
||||||
|
"gw": "",
|
||||||
|
"nameserver": "",
|
||||||
|
"dhcp_hostname": ""
|
||||||
|
},
|
||||||
|
"ap": {
|
||||||
|
"enable": false,
|
||||||
|
"ssid": "Mongoose_??????",
|
||||||
|
"pass": "Mongoose",
|
||||||
|
"hidden": false,
|
||||||
|
"channel": 6,
|
||||||
|
"max_connections": 10,
|
||||||
|
"ip": "192.168.4.1",
|
||||||
|
"netmask": "255.255.255.0",
|
||||||
|
"gw": "192.168.4.1",
|
||||||
|
"dhcp_start": "192.168.4.2",
|
||||||
|
"dhcp_end": "192.168.4.100",
|
||||||
|
"trigger_on_gpio": -1,
|
||||||
|
"disable_after": 0,
|
||||||
|
"hostname": "",
|
||||||
|
"keep_enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"higrow": {
|
||||||
|
"deviceId": "",
|
||||||
|
"temperature": 0.0,
|
||||||
|
"humidity": 0.0,
|
||||||
|
"light": 0,
|
||||||
|
"moisture": 0,
|
||||||
|
"connected": false,
|
||||||
|
"battery_calibration": 2360
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,101 @@
|
||||||
|
[
|
||||||
|
["device", "o", {"title": "Device settings"}],
|
||||||
|
["device.id", "s", {"title": "Device ID"}],
|
||||||
|
["device.password", "s", {"title": "Device password"}],
|
||||||
|
["debug", "o", {"title": "Debug Settings"}],
|
||||||
|
["debug.udp_log_addr", "s", {"title": "Send logs to this ip:port (UDP)"}],
|
||||||
|
["debug.level", "i", {"title": "Level", "type": "select", "values": [{"title": "NONE", "value": -1}, {"title": "ERROR", "value": 0}, {"title": "WARN", "value": 1}, {"title": "INFO", "value": 2}, {"title": "DEBUG", "value": 3}, {"title": "VERBOSE_DEBUG", "value": 4}]}],
|
||||||
|
["debug.filter", "s", {"title": "Log filter against source file name or function name. Comma separated list of prefix match glob patterns, e.g. *mqtt*,mgos_wifi"}],
|
||||||
|
["debug.stdout_uart", "i", {"title": "STDOUT UART (-1 to disable)"}],
|
||||||
|
["debug.stderr_uart", "i", {"title": "STDERR UART (-1 to disable)"}],
|
||||||
|
["debug.factory_reset_gpio", "i", {"title": "Factory reset GPIO (low on boot)"}],
|
||||||
|
["debug.mg_mgr_hexdump_file", "s", {"title": "File name to hexdump network traffic to. Use '-' for stdout, '--' for stderr."}],
|
||||||
|
["debug.mbedtls_level", "i", {"title": "mbedTLS debug level"}],
|
||||||
|
["sys", "o", {"title": "System settings"}],
|
||||||
|
["sys.mount", "o", {"title": "Extra filesystem to mount"}],
|
||||||
|
["sys.mount.path", "s", {"title": "Mount point"}],
|
||||||
|
["sys.mount.dev_type", "s", {"title": "Storage device type"}],
|
||||||
|
["sys.mount.dev_opts", "s", {"title": "Storage device options"}],
|
||||||
|
["sys.mount.fs_type", "s", {"title": "Filesystem type"}],
|
||||||
|
["sys.mount.fs_opts", "s", {"title": "Filesystem options"}],
|
||||||
|
["sys.tz_spec", "s", {"title": "See formats for the TZ env var: \"man tzset\". Formats like \":/path/to/file\" are not supported"}],
|
||||||
|
["sys.wdt_timeout", "i", {"title": "Watchdog timeout (seconds)"}],
|
||||||
|
["sys.pref_ota_lib", "s", {"title": "Preferred ota lib, e.g. dash, ota-http-client"}],
|
||||||
|
["sys.esp32_adc_vref", "i", {"title": "ADC Vref, in mV"}],
|
||||||
|
["conf_acl", "s", {"title": "Conf ACL"}],
|
||||||
|
["bt", "o", {"title": "Bluetooth settings"}],
|
||||||
|
["bt.enable", "b", {"title": "Enable BT"}],
|
||||||
|
["bt.dev_name", "s", {"title": "Device name; defaults to device.id"}],
|
||||||
|
["bt.adv_enable", "b", {"title": "Advertise services"}],
|
||||||
|
["bt.scan_rsp_data_hex", "s", {"title": "Scan response data, hex-encoded"}],
|
||||||
|
["bt.keep_enabled", "b", {"title": "By default, BT will be disabled once WiFi is configured and connects. Set this to true to keep BT enabled."}],
|
||||||
|
["bt.allow_pairing", "b", {"title": "Allow pairing/bonding with other devices"}],
|
||||||
|
["bt.max_paired_devices", "i", {"title": "Max number of paired devices; -1 - no limit"}],
|
||||||
|
["bt.random_address", "b", {"title": "Use random BT address"}],
|
||||||
|
["bt.gatts", "o", {"title": "GATTS settings"}],
|
||||||
|
["bt.gatts.min_sec_level", "i", {"title": "0 - no auth required, 1 - encryption reqd, 2 - encryption + MITM reqd"}],
|
||||||
|
["bt.gatts.require_pairing", "b", {"title": "Require device to be paired before accessing services"}],
|
||||||
|
["bt.config_svc_enable", "b", {"title": "Enable the config service"}],
|
||||||
|
["mjs", "o", {"title": "mJS settings"}],
|
||||||
|
["mjs.generate_jsc", "b", {"title": "Generate .jsc file when executing any .js file"}],
|
||||||
|
["rpc", "o", {"title": "RPC settings"}],
|
||||||
|
["rpc.enable", "b", {"title": "Enable RPC"}],
|
||||||
|
["rpc.max_frame_size", "i", {"title": "Max Frame Size"}],
|
||||||
|
["rpc.max_queue_length", "i", {"title": "Max Queue Length"}],
|
||||||
|
["rpc.default_out_channel_idle_close_timeout", "i", {"title": "Default idle close timeout for outbound channels"}],
|
||||||
|
["rpc.acl_file", "s", {"title": "File with RPC ACL JSON"}],
|
||||||
|
["rpc.auth_domain", "s", {"title": "Realm to use for digest authentication"}],
|
||||||
|
["rpc.auth_file", "s", {"title": "File with user credentials in the htdigest format"}],
|
||||||
|
["rpc.ws", "o", {"title": "RPC over WebSocket settings"}],
|
||||||
|
["rpc.ws.enable", "b", {"title": "Enable RPC over WebSocket"}],
|
||||||
|
["rpc.ws.server_address", "s", {"title": "Cloud server address"}],
|
||||||
|
["rpc.ws.reconnect_interval_min", "i", {"title": "Minimal reconnect interval"}],
|
||||||
|
["rpc.ws.reconnect_interval_max", "i", {"title": "Maximal reconnect interval"}],
|
||||||
|
["rpc.ws.ssl_server_name", "s", {"title": "TLS Server Name"}],
|
||||||
|
["rpc.ws.ssl_ca_file", "s", {"title": "TLS CA file"}],
|
||||||
|
["rpc.ws.ssl_client_cert_file", "s", {"title": "TLS client cert file"}],
|
||||||
|
["rpc.uart", "o", {"title": "RPC-over-UART settings"}],
|
||||||
|
["rpc.uart.uart_no", "i", {"title": "UART number (-1 to disable)"}],
|
||||||
|
["rpc.uart.baud_rate", "i", {"title": "Baud rate"}],
|
||||||
|
["rpc.uart.fc_type", "i", {"title": "Flow control: 0 - none, 1 - CTS/RTS, 2 - XON/XOFF"}],
|
||||||
|
["rpc.uart.wait_for_start_frame", "b", {"title": "Wait for an incoming frame before using the channel"}],
|
||||||
|
["wifi", "o", {"hide": true}],
|
||||||
|
["wifi.sta", "o", {"title": "WiFi Station"}],
|
||||||
|
["wifi.sta.enable", "b", {"title": "Connect to existing WiFi"}],
|
||||||
|
["wifi.sta.ssid", "s", {"title": "SSID"}],
|
||||||
|
["wifi.sta.pass", "s", {"title": "Password", "type": "password"}],
|
||||||
|
["wifi.sta.user", "s", {"title": "Username for WPA-PEAP mode"}],
|
||||||
|
["wifi.sta.anon_identity", "s", {"title": "Anonymous identity for WPA mode"}],
|
||||||
|
["wifi.sta.cert", "s", {"title": "Client certificate for WPA-TTLS mode"}],
|
||||||
|
["wifi.sta.key", "s", {"title": "Client key for WPA-TTLS mode"}],
|
||||||
|
["wifi.sta.ca_cert", "s", {"title": "CA certificate for WPA-enterprise mode"}],
|
||||||
|
["wifi.sta.ip", "s", {"title": "Static IP Address"}],
|
||||||
|
["wifi.sta.netmask", "s", {"title": "Static Netmask"}],
|
||||||
|
["wifi.sta.gw", "s", {"title": "Static Default Gateway"}],
|
||||||
|
["wifi.sta.nameserver", "s", {"title": "DNS Server"}],
|
||||||
|
["wifi.sta.dhcp_hostname", "s", {"title": "Host name to include in DHCP requests"}],
|
||||||
|
["wifi.ap", "o", {"title": "WiFi Access Point"}],
|
||||||
|
["wifi.ap.enable", "b", {"title": "Enable"}],
|
||||||
|
["wifi.ap.ssid", "s", {"title": "SSID"}],
|
||||||
|
["wifi.ap.pass", "s", {"title": "Password", "type": "password"}],
|
||||||
|
["wifi.ap.hidden", "b", {"title": "Hide SSID"}],
|
||||||
|
["wifi.ap.channel", "i", {"title": "Channel"}],
|
||||||
|
["wifi.ap.max_connections", "i", {"title": "Max connections"}],
|
||||||
|
["wifi.ap.ip", "s", {"title": "IP address"}],
|
||||||
|
["wifi.ap.netmask", "s", {"title": "Network Mask"}],
|
||||||
|
["wifi.ap.gw", "s", {"title": "Default Gateway"}],
|
||||||
|
["wifi.ap.dhcp_start", "s", {"title": "DHCP Start Address"}],
|
||||||
|
["wifi.ap.dhcp_end", "s", {"title": "DHCP End Address"}],
|
||||||
|
["wifi.ap.trigger_on_gpio", "i", {"title": "Trigger AP on low GPIO"}],
|
||||||
|
["wifi.ap.disable_after", "i", {"title": "If > 0, will disable itself after the specified number of seconds"}],
|
||||||
|
["wifi.ap.hostname", "s", {"title": "If not empty, DNS server will resolve given host name to the IP address of AP"}],
|
||||||
|
["wifi.ap.keep_enabled", "b", {"title": "Keep AP enabled when station is on"}],
|
||||||
|
["higrow", "o", {"title": "LilyGo HiGrow ESP32 Plant Sensor App Settings"}],
|
||||||
|
["higrow.deviceId", "s", {"title": "DeviceId"}],
|
||||||
|
["higrow.temperature", "d", {"title": "Temperature"}],
|
||||||
|
["higrow.humidity", "d", {"title": "Humidity"}],
|
||||||
|
["higrow.light", "i", {"title": "Light"}],
|
||||||
|
["higrow.moisture", "i", {"title": "Moisture"}],
|
||||||
|
["higrow.connected", "b", {"title": "Connected"}],
|
||||||
|
["higrow.battery_calibration", "i", {"title": "Battery ADC value at 4000mV"}]
|
||||||
|
]
|
|
@ -0,0 +1,56 @@
|
||||||
|
/* Generated file - do not edit. */
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include "mgos_ro_vars.h"
|
||||||
|
|
||||||
|
const struct mgos_conf_entry mgos_ro_vars_schema_[6] = {
|
||||||
|
{.type = CONF_TYPE_OBJECT, .key = "", .num_desc = 5},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "mac_address", .offset = offsetof(struct mgos_ro_vars, mac_address)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "arch", .offset = offsetof(struct mgos_ro_vars, arch)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "fw_version", .offset = offsetof(struct mgos_ro_vars, fw_version)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "fw_timestamp", .offset = offsetof(struct mgos_ro_vars, fw_timestamp)},
|
||||||
|
{.type = CONF_TYPE_STRING, .key = "fw_id", .offset = offsetof(struct mgos_ro_vars, fw_id)},
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct mgos_conf_entry *mgos_ro_vars_schema() {
|
||||||
|
return mgos_ro_vars_schema_;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global instance */
|
||||||
|
struct mgos_ro_vars mgos_sys_ro_vars;
|
||||||
|
|
||||||
|
/* Getters {{{ */
|
||||||
|
const char *mgos_ro_vars_get_mac_address(struct mgos_ro_vars *cfg) {
|
||||||
|
return cfg->mac_address;
|
||||||
|
}
|
||||||
|
const char *mgos_ro_vars_get_arch(struct mgos_ro_vars *cfg) {
|
||||||
|
return cfg->arch;
|
||||||
|
}
|
||||||
|
const char *mgos_ro_vars_get_fw_version(struct mgos_ro_vars *cfg) {
|
||||||
|
return cfg->fw_version;
|
||||||
|
}
|
||||||
|
const char *mgos_ro_vars_get_fw_timestamp(struct mgos_ro_vars *cfg) {
|
||||||
|
return cfg->fw_timestamp;
|
||||||
|
}
|
||||||
|
const char *mgos_ro_vars_get_fw_id(struct mgos_ro_vars *cfg) {
|
||||||
|
return cfg->fw_id;
|
||||||
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
|
/* Setters {{{ */
|
||||||
|
void mgos_ro_vars_set_mac_address(struct mgos_ro_vars *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->mac_address, val);
|
||||||
|
}
|
||||||
|
void mgos_ro_vars_set_arch(struct mgos_ro_vars *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->arch, val);
|
||||||
|
}
|
||||||
|
void mgos_ro_vars_set_fw_version(struct mgos_ro_vars *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->fw_version, val);
|
||||||
|
}
|
||||||
|
void mgos_ro_vars_set_fw_timestamp(struct mgos_ro_vars *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->fw_timestamp, val);
|
||||||
|
}
|
||||||
|
void mgos_ro_vars_set_fw_id(struct mgos_ro_vars *cfg, const char *val) {
|
||||||
|
mgos_conf_set_str(&cfg->fw_id, val);
|
||||||
|
}
|
||||||
|
/* }}} */
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Generated file - do not edit.
|
||||||
|
* Command: /mongoose-os/fw/tools/gen_sys_config.py --c_name=mgos_ro_vars --c_global_name=mgos_sys_ro_vars --dest_dir=/fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/ /mongoose-os/fw/src/mgos_ro_vars_schema.yaml
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MGOS_RO_VARS_H_
|
||||||
|
#define MGOS_RO_VARS_H_
|
||||||
|
|
||||||
|
#include "mgos_config_util.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
struct mgos_ro_vars {
|
||||||
|
char *mac_address;
|
||||||
|
char *arch;
|
||||||
|
char *fw_version;
|
||||||
|
char *fw_timestamp;
|
||||||
|
char *fw_id;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Parametrized accessor prototypes {{{ */
|
||||||
|
const char *mgos_ro_vars_get_mac_address(struct mgos_ro_vars *cfg);
|
||||||
|
const char *mgos_ro_vars_get_arch(struct mgos_ro_vars *cfg);
|
||||||
|
const char *mgos_ro_vars_get_fw_version(struct mgos_ro_vars *cfg);
|
||||||
|
const char *mgos_ro_vars_get_fw_timestamp(struct mgos_ro_vars *cfg);
|
||||||
|
const char *mgos_ro_vars_get_fw_id(struct mgos_ro_vars *cfg);
|
||||||
|
|
||||||
|
void mgos_ro_vars_set_mac_address(struct mgos_ro_vars *cfg, const char *val);
|
||||||
|
void mgos_ro_vars_set_arch(struct mgos_ro_vars *cfg, const char *val);
|
||||||
|
void mgos_ro_vars_set_fw_version(struct mgos_ro_vars *cfg, const char *val);
|
||||||
|
void mgos_ro_vars_set_fw_timestamp(struct mgos_ro_vars *cfg, const char *val);
|
||||||
|
void mgos_ro_vars_set_fw_id(struct mgos_ro_vars *cfg, const char *val);
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
|
extern struct mgos_ro_vars mgos_sys_ro_vars;
|
||||||
|
|
||||||
|
static inline const char *mgos_sys_ro_vars_get_mac_address(void) { return mgos_ro_vars_get_mac_address(&mgos_sys_ro_vars); }
|
||||||
|
static inline const char *mgos_sys_ro_vars_get_arch(void) { return mgos_ro_vars_get_arch(&mgos_sys_ro_vars); }
|
||||||
|
static inline const char *mgos_sys_ro_vars_get_fw_version(void) { return mgos_ro_vars_get_fw_version(&mgos_sys_ro_vars); }
|
||||||
|
static inline const char *mgos_sys_ro_vars_get_fw_timestamp(void) { return mgos_ro_vars_get_fw_timestamp(&mgos_sys_ro_vars); }
|
||||||
|
static inline const char *mgos_sys_ro_vars_get_fw_id(void) { return mgos_ro_vars_get_fw_id(&mgos_sys_ro_vars); }
|
||||||
|
|
||||||
|
static inline void mgos_sys_ro_vars_set_mac_address(const char *val) { mgos_ro_vars_set_mac_address(&mgos_sys_ro_vars, val); }
|
||||||
|
static inline void mgos_sys_ro_vars_set_arch(const char *val) { mgos_ro_vars_set_arch(&mgos_sys_ro_vars, val); }
|
||||||
|
static inline void mgos_sys_ro_vars_set_fw_version(const char *val) { mgos_ro_vars_set_fw_version(&mgos_sys_ro_vars, val); }
|
||||||
|
static inline void mgos_sys_ro_vars_set_fw_timestamp(const char *val) { mgos_ro_vars_set_fw_timestamp(&mgos_sys_ro_vars, val); }
|
||||||
|
static inline void mgos_sys_ro_vars_set_fw_id(const char *val) { mgos_ro_vars_set_fw_id(&mgos_sys_ro_vars, val); }
|
||||||
|
|
||||||
|
|
||||||
|
const struct mgos_conf_entry *mgos_ro_vars_schema();
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#endif /* MGOS_RO_VARS_H_ */
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"mac_address": "",
|
||||||
|
"arch": "",
|
||||||
|
"fw_version": "",
|
||||||
|
"fw_timestamp": "",
|
||||||
|
"fw_id": ""
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
[
|
||||||
|
["mac_address", "s", {"read_only": true, "title": "MAC address"}],
|
||||||
|
["arch", "s", {"read_only": true, "title": "Platform"}],
|
||||||
|
["fw_version", "s", {"read_only": true, "title": "FW version"}],
|
||||||
|
["fw_timestamp", "s", {"read_only": true, "title": "Build timestamp"}],
|
||||||
|
["fw_id", "s", {"read_only": true, "title": "Build ID"}]
|
||||||
|
]
|
|
@ -0,0 +1,290 @@
|
||||||
|
- - sys.esp32_adc_vref
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: ADC Vref, in mV
|
||||||
|
- - bt
|
||||||
|
- o
|
||||||
|
- title: Bluetooth settings
|
||||||
|
- - bt.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable BT
|
||||||
|
- - bt.dev_name
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: Device name; defaults to device.id
|
||||||
|
- - bt.adv_enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Advertise services
|
||||||
|
- - bt.scan_rsp_data_hex
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: Scan response data, hex-encoded
|
||||||
|
- - bt.keep_enabled
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: By default, BT will be disabled once WiFi is configured and connects. Set
|
||||||
|
this to true to keep BT enabled.
|
||||||
|
- - bt.allow_pairing
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Allow pairing/bonding with other devices
|
||||||
|
- - bt.max_paired_devices
|
||||||
|
- i
|
||||||
|
- -1
|
||||||
|
- title: Max number of paired devices; -1 - no limit
|
||||||
|
- - bt.random_address
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Use random BT address
|
||||||
|
- - bt.gatts
|
||||||
|
- o
|
||||||
|
- title: GATTS settings
|
||||||
|
- - bt.gatts.min_sec_level
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: 0 - no auth required, 1 - encryption reqd, 2 - encryption + MITM reqd
|
||||||
|
- - bt.gatts.require_pairing
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: Require device to be paired before accessing services
|
||||||
|
- - bt.config_svc_enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable the config service
|
||||||
|
- - mjs
|
||||||
|
- o
|
||||||
|
- title: mJS settings
|
||||||
|
- - mjs.generate_jsc
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Generate .jsc file when executing any .js file
|
||||||
|
- - rpc
|
||||||
|
- o
|
||||||
|
- title: RPC settings
|
||||||
|
- - rpc.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable RPC
|
||||||
|
- - rpc.max_frame_size
|
||||||
|
- i
|
||||||
|
- 4096
|
||||||
|
- title: Max Frame Size
|
||||||
|
- - rpc.max_queue_length
|
||||||
|
- i
|
||||||
|
- 25
|
||||||
|
- title: Max Queue Length
|
||||||
|
- - rpc.default_out_channel_idle_close_timeout
|
||||||
|
- i
|
||||||
|
- 10
|
||||||
|
- title: Default idle close timeout for outbound channels
|
||||||
|
- - rpc.acl_file
|
||||||
|
- s
|
||||||
|
- title: File with RPC ACL JSON
|
||||||
|
- - rpc.auth_domain
|
||||||
|
- s
|
||||||
|
- title: Realm to use for digest authentication
|
||||||
|
- - rpc.auth_file
|
||||||
|
- s
|
||||||
|
- title: File with user credentials in the htdigest format
|
||||||
|
- - rpc.ws
|
||||||
|
- o
|
||||||
|
- title: RPC over WebSocket settings
|
||||||
|
- - rpc.ws.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable RPC over WebSocket
|
||||||
|
- - rpc.ws.server_address
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: Cloud server address
|
||||||
|
- - rpc.ws.reconnect_interval_min
|
||||||
|
- i
|
||||||
|
- 1
|
||||||
|
- title: Minimal reconnect interval
|
||||||
|
- - rpc.ws.reconnect_interval_max
|
||||||
|
- i
|
||||||
|
- 60
|
||||||
|
- title: Maximal reconnect interval
|
||||||
|
- - rpc.ws.ssl_server_name
|
||||||
|
- s
|
||||||
|
- title: TLS Server Name
|
||||||
|
- - rpc.ws.ssl_ca_file
|
||||||
|
- s
|
||||||
|
- title: TLS CA file
|
||||||
|
- - rpc.ws.ssl_client_cert_file
|
||||||
|
- s
|
||||||
|
- title: TLS client cert file
|
||||||
|
- - rpc.uart
|
||||||
|
- o
|
||||||
|
- title: RPC-over-UART settings
|
||||||
|
- - rpc.uart.uart_no
|
||||||
|
- i
|
||||||
|
- title: UART number (-1 to disable)
|
||||||
|
- - rpc.uart.baud_rate
|
||||||
|
- i
|
||||||
|
- 115200
|
||||||
|
- title: Baud rate
|
||||||
|
- - rpc.uart.fc_type
|
||||||
|
- i
|
||||||
|
- 2
|
||||||
|
- title: 'Flow control: 0 - none, 1 - CTS/RTS, 2 - XON/XOFF'
|
||||||
|
- - rpc.uart.wait_for_start_frame
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Wait for an incoming frame before using the channel
|
||||||
|
- - wifi
|
||||||
|
- o
|
||||||
|
- hide: true
|
||||||
|
- - wifi.sta
|
||||||
|
- o
|
||||||
|
- title: WiFi Station
|
||||||
|
- - wifi.sta.enable
|
||||||
|
- b
|
||||||
|
- title: Connect to existing WiFi
|
||||||
|
- - wifi.sta.ssid
|
||||||
|
- s
|
||||||
|
- title: SSID
|
||||||
|
- - wifi.sta.pass
|
||||||
|
- s
|
||||||
|
- title: Password
|
||||||
|
type: password
|
||||||
|
- - wifi.sta.user
|
||||||
|
- s
|
||||||
|
- title: Username for WPA-PEAP mode
|
||||||
|
- - wifi.sta.anon_identity
|
||||||
|
- s
|
||||||
|
- title: Anonymous identity for WPA mode
|
||||||
|
- - wifi.sta.cert
|
||||||
|
- s
|
||||||
|
- title: Client certificate for WPA-TTLS mode
|
||||||
|
- - wifi.sta.key
|
||||||
|
- s
|
||||||
|
- title: Client key for WPA-TTLS mode
|
||||||
|
- - wifi.sta.ca_cert
|
||||||
|
- s
|
||||||
|
- title: CA certificate for WPA-enterprise mode
|
||||||
|
- - wifi.sta.ip
|
||||||
|
- s
|
||||||
|
- title: Static IP Address
|
||||||
|
- - wifi.sta.netmask
|
||||||
|
- s
|
||||||
|
- title: Static Netmask
|
||||||
|
- - wifi.sta.gw
|
||||||
|
- s
|
||||||
|
- title: Static Default Gateway
|
||||||
|
- - wifi.sta.nameserver
|
||||||
|
- s
|
||||||
|
- title: DNS Server
|
||||||
|
- - wifi.sta.dhcp_hostname
|
||||||
|
- s
|
||||||
|
- title: Host name to include in DHCP requests
|
||||||
|
- - wifi.ap
|
||||||
|
- o
|
||||||
|
- title: WiFi Access Point
|
||||||
|
- - wifi.ap.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable
|
||||||
|
- - wifi.ap.ssid
|
||||||
|
- s
|
||||||
|
- Mongoose_??????
|
||||||
|
- title: SSID
|
||||||
|
- - wifi.ap.pass
|
||||||
|
- s
|
||||||
|
- Mongoose
|
||||||
|
- title: Password
|
||||||
|
type: password
|
||||||
|
- - wifi.ap.hidden
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: Hide SSID
|
||||||
|
- - wifi.ap.channel
|
||||||
|
- i
|
||||||
|
- 6
|
||||||
|
- title: Channel
|
||||||
|
- - wifi.ap.max_connections
|
||||||
|
- i
|
||||||
|
- 10
|
||||||
|
- title: Max connections
|
||||||
|
- - wifi.ap.ip
|
||||||
|
- s
|
||||||
|
- 192.168.4.1
|
||||||
|
- title: IP address
|
||||||
|
- - wifi.ap.netmask
|
||||||
|
- s
|
||||||
|
- 255.255.255.0
|
||||||
|
- title: Network Mask
|
||||||
|
- - wifi.ap.gw
|
||||||
|
- s
|
||||||
|
- 192.168.4.1
|
||||||
|
- title: Default Gateway
|
||||||
|
- - wifi.ap.dhcp_start
|
||||||
|
- s
|
||||||
|
- 192.168.4.2
|
||||||
|
- title: DHCP Start Address
|
||||||
|
- - wifi.ap.dhcp_end
|
||||||
|
- s
|
||||||
|
- 192.168.4.100
|
||||||
|
- title: DHCP End Address
|
||||||
|
- - wifi.ap.trigger_on_gpio
|
||||||
|
- i
|
||||||
|
- -1
|
||||||
|
- title: Trigger AP on low GPIO
|
||||||
|
- - wifi.ap.disable_after
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: If > 0, will disable itself after the specified number of seconds
|
||||||
|
- - wifi.ap.hostname
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: If not empty, DNS server will resolve given host name to the IP address
|
||||||
|
of AP
|
||||||
|
- - wifi.ap.keep_enabled
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Keep AP enabled when station is on
|
||||||
|
- - higrow
|
||||||
|
- o
|
||||||
|
- title: LilyGo HiGrow ESP32 Plant Sensor App Settings
|
||||||
|
- - higrow.deviceId
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: DeviceId
|
||||||
|
- - higrow.temperature
|
||||||
|
- d
|
||||||
|
- 0
|
||||||
|
- title: Temperature
|
||||||
|
- - higrow.humidity
|
||||||
|
- d
|
||||||
|
- 0
|
||||||
|
- title: Humidity
|
||||||
|
- - higrow.light
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: Light
|
||||||
|
- - higrow.moisture
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: Moisture
|
||||||
|
- - higrow.connected
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: Connected
|
||||||
|
- - higrow.battery_calibration
|
||||||
|
- i
|
||||||
|
- 2360
|
||||||
|
- title: Battery ADC value at 4000mV
|
||||||
|
- - wifi.sta.enable
|
||||||
|
- false
|
||||||
|
- - wifi.sta.ssid
|
||||||
|
- ""
|
||||||
|
- - wifi.sta.pass
|
||||||
|
- ""
|
||||||
|
- - wifi.ap.enable
|
||||||
|
- false
|
||||||
|
- - device.id
|
||||||
|
- HiGrow_??????
|
||||||
|
- - bt.dev_name
|
||||||
|
- HiGrowBT_
|
|
@ -0,0 +1,481 @@
|
||||||
|
name: LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware
|
||||||
|
type: app
|
||||||
|
version: "1.0"
|
||||||
|
platform: esp32
|
||||||
|
platforms:
|
||||||
|
- esp32
|
||||||
|
author: Jason Harrell <info@latitude17.io>
|
||||||
|
description: LilyGo HiGrow ESP32 Plant Sensor
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/build/gen/deps_init.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/adc/esp32/src/esp32_adc.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/mgos_bt.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/mgos_bt_gap.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt_gap.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt_gattc.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt_gatts.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-service-config/src/esp32/esp32_bt_svc_config.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/ca-bundle/src/mgos_ca_bundle.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/dht/src/mgos_dht.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/src/mos_mjs.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/modules/mjs_module/mjs.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/esp32/src/esp32_mjs.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc_channel.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc_channel_http.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc_channel_ws.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mgos_rpc.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-config/src/mgos_service_config.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-fs/src/mgos_service_filesystem.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-uart/src/mgos_rpc_channel_uart.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/src/mgos_wifi.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/src/mjs_wifi.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/esp32/src/esp32_wifi.c
|
||||||
|
includes:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/adc/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/include/esp32
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/dht/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/include/mg_rpc
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-config/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-fs/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-uart/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/include
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/esp32/include
|
||||||
|
filesystem:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/ca-bundle/fs/ca.pem
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_bitbang.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_config.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_events.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_gpio.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_grove.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_http.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_log.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_net.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_sys.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_timer.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/api_uart.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/fs/init.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/modules/mjs_module/mjs/lib/api_dataview.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/modules/mjs_module/mjs/lib/api_file.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/modules/mjs_module/mjs/lib/api_math.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/adc/mjs_fs/api_adc.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/dht/mjs_fs/api_dht.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/mjs_fs/api_rpc.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/mjs_fs/api_wifi.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/esp32/fs/api_arch_uart.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/esp32/fs/api_esp32.js
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/fs/init.js
|
||||||
|
modules:
|
||||||
|
- origin: https://github.com/cesanta/mjs
|
||||||
|
location: https://github.com/cesanta/mjs
|
||||||
|
name: mjs_module
|
||||||
|
suffixtpl: ""
|
||||||
|
config_schema:
|
||||||
|
- - sys.esp32_adc_vref
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: ADC Vref, in mV
|
||||||
|
- - bt
|
||||||
|
- o
|
||||||
|
- title: Bluetooth settings
|
||||||
|
- - bt.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable BT
|
||||||
|
- - bt.dev_name
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: Device name; defaults to device.id
|
||||||
|
- - bt.adv_enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Advertise services
|
||||||
|
- - bt.scan_rsp_data_hex
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: Scan response data, hex-encoded
|
||||||
|
- - bt.keep_enabled
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: By default, BT will be disabled once WiFi is configured and connects. Set
|
||||||
|
this to true to keep BT enabled.
|
||||||
|
- - bt.allow_pairing
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Allow pairing/bonding with other devices
|
||||||
|
- - bt.max_paired_devices
|
||||||
|
- i
|
||||||
|
- -1
|
||||||
|
- title: Max number of paired devices; -1 - no limit
|
||||||
|
- - bt.random_address
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Use random BT address
|
||||||
|
- - bt.gatts
|
||||||
|
- o
|
||||||
|
- title: GATTS settings
|
||||||
|
- - bt.gatts.min_sec_level
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: 0 - no auth required, 1 - encryption reqd, 2 - encryption + MITM reqd
|
||||||
|
- - bt.gatts.require_pairing
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: Require device to be paired before accessing services
|
||||||
|
- - bt.config_svc_enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable the config service
|
||||||
|
- - mjs
|
||||||
|
- o
|
||||||
|
- title: mJS settings
|
||||||
|
- - mjs.generate_jsc
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Generate .jsc file when executing any .js file
|
||||||
|
- - rpc
|
||||||
|
- o
|
||||||
|
- title: RPC settings
|
||||||
|
- - rpc.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable RPC
|
||||||
|
- - rpc.max_frame_size
|
||||||
|
- i
|
||||||
|
- 4096
|
||||||
|
- title: Max Frame Size
|
||||||
|
- - rpc.max_queue_length
|
||||||
|
- i
|
||||||
|
- 25
|
||||||
|
- title: Max Queue Length
|
||||||
|
- - rpc.default_out_channel_idle_close_timeout
|
||||||
|
- i
|
||||||
|
- 10
|
||||||
|
- title: Default idle close timeout for outbound channels
|
||||||
|
- - rpc.acl_file
|
||||||
|
- s
|
||||||
|
- title: File with RPC ACL JSON
|
||||||
|
- - rpc.auth_domain
|
||||||
|
- s
|
||||||
|
- title: Realm to use for digest authentication
|
||||||
|
- - rpc.auth_file
|
||||||
|
- s
|
||||||
|
- title: File with user credentials in the htdigest format
|
||||||
|
- - rpc.ws
|
||||||
|
- o
|
||||||
|
- title: RPC over WebSocket settings
|
||||||
|
- - rpc.ws.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable RPC over WebSocket
|
||||||
|
- - rpc.ws.server_address
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: Cloud server address
|
||||||
|
- - rpc.ws.reconnect_interval_min
|
||||||
|
- i
|
||||||
|
- 1
|
||||||
|
- title: Minimal reconnect interval
|
||||||
|
- - rpc.ws.reconnect_interval_max
|
||||||
|
- i
|
||||||
|
- 60
|
||||||
|
- title: Maximal reconnect interval
|
||||||
|
- - rpc.ws.ssl_server_name
|
||||||
|
- s
|
||||||
|
- title: TLS Server Name
|
||||||
|
- - rpc.ws.ssl_ca_file
|
||||||
|
- s
|
||||||
|
- title: TLS CA file
|
||||||
|
- - rpc.ws.ssl_client_cert_file
|
||||||
|
- s
|
||||||
|
- title: TLS client cert file
|
||||||
|
- - rpc.uart
|
||||||
|
- o
|
||||||
|
- title: RPC-over-UART settings
|
||||||
|
- - rpc.uart.uart_no
|
||||||
|
- i
|
||||||
|
- title: UART number (-1 to disable)
|
||||||
|
- - rpc.uart.baud_rate
|
||||||
|
- i
|
||||||
|
- 115200
|
||||||
|
- title: Baud rate
|
||||||
|
- - rpc.uart.fc_type
|
||||||
|
- i
|
||||||
|
- 2
|
||||||
|
- title: 'Flow control: 0 - none, 1 - CTS/RTS, 2 - XON/XOFF'
|
||||||
|
- - rpc.uart.wait_for_start_frame
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Wait for an incoming frame before using the channel
|
||||||
|
- - wifi
|
||||||
|
- o
|
||||||
|
- hide: true
|
||||||
|
- - wifi.sta
|
||||||
|
- o
|
||||||
|
- title: WiFi Station
|
||||||
|
- - wifi.sta.enable
|
||||||
|
- b
|
||||||
|
- title: Connect to existing WiFi
|
||||||
|
- - wifi.sta.ssid
|
||||||
|
- s
|
||||||
|
- title: SSID
|
||||||
|
- - wifi.sta.pass
|
||||||
|
- s
|
||||||
|
- title: Password
|
||||||
|
type: password
|
||||||
|
- - wifi.sta.user
|
||||||
|
- s
|
||||||
|
- title: Username for WPA-PEAP mode
|
||||||
|
- - wifi.sta.anon_identity
|
||||||
|
- s
|
||||||
|
- title: Anonymous identity for WPA mode
|
||||||
|
- - wifi.sta.cert
|
||||||
|
- s
|
||||||
|
- title: Client certificate for WPA-TTLS mode
|
||||||
|
- - wifi.sta.key
|
||||||
|
- s
|
||||||
|
- title: Client key for WPA-TTLS mode
|
||||||
|
- - wifi.sta.ca_cert
|
||||||
|
- s
|
||||||
|
- title: CA certificate for WPA-enterprise mode
|
||||||
|
- - wifi.sta.ip
|
||||||
|
- s
|
||||||
|
- title: Static IP Address
|
||||||
|
- - wifi.sta.netmask
|
||||||
|
- s
|
||||||
|
- title: Static Netmask
|
||||||
|
- - wifi.sta.gw
|
||||||
|
- s
|
||||||
|
- title: Static Default Gateway
|
||||||
|
- - wifi.sta.nameserver
|
||||||
|
- s
|
||||||
|
- title: DNS Server
|
||||||
|
- - wifi.sta.dhcp_hostname
|
||||||
|
- s
|
||||||
|
- title: Host name to include in DHCP requests
|
||||||
|
- - wifi.ap
|
||||||
|
- o
|
||||||
|
- title: WiFi Access Point
|
||||||
|
- - wifi.ap.enable
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Enable
|
||||||
|
- - wifi.ap.ssid
|
||||||
|
- s
|
||||||
|
- Mongoose_??????
|
||||||
|
- title: SSID
|
||||||
|
- - wifi.ap.pass
|
||||||
|
- s
|
||||||
|
- Mongoose
|
||||||
|
- title: Password
|
||||||
|
type: password
|
||||||
|
- - wifi.ap.hidden
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: Hide SSID
|
||||||
|
- - wifi.ap.channel
|
||||||
|
- i
|
||||||
|
- 6
|
||||||
|
- title: Channel
|
||||||
|
- - wifi.ap.max_connections
|
||||||
|
- i
|
||||||
|
- 10
|
||||||
|
- title: Max connections
|
||||||
|
- - wifi.ap.ip
|
||||||
|
- s
|
||||||
|
- 192.168.4.1
|
||||||
|
- title: IP address
|
||||||
|
- - wifi.ap.netmask
|
||||||
|
- s
|
||||||
|
- 255.255.255.0
|
||||||
|
- title: Network Mask
|
||||||
|
- - wifi.ap.gw
|
||||||
|
- s
|
||||||
|
- 192.168.4.1
|
||||||
|
- title: Default Gateway
|
||||||
|
- - wifi.ap.dhcp_start
|
||||||
|
- s
|
||||||
|
- 192.168.4.2
|
||||||
|
- title: DHCP Start Address
|
||||||
|
- - wifi.ap.dhcp_end
|
||||||
|
- s
|
||||||
|
- 192.168.4.100
|
||||||
|
- title: DHCP End Address
|
||||||
|
- - wifi.ap.trigger_on_gpio
|
||||||
|
- i
|
||||||
|
- -1
|
||||||
|
- title: Trigger AP on low GPIO
|
||||||
|
- - wifi.ap.disable_after
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: If > 0, will disable itself after the specified number of seconds
|
||||||
|
- - wifi.ap.hostname
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: If not empty, DNS server will resolve given host name to the IP address
|
||||||
|
of AP
|
||||||
|
- - wifi.ap.keep_enabled
|
||||||
|
- b
|
||||||
|
- true
|
||||||
|
- title: Keep AP enabled when station is on
|
||||||
|
- - higrow
|
||||||
|
- o
|
||||||
|
- title: LilyGo HiGrow ESP32 Plant Sensor App Settings
|
||||||
|
- - higrow.deviceId
|
||||||
|
- s
|
||||||
|
- ""
|
||||||
|
- title: DeviceId
|
||||||
|
- - higrow.temperature
|
||||||
|
- d
|
||||||
|
- 0
|
||||||
|
- title: Temperature
|
||||||
|
- - higrow.humidity
|
||||||
|
- d
|
||||||
|
- 0
|
||||||
|
- title: Humidity
|
||||||
|
- - higrow.light
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: Light
|
||||||
|
- - higrow.moisture
|
||||||
|
- i
|
||||||
|
- 0
|
||||||
|
- title: Moisture
|
||||||
|
- - higrow.connected
|
||||||
|
- b
|
||||||
|
- false
|
||||||
|
- title: Connected
|
||||||
|
- - higrow.battery_calibration
|
||||||
|
- i
|
||||||
|
- 2360
|
||||||
|
- title: Battery ADC value at 4000mV
|
||||||
|
- - wifi.sta.enable
|
||||||
|
- false
|
||||||
|
- - wifi.sta.ssid
|
||||||
|
- ""
|
||||||
|
- - wifi.sta.pass
|
||||||
|
- ""
|
||||||
|
- - wifi.ap.enable
|
||||||
|
- false
|
||||||
|
- - device.id
|
||||||
|
- HiGrow_??????
|
||||||
|
- - bt.dev_name
|
||||||
|
- HiGrowBT_
|
||||||
|
build_vars:
|
||||||
|
ESP_IDF_EXTRA_COMPONENTS: ' bt'
|
||||||
|
ESP_IDF_SDKCONFIG_OPTS: |2-
|
||||||
|
CONFIG_BT_ENABLED=y CONFIG_BLUEDROID_ENABLED=y CONFIG_BTC_TASK_STACK_SIZE=6144 CONFIG_BLUEDROID_MEM_DEBUG= CONFIG_CLASSIC_BT_ENABLED= CONFIG_BT_DRAM_RELEASE=y CONFIG_GATTS_ENABLE=y CONFIG_GATTC_ENABLE=y CONFIG_BLE_SMP_ENABLE=y CONFIG_BT_STACK_NO_LOG= CONFIG_BT_ACL_CONNECTIONS=4 CONFIG_BTDM_CONTROLLER_RUN_CPU=0 CONFIG_SMP_ENABLE=y CONFIG_BT_RESERVE_DRAM=0x10000
|
||||||
|
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=500
|
||||||
|
MGOS_HAVE_ADC: "1"
|
||||||
|
MGOS_HAVE_BT_COMMON: "1"
|
||||||
|
MGOS_HAVE_BT_SERVICE_CONFIG: "1"
|
||||||
|
MGOS_HAVE_CA_BUNDLE: "1"
|
||||||
|
MGOS_HAVE_DHT: "1"
|
||||||
|
MGOS_HAVE_MJS: "1"
|
||||||
|
MGOS_HAVE_RPC_COMMON: "1"
|
||||||
|
MGOS_HAVE_RPC_SERVICE_CONFIG: "1"
|
||||||
|
MGOS_HAVE_RPC_SERVICE_FS: "1"
|
||||||
|
MGOS_HAVE_RPC_UART: "1"
|
||||||
|
MGOS_HAVE_WIFI: "1"
|
||||||
|
MGOS_WIFI_ENABLE_AP_STA: "1"
|
||||||
|
cdefs:
|
||||||
|
MG_ENABLE_DNS_SERVER: "1"
|
||||||
|
MGOS_ENABLE_RPC_CHANNEL_HTTP: "1"
|
||||||
|
MGOS_ENABLE_RPC_CHANNEL_WS: "1"
|
||||||
|
MGOS_ENABLE_SYS_SERVICE: "1"
|
||||||
|
MGOS_HAVE_ADC: "1"
|
||||||
|
MGOS_HAVE_BT_COMMON: "1"
|
||||||
|
MGOS_HAVE_BT_SERVICE_CONFIG: "1"
|
||||||
|
MGOS_HAVE_CA_BUNDLE: "1"
|
||||||
|
MGOS_HAVE_DHT: "1"
|
||||||
|
MGOS_HAVE_MJS: "1"
|
||||||
|
MGOS_HAVE_RPC_COMMON: "1"
|
||||||
|
MGOS_HAVE_RPC_SERVICE_CONFIG: "1"
|
||||||
|
MGOS_HAVE_RPC_SERVICE_FS: "1"
|
||||||
|
MGOS_HAVE_RPC_UART: "1"
|
||||||
|
MGOS_HAVE_WIFI: "1"
|
||||||
|
MGOS_WIFI_ENABLE_AP_STA: "1"
|
||||||
|
tags:
|
||||||
|
- js
|
||||||
|
- hardware
|
||||||
|
- higrow
|
||||||
|
- esp32
|
||||||
|
- ble
|
||||||
|
- plant
|
||||||
|
- lilygo
|
||||||
|
libs_version: latest
|
||||||
|
modules_version: latest
|
||||||
|
mongoose_os_version: latest
|
||||||
|
manifest_version: 2017-05-18
|
||||||
|
libs_handled:
|
||||||
|
- name: adc
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/adc
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/adc/esp32/src/esp32_adc.c
|
||||||
|
- name: bt-common
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/mgos_bt.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/mgos_bt_gap.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt_gap.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt_gattc.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-common/src/esp32/esp32_bt_gatts.c
|
||||||
|
- name: bt-service-config
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-service-config
|
||||||
|
deps:
|
||||||
|
- bt-common
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/bt-service-config/src/esp32/esp32_bt_svc_config.c
|
||||||
|
- name: ca-bundle
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/ca-bundle
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/ca-bundle/src/mgos_ca_bundle.c
|
||||||
|
- name: dht
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/dht
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/dht/src/mgos_dht.c
|
||||||
|
- name: mjs
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/src/mos_mjs.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/modules/mjs_module/mjs.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/mjs/esp32/src/esp32_mjs.c
|
||||||
|
- name: rpc-common
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common
|
||||||
|
deps:
|
||||||
|
- http-server
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc_channel.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc_channel_http.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mg_rpc/mg_rpc_channel_ws.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-common/src/mgos_rpc.c
|
||||||
|
- name: rpc-service-config
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-config
|
||||||
|
deps:
|
||||||
|
- rpc-common
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-config/src/mgos_service_config.c
|
||||||
|
- name: rpc-service-fs
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-fs
|
||||||
|
deps:
|
||||||
|
- rpc-common
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-service-fs/src/mgos_service_filesystem.c
|
||||||
|
- name: rpc-uart
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-uart
|
||||||
|
deps:
|
||||||
|
- rpc-common
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/rpc-uart/src/mgos_rpc_channel_uart.c
|
||||||
|
- name: wifi
|
||||||
|
path: /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi
|
||||||
|
sources:
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/src/mgos_wifi.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/src/mjs_wifi.c
|
||||||
|
- /fwbuild-volumes/latest/apps/LilyGo-HiGrow-ESP32-Mongoose-OS-Firmware/esp32/build_contexts/build_ctx_913791226/libs/wifi/esp32/src/esp32_wifi.c
|
|
@ -0,0 +1,386 @@
|
||||||
|
#
|
||||||
|
# Automatically generated file; DO NOT EDIT.
|
||||||
|
# Espressif IoT Development Framework Configuration
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDK tool configuration
|
||||||
|
#
|
||||||
|
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
|
||||||
|
CONFIG_PYTHON="python"
|
||||||
|
CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bootloader config
|
||||||
|
#
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_NONE=
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_ERROR=
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_WARN=
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG=
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE=
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL=3
|
||||||
|
CONFIG_BOOTLOADER_VDDSDIO_BOOST=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Security features
|
||||||
|
#
|
||||||
|
CONFIG_SECURE_BOOT_ENABLED=
|
||||||
|
CONFIG_FLASH_ENCRYPTION_ENABLED=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Serial flasher config
|
||||||
|
#
|
||||||
|
CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB0"
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_115200B=y
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_230400B=
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_921600B=
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_2MB=
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_OTHER=
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
|
||||||
|
CONFIG_ESPTOOLPY_BAUD=115200
|
||||||
|
CONFIG_ESPTOOLPY_COMPRESSED=y
|
||||||
|
CONFIG_FLASHMODE_QIO=
|
||||||
|
CONFIG_FLASHMODE_QOUT=
|
||||||
|
CONFIG_FLASHMODE_DIO=y
|
||||||
|
CONFIG_FLASHMODE_DOUT=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHMODE="dio"
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ_80M=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ_26M=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ_20M=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ="40m"
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_1MB=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
|
||||||
|
CONFIG_ESPTOOLPY_BEFORE_RESET=y
|
||||||
|
CONFIG_ESPTOOLPY_BEFORE_NORESET=
|
||||||
|
CONFIG_ESPTOOLPY_BEFORE="default_reset"
|
||||||
|
CONFIG_ESPTOOLPY_AFTER_RESET=y
|
||||||
|
CONFIG_ESPTOOLPY_AFTER_NORESET=
|
||||||
|
CONFIG_ESPTOOLPY_AFTER="hard_reset"
|
||||||
|
CONFIG_MONITOR_BAUD_9600B=
|
||||||
|
CONFIG_MONITOR_BAUD_57600B=
|
||||||
|
CONFIG_MONITOR_BAUD_115200B=y
|
||||||
|
CONFIG_MONITOR_BAUD_230400B=
|
||||||
|
CONFIG_MONITOR_BAUD_921600B=
|
||||||
|
CONFIG_MONITOR_BAUD_2MB=
|
||||||
|
CONFIG_MONITOR_BAUD_OTHER=
|
||||||
|
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
|
||||||
|
CONFIG_MONITOR_BAUD=115200
|
||||||
|
|
||||||
|
#
|
||||||
|
# Partition Table
|
||||||
|
#
|
||||||
|
CONFIG_PARTITION_TABLE_SINGLE_APP=
|
||||||
|
CONFIG_PARTITION_TABLE_TWO_OTA=
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="src/partitions_mgos.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET=0x10000
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="src/partitions_mgos.csv"
|
||||||
|
CONFIG_APP_OFFSET=0x10000
|
||||||
|
|
||||||
|
#
|
||||||
|
# Compiler options
|
||||||
|
#
|
||||||
|
CONFIG_OPTIMIZATION_LEVEL_DEBUG=
|
||||||
|
CONFIG_OPTIMIZATION_LEVEL_RELEASE=y
|
||||||
|
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
|
||||||
|
CONFIG_OPTIMIZATION_ASSERTIONS_SILENT=
|
||||||
|
CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED=
|
||||||
|
CONFIG_CXX_EXCEPTIONS=
|
||||||
|
CONFIG_STACK_CHECK_NONE=y
|
||||||
|
CONFIG_STACK_CHECK_NORM=
|
||||||
|
CONFIG_STACK_CHECK_STRONG=
|
||||||
|
CONFIG_STACK_CHECK_ALL=
|
||||||
|
CONFIG_STACK_CHECK=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Component config
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Application Level Tracing
|
||||||
|
#
|
||||||
|
CONFIG_ESP32_APPTRACE_DEST_TRAX=
|
||||||
|
CONFIG_ESP32_APPTRACE_DEST_NONE=y
|
||||||
|
CONFIG_ESP32_APPTRACE_ENABLE=
|
||||||
|
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# FreeRTOS SystemView Tracing
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# ESP32-specific
|
||||||
|
#
|
||||||
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_80=
|
||||||
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y
|
||||||
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=
|
||||||
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160
|
||||||
|
CONFIG_MEMMAP_SMP=y
|
||||||
|
CONFIG_SPIRAM_SUPPORT=
|
||||||
|
CONFIG_MEMMAP_TRACEMEM=
|
||||||
|
CONFIG_MEMMAP_TRACEMEM_TWOBANKS=
|
||||||
|
CONFIG_ESP32_TRAX=
|
||||||
|
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH=
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_UART=y
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP=y
|
||||||
|
CONFIG_ESP32_CORE_DUMP_UART_DELAY=0
|
||||||
|
CONFIG_ESP32_CORE_DUMP_LOG_LEVEL=1
|
||||||
|
CONFIG_TWO_UNIVERSAL_MAC_ADDRESS=
|
||||||
|
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
||||||
|
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
|
||||||
|
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
|
||||||
|
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=3072
|
||||||
|
CONFIG_MAIN_TASK_STACK_SIZE=3584
|
||||||
|
CONFIG_IPC_TASK_STACK_SIZE=1024
|
||||||
|
CONFIG_TIMER_TASK_STACK_SIZE=3584
|
||||||
|
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
|
||||||
|
CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF=
|
||||||
|
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR=
|
||||||
|
CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF=
|
||||||
|
CONFIG_NEWLIB_STDIN_LINE_ENDING_LF=
|
||||||
|
CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
|
||||||
|
CONFIG_NEWLIB_NANO_FORMAT=
|
||||||
|
CONFIG_CONSOLE_UART_DEFAULT=y
|
||||||
|
CONFIG_CONSOLE_UART_CUSTOM=
|
||||||
|
CONFIG_CONSOLE_UART_NONE=
|
||||||
|
CONFIG_CONSOLE_UART_NUM=0
|
||||||
|
CONFIG_CONSOLE_UART_BAUDRATE=115200
|
||||||
|
CONFIG_ULP_COPROC_ENABLED=
|
||||||
|
CONFIG_ULP_COPROC_RESERVE_MEM=0
|
||||||
|
CONFIG_ESP32_PANIC_PRINT_HALT=
|
||||||
|
CONFIG_ESP32_PANIC_PRINT_REBOOT=y
|
||||||
|
CONFIG_ESP32_PANIC_SILENT_REBOOT=
|
||||||
|
CONFIG_ESP32_PANIC_GDBSTUB=
|
||||||
|
CONFIG_ESP32_DEBUG_OCDAWARE=y
|
||||||
|
CONFIG_INT_WDT=y
|
||||||
|
CONFIG_INT_WDT_TIMEOUT_MS=300
|
||||||
|
CONFIG_TASK_WDT=y
|
||||||
|
CONFIG_TASK_WDT_PANIC=y
|
||||||
|
CONFIG_TASK_WDT_TIMEOUT_S=5
|
||||||
|
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
|
||||||
|
CONFIG_BROWNOUT_DET=y
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_1=
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_2=
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_3=
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_4=
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_5=
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_6=
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_7=
|
||||||
|
CONFIG_BROWNOUT_DET_LVL=0
|
||||||
|
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y
|
||||||
|
CONFIG_ESP32_TIME_SYSCALL_USE_RTC=
|
||||||
|
CONFIG_ESP32_TIME_SYSCALL_USE_FRC1=
|
||||||
|
CONFIG_ESP32_TIME_SYSCALL_USE_NONE=
|
||||||
|
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
|
||||||
|
CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL=
|
||||||
|
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
|
||||||
|
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=500
|
||||||
|
CONFIG_ESP32_XTAL_FREQ_40=
|
||||||
|
CONFIG_ESP32_XTAL_FREQ_26=
|
||||||
|
CONFIG_ESP32_XTAL_FREQ_AUTO=y
|
||||||
|
CONFIG_ESP32_XTAL_FREQ=0
|
||||||
|
CONFIG_DISABLE_BASIC_ROM_CONSOLE=
|
||||||
|
CONFIG_ESP_TIMER_PROFILING=
|
||||||
|
CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Wi-Fi
|
||||||
|
#
|
||||||
|
CONFIG_SW_COEXIST_ENABLE=
|
||||||
|
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=0
|
||||||
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
|
||||||
|
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
||||||
|
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||||
|
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||||
|
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# PHY
|
||||||
|
#
|
||||||
|
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
|
||||||
|
CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION=
|
||||||
|
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
|
||||||
|
CONFIG_ESP32_PHY_MAX_TX_POWER=20
|
||||||
|
|
||||||
|
#
|
||||||
|
# Power Management
|
||||||
|
#
|
||||||
|
CONFIG_PM_ENABLE=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Ethernet
|
||||||
|
#
|
||||||
|
CONFIG_DMA_RX_BUF_NUM=10
|
||||||
|
CONFIG_DMA_TX_BUF_NUM=10
|
||||||
|
CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE=
|
||||||
|
CONFIG_EMAC_TASK_PRIORITY=20
|
||||||
|
|
||||||
|
#
|
||||||
|
# FreeRTOS
|
||||||
|
#
|
||||||
|
CONFIG_FREERTOS_UNICORE=y
|
||||||
|
CONFIG_FREERTOS_CORETIMER_0=y
|
||||||
|
CONFIG_FREERTOS_CORETIMER_1=
|
||||||
|
CONFIG_FREERTOS_HZ=100
|
||||||
|
CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y
|
||||||
|
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE=y
|
||||||
|
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL=
|
||||||
|
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=
|
||||||
|
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
||||||
|
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
|
||||||
|
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
|
||||||
|
CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y
|
||||||
|
CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE=
|
||||||
|
CONFIG_FREERTOS_ASSERT_DISABLE=
|
||||||
|
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024
|
||||||
|
CONFIG_FREERTOS_ISR_STACKSIZE=1536
|
||||||
|
CONFIG_FREERTOS_LEGACY_HOOKS=
|
||||||
|
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
|
||||||
|
CONFIG_SUPPORT_STATIC_ALLOCATION=
|
||||||
|
CONFIG_TIMER_TASK_PRIORITY=1
|
||||||
|
CONFIG_TIMER_TASK_STACK_DEPTH=3072
|
||||||
|
CONFIG_TIMER_QUEUE_LENGTH=10
|
||||||
|
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
||||||
|
CONFIG_FREERTOS_USE_TRACE_FACILITY=
|
||||||
|
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=
|
||||||
|
CONFIG_FREERTOS_DEBUG_INTERNALS=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Heap memory debugging
|
||||||
|
#
|
||||||
|
CONFIG_HEAP_POISONING_DISABLED=y
|
||||||
|
CONFIG_HEAP_POISONING_LIGHT=
|
||||||
|
CONFIG_HEAP_POISONING_COMPREHENSIVE=
|
||||||
|
CONFIG_HEAP_TRACING=
|
||||||
|
|
||||||
|
#
|
||||||
|
# Log output
|
||||||
|
#
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL_NONE=
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL_ERROR=
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL_WARN=
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL_DEBUG=
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL_VERBOSE=
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL=3
|
||||||
|
CONFIG_LOG_COLORS=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# LWIP
|
||||||
|
#
|
||||||
|
CONFIG_L2_TO_L3_COPY=
|
||||||
|
CONFIG_LWIP_IRAM_OPTIMIZATION=
|
||||||
|
CONFIG_LWIP_MAX_SOCKETS=10
|
||||||
|
CONFIG_LWIP_SO_REUSE=y
|
||||||
|
CONFIG_LWIP_SO_REUSE_RXTOALL=y
|
||||||
|
CONFIG_LWIP_SO_RCVBUF=
|
||||||
|
CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
|
||||||
|
CONFIG_LWIP_IP_FRAG=
|
||||||
|
CONFIG_LWIP_IP_REASSEMBLY=
|
||||||
|
CONFIG_LWIP_STATS=
|
||||||
|
CONFIG_LWIP_ETHARP_TRUST_IP_MAC=y
|
||||||
|
CONFIG_TCPIP_RECVMBOX_SIZE=32
|
||||||
|
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=
|
||||||
|
|
||||||
|
#
|
||||||
|
# DHCP server
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
||||||
|
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
||||||
|
CONFIG_LWIP_AUTOIP=
|
||||||
|
CONFIG_LWIP_NETIF_LOOPBACK=y
|
||||||
|
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
||||||
|
|
||||||
|
#
|
||||||
|
# TCP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_MAX_ACTIVE_TCP=16
|
||||||
|
CONFIG_LWIP_MAX_LISTENING_TCP=16
|
||||||
|
CONFIG_TCP_MAXRTX=12
|
||||||
|
CONFIG_TCP_SYNMAXRTX=6
|
||||||
|
CONFIG_TCP_MSS=1436
|
||||||
|
CONFIG_TCP_MSL=60000
|
||||||
|
CONFIG_TCP_SND_BUF_DEFAULT=5744
|
||||||
|
CONFIG_TCP_WND_DEFAULT=5744
|
||||||
|
CONFIG_TCP_RECVMBOX_SIZE=6
|
||||||
|
CONFIG_TCP_QUEUE_OOSEQ=y
|
||||||
|
CONFIG_TCP_OVERSIZE_MSS=y
|
||||||
|
CONFIG_TCP_OVERSIZE_QUARTER_MSS=
|
||||||
|
CONFIG_TCP_OVERSIZE_DISABLE=
|
||||||
|
|
||||||
|
#
|
||||||
|
# UDP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_MAX_UDP_PCBS=16
|
||||||
|
CONFIG_UDP_RECVMBOX_SIZE=6
|
||||||
|
CONFIG_TCPIP_TASK_STACK_SIZE=3072
|
||||||
|
CONFIG_PPP_SUPPORT=
|
||||||
|
|
||||||
|
#
|
||||||
|
# ICMP
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_MULTICAST_PING=
|
||||||
|
CONFIG_LWIP_BROADCAST_PING=
|
||||||
|
|
||||||
|
#
|
||||||
|
# LWIP RAW API
|
||||||
|
#
|
||||||
|
CONFIG_LWIP_MAX_RAW_PCBS=16
|
||||||
|
|
||||||
|
#
|
||||||
|
# PThreads
|
||||||
|
#
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
|
||||||
|
|
||||||
|
#
|
||||||
|
# SPI Flash driver
|
||||||
|
#
|
||||||
|
CONFIG_SPI_FLASH_VERIFY_WRITE=
|
||||||
|
CONFIG_SPI_FLASH_ENABLE_COUNTERS=
|
||||||
|
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
|
||||||
|
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
|
||||||
|
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS=
|
||||||
|
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED=
|
||||||
|
|
||||||
|
#
|
||||||
|
# tcpip adapter
|
||||||
|
#
|
||||||
|
CONFIG_IP_LOST_TIMER_INTERVAL=120
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bluetooth
|
||||||
|
#
|
||||||
|
CONFIG_BT_ENABLED=y
|
||||||
|
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
||||||
|
CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y
|
||||||
|
CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4=
|
||||||
|
CONFIG_BLUEDROID_ENABLED=y
|
||||||
|
CONFIG_BLUEDROID_PINNED_TO_CORE=0
|
||||||
|
CONFIG_BTC_TASK_STACK_SIZE=6144
|
||||||
|
CONFIG_BLUEDROID_MEM_DEBUG=
|
||||||
|
CONFIG_CLASSIC_BT_ENABLED=
|
||||||
|
CONFIG_GATTS_ENABLE=y
|
||||||
|
CONFIG_GATTC_ENABLE=y
|
||||||
|
CONFIG_BLE_SMP_ENABLE=y
|
||||||
|
CONFIG_BT_STACK_NO_LOG=
|
||||||
|
CONFIG_BT_ACL_CONNECTIONS=4
|
||||||
|
CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=
|
||||||
|
CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=
|
||||||
|
CONFIG_SMP_ENABLE=y
|
||||||
|
CONFIG_BT_RESERVE_DRAM=0x10000
|
|
@ -0,0 +1,71 @@
|
||||||
|
# Overrides applied over defconfig
|
||||||
|
# Additional changes can be made via ESP_IDF_SDKCONFIG_OPTS
|
||||||
|
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_2MB=
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
||||||
|
CONFIG_PARTITION_TABLE_SINGLE_APP=
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="src/partitions_mgos.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="src/partitions_mgos.csv"
|
||||||
|
CONFIG_OPTIMIZATION_LEVEL_DEBUG=
|
||||||
|
CONFIG_OPTIMIZATION_LEVEL_RELEASE=y
|
||||||
|
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_UART=y
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP=y
|
||||||
|
CONFIG_ESP32_CORE_DUMP_UART_DELAY=0
|
||||||
|
CONFIG_ESP32_CORE_DUMP_LOG_LEVEL=1
|
||||||
|
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=3072
|
||||||
|
CONFIG_TASK_WDT_PANIC=y
|
||||||
|
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=0
|
||||||
|
|
||||||
|
CONFIG_WIFI_ENABLED=y
|
||||||
|
CONFIG_SW_COEXIST_ENABLE=
|
||||||
|
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=0
|
||||||
|
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
|
||||||
|
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
||||||
|
CONFIG_ESP32_WIFI_AMPDU_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||||
|
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||||
|
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||||
|
|
||||||
|
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
|
||||||
|
CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION=
|
||||||
|
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
|
||||||
|
CONFIG_ESP32_PHY_MAX_TX_POWER=20
|
||||||
|
CONFIG_DMA_RX_BUF_NUM=10
|
||||||
|
CONFIG_DMA_TX_BUF_NUM=10
|
||||||
|
CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE=
|
||||||
|
CONFIG_EMAC_TASK_PRIORITY=20
|
||||||
|
CONFIG_FREERTOS_UNICORE=y
|
||||||
|
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE=y
|
||||||
|
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=
|
||||||
|
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
||||||
|
CONFIG_FREERTOS_BREAK_ON_SCHEDULER_START_JTAG=y
|
||||||
|
CONFIG_TIMER_TASK_STACK_DEPTH=3072
|
||||||
|
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=
|
||||||
|
CONFIG_TCPIP_TASK_STACK_SIZE=3072
|
||||||
|
|
||||||
|
CONFIG_ESP32_XTAL_FREQ_40=
|
||||||
|
CONFIG_ESP32_XTAL_FREQ_26=
|
||||||
|
CONFIG_ESP32_XTAL_FREQ_AUTO=y
|
||||||
|
CONFIG_ESP32_XTAL_FREQ=0
|
||||||
|
CONFIG_BT_ENABLED=y
|
||||||
|
CONFIG_BLUEDROID_ENABLED=y
|
||||||
|
CONFIG_BTC_TASK_STACK_SIZE=6144
|
||||||
|
CONFIG_BLUEDROID_MEM_DEBUG=
|
||||||
|
CONFIG_CLASSIC_BT_ENABLED=
|
||||||
|
CONFIG_BT_DRAM_RELEASE=y
|
||||||
|
CONFIG_GATTS_ENABLE=y
|
||||||
|
CONFIG_GATTC_ENABLE=y
|
||||||
|
CONFIG_BLE_SMP_ENABLE=y
|
||||||
|
CONFIG_BT_STACK_NO_LOG=
|
||||||
|
CONFIG_BT_ACL_CONNECTIONS=4
|
||||||
|
CONFIG_BTDM_CONTROLLER_RUN_CPU=0
|
||||||
|
CONFIG_SMP_ENABLE=y
|
||||||
|
CONFIG_BT_RESERVE_DRAM=0x10000
|
||||||
|
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=500
|
Binary file not shown.
|
@ -0,0 +1,139 @@
|
||||||
|
load('api_config.js');
|
||||||
|
load('api_events.js');
|
||||||
|
load('api_gpio.js');
|
||||||
|
load('api_http.js');
|
||||||
|
load('api_net.js');
|
||||||
|
load('api_sys.js');
|
||||||
|
load('api_timer.js');
|
||||||
|
load('api_esp32.js');
|
||||||
|
load('api_dht.js');
|
||||||
|
load('api_adc.js');
|
||||||
|
load('api_rpc.js');
|
||||||
|
|
||||||
|
//Pins
|
||||||
|
let resetPin = 0;
|
||||||
|
let ledPin = 16;
|
||||||
|
let dhtPin = 22;
|
||||||
|
let moisturePin = 32;
|
||||||
|
let statusLightPin = 34;
|
||||||
|
|
||||||
|
// Turn on status led
|
||||||
|
GPIO.set_mode(ledPin, GPIO.MODE_OUTPUT);
|
||||||
|
GPIO.write(ledPin, 0);
|
||||||
|
|
||||||
|
//Reset Handler
|
||||||
|
GPIO.set_mode(resetPin, GPIO.MODE_INPUT);
|
||||||
|
GPIO.set_int_handler(resetPin, GPIO.INT_EDGE_NEG, function(resetPin) {
|
||||||
|
print('Pin', resetPin, 'got interrupt');
|
||||||
|
GPIO.toggle(ledPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(ledPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(ledPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(ledPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.toggle(ledPin);
|
||||||
|
Sys.usleep(200000);
|
||||||
|
GPIO.write(ledPin, 0);
|
||||||
|
|
||||||
|
Cfg.set({bt:{enable:true}});
|
||||||
|
Cfg.set({wifi:{sta:{enable:false}}});
|
||||||
|
Cfg.set({wifi:{ap:{enable:false}}});
|
||||||
|
Cfg.set({wifi:{sta:{ssid:'',pass:''}}});
|
||||||
|
|
||||||
|
Sys.reboot(1000);
|
||||||
|
}, null);
|
||||||
|
GPIO.enable_int(resetPin);
|
||||||
|
|
||||||
|
ADC.enable(moisturePin);
|
||||||
|
|
||||||
|
let dht = DHT.create(dhtPin, DHT.DHT11);
|
||||||
|
let deviceId = Cfg.get("device.id");
|
||||||
|
let connected = false;
|
||||||
|
let readSensors = Timer.set(5000, Timer.REPEAT, function() {
|
||||||
|
let t = dht.getTemp();
|
||||||
|
let h = dht.getHumidity();
|
||||||
|
let m = ADC.read(moisturePin);
|
||||||
|
let l = ADC.read(statusLightPin);
|
||||||
|
|
||||||
|
print("DeviceId:",deviceId,"Temperature:",t,"Humidity:",h,"Moisture:",m,"StatusLight:",l);
|
||||||
|
|
||||||
|
if (deviceId !== "" && connected)
|
||||||
|
{
|
||||||
|
GPIO.write(ledPin, 1);
|
||||||
|
let jsonData = {DeviceId: deviceId, Temperature: t, Humidity: h, Moisture: m, StatusLight: l};
|
||||||
|
HTTP.query({
|
||||||
|
headers: {'Content-Type' : 'application/json'},
|
||||||
|
url: 'http://httpbin.org/post', // replace with your own endpoint
|
||||||
|
data: jsonData,
|
||||||
|
success: function(body, full_http_msg)
|
||||||
|
{
|
||||||
|
print(body);
|
||||||
|
// sleep for 15 seconds, then (re)boot up and do it all over again
|
||||||
|
//ESP32.deepSleep(15000000); // 15 seconds
|
||||||
|
},
|
||||||
|
error: function(err)
|
||||||
|
{
|
||||||
|
print(err);
|
||||||
|
//ESP32.deepSleep(30000000); // 30 seconds
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
//Timer.del(readSensors);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, null);
|
||||||
|
|
||||||
|
// RPC Handlers
|
||||||
|
RPC.addHandler('HG.Temp.Read', function(args){
|
||||||
|
return { value: dht.getTemp() };
|
||||||
|
});
|
||||||
|
RPC.addHandler('HG.Humidity.Read', function(args){
|
||||||
|
return { value: dht.getHumidity() };
|
||||||
|
});
|
||||||
|
RPC.addHandler('HG.Light.Read', function(args){
|
||||||
|
return { value: ADC.read(statusLightPin) };
|
||||||
|
});
|
||||||
|
RPC.addHandler('HG.Moisture.Read', function(args){
|
||||||
|
return { value: ADC.read(moisturePin) };
|
||||||
|
});
|
||||||
|
RPC.addHandler('HG.StatusLED.On', function(args){
|
||||||
|
GPIO.write(ledPin, 0);
|
||||||
|
print("LED On");
|
||||||
|
if (GPIO.read(ledPin) !== 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
RPC.addHandler('HG.StatusLED.Off', function(args){
|
||||||
|
GPIO.write(ledPin, 1);
|
||||||
|
if (GPIO.read(ledPin) !== 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Monitor network connectivity.
|
||||||
|
Event.addGroupHandler(Net.EVENT_GRP, function(ev, evdata, arg) {
|
||||||
|
let status = true && connected;
|
||||||
|
let evs = '???';
|
||||||
|
if (ev === Net.STATUS_DISCONNECTED) {
|
||||||
|
evs = 'DISCONNECTED';
|
||||||
|
connected = false;
|
||||||
|
} else if (ev === Net.STATUS_CONNECTING) {
|
||||||
|
evs = 'CONNECTING';
|
||||||
|
connected = false;
|
||||||
|
} else if (ev === Net.STATUS_CONNECTED) {
|
||||||
|
evs = 'CONNECTED';
|
||||||
|
connected = false;
|
||||||
|
} else if (ev === Net.STATUS_GOT_IP) {
|
||||||
|
evs = 'GOT_IP';
|
||||||
|
connected = true;
|
||||||
|
}
|
||||||
|
}, null);
|
|
@ -0,0 +1,52 @@
|
||||||
|
author: Jason Harrell <info@latitude17.io>
|
||||||
|
description: LilyGo HiGrow ESP32 Plant Sensor v1
|
||||||
|
# arch: PLATFORM
|
||||||
|
version: 1.0
|
||||||
|
|
||||||
|
libs_version: ${mos.version}
|
||||||
|
modules_version: ${mos.version}
|
||||||
|
mongoose_os_version: ${mos.version}
|
||||||
|
|
||||||
|
config_schema:
|
||||||
|
- ["higrow", "o", {title: "LilyGo HiGrow ESP32 Plant Sensor v1 App Settings"}]
|
||||||
|
- ["higrow.deviceId", "s", "", {title: "DeviceId"}]
|
||||||
|
- ["higrow.temperature", "d", 0.0, {title: "Temperature"}]
|
||||||
|
- ["higrow.humidity", "d", 0.0, {title: "Humidity"}]
|
||||||
|
- ["higrow.statuslight", "i", 0, {title: "Light"}]
|
||||||
|
- ["higrow.moisture", "i", 0, {title: "Moisture"}]
|
||||||
|
- ["higrow.connected", "b", false, {title: "Connected"}]
|
||||||
|
- ["wifi.sta.enable", false]
|
||||||
|
- ["wifi.sta.ssid", ""]
|
||||||
|
- ["wifi.sta.pass", ""]
|
||||||
|
- ["wifi.ap.enable", false]
|
||||||
|
- ["device.id", "HiGrow_??????"]
|
||||||
|
- ["bt.dev_name", "HiGrowBT_"]
|
||||||
|
|
||||||
|
filesystem:
|
||||||
|
- fs
|
||||||
|
|
||||||
|
libs:
|
||||||
|
- origin: https://github.com/mongoose-os-libs/ca-bundle
|
||||||
|
- origin: https://github.com/mongoose-os-libs/bt-service-config
|
||||||
|
- origin: https://github.com/mongoose-os-libs/rpc-service-config
|
||||||
|
- origin: https://github.com/mongoose-os-libs/rpc-service-fs
|
||||||
|
- origin: https://github.com/mongoose-os-libs/rpc-uart
|
||||||
|
- origin: https://github.com/mongoose-os-libs/wifi
|
||||||
|
- origin: https://github.com/mongoose-os-libs/dht
|
||||||
|
- origin: https://github.com/mongoose-os-libs/mjs
|
||||||
|
- origin: https://github.com/mongoose-os-libs/adc
|
||||||
|
|
||||||
|
tags:
|
||||||
|
- js
|
||||||
|
- hardware
|
||||||
|
- higrow
|
||||||
|
- esp32
|
||||||
|
- ble
|
||||||
|
- plant
|
||||||
|
- lilygo
|
||||||
|
|
||||||
|
build_vars:
|
||||||
|
ESP_IDF_SDKCONFIG_OPTS: "${build_vars.ESP_IDF_SDKCONFIG_OPTS} CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=500"
|
||||||
|
|
||||||
|
# Used by the mos tool to catch mos binaries incompatible with this file format
|
||||||
|
manifest_version: 2017-05-18
|
Loading…
Reference in New Issue