Esecuzione di una sequenza di caricamento dati.
Sintassi |
bool data_load_sequence(const bcc::message @cmd, bcc::message @asw, const bytearray @out_data) bool data_load_sequence(const bcc::message @cmd, bcc::message @asw, const bytearray @out_data, bcc::connector::update_state_cb @&in cb) |
---|---|
cmd |
Riferimento a messaggio di comando |
asw |
Riferimento a messaggio di risposta |
out_data |
Riferimento ad array di byte sorgente (dati in uscita) |
cb |
Funzione di callback per aggiornamento stato operazione |
Risultato |
Rende true se comando con successo, false altrimenti |
Note |
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 caricamento task ladder ín memoria */ bool do_load_ladder_task(bcc::client @client, uint16 process_id, const bytearray @task) { bcc::message cmd, asw;
cmd.msg = bcc::msg::as | 800; cmd.len = 22; cmd.set_uint16(16, process_id); cmd.set_uint32(18, 0); return client.data_load_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); }
|