Hämta data från lagringsstation


Data som finns lagrat på en ProviewR lagringsstation kan hämtas med klient gränssnittet sevcli.
Först initierar man sevcli med sevcli_init() och anger vilken lagringsstation man ska hämta
data ifrån med sevcli_set_servernode().

sevcli_tCtx sevctx;
char server_node[40] = "MyStorageStation";

if ( !sevcli_init( &sts, &sevctx))
   throw co_error(sts);

if ( !sevcli_set_servernode( &sts, sevctx, server_node))
   throw co_error(sts);

Därefter kan man hämta data med sevcli_get_itemdata(). Data identifieras med objektsidentitet
och attribut, dessutom anger man tidsintervall för det data som ska hämtas, och max antal
punkter.

pwr_tTime *time_buf;
void *value_buf;
pwr_tTime from = pwr_cNTime;
pwr_tTime to = pwr_cNTime;
int rows;
pwr_eType vtype;
unsigned int vsize;
pwr_tOName name = "H1-H2-Temperature";
pwr_tOName aname = "ActualValue";
pwr_tObjid oid;
char timstr[40];

sts = gdh_NameToObjid( name, &oid);
if (EVEN(sts)) throw co_error(sts);

if ( !sevcli_get_itemdata( &sts, sevctx, oid, aname, from, to, 1000, &time_buf, &value_buf,
                            &rows, &vtype, &vsize))
   throw co_error(sts);

for ( int i = 0; i < rows; i++) {
   time_AtoAscii( &time_buf[i], time_eFormat_DateAndTime, timstr, sizeof(timstr));

   cout << timstr << " " << ((pwr_tFloat32 *)value_buf)[i] << endl;
}

free( time_buf);
free( value_buf);

Slutligen anropar man sevcli_close() för att koppla ner anslutningen mot servernoden.

sevcli_close( &sts, sevctx);