feat(companion): vollständige MeshCore-Companion-Befehle (Settings/Save, Contact, Sign, Stats) #10

Merged
ppfeiffer merged 1 commit from feature/companion-protocol-complete into main 2026-06-05 06:52:04 +02:00
Owner

Portiert die fehlenden Companion-Protokoll-Handler aus MeshCore companion_radio in OPSMesh, gebunden an ops::config und die MeshService-Setter.

Behebt: 'Speichern' aus den Companion-Apps schlug fehl, weil alle SET_*-Befehle bisher mit COMP_ERR_UNSUPPORTED beantwortet wurden (Gerät meldet sich als Protokoll-v10, implementierte aber nur ~23 von 50+ Befehlen).

Neu (24 Befehle):

  • Settings/Save: SET_ADVERT_NAME(8), SET_RADIO_PARAMS(11), SET_RADIO_TX_POWER(12), SET_ADVERT_LATLON(14), SET_DEVICE_PIN(37), SET_OTHER_PARAMS(38), SET_PATH_HASH_MODE(61), SET_TUNING_PARAMS(21, ACK), FACTORY_RESET(51, reboot)
  • Contact: SHARE(16)/EXPORT(17)/IMPORT(18)_CONTACT via geerbte BaseChatMesh-Primitive
  • Signatur: SIGN_START/DATA/FINISH(33-35) via self_id.sign()
  • Misc/Read: GET_STATS(56), GET/SET_CUSTOM_VAR(40/41, gps), GET_TUNING_PARAMS(43), SET/GET_AUTOADD_CONFIG(58/59), GET_ALLOWED_REPEAT_FREQ(60), SET/GET_DEFAULT_FLOOD_SCOPE(63/64)

Bewusst NICHT umgesetzt: EXPORT/IMPORT_PRIVATE_KEY(23/24) aus Sicherheitsgründen (privater Schlüssel verlässt das Gerät nie über BLE); reine 'an-Kontakt-senden'-Kommandos (25/39/50/52/55/57/62).

Review-Checkliste (offen):

  • Ungetestet committet — pio run + Geräte-Test (T-Deck) ausstehend
  • IMPORT_CONTACT: Persistenz über Reboot ggf. nachziehen (importContact() füllt nur RAM-Tabelle)
  • FACTORY_RESET: aktuell nur Reboot, echter Wipe als TODO
  • SET_DEVICE_PIN: greift erst nach stop/startCompanionBLE()
  • AUTOADD_CONFIG-Bits (Bit0=Client, Bit1=Repeater) gegen App verifizieren
Portiert die fehlenden Companion-Protokoll-Handler aus MeshCore companion_radio in OPSMesh, gebunden an ops::config und die MeshService-Setter. **Behebt:** 'Speichern' aus den Companion-Apps schlug fehl, weil alle SET_*-Befehle bisher mit COMP_ERR_UNSUPPORTED beantwortet wurden (Gerät meldet sich als Protokoll-v10, implementierte aber nur ~23 von 50+ Befehlen). **Neu (24 Befehle):** - Settings/Save: SET_ADVERT_NAME(8), SET_RADIO_PARAMS(11), SET_RADIO_TX_POWER(12), SET_ADVERT_LATLON(14), SET_DEVICE_PIN(37), SET_OTHER_PARAMS(38), SET_PATH_HASH_MODE(61), SET_TUNING_PARAMS(21, ACK), FACTORY_RESET(51, reboot) - Contact: SHARE(16)/EXPORT(17)/IMPORT(18)_CONTACT via geerbte BaseChatMesh-Primitive - Signatur: SIGN_START/DATA/FINISH(33-35) via self_id.sign() - Misc/Read: GET_STATS(56), GET/SET_CUSTOM_VAR(40/41, gps), GET_TUNING_PARAMS(43), SET/GET_AUTOADD_CONFIG(58/59), GET_ALLOWED_REPEAT_FREQ(60), SET/GET_DEFAULT_FLOOD_SCOPE(63/64) **Bewusst NICHT umgesetzt:** EXPORT/IMPORT_PRIVATE_KEY(23/24) aus Sicherheitsgründen (privater Schlüssel verlässt das Gerät nie über BLE); reine 'an-Kontakt-senden'-Kommandos (25/39/50/52/55/57/62). **Review-Checkliste (offen):** - [ ] Ungetestet committet — pio run + Geräte-Test (T-Deck) ausstehend - [ ] IMPORT_CONTACT: Persistenz über Reboot ggf. nachziehen (importContact() füllt nur RAM-Tabelle) - [ ] FACTORY_RESET: aktuell nur Reboot, echter Wipe als TODO - [ ] SET_DEVICE_PIN: greift erst nach stop/startCompanionBLE() - [ ] AUTOADD_CONFIG-Bits (Bit0=Client, Bit1=Repeater) gegen App verifizieren
Portiert die fehlenden Companion-Protokoll-Handler aus MeshCore companion_radio
in OPSMesh, gebunden an ops::config und die MeshService-Setter:

- Settings/Save: SET_ADVERT_NAME(8), SET_RADIO_PARAMS(11), SET_RADIO_TX_POWER(12),
  SET_ADVERT_LATLON(14), SET_DEVICE_PIN(37), SET_OTHER_PARAMS(38),
  SET_PATH_HASH_MODE(61), SET_TUNING_PARAMS(21, ACK), FACTORY_RESET(51, reboot)
- Contact: SHARE(16)/EXPORT(17)/IMPORT(18)_CONTACT via geerbte BaseChatMesh-Primitive
- Signatur: SIGN_START/DATA/FINISH(33-35) via self_id.sign()
- Misc/Read: GET_STATS(56), GET/SET_CUSTOM_VAR(40/41, gps), GET_TUNING(43),
  SET/GET_AUTOADD_CONFIG(58/59), GET_ALLOWED_REPEAT_FREQ(60),
  SET/GET_DEFAULT_FLOOD_SCOPE(63/64)

Behebt: 'Speichern' aus den Companion-Apps schlug fehl, da SET_*-Befehle
bisher mit ERR_UNSUPPORTED beantwortet wurden.

PRIVATE_KEY Export/Import (23/24) bewusst NICHT implementiert (Sicherheit):
der private Schluessel verlaesst das Geraet nie ueber BLE.

Hinweis: ungetestet committet - Build/Flash/Geraetetest stehen aus.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ppfeiffer/OpenMeshOS!10
No description provided.