Compare commits
4 Commits
feat/api_e
...
file-uploa
| Author | SHA1 | Date | |
|---|---|---|---|
| 9320a3cff2 | |||
| 65efebc5c2 | |||
| 040ae4a731 | |||
| 9cf044bc80 |
@@ -153,6 +153,8 @@
|
||||
<li><button onclick="showScreen('playlist')">Open Playlist Editor</button></li>
|
||||
<!-- More screens can be added later -->
|
||||
</ul>
|
||||
<hr>
|
||||
<button onclick="requestReboot()">Reboot to bootloader</button>
|
||||
</div>
|
||||
|
||||
<!-- CONFIG EDITOR SCREEN -->
|
||||
@@ -964,6 +966,14 @@
|
||||
|
||||
return { init, onShow };
|
||||
})();
|
||||
|
||||
// Misc
|
||||
async function requestReboot() {
|
||||
const resp = await fetch('/api/v1/reboot/bootloader', {'method': 'POST'});
|
||||
if (!resp.ok) {
|
||||
alert('Reboot to bootloader failed: ' + await resp.text());
|
||||
}
|
||||
}
|
||||
|
||||
// Initialization
|
||||
Object.values(Screens).forEach(screen => {
|
||||
|
||||
@@ -196,8 +196,5 @@ class PlayerApp:
|
||||
def get_playlist_db(self):
|
||||
return self.playlist_db
|
||||
|
||||
def get_timer_manager(self):
|
||||
return self.timer_manager
|
||||
|
||||
def get_leds(self):
|
||||
return self.leds
|
||||
|
||||
@@ -4,6 +4,7 @@ Copyright (c) 2024-2025 Stefan Kratochwil <Kratochwil-LA@gmx.de>
|
||||
'''
|
||||
|
||||
import asyncio
|
||||
import hwconfig
|
||||
import json
|
||||
import machine
|
||||
import os
|
||||
@@ -33,7 +34,7 @@ def start_webserver(config_, app_):
|
||||
nfc = app.get_nfc()
|
||||
playlist_db = app.get_playlist_db()
|
||||
leds = app.get_leds()
|
||||
timer_manager = app.get_timer_manager()
|
||||
timer_manager = TimerManager()
|
||||
|
||||
|
||||
@webapp.before_request
|
||||
@@ -257,10 +258,13 @@ async def audiofile_delete(request):
|
||||
|
||||
@webapp.route('/api/v1/reboot/<method>', methods=['POST'])
|
||||
async def reboot(request, method):
|
||||
if hwconfig.get_on_battery():
|
||||
return 'not allowed: usb not connected', 403
|
||||
|
||||
if method == 'bootloader':
|
||||
leds.set_state(LedManager.REBOOTING)
|
||||
timer_manager.schedule(time.ticks_ms() + 1500, machine.bootloader)
|
||||
elif method =='application':
|
||||
elif method == 'application':
|
||||
leds.set_state(LedManager.REBOOTING)
|
||||
timer_manager.schedule(time.ticks_ms() + 1500, machine.reset)
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user