Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Build] Add short compressed build description (#3262) #3263

Open
wants to merge 32 commits into
base: mega
Choose a base branch
from

Conversation

TD-er
Copy link
Member

@TD-er TD-er commented Sep 20, 2020

See #3262

Outputs Tffff:e000:Pe800:24:4400:(3):800:
Equivalent to:

    "CONTROLLER_SET_ALL",
    "NOTIFIER_SET_NONE",
    "PLUGIN_SET_ONLY_SWITCH",
    "USES_P001",  # Switch
    "USES_P002",  # ADC
    "USES_P004",  # Dallas DS18b20
    "USES_P100",  # Pulse Counter - DS2423
    "USES_C016",  # Cache Controller
    "USES_C018",  # TTN/RN2483
    "USES_C015",  # TTN/RN2483

Still missing Notifier, CPU, flash size.

@tonhuisman
Copy link
Contributor

I think this would also need a Python counterpart, to define the filename before the compile is started?

@tonhuisman
Copy link
Contributor

Wouldn't it be more natural to first list the 'P' plugins bitmap, then the 'T' controllers bitmap and then the 'N' notifications bitmap? (to be implemented). I think most users will first look at the plugins before looking at the controllers, but that may just be me.

@TD-er
Copy link
Member Author

TD-er commented Sep 21, 2020

In size it wouldn't matter and in decoding probably also makes no difference.
But I doubt someone will try to read the filename encoding.
So we should make some decoder where it is most practical.

Maybe a JS piece of code somewhere online where a user can decode the string into readable form.

@tonhuisman
Copy link
Contributor

tonhuisman commented Oct 5, 2020

Been chewing a bit in the back of my mind for a couple of weeks now, and it feels more and more like a way to go forward. It may need a way to include the 'other' compile-time flags like FEATURE_SD, FEATURE_I2CMULTIPLEXER, FEATURE_ADD_VCC etc. Maybe some of the .h files (custom.h , define_plugin_sets.h) should be parsed to determine the actual features that will be included, not forgetting the features set from the .py scripts. Found pypreprocessor that could possibly handle that (after some adjustments to make it C-preprocessor compatible, as it now has its own dialect, and doesn't yet support #if defined(XX), comparisons, etc.).

See letscontrolit#3262

Outputs `Tffff:7:P17:2400:22:(3):10:`
Equivalent to:

```
    "CONTROLLER_SET_ALL",
    "NOTIFIER_SET_NONE",
    "PLUGIN_SET_ONLY_SWITCH",
    "USES_P001",  # Switch
    "USES_P002",  # ADC
    "USES_P004",  # Dallas DS18b20
    "USES_P100",  # Pulse Counter - DS2423
    "USES_C016",  # Cache Controller
    "USES_C018",  # TTN/RN2483
    "USES_C015",  # TTN/RN2483
```

Still missing Notifier, CPU, flash size.
[Build] Fix bit order in build description


Fix build issues after merge
@TD-er
Copy link
Member Author

TD-er commented Jul 27, 2022

Nee to add a bitmap too for all the FEATURE_xxx defines.

@tonhuisman
Copy link
Contributor

These are the (global) FEATURE_(flags) I found after converting all non-plugin, non-controller, non-Notifier USE_/USES_ settings:

Feature flags: (Alphabetic order)
---------------------------------
FEATURE_ADC_VCC
FEATURE_ARDUINO_OTA
FEATURE_BLYNK
FEATURE_CHART_JS
FEATURE_CUSTOM_PROVISIONING
FEATURE_DNS_SERVER
FEATURE_DOMOTICZ
FEATURE_DOWNLOAD
FEATURE_ESPEASY_P2P
FEATURE_ETHERNET
FEATURE_ETHERNET
FEATURE_EXT_RTC
FEATURE_FHEM
FEATURE_HOMEASSISTANT_OPENHAB
FEATURE_I2CMULTIPLEXER
FEATURE_I2C_DEVICE_SCAN
FEATURE_MDNS
FEATURE_MODBUS
FEATURE_MQTT
FEATURE_NON_STANDARD_24_TASKS
FEATURE_NOTIFIER
FEATURE_PACKED_RAW_DATA
FEATURE_PLUGIN_STATS
FEATURE_RTTTL
FEATURE_SD
FEATURE_SERVO
FEATURE_SETTINGS_ARCHIVE
FEATURE_SSDP
FEATURE_TIMING_STATS
FEATURE_TOOLTIPS
FEATURE_TRIGONOMETRIC_FUNCTIONS_RULES
// FEATURE_REPORTING

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants