Esecuzione di una sequenza di download.
Sintassi |
bool download_sequence(const bcc::message @cmd, bcc::message @asw, array<bcc::message @> @msgs) bool download_sequence(const bcc::message @cmd, bcc::message @asw, array<bcc::message @> @msgs, bcc::connector::update_state_cb @&in cb) |
---|---|
cmd |
Riferimento a messaggio di comando |
asw |
Riferimento a messaggio di risposta |
msgs |
Array di messaggi ricevuti |
cb |
Funzione di callback per aggiornamento stato operazione |
Risultato |
Rende true se comando con successo, false altrimenti |
Note |
I messaggi ricevuti vengono accordati ad eventuale contenuto già presente nell'array di destinazione specificato (msgs). Per ulteriori informazioni, consultare le specifiche di protocollo BCC/31. L'operazione è bloccante e può impiegare molto tempo, in proporzione al quantitativo di dati da trasferire. |
Esempio di utilizzo:
/* Funzione di esecuzione comando */ void do_flash_dir(bcc::client @client) { bcc::message cmd, asw; array<bcc::message@> msgs;
cmd.msg = bcc::msg::flash_dir; cmd.len = 4; cmd.set_uint32(0, 0x14f); cmd.len += cmd.set_string(4, "/fa/");
if (client.download_sequence(cmd, asw, msgs, state_cb)) { for (uint i = 0; i < msgs.size(); i++) { trace("asw[" + i + "] = '" msg.get_string(20) + "'"); } else { trace("failure, " + client.decode_nack(asw)); } } }
/* Funzione di call back per stato */ void state_cb(const string &in state, int progress) { trace("state_cb, state='" + state + "' progress=" + progress); }
|