Esecuzione di una sequenza di salvataggio dati.
Sintassi |
bool data_save_sequence(const bcc::message @cmd, bcc::message @asw, bytearray @in_data) bool data_save_sequence(const bcc::message @cmd, bcc::message @asw, bytearray @in_data, bcc::connector::update_state_cb @&in cb) |
---|---|
cmd |
Riferimento a messaggio di comando |
asw |
Riferimento a messaggio di risposta |
in_data |
Riferimento ad array di byte destinazione (dati in ingresso) |
cb |
Funzione di callback per aggiornamento stato operazione |
Risultato |
Rende true se comando con successo, false altrimenti |
Note |
Il contenuto di in_data viene modificato solo in caso di esito positivo: il contenuto precedente viene sostituito dai dati in ingresso. 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 salvataggio task ladder ín memoria */ bool do_save_ladder_task(bcc::client @client, uint16 process_id, bytearray @task) { bcc::message cmd, asw;
cmd.msg = bcc::msg::as | 801; cmd.len = 22; cmd.set_uint16(16, process_id); cmd.set_uint32(18, 0); return client.data_save_sequence(cmd, asw, task, state_cb); }
/* Funzione di call back per stato */ void state_cb(const string &in state, int progress) { trace("state_cb, state='" + state + "' progress=" + progress); }
|