Skip to content

Collegamento BLE in doppia modalità #5

@itarozzi

Description

@itarozzi

Sulla base della modalità definita in configurazione, o ad ogni avvio sulla base di una combinazione di tasti al boot (??), avviare una delle 2 modalità BLE alternative.

BLE Server

  • Inizializzare il server BLE e rendersi rilevabile (advertising con MIDI service)
  • gestire connessione e abilitare quindi l'invio dei comandi MIDI
  • gestire eventuale disconnessione, ritornando in modalità advertising

BLE Client

  • Avviare lo scanning dei dispositivi BLE nelle vicinanze
  • in caso di individuazione di un dispositivo precedentemente collegato (questa cosa però va salvata!!!) collegarsi direttamente
  • altrimenti individuare dispositivi compatibili (vedi sotto)
  • collegarsi al primo dispositivo compatibile o permettere la selezione (vedi sotto)

Definizione del device a cui collegarsi, nel funzionamento come BLE Client
Dobbiamo decidere se collegarsi al primo device compatibile rilevato o permettere la scelta.

Il primo caso è ovviamente il più semplice, ma potrebbe comportare problemi nel caso di più dispositivi MIDI vicini e accesi. E' pur vero che devono essere tutti accesi contemporaneamente e in modalità di attesa connessione (cosa magari piuttosto rara).

In questa prima fase potrebbe andare bene questa soluzione.

Come step 2 (se lo riteniamo utile) potremmo rendere selezionabile il dispositivo a cui collegarsi; ma questo presuppone:

  • o un display locale in cui mostrare l'elenco e poi la gestione di pulsanti/encoder per selezionare (sperando che poi non chieda codice di abbinamento).
  • o un'interazione con un'app smartphone che esegua lei rilevamento e selezione, e poi passi al FW il MAC a cui collegarsi. Ma va messa in piedi app e comunicazione - non banale!

Metadata

Metadata

Assignees

Labels

FirmwareIssues/Features related to firmware

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions