mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 04:34:43 +04:00
Merge branch 'fz-dev' into dev
This commit is contained in:
7
.vscode/example/launch.json
vendored
7
.vscode/example/launch.json
vendored
@@ -11,11 +11,10 @@
|
||||
"args": {
|
||||
"useSingleResult": true,
|
||||
"env": {
|
||||
"PATH": "${workspaceFolder};${env:PATH}",
|
||||
"FBT_QUIET": 1
|
||||
"PATH": "${workspaceFolder}${command:extension.commandvariable.envListSep}${env:PATH}"
|
||||
},
|
||||
"command": "fbt get_blackmagic",
|
||||
"description": "Get Blackmagic device",
|
||||
"command": "fbt -s get_blackmagic",
|
||||
"description": "Get Blackmagic device"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
5
.vscode/extensions.json
vendored
5
.vscode/extensions.json
vendored
@@ -8,11 +8,12 @@
|
||||
"amiralizadeh9480.cpp-helper",
|
||||
"marus25.cortex-debug",
|
||||
"zxh404.vscode-proto3",
|
||||
"augustocdias.tasks-shell-input"
|
||||
"augustocdias.tasks-shell-input",
|
||||
"rioj7.command-variable"
|
||||
],
|
||||
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
|
||||
"unwantedRecommendations": [
|
||||
"twxs.cmake",
|
||||
"ms-vscode.cmake-tools"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -335,3 +335,9 @@ vscode_dist = distenv.Install("#.vscode", distenv.Glob("#.vscode/example/*"))
|
||||
distenv.Precious(vscode_dist)
|
||||
distenv.NoClean(vscode_dist)
|
||||
distenv.Alias("vscode_dist", vscode_dist)
|
||||
|
||||
# Configure shell with build tools
|
||||
distenv.PhonyTarget(
|
||||
"env",
|
||||
"@echo $( ${FBT_SCRIPT_DIR}/toolchain/fbtenv.sh $)",
|
||||
)
|
||||
|
||||
@@ -64,13 +64,16 @@ void desktop_debug_render(Canvas* canvas, void* model) {
|
||||
version_get_builddate(ver));
|
||||
canvas_draw_str(canvas, 0, 30 + STATUS_BAR_Y_SHIFT, buffer);
|
||||
|
||||
uint16_t api_major, api_minor;
|
||||
furi_hal_info_get_api_version(&api_major, &api_minor);
|
||||
snprintf(
|
||||
buffer,
|
||||
sizeof(buffer),
|
||||
"%s%s [%s] %s",
|
||||
"%s%s [%d.%d] %s",
|
||||
version_get_dirty_flag(ver) ? "[!] " : "",
|
||||
version_get_githash(ver),
|
||||
version_get_gitbranchnum(ver),
|
||||
api_major,
|
||||
api_minor,
|
||||
c2_ver ? c2_ver->StackTypeString : "<none>");
|
||||
canvas_draw_str(canvas, 0, 40 + STATUS_BAR_Y_SHIFT, buffer);
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <furi_hal_version.h>
|
||||
#include <furi_hal_region.h>
|
||||
#include <furi_hal_bt.h>
|
||||
#include <furi_hal_info.h>
|
||||
|
||||
typedef DialogMessageButton (*AboutDialogScreen)(DialogsApp* dialogs, DialogMessage* message);
|
||||
|
||||
@@ -164,14 +165,17 @@ static DialogMessageButton fw_version_screen(DialogsApp* dialogs, DialogMessage*
|
||||
if(!ver) { //-V1051
|
||||
furi_string_cat_printf(buffer, "No info\n");
|
||||
} else {
|
||||
uint16_t api_major, api_minor;
|
||||
furi_hal_info_get_api_version(&api_major, &api_minor);
|
||||
furi_string_cat_printf(
|
||||
buffer,
|
||||
"%s [%s]\n%s%s [%s] %s\n[%d] %s",
|
||||
"%s [%s]\n%s%s [%d.%d] %s\n[%d] %s",
|
||||
version_get_version(ver),
|
||||
version_get_builddate(ver),
|
||||
version_get_dirty_flag(ver) ? "[!] " : "",
|
||||
version_get_githash(ver),
|
||||
version_get_gitbranchnum(ver),
|
||||
api_major,
|
||||
api_minor,
|
||||
c2_ver ? c2_ver->StackTypeString : "<none>",
|
||||
version_get_target(ver),
|
||||
version_get_gitbranch(ver));
|
||||
|
||||
@@ -13,6 +13,7 @@ To use `fbt`, you only need `git` installed in your system.
|
||||
> However, if you wish to use tools supplied with the toolchain outside `fbt`, you can open an *fbt shell*, with properly configured environment.
|
||||
> - On Windows, simply run `scripts/toolchain/fbtenv.cmd`.
|
||||
> - On Linux & MacOS, run `source scripts/toolchain/fbtenv.sh` in a new shell.
|
||||
> - You can also type ```. `./fbt -s env` ``` in your shell. (Keep the "." at the beginning.)
|
||||
|
||||
If your system is not supported by pre-built toolchain variants or you want to use custom versions of dependencies, you can `set FBT_NOENV=1`. `fbt` will skip toolchain & environment configuration and will expect all tools to be available on your system's `PATH`. *(this option is not available on Windows)*
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ from SCons.Action import Action
|
||||
from SCons.Builder import Builder
|
||||
from SCons.Errors import StopError
|
||||
from SCons.Warnings import WarningOnByDefault, warn
|
||||
from SCons.Script import GetOption
|
||||
|
||||
# Adding objects for application management to env
|
||||
# AppManager env["APPMGR"] - loads all manifests; manages list of known apps
|
||||
@@ -28,7 +29,8 @@ def LoadAppManifest(env, entry):
|
||||
env["APPMGR"].load_manifest(app_manifest_file_path, entry)
|
||||
env.Append(PY_LINT_SOURCES=[app_manifest_file_path])
|
||||
except FlipperManifestException as e:
|
||||
warn(WarningOnByDefault, str(e))
|
||||
if not GetOption("silent"):
|
||||
warn(WarningOnByDefault, str(e))
|
||||
|
||||
|
||||
def PrepareApplicationsBuild(env):
|
||||
|
||||
@@ -34,6 +34,9 @@ Other:
|
||||
firmware_pvs:
|
||||
generate a PVS-Studio report
|
||||
|
||||
How to open a shell with toolchain environment and other build tools:
|
||||
In your shell, type "source `./fbt -s env`". You can also use "." instead of "source".
|
||||
|
||||
For more targets & info, see documentation/fbt.md
|
||||
"""
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import os
|
||||
import sys
|
||||
import serial
|
||||
import time
|
||||
import hashlib
|
||||
import math
|
||||
import logging
|
||||
import posixpath
|
||||
import enum
|
||||
import hashlib
|
||||
import logging
|
||||
import math
|
||||
import os
|
||||
import posixpath
|
||||
import sys
|
||||
import time
|
||||
|
||||
import serial
|
||||
|
||||
|
||||
def timing(func):
|
||||
@@ -236,6 +237,7 @@ class FlipperStorage:
|
||||
filesize = os.fstat(file.fileno()).st_size
|
||||
|
||||
buffer_size = self.chunk_size
|
||||
start_time = time.time()
|
||||
while True:
|
||||
filedata = file.read(buffer_size)
|
||||
size = len(filedata)
|
||||
@@ -254,11 +256,13 @@ class FlipperStorage:
|
||||
self.port.write(filedata)
|
||||
self.read.until(self.CLI_PROMPT)
|
||||
|
||||
percent = str(math.ceil(file.tell() / filesize * 100))
|
||||
ftell = file.tell()
|
||||
percent = str(math.ceil(ftell / filesize * 100))
|
||||
total_chunks = str(math.ceil(filesize / buffer_size))
|
||||
current_chunk = str(math.ceil(file.tell() / buffer_size))
|
||||
current_chunk = str(math.ceil(ftell / buffer_size))
|
||||
approx_speed = ftell / (time.time() - start_time + 0.0001)
|
||||
sys.stdout.write(
|
||||
f"\r{percent}%, chunk {current_chunk} of {total_chunks}"
|
||||
f"\r{percent}%, chunk {current_chunk} of {total_chunks} @ {approx_speed/1024:.2f} kb/s"
|
||||
)
|
||||
sys.stdout.flush()
|
||||
print()
|
||||
|
||||
@@ -15,7 +15,7 @@ class Main(App):
|
||||
|
||||
self.parser.add_argument("manifest_path", help="Manifest path")
|
||||
self.parser.add_argument(
|
||||
"--pkg_dir_name", help="Update dir name", default="pcbundle", required=False
|
||||
"--pkg_dir_name", help="Update dir name", default=None, required=False
|
||||
)
|
||||
self.parser.set_defaults(func=self.install)
|
||||
|
||||
|
||||
@@ -380,8 +380,9 @@ dist_env.Alias("vscode_dist", vscode_dist)
|
||||
# Creating app from base template
|
||||
|
||||
dist_env.SetDefault(FBT_APPID=appenv.subst("$APPID") or "template")
|
||||
app_template_dir = project_template_dir.Dir("app_template")
|
||||
app_template_dist = []
|
||||
for template_file in project_template_dir.Dir("app_template").glob("*"):
|
||||
for template_file in app_template_dir.glob("*"):
|
||||
dist_file_name = dist_env.subst(template_file.name)
|
||||
if template_file.name.endswith(".png"):
|
||||
app_template_dist.append(
|
||||
@@ -397,12 +398,13 @@ for template_file in project_template_dir.Dir("app_template").glob("*"):
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
AddPostAction(
|
||||
app_template_dist[-1],
|
||||
[
|
||||
Mkdir(original_app_dir.Dir("images")),
|
||||
Touch(original_app_dir.Dir("images").File(".gitkeep")),
|
||||
# scons' glob ignores .dot directories, so we need to copy .github manually
|
||||
Copy(original_app_dir.Dir(".github"), app_template_dir.Dir(".github")),
|
||||
],
|
||||
)
|
||||
dist_env.Precious(app_template_dist)
|
||||
@@ -440,3 +442,8 @@ else:
|
||||
raise UserError(f"Dolphin folder not found: {dolphin_src_dir}")
|
||||
|
||||
dist_env.PhonyTarget("dolphin_ext", Action(missing_dolphin_folder, None))
|
||||
|
||||
dist_env.PhonyTarget(
|
||||
"env",
|
||||
"@echo $( ${FBT_SCRIPT_DIR}/toolchain/fbtenv.sh $)",
|
||||
)
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
"amiralizadeh9480.cpp-helper",
|
||||
"marus25.cortex-debug",
|
||||
"zxh404.vscode-proto3",
|
||||
"augustocdias.tasks-shell-input"
|
||||
"augustocdias.tasks-shell-input",
|
||||
"rioj7.command-variable"
|
||||
],
|
||||
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
|
||||
"unwantedRecommendations": [
|
||||
|
||||
41
scripts/ufbt/project_template/app_template/.github/workflows/build.yml
vendored
Normal file
41
scripts/ufbt/project_template/app_template/.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
name: "FAP: Build for multiple SDK sources"
|
||||
# This will build your app for dev and release channels on GitHub.
|
||||
# It will also build your app every day to make sure it's up to date with the latest SDK changes.
|
||||
# See https://github.com/marketplace/actions/build-flipper-application-package-fap for more information
|
||||
|
||||
on:
|
||||
push:
|
||||
## put your main branch name under "braches"
|
||||
#branches:
|
||||
# - master
|
||||
pull_request:
|
||||
schedule:
|
||||
# do a build every day
|
||||
- cron: "1 1 * * *"
|
||||
|
||||
jobs:
|
||||
ufbt-build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- name: dev channel
|
||||
sdk-channel: dev
|
||||
- name: release channel
|
||||
sdk-channel: release
|
||||
# You can add unofficial channels here. See ufbt action docs for more info.
|
||||
name: 'ufbt: Build for ${{ matrix.name }}'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Build with ufbt
|
||||
uses: flipperdevices/flipperzero-ufbt-action@v0.1.1
|
||||
id: build-app
|
||||
with:
|
||||
sdk-channel: ${{ matrix.sdk-channel }}
|
||||
- name: Upload app artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
# See ufbt action docs for other output variables
|
||||
name: ${{ github.event.repository.name }}-${{ steps.build-app.outputs.suffix }}
|
||||
path: ${{ steps.build-app.outputs.fap-artifacts }}
|
||||
@@ -40,6 +40,9 @@ How to create a new application:
|
||||
2. Run `ufbt vscode_dist create APPID=myapp`
|
||||
3. In VSCode, open the folder and start editing.
|
||||
4. Run `ufbt launch` to build and upload your application.
|
||||
|
||||
How to open a shell with toolchain environment and other build tools:
|
||||
In your shell, type "source `ufbt -s env`". You can also use "." instead of "source".
|
||||
"""
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user