mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-06-20 12:55:06 +00:00
Fixes and improvements (#534)
This commit is contained in:
parent
a35c88c8fd
commit
e8b9a1f2a9
@ -40,8 +40,8 @@
|
|||||||
port_a: grove0 {
|
port_a: grove0 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_I2C>;
|
defaultMode = <GROVE_MODE_I2C>;
|
||||||
pinSdaRx = <&gpio0 2 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 2 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 1 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 1 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_1>;
|
uartPort = <UART_NUM_1>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
|
|||||||
@ -26,8 +26,8 @@
|
|||||||
port_a: grove0 {
|
port_a: grove0 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_I2C>;
|
defaultMode = <GROVE_MODE_I2C>;
|
||||||
pinSdaRx = <&gpio0 2 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 2 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 1 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 1 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_1>;
|
uartPort = <UART_NUM_1>;
|
||||||
i2cPort = <I2C_NUM_0>;
|
i2cPort = <I2C_NUM_0>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
|
|||||||
@ -41,8 +41,8 @@
|
|||||||
port_a: grove0 {
|
port_a: grove0 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_I2C>;
|
defaultMode = <GROVE_MODE_I2C>;
|
||||||
pinSdaRx = <&gpio0 32 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 32 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 33 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 33 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_1>;
|
uartPort = <UART_NUM_1>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
|
|||||||
@ -46,8 +46,8 @@
|
|||||||
port_a: grove0 {
|
port_a: grove0 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_I2C>;
|
defaultMode = <GROVE_MODE_I2C>;
|
||||||
pinSdaRx = <&gpio0 2 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 2 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 1 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 1 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_1>;
|
uartPort = <UART_NUM_1>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
@ -56,8 +56,8 @@
|
|||||||
port_b: grove1 {
|
port_b: grove1 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_UART>;
|
defaultMode = <GROVE_MODE_UART>;
|
||||||
pinSdaRx = <&gpio0 9 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 9 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 8 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 8 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_1>;
|
uartPort = <UART_NUM_1>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
@ -66,8 +66,8 @@
|
|||||||
port_c: grove2 {
|
port_c: grove2 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_UART>;
|
defaultMode = <GROVE_MODE_UART>;
|
||||||
pinSdaRx = <&gpio0 17 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 17 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 18 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 18 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_2>;
|
uartPort = <UART_NUM_2>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
|
|||||||
@ -80,8 +80,8 @@
|
|||||||
port_a: grove0 {
|
port_a: grove0 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_I2C>;
|
defaultMode = <GROVE_MODE_I2C>;
|
||||||
pinSdaRx = <&gpio0 2 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 2 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 1 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 1 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_2>;
|
uartPort = <UART_NUM_2>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
@ -90,8 +90,8 @@
|
|||||||
port_b: grove1 {
|
port_b: grove1 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_UART>;
|
defaultMode = <GROVE_MODE_UART>;
|
||||||
pinSdaRx = <&gpio0 9 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 9 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 8 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 8 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_2>;
|
uartPort = <UART_NUM_2>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
@ -100,8 +100,8 @@
|
|||||||
port_c: grove2 {
|
port_c: grove2 {
|
||||||
compatible = "espressif,esp32-grove";
|
compatible = "espressif,esp32-grove";
|
||||||
defaultMode = <GROVE_MODE_DISABLED>;
|
defaultMode = <GROVE_MODE_DISABLED>;
|
||||||
pinSdaRx = <&gpio0 17 GPIO_FLAG_NONE>;
|
pinSdaTx = <&gpio0 17 GPIO_FLAG_NONE>;
|
||||||
pinSclTx = <&gpio0 18 GPIO_FLAG_NONE>;
|
pinSclRx = <&gpio0 18 GPIO_FLAG_NONE>;
|
||||||
uartPort = <UART_NUM_2>;
|
uartPort = <UART_NUM_2>;
|
||||||
i2cPort = <I2C_NUM_1>;
|
i2cPort = <I2C_NUM_1>;
|
||||||
i2cClockFrequency = <400000>;
|
i2cClockFrequency = <400000>;
|
||||||
|
|||||||
@ -4,12 +4,16 @@
|
|||||||
|
|
||||||
### Beitian BH-222Q
|
### Beitian BH-222Q
|
||||||
|
|
||||||
|
Currently not working.
|
||||||
|
|
||||||
115200 baud, U-Blox 10 clone, defaults to binary messages
|
115200 baud, U-Blox 10 clone, defaults to binary messages
|
||||||
|
|
||||||
https://www.beitian.com/en/pd.jsp?id=1677
|
https://www.beitian.com/en/pd.jsp?id=1677
|
||||||
|
|
||||||
### Beitian BN-357ZF
|
### Beitian BN-357ZF
|
||||||
|
|
||||||
|
Configure as MTK L76B in GPS settings, or auto-detect as MTK L76K.
|
||||||
|
|
||||||
9600 baud, L76K clone
|
9600 baud, L76K clone
|
||||||
|
|
||||||
https://www.beitian.com/en/sys-pd/879.html
|
https://www.beitian.com/en/sys-pd/879.html
|
||||||
@ -20,7 +24,9 @@ https://www.beitian.com/en/sys-pd/879.html
|
|||||||
|
|
||||||
https://www.datasheethub.com/gy-neo6mv2-flight-control-gps-module/
|
https://www.datasheethub.com/gy-neo6mv2-flight-control-gps-module/
|
||||||
|
|
||||||
### M5Stack GPS
|
### M5Stack Mini GPS (AT6558)
|
||||||
|
|
||||||
|
Configure as ATGM336H.
|
||||||
|
|
||||||
9600 baud, AT6558 + MAX2659 (LNA)
|
9600 baud, AT6558 + MAX2659 (LNA)
|
||||||
|
|
||||||
|
|||||||
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
## Higher Priority
|
## Higher Priority
|
||||||
|
|
||||||
- Make a root device type so it can be discovered more easily.
|
- Require either SD card present or at least 8MB of flash. This way we can increase firmware size, ensure performance, and have a single location for storing data.
|
||||||
- When device.py selects a new device, it should automatically delete the build dirs (build/, cmake-*/) when it detects that the platform has changed.
|
- Consider storing data on SD card in `/tactility` folder (for usage with Launcher)
|
||||||
- Add font design tokens such as "regular", "title" and "smaller". Perhaps via the LVGL kernel module.
|
- Add font design tokens such as "regular", "title" and "smaller". Perhaps via the LVGL kernel module.
|
||||||
- Add kernel listening mechanism so that the root device init can be notified when a device becomes available:
|
- Add kernel listening mechanism so that the root device init can be notified when a device becomes available:
|
||||||
Callback for device/start stop with filtering on device type:
|
Callback for device/start stop with filtering on device type:
|
||||||
@ -24,13 +24,11 @@
|
|||||||
- DTS: support for #defines
|
- DTS: support for #defines
|
||||||
- DTS: support for aliases
|
- DTS: support for aliases
|
||||||
- SPI kernel driver
|
- SPI kernel driver
|
||||||
- iomux kernel driver
|
|
||||||
- Kernel concepts for ELF loading (generic approach for GUI apps, console apps, libraries).
|
- Kernel concepts for ELF loading (generic approach for GUI apps, console apps, libraries).
|
||||||
- Fix glitches when installing app via App Hub with 4.3" Waveshare
|
- Fix glitches when installing app via App Hub with 4.3" Waveshare
|
||||||
- TCA9534 keyboards should use interrupts
|
- TCA9534 keyboards should use interrupts
|
||||||
- GT911 drivers should use interrupts if it's stable
|
- GT911 drivers should use interrupts if it's stable
|
||||||
- Fix Cardputer (original): use LV_KEY_NEXT and _PREV in keyboard mapping instead of encoder driver hack (and check GPIO app if it then hangs too)
|
- Fix Cardputer (original): use LV_KEY_NEXT and _PREV in keyboard mapping instead of encoder driver hack (and check GPIO app if it then hangs too)
|
||||||
- Logging with a function that uses std::format
|
|
||||||
- Expose http::download() and main dispatcher to TactiltyC.
|
- Expose http::download() and main dispatcher to TactiltyC.
|
||||||
- External app loading: Check the version of Tactility and check ESP target hardware to check for compatibility
|
- External app loading: Check the version of Tactility and check ESP target hardware to check for compatibility
|
||||||
Check during installation process, but also when starting (SD card might have old app install from before Tactility OS update)
|
Check during installation process, but also when starting (SD card might have old app install from before Tactility OS update)
|
||||||
@ -59,15 +57,11 @@
|
|||||||
- Make WiFi setup app that starts an access point and hosts a webpage to set up the device.
|
- Make WiFi setup app that starts an access point and hosts a webpage to set up the device.
|
||||||
This will be useful for devices without a screen, a small screen or a non-touch screen.
|
This will be useful for devices without a screen, a small screen or a non-touch screen.
|
||||||
- Unify the way displays are dimmed. Some implementations turn off the display when it's fully dimmed. Make this a separate functionality.
|
- Unify the way displays are dimmed. Some implementations turn off the display when it's fully dimmed. Make this a separate functionality.
|
||||||
- Try out ILI9342 https://github.com/jbrilha/esp_lcd_ili9342
|
|
||||||
- All drivers (e.g. display, touch, etc.) should call stop() in their destructor, or at least assert that they should not be running.
|
|
||||||
- Bug: Turn on WiFi (when testing it wasn't connected/connecting - just active). Open chat. Observe crash.
|
- Bug: Turn on WiFi (when testing it wasn't connected/connecting - just active). Open chat. Observe crash.
|
||||||
- Bug: Crash handling app cannot be exited with an EncoderDevice. (current work-around is to manually reset the device)
|
- Bug: Crash handling app cannot be exited with an EncoderDevice. (current work-around is to manually reset the device)
|
||||||
- I2C app should show error when I2C port is disabled when the scan button was manually pressed
|
|
||||||
|
|
||||||
## Lower Priority
|
## Lower Priority
|
||||||
|
|
||||||
- The boot button on some devices can be used as GPIO_NUM_0 at runtime
|
|
||||||
- Localize all apps
|
- Localize all apps
|
||||||
- Support hot-plugging SD card (note: this is not possible if they require the CS pin hack)
|
- Support hot-plugging SD card (note: this is not possible if they require the CS pin hack)
|
||||||
- Explore LVGL9's FreeRTOS functionality
|
- Explore LVGL9's FreeRTOS functionality
|
||||||
@ -97,7 +91,6 @@
|
|||||||
- Audio recording app
|
- Audio recording app
|
||||||
- OTA updates
|
- OTA updates
|
||||||
- T-Deck Plus: Create separate device config?
|
- T-Deck Plus: Create separate device config?
|
||||||
- Support for displays with different DPI. Consider the layer-based system like on Android.
|
|
||||||
- If present, use LED to show boot/wifi status
|
- If present, use LED to show boot/wifi status
|
||||||
- Capacity based on voltage: estimation for various devices uses a linear voltage curve, but it should use a battery discharge curve.
|
- Capacity based on voltage: estimation for various devices uses a linear voltage curve, but it should use a battery discharge curve.
|
||||||
- Wrapper for lvgl slider widget that shows "+" and "-" buttons, and also the value in a label.
|
- Wrapper for lvgl slider widget that shows "+" and "-" buttons, and also the value in a label.
|
||||||
@ -121,14 +114,5 @@
|
|||||||
- IR transceiver app
|
- IR transceiver app
|
||||||
- GPS app
|
- GPS app
|
||||||
- Investigate CSI https://stevenmhernandez.github.io/ESP32-CSI-Tool/
|
- Investigate CSI https://stevenmhernandez.github.io/ESP32-CSI-Tool/
|
||||||
- Compile unix tools to ELF apps?
|
|
||||||
- Todo list
|
|
||||||
- Calendar
|
- Calendar
|
||||||
- Display touch calibration
|
|
||||||
- RSS reader
|
- RSS reader
|
||||||
- Static file web server (with option to specify path and port)
|
|
||||||
- Port TamaFi https://github.com/cifertech/TamaFi
|
|
||||||
|
|
||||||
# Notes on firmware size
|
|
||||||
|
|
||||||
- adding esp_http_client (with esp_event) added about 100kB
|
|
||||||
@ -7,14 +7,14 @@ properties:
|
|||||||
type: int
|
type: int
|
||||||
required: true
|
required: true
|
||||||
description: "One of enum Esp32GroveMode"
|
description: "One of enum Esp32GroveMode"
|
||||||
pinSdaRx:
|
pinSdaTx:
|
||||||
type: phandle-array
|
type: phandle-array
|
||||||
required: true
|
required: true
|
||||||
description: SDA (I2C) or RX (UART) pin
|
description: SDA (I2C) or TX (UART) pin
|
||||||
pinSclTx:
|
pinSclRx:
|
||||||
type: phandle-array
|
type: phandle-array
|
||||||
required: true
|
required: true
|
||||||
description: SCL (I2C) or TX (UART) pin
|
description: SCL (I2C) or RX (UART) pin
|
||||||
uartPort:
|
uartPort:
|
||||||
type: int
|
type: int
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -12,8 +12,8 @@ extern "C" {
|
|||||||
|
|
||||||
struct Esp32GroveConfig {
|
struct Esp32GroveConfig {
|
||||||
enum GroveMode defaultMode;
|
enum GroveMode defaultMode;
|
||||||
struct GpioPinSpec pinSdaRx;
|
struct GpioPinSpec pinSdaTx;
|
||||||
struct GpioPinSpec pinSclTx;
|
struct GpioPinSpec pinSclRx;
|
||||||
uart_port_t uartPort;
|
uart_port_t uartPort;
|
||||||
i2c_port_t i2cPort;
|
i2c_port_t i2cPort;
|
||||||
uint32_t i2cClockFrequency;
|
uint32_t i2cClockFrequency;
|
||||||
|
|||||||
@ -108,8 +108,8 @@ static error_t start_child(Device* device, GroveMode mode) {
|
|||||||
}
|
}
|
||||||
std::memset(uart_cfg, 0, sizeof(Esp32UartConfig));
|
std::memset(uart_cfg, 0, sizeof(Esp32UartConfig));
|
||||||
uart_cfg->port = config->uartPort;
|
uart_cfg->port = config->uartPort;
|
||||||
uart_cfg->pin_tx = config->pinSclTx;
|
uart_cfg->pin_rx = config->pinSclRx;
|
||||||
uart_cfg->pin_rx = config->pinSdaRx;
|
uart_cfg->pin_tx = config->pinSdaTx;
|
||||||
uart_cfg->pin_cts = GPIO_PIN_SPEC_NONE;
|
uart_cfg->pin_cts = GPIO_PIN_SPEC_NONE;
|
||||||
uart_cfg->pin_rts = GPIO_PIN_SPEC_NONE;
|
uart_cfg->pin_rts = GPIO_PIN_SPEC_NONE;
|
||||||
data->child_config = uart_cfg;
|
data->child_config = uart_cfg;
|
||||||
@ -131,8 +131,8 @@ static error_t start_child(Device* device, GroveMode mode) {
|
|||||||
std::memset(i2c_cfg, 0, sizeof(Esp32I2cMasterConfig));
|
std::memset(i2c_cfg, 0, sizeof(Esp32I2cMasterConfig));
|
||||||
i2c_cfg->port = static_cast<i2c_port_num_t>(config->i2cPort);
|
i2c_cfg->port = static_cast<i2c_port_num_t>(config->i2cPort);
|
||||||
i2c_cfg->clockFrequency = config->i2cClockFrequency;
|
i2c_cfg->clockFrequency = config->i2cClockFrequency;
|
||||||
i2c_cfg->pinSda = config->pinSdaRx;
|
i2c_cfg->pinSda = config->pinSdaTx;
|
||||||
i2c_cfg->pinScl = config->pinSclTx;
|
i2c_cfg->pinScl = config->pinSclRx;
|
||||||
// New driver seems to require pull-up setting
|
// New driver seems to require pull-up setting
|
||||||
i2c_cfg->pinSda.flags |= GPIO_FLAG_PULL_UP;
|
i2c_cfg->pinSda.flags |= GPIO_FLAG_PULL_UP;
|
||||||
i2c_cfg->pinScl.flags |= GPIO_FLAG_PULL_UP;
|
i2c_cfg->pinScl.flags |= GPIO_FLAG_PULL_UP;
|
||||||
|
|||||||
@ -34,7 +34,6 @@
|
|||||||
#include <tactility/lvgl_module.h>
|
#include <tactility/lvgl_module.h>
|
||||||
|
|
||||||
#ifdef ESP_PLATFORM
|
#ifdef ESP_PLATFORM
|
||||||
#include <tactility/drivers/root.h>
|
|
||||||
#include <Tactility/InitEsp.h>
|
#include <Tactility/InitEsp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
32
device.py
32
device.py
@ -1,5 +1,7 @@
|
|||||||
import configparser
|
import configparser
|
||||||
|
import glob
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
|
|
||||||
@ -392,14 +394,42 @@ def write_properties(output_file, device_properties: ConfigParser, device_id: st
|
|||||||
write_custom_sdkconfig(output_file, device_properties)
|
write_custom_sdkconfig(output_file, device_properties)
|
||||||
write_lvgl_variables(output_file, device_properties)
|
write_lvgl_variables(output_file, device_properties)
|
||||||
|
|
||||||
|
def get_current_sdkconfig_target(sdkconfig_path: str):
|
||||||
|
if not os.path.isfile(sdkconfig_path):
|
||||||
|
return None
|
||||||
|
with open(sdkconfig_path, "r") as f:
|
||||||
|
for line in f:
|
||||||
|
if line.startswith("CONFIG_IDF_TARGET="):
|
||||||
|
return line.split("=", 1)[1].strip().strip('"')
|
||||||
|
return None
|
||||||
|
|
||||||
|
def clean_build_dirs_on_platform_change(previous_target: str, new_target: str):
|
||||||
|
if previous_target is None or previous_target == new_target:
|
||||||
|
return
|
||||||
|
dirs_to_remove = []
|
||||||
|
if os.path.isdir("build"):
|
||||||
|
dirs_to_remove.append("build")
|
||||||
|
for d in glob.glob("cmake-build-*/"):
|
||||||
|
dirs_to_remove.append(d.rstrip("/"))
|
||||||
|
if not dirs_to_remove:
|
||||||
|
return
|
||||||
|
print(f"Platform changed ({previous_target} -> {new_target}), removing build dirs:")
|
||||||
|
for d in dirs_to_remove:
|
||||||
|
print(f" {d}")
|
||||||
|
shutil.rmtree(d)
|
||||||
|
|
||||||
def main(device_id: str, is_dev: bool):
|
def main(device_id: str, is_dev: bool):
|
||||||
device_properties_path = get_properties_file_path(device_id)
|
device_properties_path = get_properties_file_path(device_id)
|
||||||
if not os.path.isfile(device_properties_path):
|
if not os.path.isfile(device_properties_path):
|
||||||
exit_with_error(f"{device_id} is not a valid device identifier (could not found {device_properties_path})")
|
exit_with_error(f"{device_id} is not a valid device identifier (could not found {device_properties_path})")
|
||||||
output_file_path = "sdkconfig"
|
output_file_path = "sdkconfig"
|
||||||
|
# Clean build dirs if target changes
|
||||||
|
device_properties = read_device_properties(device_id)
|
||||||
|
new_target = get_property_or_exit(device_properties, "hardware", "target").lower()
|
||||||
|
sdkconfig_target = get_current_sdkconfig_target(output_file_path)
|
||||||
|
clean_build_dirs_on_platform_change(sdkconfig_target, new_target)
|
||||||
if os.path.isfile(output_file_path):
|
if os.path.isfile(output_file_path):
|
||||||
os.remove(output_file_path)
|
os.remove(output_file_path)
|
||||||
device_properties = read_device_properties(device_id)
|
|
||||||
with open(output_file_path, "w") as output_file:
|
with open(output_file_path, "w") as output_file:
|
||||||
write_properties(output_file, device_properties, device_id, is_dev)
|
write_properties(output_file, device_properties, device_id, is_dev)
|
||||||
if is_dev:
|
if is_dev:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user