From 4cd82883eacf42565c58b676150adb1819056cf4 Mon Sep 17 00:00:00 2001 From: "pls.153" Date: Sat, 2 Sep 2023 12:15:39 +0200 Subject: [PATCH] revisions --- examples/meshtastic/lisp/group.lisp | 9 +++++++++ examples/meshtastic/lisp/lora.lisp | 25 +++++++++---------------- examples/meshtastic/lisp/main.lisp | 17 +++++++++++++++++ examples/meshtastic/lisp/package.lisp | 3 +++ examples/meshtastic/lisp/radios.lisp | 9 ++++++++- examples/meshtastic/qml/main.qml | 5 +++++ 6 files changed, 51 insertions(+), 17 deletions(-) diff --git a/examples/meshtastic/lisp/group.lisp b/examples/meshtastic/lisp/group.lisp index 3de2098..00842dc 100644 --- a/examples/meshtastic/lisp/group.lisp +++ b/examples/meshtastic/lisp/group.lisp @@ -1,5 +1,14 @@ (in-package :group) +(defun ini () + (q> |model| ui:*modem* + (mapcar (lambda (kw) (string-downcase (symbol-name kw))) + (lora:keywords :modem-preset))) + (x:when-it (app:setting :modem-preset) + (q> |currentIndex| ui:*modem* + (q! |indexOfValue| ui:*modem* + (string-downcase (symbol-name x:it)))))) + (defun add-person (person) "Adds passed PERSON (a PLIST) to QML item model. The model keys are: diff --git a/examples/meshtastic/lisp/lora.lisp b/examples/meshtastic/lisp/lora.lisp index d912ede..97db124 100644 --- a/examples/meshtastic/lisp/lora.lisp +++ b/examples/meshtastic/lisp/lora.lisp @@ -12,6 +12,9 @@ (defvar *config-lora* nil) (defvar *ble-names* nil) +(defun ini () + (setf *receiver* (app:setting :latest-receiver))) + ;;; header (defun lsb (size) @@ -381,20 +384,10 @@ (group:receiver-changed) (values)) -(defun ini () - (setf *receiver* (app:setting :latest-receiver)) - ;; populate and set current region, modem-preset - (q> |model| ui:*region* - (cons "-" (rest (mapcar 'symbol-name (pr:enum-keywords 'me:config.lo-ra-config.region-code))))) - (q> |model| ui:*modem* - (mapcar (lambda (kw) (string-downcase (symbol-name kw))) - (pr:enum-keywords 'me:config.lo-ra-config.modem-preset))) - (x:when-it (app:setting :region) - (q> |currentIndex| ui:*region* - (q! |indexOfValue| ui:*region* - (symbol-name x:it)))) - (x:when-it (app:setting :modem-preset) - (q> |currentIndex| ui:*modem* - (q! |indexOfValue| ui:*modem* - (string-downcase (symbol-name x:it)))))) +(defun keywords (name) + (pr:enum-keywords (ecase name + (:modem-preset + 'me:config.lo-ra-config.modem-preset) + (:region-code + 'me:config.lo-ra-config.region-code)))) diff --git a/examples/meshtastic/lisp/main.lisp b/examples/meshtastic/lisp/main.lisp index be3776b..7ae0555 100644 --- a/examples/meshtastic/lisp/main.lisp +++ b/examples/meshtastic/lisp/main.lisp @@ -5,7 +5,9 @@ (restore-eventual-backup) (load-settings) (lora:ini) + (group:ini) (msg:ini) + (radios:ini) (db:ini) (loc:ini) (setf msg:*message-id* (db:max-message-id)) @@ -156,4 +158,19 @@ (delete-file x:it)) (loc:extract-map-bin t)) +;;; check app version (mobile) + +#+mobile +(defconstant +version+ 1) + +#+mobile +(let ((.version (merge-pathnames ".version"))) + (when (or (not (probe-file .version)) + (> +version+ + (parse-integer (alexandria:read-file-into-string .version)))) + ;; asset files may have changed + (copy-all-asset-files) + (alexandria:write-string-into-file + (princ-to-string +version+) .version :if-exists :supersede))) + (qlater 'ini) diff --git a/examples/meshtastic/lisp/package.lisp b/examples/meshtastic/lisp/package.lisp index afb3653..c5c2242 100644 --- a/examples/meshtastic/lisp/package.lisp +++ b/examples/meshtastic/lisp/package.lisp @@ -45,6 +45,7 @@ #:change-modem-preset #:channel-to-url #:ini + #:keywords #:my-name #:my-num #:send-position @@ -62,6 +63,7 @@ (:export #:add-person #:clear + #:ini #:name-edited #:receiver-changed #:set-unread)) @@ -107,6 +109,7 @@ #:change-radio #:clear #:device-discovered + #:ini #:reset-default-radio)) (defpackage :location diff --git a/examples/meshtastic/lisp/radios.lisp b/examples/meshtastic/lisp/radios.lisp index 61d6fe6..1e9287e 100644 --- a/examples/meshtastic/lisp/radios.lisp +++ b/examples/meshtastic/lisp/radios.lisp @@ -2,6 +2,14 @@ (defvar *found* nil) +(defun ini () + (q> |model| ui:*region* + (cons "-" (rest (mapcar 'symbol-name (lora:keywords :region-code))))) + (x:when-it (app:setting :region) + (q> |currentIndex| ui:*region* + (q! |indexOfValue| ui:*region* + (symbol-name x:it))))) + (defun device-discovered (name) "Show discovered (cached) device, which may not be reachable / turned on." (unless *found* @@ -27,7 +35,6 @@ (values)) (defun reset-default-radio () - ;; TODO: add in UI settings (app:change-setting :device nil) (lora:start-device-discovery)) diff --git a/examples/meshtastic/qml/main.qml b/examples/meshtastic/qml/main.qml index 0b1b709..f1b9a1b 100644 --- a/examples/meshtastic/qml/main.qml +++ b/examples/meshtastic/qml/main.qml @@ -28,6 +28,11 @@ Item { onTriggered: Lisp.call("msg:font-size-dialog") } + Ext.MenuItem { + text: qsTr("Update group/nodes") + onTriggered: Lisp.call("lora:start-config") + } + Ext.MenuItem { text: qsTr("Make backup") onTriggered: Lisp.call("app:make-backup")