updated board from olimex c5
This commit is contained in:
+17
-16
@@ -10,6 +10,7 @@ from app.drivers.registry import registry
|
||||
from flask import current_app
|
||||
|
||||
_NFC_DRIVER_ID = "olimex_esp32_c6_evb_pn532"
|
||||
_NFC_DRIVER_IDS = {"olimex_esp32_c6_evb_pn532", "olimex_esp32_c5_evb"}
|
||||
|
||||
boards_bp = Blueprint("boards", __name__)
|
||||
|
||||
@@ -290,9 +291,9 @@ def edit_labels(board_id: int):
|
||||
@login_required
|
||||
def nfc_management(board_id: int):
|
||||
board = db.get_or_404(Board, board_id)
|
||||
if board.board_type != _NFC_DRIVER_ID:
|
||||
if board.board_type not in _NFC_DRIVER_IDS:
|
||||
abort(404)
|
||||
driver = registry.get(_NFC_DRIVER_ID)
|
||||
driver = registry.get(board.board_type)
|
||||
nfc_status = driver.get_nfc_status(board) if driver else None
|
||||
return render_template(
|
||||
"boards/nfc.html",
|
||||
@@ -305,9 +306,9 @@ def nfc_management(board_id: int):
|
||||
@login_required
|
||||
def nfc_status_json(board_id: int):
|
||||
board = db.get_or_404(Board, board_id)
|
||||
if board.board_type != _NFC_DRIVER_ID:
|
||||
if board.board_type not in _NFC_DRIVER_IDS:
|
||||
abort(404)
|
||||
driver = registry.get(_NFC_DRIVER_ID)
|
||||
driver = registry.get(board.board_type)
|
||||
data = driver.get_nfc_status(board) if driver else None
|
||||
if data is None:
|
||||
return jsonify({"error": "Board unreachable"}), 502
|
||||
@@ -320,22 +321,22 @@ def nfc_config_save(board_id: int):
|
||||
if not current_user.is_admin():
|
||||
abort(403)
|
||||
board = db.get_or_404(Board, board_id)
|
||||
if board.board_type != _NFC_DRIVER_ID:
|
||||
if board.board_type not in _NFC_DRIVER_IDS:
|
||||
abort(404)
|
||||
driver = registry.get(_NFC_DRIVER_ID)
|
||||
driver = registry.get(board.board_type)
|
||||
if not driver:
|
||||
flash("NFC driver not available.", "danger")
|
||||
return redirect(url_for("boards.nfc_management", board_id=board_id))
|
||||
|
||||
auth_uid = request.form.get("auth_uid", "").strip().upper()
|
||||
relay_num = int(request.form.get("relay_num", 1))
|
||||
pulse_ms = int(request.form.get("pulse_ms", 3000))
|
||||
pulse_ms = int(request.form.get("pulse_ms", 0))
|
||||
|
||||
if relay_num < 1 or relay_num > 4:
|
||||
flash("Relay number must be 1–4.", "danger")
|
||||
if relay_num < 1 or relay_num > board.num_relays:
|
||||
flash(f"Relay number must be 1–{board.num_relays}.", "danger")
|
||||
return redirect(url_for("boards.nfc_management", board_id=board_id))
|
||||
if pulse_ms < 100 or pulse_ms > 60000:
|
||||
flash("Absence timeout must be between 100 and 60 000 ms.", "danger")
|
||||
if pulse_ms < 0 or pulse_ms > 60000:
|
||||
flash("Release delay must be between 0 and 60 000 ms.", "danger")
|
||||
return redirect(url_for("boards.nfc_management", board_id=board_id))
|
||||
|
||||
ok = driver.set_nfc_config(board, auth_uid=auth_uid, relay_num=relay_num, pulse_ms=pulse_ms)
|
||||
@@ -354,9 +355,9 @@ def nfc_enroll(board_id: int):
|
||||
if not current_user.is_admin():
|
||||
abort(403)
|
||||
board = db.get_or_404(Board, board_id)
|
||||
if board.board_type != _NFC_DRIVER_ID:
|
||||
if board.board_type not in _NFC_DRIVER_IDS:
|
||||
abort(404)
|
||||
driver = registry.get(_NFC_DRIVER_ID)
|
||||
driver = registry.get(board.board_type)
|
||||
if not driver:
|
||||
flash("NFC driver not available.", "danger")
|
||||
return redirect(url_for("boards.nfc_management", board_id=board_id))
|
||||
@@ -372,7 +373,7 @@ def nfc_enroll(board_id: int):
|
||||
return redirect(url_for("boards.nfc_management", board_id=board_id))
|
||||
|
||||
relay_num = int(request.form.get("relay_num", status.get("relay_num", 1)))
|
||||
pulse_ms = int(request.form.get("pulse_ms", status.get("pulse_ms", 3000)))
|
||||
pulse_ms = int(request.form.get("pulse_ms", status.get("pulse_ms", 0)))
|
||||
|
||||
ok = driver.set_nfc_config(board, auth_uid=uid, relay_num=relay_num, pulse_ms=pulse_ms)
|
||||
if ok:
|
||||
@@ -389,9 +390,9 @@ def nfc_enable(board_id: int):
|
||||
if not current_user.is_admin():
|
||||
abort(403)
|
||||
board = db.get_or_404(Board, board_id)
|
||||
if board.board_type != _NFC_DRIVER_ID:
|
||||
if board.board_type not in _NFC_DRIVER_IDS:
|
||||
abort(404)
|
||||
driver = registry.get(_NFC_DRIVER_ID)
|
||||
driver = registry.get(board.board_type)
|
||||
if not driver:
|
||||
flash("NFC driver not available.", "danger")
|
||||
return redirect(url_for("boards.nfc_management", board_id=board_id))
|
||||
|
||||
Reference in New Issue
Block a user