Come abbinare e quale sintassi deve controllare byte_size
uguale a 12 lunghezze in handle_info()
? Posso usare entrambi i modelli in handle_info()
, ad es. prima cosa verificherà la stringa per la nuova riga, la seconda con byte_size
?Qual è la sintassi per byte_size nella corrispondenza del modello?
codice di esempio, senza byte_size
modello:
def init(_) do
{:ok, []}
end
def handle_info({:elixir_serial, serial, "\n"}, state) do
{:noreply, Enum.reverse(state)}
end
def handle_info({:elixir_serial, serial, data}, state) do
Logger.debug "data: #{data}"
{:noreply, [data | state]}
end
Come posso concat stringhe in arrivo da: elixir_serial fino portata stato desiderato 12 di lunghezza? Attualmente non corrisponde, i dati nell'ultimo handle_info() contengono una stringa con lunghezza diversa. Ho provato con << state :: bytes-size (12) >>, ma anche l'output è sbagliato. – luzny
Sto salvando i dati sul posto in cui si trova Logger.debug nel mio snippet di codice, è il posto giusto per gestire i dati corrispondenti? – luzny
Sì, quello è il posto giusto. Se i dati sono di dimensioni variabili, non corrisponderebbero affatto alla lunghezza. –