Commit 8ab48c43 authored by Claes Sjofors's avatar Claes Sjofors

Sev server threads

parent e13b730c
......@@ -36,6 +36,7 @@
#include <math.h>
#include <pthread.h>
#include <float.h>
#include "pwr.h"
#include "co_cdh.h"
......@@ -88,6 +89,7 @@ int sev_server::init( int noneth)
qcom_sAid aid;
qcom_sQid qini;
sev_sDbConfig db_config;
char str[80];
m_server_status = PWR__SRVSTARTUP;
......@@ -118,11 +120,11 @@ int sev_server::init( int noneth)
exit(0);
}
memset( m_config->ServerThreads, 0, sizeof(m_config->ServerThreads));
}
else {
// Read config from proview.cnf
static pwr_sClass_SevServer config;
char str[80];
float fvalue;
memset( &config, 0, sizeof(config));
......@@ -168,6 +170,14 @@ int sev_server::init( int noneth)
}
}
if ( cnf_get_value( "sevThreadKeyNode", str, sizeof(str))) {
if ( cdh_NoCaseStrcmp( str, "1") == 0)
m_thread_key_node = 1;
}
if ( m_config->UseServerThreads)
m_read_threads = 1;
switch ( m_config->Database) {
case pwr_eSevDatabaseEnum_MySQL:
set_dbtype( sev_eDbType_Mysql);
......@@ -249,6 +259,9 @@ int sev_server::init( int noneth)
if ( !m_noneth)
m_sts = m_db->tree_update();
if ( m_read_threads)
create_garbage_collector_thread();
return 1;
}
......@@ -513,24 +526,37 @@ int sev_server::mainloop()
else
m_stat.medium_load = a * m_stat.medium_load + (1.0-a) * m_stat.current_load;
m_stat.storage_rate = (float)m_storage_cnt / (time_DToFloat(0, &busy)+time_DToFloat(0, &idle));
m_stat.write_rate = (float)m_write_cnt / (time_DToFloat(0, &busy)+time_DToFloat(0, &idle));
if ( m_stat.medium_storage_rate == 0)
m_stat.medium_storage_rate = m_stat.storage_rate;
else
m_stat.medium_storage_rate = a * m_stat.medium_storage_rate + (1.0-a) * m_stat.storage_rate;
if ( m_stat.medium_write_rate == 0)
m_stat.medium_write_rate = m_stat.write_rate;
else
m_stat.medium_write_rate = a * m_stat.medium_write_rate + (1.0-a) * m_stat.write_rate;
if ( m_stat.medium_storage_rate < FLT_EPSILON)
m_stat.write_quota = 0;
else
m_stat.write_quota = m_stat.medium_write_rate / m_stat.medium_storage_rate * 100;
m_storage_cnt = 0;
m_write_cnt = 0;
m_db->store_stat( &m_stat);
m_config->Stat.CurrentLoad = m_stat.current_load;
m_config->Stat.MediumLoad = m_stat.medium_load;
m_config->Stat.StorageRate = m_stat.storage_rate;
m_config->Stat.MediumStorageRate = m_stat.medium_storage_rate;
m_config->Stat.WriteRate = m_stat.write_rate;
m_config->Stat.MediumWriteRate = m_stat.medium_write_rate;
m_config->Stat.WriteQuota = m_stat.write_quota;
time_Aadd( &next_stat, &next_stat, &stat_interval);
busy = pwr_cNDeltaTime;
idle = pwr_cNDeltaTime;
}
if ( time_Acomp( &currenttime, &next_garco) == 1) {
garbage_collector();
if ( m_read_threads && time_Acomp( &currenttime, &next_garco) == 1) {
garbage_collector( 0);
time_Aadd( &next_garco, &next_garco, &garco_interval);
}
if ( sts == QCOM__TMO || !mp)
......@@ -549,7 +575,7 @@ int sev_server::mainloop()
m_stat.items_msg_cnt++;
break;
case sev_eMsgType_HistDataStore:
receive_histdata( (sev_sMsgHistDataStore *) mp, get.size);
receive_histdata( (sev_sMsgHistDataStore *) mp, get.size, get.sender.nid);
m_stat.datastore_msg_cnt++;
break;
case sev_eMsgType_HistDataGetRequest:
......@@ -819,7 +845,7 @@ int sev_server::check_histitems( sev_sMsgHistItems *msg, unsigned int size)
return 1;
}
int sev_server::receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size)
int sev_server::receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size, pwr_tNid nid)
{
pwr_tStatus sts;
sev_sHistData *dp;
......@@ -853,6 +879,7 @@ int sev_server::receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size)
time = net_NetTimeToTime( &msg->Time);
m_db->store_value( &m_sts, 0, idx, 0, time, &dp->data, dp->size);
m_storage_cnt++;
m_write_cnt++;
dp = (sev_sHistData *)((char *)dp + sizeof( *dp) - sizeof(dp->data) + dp->size);
}
......@@ -864,7 +891,9 @@ int sev_server::receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size)
sev_sReceiveHistDataMsg *qmsg;
pwr_tUInt32 key;
// if ( key == nodeid)
if ( m_thread_key_node)
key = nid;
else
key = server_thread;
th = find_thread( key);
......@@ -875,7 +904,7 @@ int sev_server::receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size)
// Create a queue message
if ( th->alloc + sizeof(*qmsg) - sizeof(qmsg->data) + size > m_config->ThreadQueueLimit) {
// Queue maxlimit exceede, discard message
// Queue maxlimit exceeded, discard message
m_config->ServerThreads[th->conf_idx].LostCnt++;
return 1;
}
......@@ -884,6 +913,7 @@ int sev_server::receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size)
memcpy( &qmsg->data, dp, size);
qmsg->size = size;
qmsg->time = msg->Time;
lst_Init( NULL, &qmsg->e, qmsg);
th->alloc += qmsg->size;
if ( th->conf_idx >= 0) {
......@@ -907,6 +937,7 @@ int sev_server::send_histdata( qcom_sQid tgt, sev_sMsgHistDataGetRequest *rmsg,
arg->size = size;
if ( m_read_threads) {
printf( "New read thread\n");
sts = pthread_create( &thread, NULL, send_histdata_thread, arg);
if ( sts != 0)
printf( "pthread_create error %d\n", sts);
......@@ -928,6 +959,7 @@ void *sev_server::send_histdata_thread( void *arg)
pwr_tStatus sts, lsts;
pwr_tTime starttime, endtime;
unsigned int item_idx;
void *thread = 0;
sev_server *sev = ((sev_sHistDataThread *)arg)->sev;
qcom_sQid tgt = ((sev_sHistDataThread *)arg)->tgt;
......@@ -944,7 +976,10 @@ void *sev_server::send_histdata_thread( void *arg)
return (void *) 1;
}
sev->m_db->get_values( &sts, rmsg->Oid, sev->m_db->m_items[item_idx].options,
if ( sev->m_read_threads)
thread = sev->m_db->new_thread();
sev->m_db->get_values( &sts, thread, rmsg->Oid, sev->m_db->m_items[item_idx].options,
sev->m_db->m_items[item_idx].deadband,
rmsg->AName, sev->m_db->m_items[item_idx].attr[0].type,
sev->m_db->m_items[item_idx].attr[0].size,
......@@ -987,6 +1022,10 @@ void *sev_server::send_histdata_thread( void *arg)
if ( !qcom_Put( &sts, &tgt, &put)) {
qcom_Free( &sts, put.data);
}
if ( sev->m_read_threads)
sev->m_db->delete_thread( thread);
// pthread_exit( (void *) 1);
return (void *) 1;
}
......@@ -1008,7 +1047,7 @@ int sev_server::send_objecthistdata( qcom_sQid tgt, sev_sMsgHistDataGetRequest *
m_db->get_objectitem(&m_sts, &item, rmsg->Oid, rmsg->AName);
if(ODD(m_sts)) {
m_db->get_objectvalues(&m_sts, &item, item.value_size, &starttime, &endtime, rmsg->NumPoints, &tbuf, &vbuf, &rows);
m_db->get_objectvalues(&m_sts, 0, &item, item.value_size, &starttime, &endtime, rmsg->NumPoints, &tbuf, &vbuf, &rows);
}
if ( ODD(m_sts) && rows != 0 ) {
msize = rows * ( sizeof(pwr_tTime) + item.value_size);
......@@ -1099,7 +1138,45 @@ int sev_server::receive_events( sev_sMsgEventsStore *msg, unsigned int size)
return 1;
}
void sev_server::garbage_collector()
void sev_server::create_garbage_collector_thread()
{
pthread_t pthread;
int sts;
sts = pthread_create( &pthread, NULL, garbage_collector_thread, this);
if ( sts != 0)
printf( "sev_server: pthread_create error %d\n", sts);
}
void *sev_server::garbage_collector_thread( void *arg)
{
void *thread = 0;
pwr_tTime next_garco, currenttime;
pwr_tDeltaTime garco_interval;
sev_server *sev = (sev_server *)arg;
thread = sev->m_db->new_thread();
time_FloatToD( &garco_interval, sev_cGarbageInterval);
time_GetTime( &currenttime);
time_Aadd( &next_garco, &currenttime, &garco_interval);
while ( 1) {
sleep(1);
if ( time_Acomp( &currenttime, &next_garco) == 1) {
sev->garbage_collector( thread);
time_Aadd( &next_garco, &next_garco, &garco_interval);
}
}
sev->m_db->delete_thread( thread);
return (void *) 1;
}
void sev_server::garbage_collector( void *thread)
{
int item_size = m_db->m_items.size();
static int current = 0;
......@@ -1115,7 +1192,7 @@ void sev_server::garbage_collector()
if ( items_per_scan >= 1) {
for ( i = 0; i < (int)items_per_scan; i++) {
garbage_item( current);
garbage_item( thread, current);
current++;
if ( current >= item_size)
current = 0;
......@@ -1127,7 +1204,7 @@ void sev_server::garbage_collector()
if ( scan_cnt >= scan_per_items) {
scan_cnt = 0;
garbage_item( current);
garbage_item( thread, current);
current++;
if ( current >= item_size)
......@@ -1136,7 +1213,7 @@ void sev_server::garbage_collector()
}
}
void sev_server::garbage_item( int idx)
void sev_server::garbage_item( void *thread, int idx)
{
pwr_tTime currenttime, limit;
......@@ -1150,11 +1227,11 @@ void sev_server::garbage_item( int idx)
time_Asub( &limit, &currenttime, &m_db->m_items[idx].storagetime);
if( m_db->m_items[idx].attrnum > 1 ) {
m_db->delete_old_objectdata( &m_sts, m_db->m_items[idx].tablename,
m_db->delete_old_objectdata( &m_sts, thread, m_db->m_items[idx].tablename,
m_db->m_items[idx].options, limit, m_db->m_items[idx].scantime, (float)sev_cGarbageCycle);
}
else {
m_db->delete_old_data( &m_sts, m_db->m_items[idx].tablename,
m_db->delete_old_data( &m_sts, thread, m_db->m_items[idx].tablename,
m_db->m_items[idx].options, limit, m_db->m_items[idx].scantime, (float)sev_cGarbageCycle);
}
}
......@@ -1186,6 +1263,7 @@ void *sev_server::receive_histdata_thread( void *arg)
pwr_sClass_SevServerThread *thread_conf = 0;
float current_load;
int storage_cnt = 0;
int write_cnt = 0;
if ( th->conf_idx >= 0)
thread_conf = &sev->m_config->ServerThreads[th->conf_idx];
......@@ -1222,7 +1300,17 @@ void *sev_server::receive_histdata_thread( void *arg)
thread_conf->MediumStorageRate = thread_conf->StorageRate;
else
thread_conf->MediumStorageRate = a * thread_conf->MediumStorageRate + (1.0-a) * thread_conf->StorageRate;
thread_conf->WriteRate = (float)write_cnt / (time_DToFloat(0, &busy)+time_DToFloat(0, &idle));
if ( thread_conf->MediumWriteRate == 0)
thread_conf->MediumWriteRate = thread_conf->WriteRate;
else
thread_conf->MediumWriteRate = a * thread_conf->MediumWriteRate + (1.0-a) * thread_conf->WriteRate;
if ( thread_conf->MediumStorageRate < FLT_EPSILON)
thread_conf->WriteQuota = 0;
else
thread_conf->WriteQuota = thread_conf->MediumWriteRate / thread_conf->MediumStorageRate * 100;
storage_cnt = 0;
write_cnt = 0;
time_Aadd( &next_stat, &next_stat, &stat_interval);
busy = pwr_cNDeltaTime;
......@@ -1253,6 +1341,10 @@ void *sev_server::receive_histdata_thread( void *arg)
sev->m_db->store_value( &sev->m_sts, th->db_ctx, idx, 0, time, &dp->data, dp->size);
sev->m_storage_cnt++;
storage_cnt++;
if ( ODD(sev->m_sts) && sev->m_sts != SEV__NOWRITE) {
sev->m_write_cnt++;
write_cnt++;
}
dp = (sev_sHistData *)((char *)dp + sizeof( *dp) - sizeof(dp->data) + dp->size);
}
......@@ -1260,6 +1352,8 @@ void *sev_server::receive_histdata_thread( void *arg)
sev->m_db->commit_transaction( th->db_ctx);
th->alloc -= msg->size;
if ( th->alloc < 0)
th->alloc = 0;
if ( th->conf_idx >= 0)
thread_conf->QueueAlloc = th->alloc;
......@@ -1295,6 +1389,7 @@ sev_sThread *sev_server::create_thread( int key)
printf( "sev_server: pthread_create error %d\n", sts);
if ( th->conf_idx >= 0) {
m_config->ServerThreads[th->conf_idx].Occupied = 1;
m_config->ServerThreads[th->conf_idx].Key = key;
}
......@@ -1314,7 +1409,15 @@ void sev_server::delete_thread( int key)
}
sev_server::~sev_server()
{
for ( threadlist_iterator it = m_thread_list.begin(); it != m_thread_list.end();) {
sev_sThread *th = it->second;
m_thread_list.erase( it++);
m_db->delete_thread( th->db_ctx);
free( th);
}
}
int main (int argc, char *argv[])
{
......
......@@ -95,10 +95,12 @@ typedef map<int, sev_sThread *>::iterator threadlist_iterator;
class sev_server {
public:
sev_server() : m_server_status(0), m_refid(0), m_msg_id(0), m_storage_cnt(0),
m_db_type(sev_eDbType_Sqlite), m_config(0), m_thread_cnt(0), m_read_threads(0)
sev_server() : m_server_status(0), m_refid(0), m_msg_id(0), m_storage_cnt(0), m_write_cnt(0),
m_db_type(sev_eDbType_Sqlite), m_config(0), m_thread_cnt(0), m_read_threads(0),
m_thread_key_node(0)
{ memset(&m_stat,0,sizeof(m_stat));}
~sev_server();
pwr_tStatus m_sts;
pwr_tStatus m_server_status;
vector<sev_node> m_nodes;
......@@ -107,12 +109,14 @@ class sev_server {
sev_db *m_db;
int m_noneth;
unsigned int m_storage_cnt;
unsigned int m_write_cnt;
sev_sStat m_stat;
sev_eDbType m_db_type;
pwr_sClass_SevServer *m_config;
unsigned int m_thread_cnt;
pwr_tDlid m_config_dlid;
int m_read_threads;
int m_thread_key_node;
map<int, sev_sThread *>m_thread_list;
int init( int noneth);
......@@ -120,15 +124,17 @@ class sev_server {
int request_items( pwr_tNid nid);
int mainloop();
int check_histitems( sev_sMsgHistItems *msg, unsigned int size);
int receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size);
int receive_histdata( sev_sMsgHistDataStore *msg, unsigned int size, pwr_tNid nid);
int send_histdata( qcom_sQid tgt, sev_sMsgHistDataGetRequest *msg, unsigned int size);
int send_objecthistdata( qcom_sQid tgt, sev_sMsgHistDataGetRequest *rmsg, unsigned int size);
int send_itemlist( qcom_sQid tgt);
int send_server_status( qcom_sQid tgt);
int delete_item( qcom_sQid tgt, sev_sMsgHistItemDelete *rmsg);
int receive_events( sev_sMsgEventsStore *msg, unsigned int size);
void garbage_collector();
void garbage_item( int idx);
void create_garbage_collector_thread();
static void *garbage_collector_thread( void *arg);
void garbage_collector( void *thread);
void garbage_item( void *thread, int idx);
void set_dbtype( sev_eDbType type) { m_db_type = type;}
sev_sThread *find_thread( int key);
static void *receive_histdata_thread( void *arg);
......
......@@ -72,6 +72,9 @@ typedef struct {
float medium_load;
float storage_rate;
float medium_storage_rate;
float write_rate;
float medium_write_rate;
float write_quota;
unsigned int datastore_msg_cnt;
unsigned int dataget_msg_cnt;
unsigned int items_msg_cnt;
......@@ -216,13 +219,13 @@ class sev_db {
virtual int delete_item( pwr_tStatus *sts, pwr_tOid oid, char *aname) { *sts = 0; return 0;}
virtual int store_value( pwr_tStatus *sts, void *thread, int item_idx, int attr_idx,
pwr_tTime time, void *buf, unsigned int size) { *sts = 0; return 0;}
virtual int get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, float deadband,
char *aname, pwr_eType type,
virtual int get_values( pwr_tStatus *sts, void *thread, pwr_tOid oid, pwr_tMask options,
float deadband, char *aname, pwr_eType type,
unsigned int size, pwr_tFloat32 scantime, pwr_tTime *creatime, pwr_tTime *starttime,
pwr_tTime *endtime, int maxsize, pwr_tTime **tbuf, void **vbuf,
unsigned int *bsize) { *sts = 0; return 0;}
virtual int get_items( pwr_tStatus *sts) { *sts = 0; return 0;}
virtual int delete_old_data( pwr_tStatus *sts, char *tablename,
virtual int delete_old_data( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle)
{ *sts = 0; return 0;}
......@@ -244,9 +247,9 @@ class sev_db {
virtual int get_objectitems( pwr_tStatus *sts) { *sts = 0; return 0;}
virtual int check_objectitemattr( pwr_tStatus *sts, char *tablename, pwr_tOid oid, char *aname, char *oname,
pwr_eType type, unsigned int size, unsigned int *idx) { *sts = 0; return 0;}
virtual int delete_old_objectdata( pwr_tStatus *sts, char *tablename,
virtual int delete_old_objectdata( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle) { *sts = 0; return 0;}
virtual int get_objectvalues( pwr_tStatus *sts, sev_item *item,
virtual int get_objectvalues( pwr_tStatus *sts, void *thread, sev_item *item,
unsigned int size, pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize) { *sts = 0; return 0;}
virtual int handle_objectchange(pwr_tStatus *sts, char *tablename, unsigned int item_idx, bool newObject) { *sts = 0; return 0;}
......@@ -258,6 +261,7 @@ class sev_db {
virtual int commit_transaction( void *thread) { return 0;}
virtual char *dbName() { return 0;}
virtual void *new_thread() { return 0;}
virtual void delete_thread( void *thread) {}
static sev_db *open_database( sev_eDbType type, sev_sDbConfig *cnf);
static int get_systemname( char *name);
......
......@@ -2743,8 +2743,8 @@ int sev_dbhdf5::store_value( pwr_tStatus *sts, void *thread, int item_idx, int a
return 1;
}
int sev_dbhdf5::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, float deadband,
char *aname, pwr_eType type,
int sev_dbhdf5::get_values( pwr_tStatus *sts, void *thread, pwr_tOid oid, pwr_tMask options,
float deadband, char *aname, pwr_eType type,
unsigned int size, pwr_tFloat32 scantime, pwr_tTime *creatime,
pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize)
......@@ -3713,7 +3713,7 @@ int sev_dbhdf5::delete_item( pwr_tStatus *sts, pwr_tOid oid, char *aname)
return 1;
}
int sev_dbhdf5::delete_old_data( pwr_tStatus *sts, char *tablename,
int sev_dbhdf5::delete_old_data( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle)
{
return 1;
......@@ -4495,7 +4495,7 @@ int sev_dbhdf5::get_objectitemattributes( pwr_tStatus *sts, sev_item *item, char
return 1;
}
int sev_dbhdf5::delete_old_objectdata( pwr_tStatus *sts, char *tablename,
int sev_dbhdf5::delete_old_objectdata( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle)
{
return 1;
......@@ -4569,7 +4569,7 @@ int sev_dbhdf5::check_deadband(pwr_eType type, unsigned int size, pwr_tFloat32 d
return deadband_active;
}
int sev_dbhdf5::get_objectvalues( pwr_tStatus *sts, sev_item *item,
int sev_dbhdf5::get_objectvalues( pwr_tStatus *sts, void *thread, sev_item *item,
unsigned int size, pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize)
{
......
......@@ -779,11 +779,11 @@ class sev_dbhdf5 : public sev_db {
pwr_tFloat32 deadband, pwr_tMask options, unsigned int *idx);
int store_value( pwr_tStatus *sts, void *thread, int item_idx, int attr_idx,
pwr_tTime time, void *buf, unsigned int size);
int get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, float deadband, char *aname,
pwr_eType type, unsigned int size, pwr_tFloat32 scantime, pwr_tTime *creatime,
pwr_tTime *starttime,
int get_values( pwr_tStatus *sts, void *thread, pwr_tOid oid, pwr_tMask options, float deadband,
char *aname, pwr_eType type, unsigned int size, pwr_tFloat32 scantime,
pwr_tTime *creatime, pwr_tTime *starttime,
pwr_tTime *endtime, int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize);
int delete_old_data( pwr_tStatus *sts, char *tablename,
int delete_old_data( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle);
int delete_item( pwr_tStatus *sts, pwr_tOid oid, char *aname);
......@@ -822,10 +822,11 @@ class sev_dbhdf5 : public sev_db {
int get_objectitemattributes( pwr_tStatus *sts, sev_item *item, char *tablename);
int check_objectitemattr( pwr_tStatus *sts, char *tablename, pwr_tOid oid, char *aname, char *oname,
pwr_eType type, unsigned int size, unsigned int *idx);
int delete_old_objectdata( pwr_tStatus *sts, char *tablename,
int delete_old_objectdata( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle);
int check_deadband(pwr_eType type, unsigned int size, pwr_tFloat32 deadband, void *value, void *oldvalue);
int get_objectvalues( pwr_tStatus *sts, sev_item *item, unsigned int size, pwr_tTime *starttime, pwr_tTime *endtime,
int get_objectvalues( pwr_tStatus *sts, void *thread, sev_item *item, unsigned int size,
pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize);
int delete_event_table( pwr_tStatus *sts, char *tablename);
int create_event_table( pwr_tStatus *sts, char *tablename, pwr_tMask options,
......
......@@ -534,6 +534,11 @@ MYSQL *sev_dbms_env::open_thread( unsigned int *sts)
return con;
}
void sev_dbms_env::close_thread( MYSQL *con)
{
mysql_close(con);
}
int sev_dbms_env::create()
{
struct stat sb;
......@@ -1080,7 +1085,7 @@ int sev_dbms::store_value( pwr_tStatus *sts, void *thread, int item_idx, int att
return 0;
}
m_items[item_idx].cache->add( value, &time, thread);
m_items[item_idx].cache->evaluate( m_cnf.LinearRegrMaxTime, thread);
*sts = m_items[item_idx].cache->evaluate( m_cnf.LinearRegrMaxTime, thread);
return 1;
}
else
......@@ -1513,19 +1518,26 @@ int sev_dbms::write_value( pwr_tStatus *sts, int item_idx, int attr_idx,
}
int sev_dbms::get_id_range( pwr_tStatus *sts, sev_item *item,
int sev_dbms::get_id_range( pwr_tStatus *sts, void *thread, sev_item *item,
pwr_tMask options, unsigned int *first, unsigned int *last)
{
int rows;
char query[100];
MYSQL *con;
if ( thread)
con = (MYSQL *)thread;
else
con = m_env->con();
if ( first) {
if ( options & pwr_mSevOptionsMask_HighTimeResolution)
sprintf( query, "select id from %s order by time,ntime asc limit 1;", item->tablename);
//sprintf( query, "select id from %s order by time,ntime asc limit 1;", item->tablename);
sprintf( query, "select id from %s order by time asc limit 1;", item->tablename);
else
sprintf( query, "select id from %s order by time asc limit 1;", item->tablename);
int rc = mysql_query( m_env->con(), query);
int rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "Get time range query error\n");
......@@ -1534,7 +1546,7 @@ int sev_dbms::get_id_range( pwr_tStatus *sts, sev_item *item,
}
MYSQL_ROW row;
MYSQL_RES *result = mysql_store_result( m_env->con());
MYSQL_RES *result = mysql_store_result( con);
row = mysql_fetch_row( result);
if (!row) {
......@@ -1556,11 +1568,12 @@ int sev_dbms::get_id_range( pwr_tStatus *sts, sev_item *item,
}
if ( last) {
if ( options & pwr_mSevOptionsMask_HighTimeResolution)
sprintf( query, "select id from %s order by time,ntime desc limit 1;", item->tablename);
//sprintf( query, "select id from %s order by time,ntime desc limit 1;", item->tablename);
sprintf( query, "select id from %s order by time desc limit 1;", item->tablename);
else
sprintf( query, "select id from %s order by time desc limit 1;", item->tablename);
int rc = mysql_query( m_env->con(), query);
int rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "Get time range query error\n");
......@@ -1569,7 +1582,7 @@ int sev_dbms::get_id_range( pwr_tStatus *sts, sev_item *item,
}
MYSQL_ROW row;
MYSQL_RES *result = mysql_store_result( m_env->con());
MYSQL_RES *result = mysql_store_result( con);
row = mysql_fetch_row( result);
if (!row) {
......@@ -1722,8 +1735,8 @@ int sev_dbms::get_time_range( pwr_tStatus *sts, sev_item *item,
return 1;
}
int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, float deadband,
char *aname, pwr_eType type,
int sev_dbms::get_values( pwr_tStatus *sts, void *thread, pwr_tOid oid, pwr_tMask options,
float deadband, char *aname, pwr_eType type,
unsigned int size, pwr_tFloat32 scantime, pwr_tTime *creatime,
pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize)
......@@ -1746,6 +1759,12 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
char jumpstr[40];
char where_part[200];
int rows;
MYSQL *con;
if ( thread)
con = (MYSQL *)thread;
else
con = m_env->con();
if ( starttime && starttime->tv_sec == 0 && starttime->tv_nsec == 0)
starttime = 0;
......@@ -1760,7 +1779,7 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
// Get number of rows
sprintf( query, "show table status where name = '%s';", item.tablename);
int rc = mysql_query( m_env->con(), query);
int rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "GetValues Query Error\n");
......@@ -1769,7 +1788,7 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
}
MYSQL_ROW row;
MYSQL_RES *result = mysql_store_result( m_env->con());
MYSQL_RES *result = mysql_store_result( con);
if ( !result) {
printf("In %s row %d:\n", __FILE__, __LINE__);
......@@ -1796,19 +1815,19 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
if ( starttime) {
// Get id for starttime
*sts = get_closest_time( item.tablename, item.options, starttime, 1, &startid);
*sts = get_closest_time( thread, item.tablename, item.options, starttime, 1, &startid);
if ( *sts == SEV__NOROWS)
get_id_range( sts, &item, item.options, &startid, 0);
get_id_range( sts, thread, &item, item.options, &startid, 0);
}
else {
get_id_range( sts, &item, item.options, &startid, 0);
get_id_range( sts, thread, &item, item.options, &startid, 0);
// startid = 0;
}
if ( endtime) {
// Get id for starttime
*sts = get_closest_time( item.tablename, item.options, endtime, 0, &endid);
*sts = get_closest_time( thread, item.tablename, item.options, endtime, 0, &endid);
if ( *sts == SEV__NOROWS)
get_id_range( sts, &item, item.options, 0, &endid);
get_id_range( sts, thread, &item, item.options, 0, &endid);
if ( endid == 0)
endid = strtoul(row[4], 0, 10);
}
......@@ -1823,13 +1842,13 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
if ( options & pwr_mSevOptionsMask_ReadOptimized) {
unsigned int startid, endid;
*sts = get_closest_time( item.tablename, item.options, endtime, 1, &endid);
*sts = get_closest_time( thread, item.tablename, item.options, endtime, 1, &endid);
if ( *sts == SEV__NOROWS)
get_id_range( sts, &item, item.options, 0, &endid);
get_id_range( sts, thread, &item, item.options, 0, &endid);
*sts = get_closest_time( item.tablename, item.options, starttime, 0, &startid);
*sts = get_closest_time( thread, item.tablename, item.options, starttime, 0, &startid);
if ( *sts == SEV__NOROWS)
get_id_range( sts, &item, item.options, &startid, 0);
get_id_range( sts, thread, &item, item.options, &startid, 0);
total_rows = endid - startid;
}
......@@ -1869,11 +1888,11 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
if ( options & pwr_mSevOptionsMask_ReadOptimized) {
unsigned int startid, endid;
*sts = get_closest_time( item.tablename, item.options, starttime, 0, &startid);
*sts = get_closest_time( thread, item.tablename, item.options, starttime, 0, &startid);
if ( *sts == SEV__NOROWS)
get_id_range( sts, &item, item.options, &startid, 0);
get_id_range( sts, thread, &item, item.options, &startid, 0);
get_id_range( sts, &item, item.options, 0, &endid);
get_id_range( sts, thread, &item, item.options, 0, &endid);
total_rows = endid - startid;
}
else {
......@@ -1908,11 +1927,11 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
if ( options & pwr_mSevOptionsMask_ReadOptimized) {
unsigned int startid, endid;
*sts = get_closest_time( item.tablename, item.options, endtime, 1, &endid);
*sts = get_closest_time( thread, item.tablename, item.options, endtime, 1, &endid);
if ( *sts == SEV__NOROWS)
get_id_range( sts, &item, item.options, 0, &endid);
get_id_range( sts, thread, &item, item.options, 0, &endid);
get_id_range( sts, &item, item.options, &startid, 0);
get_id_range( sts, thread, &item, item.options, &startid, 0);
total_rows = endid - startid;
}
......@@ -2066,20 +2085,20 @@ int sev_dbms::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, flo
sprintf( query, "select %s from %s %s order by %s limit %d",
column_part, item.tablename, where_part, orderby_part, maxsize*2);
else {
rc = mysql_query( m_env->con(), "set @x:=0;");
rc = mysql_query( con, "set @x:=0;");
sprintf( query, "select * from (select (@x:=@x+1) as x,%s from %s %s order by %s) t where x%%%d=0;",
column_part, item.tablename, where_part, orderby_part, div);
}
rc = mysql_query( m_env->con(), query);
rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "Get Values: %s\n", mysql_error(m_env->con()));
printf( "Get Values: %s\n", mysql_error(con));
*sts = SEV__DBERROR;
return 0;
}
result = mysql_store_result( m_env->con());
result = mysql_store_result( con);
if ( !result) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "GetValues Result Error\n");
......@@ -2565,11 +2584,17 @@ int sev_dbms::delete_item( pwr_tStatus *sts, pwr_tOid oid, char *aname)
return 1;
}
int sev_dbms::delete_old_data( pwr_tStatus *sts, char *tablename,
int sev_dbms::delete_old_data( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle)
{
char query[300];
char timstr[40];
MYSQL *con;
if ( thread)
con = (MYSQL *)thread;
else
con = m_env->con();
*sts = time_AtoAscii( &limit, time_eFormat_NumDateAndTime, timstr, sizeof(timstr));
if ( EVEN(*sts)) return 0;
......@@ -2600,10 +2625,10 @@ int sev_dbms::delete_old_data( pwr_tStatus *sts, char *tablename,
sprintf( query, "delete from %s where time < '%s';",
tablename, timstr);
}
int rc = mysql_query( m_env->con(), query);
int rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "Delete old data: %s\n", mysql_error(m_env->con()));
printf( "Delete old data: %s\n", mysql_error(con));
*sts = SEV__DBERROR;
return 0;
}
......@@ -3477,11 +3502,17 @@ int sev_dbms::get_objectitemattributes( pwr_tStatus *sts, sev_item *item, char *
return 1;
}
int sev_dbms::delete_old_objectdata( pwr_tStatus *sts, char *tablename,
int sev_dbms::delete_old_objectdata( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle)
{
char query[300];
char timstr[40];
MYSQL *con;
if ( thread)
con = (MYSQL *)thread;
else
con = m_env->con();
*sts = time_AtoAscii( &limit, time_eFormat_NumDateAndTime, timstr, sizeof(timstr));
if ( EVEN(*sts)) return 0;
......@@ -3512,10 +3543,10 @@ int sev_dbms::delete_old_objectdata( pwr_tStatus *sts, char *tablename,
tablename, timstr);
}
int rc = mysql_query( m_env->con(), query);
int rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "%s: %s\n", __FUNCTION__, mysql_error(m_env->con()));
printf( "%s: %s\n", __FUNCTION__, mysql_error(con));
*sts = SEV__DBERROR;
return 0;
}
......@@ -3592,11 +3623,18 @@ int sev_dbms::check_deadband(pwr_eType type, unsigned int size, pwr_tFloat32 dea
return deadband_active;
}
int sev_dbms::get_closest_time( char *tablename, unsigned int options, pwr_tTime *time, int before, unsigned int *id)
int sev_dbms::get_closest_time( void *thread, char *tablename, unsigned int options,
pwr_tTime *time, int before, unsigned int *id)
{
char query[200];
pwr_tStatus sts;
char timstr[20];
MYSQL *con;
if ( thread)
con = (MYSQL *)thread;
else
con = m_env->con();
sts = time_AtoAscii( time, time_eFormat_NumDateAndTime, timstr, sizeof(timstr));
if ( EVEN(sts)) return sts;
......@@ -3615,7 +3653,7 @@ int sev_dbms::get_closest_time( char *tablename, unsigned int options, pwr_tTime
sprintf( query, "select id from %s where time >= '%s' order by time asc limit 1", tablename, timstr);
}
int rc = mysql_query( m_env->con(), query);
int rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "%s Query Error\n", __FUNCTION__);
......@@ -3623,7 +3661,7 @@ int sev_dbms::get_closest_time( char *tablename, unsigned int options, pwr_tTime
}
MYSQL_ROW row;
MYSQL_RES *result = mysql_store_result( m_env->con());
MYSQL_RES *result = mysql_store_result( con);
if ( !result) {
printf("In %s row %d:\n", __FILE__, __LINE__);
......@@ -3646,7 +3684,7 @@ int sev_dbms::get_closest_time( char *tablename, unsigned int options, pwr_tTime
}
int sev_dbms::get_objectvalues( pwr_tStatus *sts, sev_item *item,
int sev_dbms::get_objectvalues( pwr_tStatus *sts, void *thread, sev_item *item,
unsigned int size, pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize)
{
......@@ -3662,6 +3700,12 @@ int sev_dbms::get_objectvalues( pwr_tStatus *sts, sev_item *item,
char orderby_part[80];
char jumpstr[40];
char where_part[200];
MYSQL *con;
if ( thread)
con = (MYSQL *)thread;
else
con = m_env->con();
if ( starttime && starttime->tv_sec == 0 && starttime->tv_nsec == 0)
starttime = 0;
......@@ -3676,7 +3720,7 @@ int sev_dbms::get_objectvalues( pwr_tStatus *sts, sev_item *item,
// Get number of rows
sprintf( query, "show table status where name = '%s';", item->tablename);
int rc = mysql_query( m_env->con(), query);
int rc = mysql_query( con, query);
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "%s Query Error\n", __FUNCTION__);
......@@ -3685,7 +3729,7 @@ int sev_dbms::get_objectvalues( pwr_tStatus *sts, sev_item *item,
}
MYSQL_ROW row;
MYSQL_RES *result = mysql_store_result( m_env->con());
MYSQL_RES *result = mysql_store_result( con);
if ( !result) {
printf("In %s row %d:\n", __FILE__, __LINE__);
......@@ -3711,13 +3755,13 @@ int sev_dbms::get_objectvalues( pwr_tStatus *sts, sev_item *item,
if ( starttime) {
// Get id for starttime
*sts = get_closest_time( item->tablename, item->options, starttime, 1, &startid);
*sts = get_closest_time( thread, item->tablename, item->options, starttime, 1, &startid);
}
else
startid = 0;
if ( endtime) {
// Get id for starttime
*sts = get_closest_time( item->tablename, item->options, endtime, 0, &endid);
*sts = get_closest_time( thread, item->tablename, item->options, endtime, 0, &endid);
}
else
endid = strtoul(row[4], 0, 10);
......@@ -3904,15 +3948,15 @@ int sev_dbms::get_objectvalues( pwr_tStatus *sts, sev_item *item,
queryStr.append(" order by ");
queryStr.append(orderby_part);
rc = mysql_query( m_env->con(), queryStr.c_str());
rc = mysql_query( con, queryStr.c_str());
if (rc) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "%s: %s\n", __FUNCTION__, mysql_error(m_env->con()));
printf( "%s: %s\n", __FUNCTION__, mysql_error(con));
*sts = SEV__DBERROR;
return 0;
}
result = mysql_store_result( m_env->con());
result = mysql_store_result( con);
if ( !result) {
printf("In %s row %d:\n", __FILE__, __LINE__);
printf( "%s Result Error\n", __FUNCTION__);
......@@ -4543,6 +4587,11 @@ void *sev_dbms::new_thread()
return m_env->open_thread( &sts);
}
void sev_dbms::delete_thread( void *thread)
{
m_env->close_thread( (MYSQL *)thread);
}
sev_dbms::~sev_dbms()
{
printf("Freeing memory\n");
......
......@@ -92,6 +92,7 @@ class sev_dbms_env
MYSQL *createDb(void);
MYSQL *openDb(unsigned int *sts);
MYSQL *open_thread( unsigned int *sts);
void close_thread( MYSQL *con);
bool exists() { return m_exists;}
int close(void);
static int get_systemname();
......@@ -143,11 +144,11 @@ class sev_dbms : public sev_db {
pwr_tTime time, void *buf, unsigned int size);
int write_value( pwr_tStatus *sts, int item_idx, int attr_idx,
pwr_tTime time, void *buf, unsigned int size, void *thread);
int get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, float deadband, char *aname,
pwr_eType type, unsigned int size, pwr_tFloat32 scantime, pwr_tTime *creatime,
pwr_tTime *starttime,
int get_values( pwr_tStatus *sts, void *thread, pwr_tOid oid, pwr_tMask options, float deadband,
char *aname, pwr_eType type, unsigned int size, pwr_tFloat32 scantime,
pwr_tTime *creatime, pwr_tTime *starttime,
pwr_tTime *endtime, int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize);
int delete_old_data( pwr_tStatus *sts, char *tablename,
int delete_old_data( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle);
int delete_item( pwr_tStatus *sts, pwr_tOid oid, char *aname);
......@@ -188,10 +189,11 @@ class sev_dbms : public sev_db {
int get_objectitemattributes( pwr_tStatus *sts, sev_item *item, char *tablename);
int check_objectitemattr( pwr_tStatus *sts, char *tablename, pwr_tOid oid, char *aname, char *oname,
pwr_eType type, unsigned int size, unsigned int *idx);
int delete_old_objectdata( pwr_tStatus *sts, char *tablename,
int delete_old_objectdata( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle);
int check_deadband(pwr_eType type, unsigned int size, pwr_tFloat32 deadband, void *value, void *oldvalue);
int get_objectvalues( pwr_tStatus *sts, sev_item *item, unsigned int size, pwr_tTime *starttime, pwr_tTime *endtime,
int get_objectvalues( pwr_tStatus *sts, void *thread, sev_item *item, unsigned int size,
pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize);
int delete_event_table( pwr_tStatus *sts, char *tablename);
int create_event_table( pwr_tStatus *sts, char *tablename, pwr_tMask options);
......@@ -209,11 +211,12 @@ class sev_dbms : public sev_db {
int begin_transaction( void *thread);
int commit_transaction( void *thread);
void *new_thread();
int get_closest_time( char *tablename, unsigned int options, pwr_tTime *time, int before,
unsigned int *id);
void delete_thread( void *thread);
int get_closest_time( void *thread, char *tablename, unsigned int options, pwr_tTime *time,
int before, unsigned int *id);
void string_to_mysqlstring( char *in, char *out, int size);
void mysqlstring_to_string( char *in, char *out, int size);
int get_id_range( pwr_tStatus *sts, sev_item *item,
int get_id_range( pwr_tStatus *sts, void *thread, sev_item *item,
pwr_tMask options, unsigned int *first, unsigned int *last);
int get_time_range( pwr_tStatus *sts, sev_item *item,
pwr_tMask options, pwr_tTime *first, pwr_tTime *last);
......
......@@ -1009,8 +1009,8 @@ int sev_dbsqlite::store_value( pwr_tStatus *sts, void *thread, int item_idx, int
return 1;
}
int sev_dbsqlite::get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, float deadband,
char *aname, pwr_eType type,
int sev_dbsqlite::get_values( pwr_tStatus *sts, void *thread, pwr_tOid oid, pwr_tMask options,
float deadband, char *aname, pwr_eType type,
unsigned int size, pwr_tFloat32 scantime, pwr_tTime *creatime,
pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize)
......@@ -1685,7 +1685,7 @@ int sev_dbsqlite::delete_item( pwr_tStatus *sts, pwr_tOid oid, char *aname)
return 1;
}
int sev_dbsqlite::delete_old_data( pwr_tStatus *sts, char *tablename,
int sev_dbsqlite::delete_old_data( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle)
{
char query[300];
......@@ -2585,7 +2585,7 @@ int sev_dbsqlite::get_objectitemattributes( pwr_tStatus *sts, sev_item *item, ch
return 1;
}
int sev_dbsqlite::delete_old_objectdata( pwr_tStatus *sts, char *tablename,
int sev_dbsqlite::delete_old_objectdata( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle)
{
char query[300];
......@@ -2702,7 +2702,7 @@ int sev_dbsqlite::check_deadband(pwr_eType type, unsigned int size, pwr_tFloat32
return deadband_active;
}
int sev_dbsqlite::get_objectvalues( pwr_tStatus *sts, sev_item *item,
int sev_dbsqlite::get_objectvalues( pwr_tStatus *sts, void *thread, sev_item *item,
unsigned int size, pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize)
{
......
......@@ -77,11 +77,11 @@ class sev_dbsqlite : public sev_db {
pwr_tFloat32 deadband, pwr_tMask options, unsigned int *idx);
int store_value( pwr_tStatus *sts, void *thread, int item_idx, int attr_idx,
pwr_tTime time, void *buf, unsigned int size);
int get_values( pwr_tStatus *sts, pwr_tOid oid, pwr_tMask options, float deadband, char *aname,
pwr_eType type, unsigned int size, pwr_tFloat32 scantime, pwr_tTime *creatime,
pwr_tTime *starttime,
int get_values( pwr_tStatus *sts, void *thread, pwr_tOid oid, pwr_tMask options, float deadband,
char *aname, pwr_eType type, unsigned int size, pwr_tFloat32 scantime,
pwr_tTime *creatime, pwr_tTime *starttime,
pwr_tTime *endtime, int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize);
int delete_old_data( pwr_tStatus *sts, char *tablename,
int delete_old_data( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle);
int delete_item( pwr_tStatus *sts, pwr_tOid oid, char *aname);
......@@ -121,10 +121,11 @@ class sev_dbsqlite : public sev_db {
int get_objectitemattributes( pwr_tStatus *sts, sev_item *item, char *tablename);
int check_objectitemattr( pwr_tStatus *sts, char *tablename, pwr_tOid oid, char *aname, char *oname,
pwr_eType type, unsigned int size, unsigned int *idx);
int delete_old_objectdata( pwr_tStatus *sts, char *tablename,
int delete_old_objectdata( pwr_tStatus *sts, void *thread, char *tablename,
pwr_tMask options, pwr_tTime limit, pwr_tFloat32 scantime, pwr_tFloat32 garbagecycle);
int check_deadband(pwr_eType type, unsigned int size, pwr_tFloat32 deadband, void *value, void *oldvalue);
int get_objectvalues( pwr_tStatus *sts, sev_item *item, unsigned int size, pwr_tTime *starttime, pwr_tTime *endtime,
int get_objectvalues( pwr_tStatus *sts, void *thread, sev_item *item, unsigned int size,
pwr_tTime *starttime, pwr_tTime *endtime,
int maxsize, pwr_tTime **tbuf, void **vbuf, unsigned int *bsize);
int delete_event_table( pwr_tStatus *sts, char *tablename);
int create_event_table( pwr_tStatus *sts, char *tablename, pwr_tMask options);
......
......@@ -44,6 +44,7 @@
#include "rt_gdh.h"
#include "pwr_baseclasses.h"
#include "sev_valuecache.h"
#include "rt_sev_msg.h"
const int sev_valuecache_double::m_size = VALUECACHE_SIZE;
......@@ -110,15 +111,17 @@ void sev_valuecache_double::add( void *value, pwr_tTime *t, void *thread)
calculate_epsilon(0);
}
void sev_valuecache_double::evaluate( double maxtime, void *thread)
int sev_valuecache_double::evaluate( double maxtime, void *thread)
{
int value_added = 1;
int sts = SEV__NOWRITE;
while( 1) {
if ( (maxtime != 0 && (m_val[m_last].time - m_wval.time) > maxtime) ||
!check_deadband()) {
// Store optimal value
write( m_last_opt_write + value_added, thread);
sts = SEV__SUCCESS;
}
else
break;
......@@ -128,6 +131,7 @@ void sev_valuecache_double::evaluate( double maxtime, void *thread)
m_last_opt_write = get_optimal_write();
value_added = 0;
}
return sts;
}
void sev_valuecache_double::calculate_k()
......@@ -286,11 +290,14 @@ void sev_valuecache_bool::add( void *value, pwr_tTime *t, void *thread)
}
}
void sev_valuecache_bool::evaluate( double maxtime, void *thread)
int sev_valuecache_bool::evaluate( double maxtime, void *thread)
{
if ( m_val.val != m_wval.val) {
write(0, thread);
return SEV__SUCCESS;
}
return SEV__NOWRITE;
}
void sev_valuecache_bool::write( int index, void *thread)
......
......@@ -39,6 +39,7 @@
#include "pwr.h"
#include "co_time.h"
#include "rt_sev_msg.h"
typedef enum {
sev_eCvType_Point,
......@@ -69,9 +70,9 @@ class sev_valuecache {
sev_valuecache( const sev_valuecache& x) : m_type(x.m_type), m_userdata(x.m_userdata), m_useridx(x.m_useridx),
m_write_cb(x.m_write_cb) {}
virtual ~sev_valuecache() {};
virtual void add( void *value, pwr_tTime *time, void *thread) {};
virtual void evaluate( double maxtime, void *thread) {};
virtual void write( int index, void *thread) {};
virtual void add( void *value, pwr_tTime *time, void *thread) {}
virtual int evaluate( double maxtime, void *thread) { return SEV__NOWRITE;}
virtual void write( int index, void *thread) {}
virtual void set_write_cb( void (*write_cb)( void *, int, void *, pwr_tTime *, void *), void *userdata, int idx) {
m_write_cb = write_cb;
m_userdata = userdata;
......@@ -118,7 +119,7 @@ class sev_valuecache_double : public sev_valuecache {
sev_sCacheValueDouble& operator[]( const int index);
sev_sCacheValueDouble& wval() { return m_wval;}
void add( void *value, pwr_tTime *time, void *thread);
void evaluate( double maxtime, void *thread);
int evaluate( double maxtime, void *thread);
void calculate_k();
void write( int index, void *thread);
void calculate_epsilon();
......@@ -147,7 +148,7 @@ class sev_valuecache_bool : public sev_valuecache {
~sev_valuecache_bool() {}
sev_sCacheValueBool& wval() { return m_wval;}
void add( void *value, pwr_tTime *time, void *thread);
void evaluate( double maxtime, void *thread);
int evaluate( double maxtime, void *thread);
void write( int index, void *thread);
};
......
......@@ -55,6 +55,7 @@ range <Unable to get range> /error
unknowntype <Unknown data type> /error
nosuchtable <Table doesn't exist> /error
norows <No rows found> /error
nowrite <Nothings written> /info
.end
......
......@@ -54,9 +54,19 @@ SObject pwrb:Class
Attr StructName = "SevServerThread"
EndBody
!/**
! Occupied.
!*/
Object Occupied $Attribute 1
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_STATE
EndBody
EndObject
!/**
! Thread key.
!*/
Object Key $Attribute 1
Object Key $Attribute 2
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -66,7 +76,7 @@ SObject pwrb:Class
!/**
! Allocated size in thread queue.
!*/
Object QueueAlloc $Attribute 2
Object QueueAlloc $Attribute 3
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -76,7 +86,7 @@ SObject pwrb:Class
!/**
! Lost messages.
!*/
Object LostCnt $Attribute 3
Object LostCnt $Attribute 4
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -86,7 +96,7 @@ SObject pwrb:Class
!/**
! Medium load in percentage.
!*/
Object MediumLoad $Attribute 4
Object MediumLoad $Attribute 5
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -96,7 +106,7 @@ SObject pwrb:Class
!/**
! Storage rate. Values per second.
!*/
Object StorageRate $Attribute 5
Object StorageRate $Attribute 6
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -106,7 +116,37 @@ SObject pwrb:Class
!/**
! Medium storage rate. Values per second.
!*/
Object MediumStorageRate $Attribute 6
Object MediumStorageRate $Attribute 7
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_STATE
EndBody
EndObject
!/**
! Write rate. Values per second.
!*/
Object WriteRate $Attribute 8
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_STATE
EndBody
EndObject
!/**
! Medium write rate. Values per second.
!*/
Object MediumWriteRate $Attribute 9
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_STATE
EndBody
EndObject
!/**
! Write quota in percentage.
!*/
Object WriteQuota $Attribute 10
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -116,7 +156,7 @@ SObject pwrb:Class
!/**
! Data store message count.
!*/
Object DataStoreMsgCnt $Attribute 7
Object DataStoreMsgCnt $Attribute 11
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -126,7 +166,7 @@ SObject pwrb:Class
!/**
! Event store message count.
!*/
Object EventStoreMsgCnt $Attribute 8
Object EventStoreMsgCnt $Attribute 12
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......
......@@ -94,9 +94,39 @@ SObject pwrb:Class
EndBody
EndObject
!/**
! Write rate. Values per second.
!*/
Object WriteRate $Attribute 5
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_STATE
EndBody
EndObject
!/**
! Medium write rate. Values per second.
!*/
Object MediumWriteRate $Attribute 6
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_STATE
EndBody
EndObject
!/**
! Write quota in percentage
!*/
Object WriteQuota $Attribute 7
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_STATE
EndBody
EndObject
!/**
! Data store message count.
!*/
Object DataStoreMsgCnt $Attribute 5
Object DataStoreMsgCnt $Attribute 8
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -106,7 +136,7 @@ SObject pwrb:Class
!/**
! Data get message count.
!*/
Object DataGetMsgCnt $Attribute 6
Object DataGetMsgCnt $Attribute 9
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -116,7 +146,7 @@ SObject pwrb:Class
!/**
! Items message count.
!*/
Object ItemsMsgCnt $Attribute 7
Object ItemsMsgCnt $Attribute 10
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......@@ -126,7 +156,7 @@ SObject pwrb:Class
!/**
! Event store message count.
!*/
Object EventStoreMsgCnt $Attribute 8
Object EventStoreMsgCnt $Attribute 11
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_NOEDIT
......
......@@ -158,7 +158,7 @@ SObject pwrb:Class
Attr TypeRef = "pwrb:Class-SevServerThread"
Attr Flags |= PWR_MASK_CLASS
Attr Flags |= PWR_MASK_ARRAY
Attr Elements = 20
Attr Elements = 40
EndBody
EndObject
EndObject
......
0! DefaultWidth 999
0! DefaultHeight 667
199
!/**
! TempSwitch
! Group Components/BaseComponent
!
! <image> bcomp_tempswitch_gs.gif
!
! <h1>Description
! Temperature switch. Graphic symbol for basecomponent BaseTempSwitch.
! Should be connected to an instance of BaseTempSwitch, or a
! subclass to this class.
!
! <h1>Default dynamics
! HostObject <link>GeDynHostObject, ,$pwr_lang/man_geref.dat
!
! Dynamics for the symbol
! - flashing red at alarm status.
! - popupmenu with the methods of the connected object.
!
! DigFlash <t>$hostobject.AlarmStatus <link>GeDynDigFlash, ,$pwr_lang/man_geref.dat
! PopupMenu <t>$hostobject <link>GeDynPopupMenu, ,$pwr_lang/man_geref.dat
!
! Default Cycle Slow
!
!*/
1
100 20
135 20
101 20
102 132
103 16
104 3.13889
136 3.13889
105 100
106 1
107 0
108 54.5
109 0.5
110 36
111 0
116 19
117 2
118 139
119 98
120 1
121 Claes context
122 0
126 0.5
127 0.5
128 0
129 0.3
130 1.5
131 0.8
132 3
133 2
137 4510
138 3
139 3
140 2
141 $default
134
22
2200 0
2201 477
2202 pwr_c_sevserver
2203 310
2205 0
2204
2206 0
2207
2208
2209 2.65
2210 1
2211 52.6
2212 34.4
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2246 0
2236 0
2247 0
2216 0
2221 0
2237 0
2238 0
2239 0
2240 0
2241 0
2242 0
2217 0
2218 0
2219 0
2220
2230 0
2231 1
2222
2223 1
2224 1
2232 0.5
2225 0.2
2226 0
2227
2228 0
2229 1
2233 1
2234 2
2235 1
2243 0
2248 0
2245 0
2249
48
4802 0
4803 1
4800 360
4801
0.992157 0.992157 0.992157
0.872157 0.872157 0.872157
1 1 1
1 1 1
0.854841 0.854841 0.854841
0.734841 0.734841 0.734841
1 1 1
0.974841 0.974841 0.974841
0.941176 0.941176 0.941176
0.821176 0.821176 0.821176
1 1 1
1 1 1
0.623529 0.623529 0.623529
0.503529 0.503529 0.503529
0.803529 0.803529 0.803529
0.743529 0.743529 0.743529
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.952941 0.952941 0.952941
0.832941 0.832941 0.832941
1 1 1
1 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
0.988235 0.0666667 0.0666667
0.868235 0 0
1 0.246667 0.246667
1 0.186667 0.186667
1 0.670588 0.670588
0.88 0.550588 0.550588
1 0.850588 0.850588
1 0.790588 0.790588
1 0.760784 0.760784
0.88 0.640784 0.640784
1 0.940784 0.940784
1 0.880784 0.880784
1 0.898039 0.898039
0.88 0.778039 0.778039
1 1 1
1 1 1
1 0.898039 0.898039
0.88 0.778039 0.778039
1 1 1
1 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.247059 0.247059 0.247059
0.127059 0.127059 0.127059
0.427059 0.427059 0.427059
0.367059 0.367059 0.367059
0.247059 0.247059 0.247059
0.127059 0.127059 0.127059
0.427059 0.427059 0.427059
0.367059 0.367059 0.367059
0.823529 0.823529 0.823529
0.703529 0.703529 0.703529
1 1 1
0.943529 0.943529 0.943529
0.886275 0.886275 0.886275
0.766275 0.766275 0.766275
1 1 1
1 1 1
0.952941 0.952941 0.952941
0.832941 0.832941 0.832941
1 1 1
1 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
0.196078 0.933333 0
0.0760784 0.813333 0
0.376078 1 0.18
0.316078 1 0.12
0.698039 1 0.564706
0.578039 0.88 0.444706
0.878039 1 0.744706
0.818039 1 0.684706
0.807843 1 0.760784
0.687843 0.88 0.640784
0.987843 1 0.940784
0.927843 1 0.880784
0.870588 1 0.835294
0.750588 0.88 0.715294
1 1 1
0.990588 1 0.955294
0.870588 1 0.835294
0.750588 0.88 0.715294
1 1 1
0.990588 1 0.955294
0.247059 0.247059 0.247059
0.127059 0.127059 0.127059
0.427059 0.427059 0.427059
0.367059 0.367059 0.367059
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.972549 0.937255 0.65098
0.852549 0.817255 0.53098
1 1 0.83098
1 1 0.77098
0.952941 0.952941 0.952941
0.832941 0.832941 0.832941
1 1 1
1 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.662745 0.662745 0.662745
0.542745 0.542745 0.542745
0.842745 0.842745 0.842745
0.782745 0.782745 0.782745
0.509804 0.509804 0.509804
0.389804 0.389804 0.389804
0.689804 0.689804 0.689804
0.629804 0.629804 0.629804
1 0.976471 0.0901961
0.88 0.856471 0
1 1 0.270196
1 1 0.210196
1 1 0.729412
0.88 0.88 0.609412
1 1 0.909412
1 1 0.849412
0.972549 0.937255 0.65098
0.852549 0.817255 0.53098
1 1 0.83098
1 1 0.77098
1 1 0.8
0.88 0.88 0.68
1 1 0.98
1 1 0.92
1 1 0.8
0.88 0.88 0.68
1 1 0.98
1 1 0.92
0.72549 0.866667 1
0.60549 0.746667 0.88
0.90549 1 1
0.84549 0.986667 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.690196 0.690196 0.690196
0.570196 0.570196 0.570196
0.870196 0.870196 0.870196
0.810196 0.810196 0.810196
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
0.72549 0.866667 1
0.60549 0.746667 0.88
0.90549 1 1
0.84549 0.986667 1
0.247059 0.247059 0.247059
0.127059 0.127059 0.127059
0.427059 0.427059 0.427059
0.367059 0.367059 0.367059
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
0.886275 0.886275 0.886275
0.766275 0.766275 0.766275
1 1 1
1 1 1
0.407843 0.407843 0.407843
0.287843 0.287843 0.287843
0.587843 0.587843 0.587843
0.527843 0.527843 0.527843
0.418189 0.799023 1
0.298189 0.679023 0.88
0.598189 0.979023 1
0.538189 0.919023 1
0.668742 0.879622 0.990494
0.548742 0.759622 0.870494
0.848742 1 1
0.788742 0.999622 1
0.670588 0.882353 0.992157
0.550588 0.762353 0.872157
0.850588 1 1
0.790588 1 1
0.87451 0.956863 1
0.75451 0.836863 0.88
1 1 1
0.99451 1 1
0.874998 0.956909 1
0.754998 0.836909 0.88
1 1 1
0.994998 1 1
0.952941 0.952941 0.952941
0.832941 0.832941 0.832941
1 1 1
1 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.952941 0.952941 0.952941
0.832941 0.832941 0.832941
1 1 1
1 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.247059 0.247059 0.247059
0.127059 0.127059 0.127059
0.427059 0.427059 0.427059
0.367059 0.367059 0.367059
0.431373 0.431373 0.431373
0.311373 0.311373 0.311373
0.611373 0.611373 0.611373
0.551373 0.551373 0.551373
0.752941 1 1
0.632941 0.88 0.88
0.932941 1 1
0.872941 1 1
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 0.576471 0
0.88 0.456471 0
1 0.756471 0.18
1 0.696471 0.12
1 0.713191 0.32282
0.88 0.593191 0.20282
1 0.893191 0.50282
1 0.833191 0.44282
0.982864 0.813947 0.582559
0.862864 0.693947 0.462559
1 0.993947 0.762559
1 0.933947 0.702559
1 0.92549 0.815686
0.88 0.80549 0.695686
1 1 0.995686
1 1 0.935686
1 0.922194 0.815442
0.88 0.802194 0.695442
1 1 0.995442
1 1 0.935442
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
0.552941 0.552941 0.552941
0.432941 0.432941 0.432941
0.732941 0.732941 0.732941
0.672941 0.672941 0.672941
0 0 0
0 0 0
0.18 0.18 0.18
0.12 0.12 0.12
0.952941 0.952941 0.952941
0.832941 0.832941 0.832941
1 1 1
1 1 1
0.482353 0.482353 0.482353
0.362353 0.362353 0.362353
0.662353 0.662353 0.662353
0.602353 0.602353 0.602353
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
1 1 1
0.88 0.88 0.88
1 1 1
1 1 1
0.853742 0.302632 0.982101
0.733742 0.182632 0.862101
1 0.482632 1
0.973742 0.422632 1
0.899916 0.583337 0.985214
0.779916 0.463337 0.865214
1 0.763337 1
1 0.703337 1
0.924636 0.740002 1
0.804636 0.620002 0.88
1 0.920002 1
1 0.860002 1
0.968627 0.854902 1
0.848627 0.734902 0.88
1 1 1
1 0.974902 1
0.966888 0.854505 1
0.846888 0.734505 0.88
1 1 1
1 0.974505 1
99
2244
99
123
2
3
300 pwr_valuelong
301
2
19
1904
1900 26.6
1901 0
1902 0.7
1903 0
1908 0
1909 41
1910 41
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 26.6
701 0.7
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 1
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
1308 0
99
2908
28
2800 1
2801 0
2802 -0.715333
2803 0
2804 1
2805 -0.771778
2806 0
99
2901 2
99
99
302 0
304 0
303
305 0
306
307
308 1024
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
99
3
300 pwr_pulldownmenu2
301
2
19
1904 O7
1900 3
1901 0
1902 1
1903 0
1908 0
1909 31
1910 31
1911 0
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 1
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 3
701 1
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
26
2604 O8
2600 3
2601 0
2602 1
2603 0.9
2605
25
2500 0
2501 1
2503 1
2504 0
2502
2
7
700 0
701 0.9
99
7
700 0
701 1
99
7
700 3
701 1
99
7
700 3
701 0.9
99
7
700 0
701 0.9
99
99
99
2608 0
2609 31
2629 10000
2610 31
2611 0
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
2613 0
2619 0
2620 1
2626 0
2627 0
2621 0
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O4
2000 3
2001 0
2002 1
2003 1
2009 0
2010 0
2005
6
600 0
601 1
602
7
700 3
701 1
99
603
7
700 0
701 1
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 2.32453e-16
2806 0
99
99
29
2907
13
1300 1
1301 303
1306 0
1302 2
1305 1
1303
7
700 -0.954174
701 0.0636116
99
1304 0
1307 4
1308 0
99
2908
28
2800 1
2801 0
2802 1.25417
2803 0
2804 1
2805 0.736388
2806 0
99
2901 2
99
99
302 0
304 0
303
305 0
306
307
308 0
330 0
321 524288
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 1
332 0
329
1
100 1
105 0
101 1
106 0
102 33619964
103 0
99
99
3
300 pwr_menubar2
301
2
19
1904 O0
1900 27.5
1901 0
1902 1
1903 0
1908 0
1909 31
1910 31
1911 0
1915 0
1913 15
1916 2
1914 0
1918 0
1919 0
1920 0
1917 1
1921 0
1922 2
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 27.5
701 1
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
26
2604 O3
2600 27.5
2601 0
2602 1
2603 0.9
2605
25
2500 0
2501 1
2503 1
2504 0
2502
2
7
700 0
701 1
99
7
700 0
701 0.9
99
7
700 27.5
701 0.9
99
7
700 27.5
701 1
99
7
700 0
701 1
99
99
99
2608 0
2609 31
2629 10000
2610 31
2611 0
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
2613 0
2619 0
2620 1
2626 0
2627 0
2621 0
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O2
2000 27.5
2001 0
2002 1
2003 1
2009 0
2010 0
2005
6
600 0
601 1
602
7
700 27.5
701 1
99
603
7
700 0
701 1
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2opengraph
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
24
2404 O6
2400 0.932301
2401 0.432301
2402 0.988828
2403 0.488828
2408 39
2409 113
2410 113
2423 10000
2411 1
2415 1
2413 5
2416 2
2414 0
2417 1
2421 1
2418 0
2419 4
2420 1
2422 0
2424 0
2407 0
2406
2405
8
802 39
803 1
800 0
801 360
806 1
804
7
700 0.4
701 0.4
99
805
7
700 0.9
701 0.9
99
99
2412
28
2800 1
2801 0
2802 0.0323011
2803 0
2804 1
2805 0.0888281
2806 0
99
99
26
2604 O7
2600 0.482301
2601 0.182301
2602 0.488828
2603 0.238828
2605
25
2500 38
2501 1
2503 1
2504 0
2502
2
7
700 0.1
701 0.1
99
7
700 0.4
701 0.1
99
7
700 0.25
701 0.35
99
7
700 0.1
701 0.1
99
99
99
2608 38
2609 74
2629 10000
2610 74
2611 1
2616 1
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0.0823011
2803 0
2804 1
2805 0.138828
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O8
2000 0.432301
2001 0.182301
2002 0.738828
2003 0.738828
2009 39
2010 0
2005
6
600 39
601 1
602
7
700 0.15
701 0.65
99
603
7
700 0.4
701 0.65
99
99
2008
28
2800 1
2801 0
2802 0.0323011
2803 0
2804 1
2805 0.0888281
2806 0
99
99
20
2004 O10
2000 0.332301
2001 0.332301
2002 0.738828
2003 0.488828
2009 39
2010 0
2005
6
600 39
601 1
602
7
700 0.3
701 0.65
99
603
7
700 0.3
701 0.4
99
99
2008
28
2800 1
2801 0
2802 0.0323011
2803 0
2804 1
2805 0.0888281
2806 0
99
99
26
2604 O14
2600 0.920673
2601 0.720673
2602 0.8272
2603 0.6272
2605
25
2500 39
2501 1
2503 1
2504 0
2502
2
7
700 0.9
701 0.65
99
7
700 0.7
701 0.75
99
7
700 0.7
701 0.55
99
7
700 0.85
701 0.65
99
99
99
2608 39
2609 39
2629 10000
2610 39
2611 1
2616 1
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0.0206727
2803 0
2804 1
2805 0.0771997
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2openobjectgraph
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
19
1904 O18
1900 0.9
1901 0.2
1902 1
1903 0.2
1908 37
1909 67
1910 67
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 1
1920 0
1917 1
1921 0
1922 4
1923 1
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 37
501 1
504 1
505 0
502
7
700 0.2
701 0.2
99
503
7
700 0.9
701 1
99
99
1912
28
2800 1
2801 0
2802 2.98023e-09
2803 0
2804 1
2805 2.98023e-09
2806 0
99
99
20
2004 O19
2000 0.9
2001 0.2
2002 0.3
2003 0.3
2009 37
2010 0
2005
6
600 37
601 1
602
7
700 0.9
701 0.3
99
603
7
700 0.2
701 0.3
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
24
2404 O20
2400 0.85
2401 0.45
2402 0.95
2403 0.55
2408 37
2409 113
2410 113
2423 10000
2411 1
2415 0
2413 5
2416 2
2414 0
2417 1
2421 1
2418 0
2419 4
2420 1
2422 0
2424 0
2407 0
2406
2405
8
802 37
803 1
800 0
801 360
806 1
804
7
700 0.45
701 0.6
99
805
7
700 0.85
701 1
99
99
2412
28
2800 1
2801 0
2802 -1.73472e-18
2803 0
2804 1
2805 -0.05
2806 0
99
99
26
2604 O21
2600 0.85
2601 0.7
2602 0.85
2603 0.65
2605
25
2500 39
2501 1
2503 1
2504 0
2502
2
7
700 0.85
701 0.8
99
7
700 0.7
701 0.7
99
7
700 0.7
701 0.9
99
7
700 0.85
701 0.8
99
99
99
2608 39
2609 39
2629 10000
2610 39
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 -1.73472e-18
2803 0
2804 1
2805 -0.05
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O22
2000 0.45
2001 0.25
2002 0.75
2003 0.75
2009 38
2010 0
2005
6
600 38
601 1
602
7
700 0.45
701 0.8
99
603
7
700 0.25
701 0.8
99
99
2008
28
2800 1
2801 0
2802 -1.73472e-18
2803 0
2804 1
2805 -0.05
2806 0
99
99
20
2004 O23
2000 0.4
2001 0.4
2002 0.75
2003 0.6
2009 38
2010 0
2005
6
600 38
601 1
602
7
700 0.4
701 0.65
99
603
7
700 0.4
701 0.8
99
99
2008
28
2800 1
2801 0
2802 -1.73472e-18
2803 0
2804 1
2805 -0.05
2806 0
99
99
26
2604 O27
2600 0.55
2601 0.25
2602 0.6
2603 0.4
2605
25
2500 38
2501 1
2503 1
2504 0
2502
2
7
700 0.4
701 0.65
99
7
700 0.25
701 0.45
99
7
700 0.55
701 0.45
99
7
700 0.4
701 0.65
99
99
99
2608 38
2609 75
2629 10000
2610 75
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 1.80411e-16
2803 0
2804 1
2805 -0.05
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2trend
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
20
2004 O18
2000 0.867294
2001 0.167294
2002 0.906729
2003 0.906729
2009 39
2010 0
2005
6
600 39
601 1
602
7
700 0.9
701 0.9
99
603
7
700 0.2
701 0.9
99
99
2008
28
2800 1
2801 0
2802 -0.032706
2803 0
2804 1
2805 0.0067294
2806 0
99
99
26
2604 O21
2600 0.867294
2601 0.167294
2602 0.906729
2603 0.406729
2605
25
2500 38
2501 1
2503 1
2504 0
2502
2
7
700 0.1
701 0.9
99
7
700 0.8
701 0.9
99
7
700 0.8
701 0.581399
99
7
700 0.7
701 0.458142
99
7
700 0.6
701 0.581399
99
7
700 0.4
701 0.4
99
7
700 0.3
701 0.6
99
7
700 0.2
701 0.5
99
7
700 0.1
701 0.6
99
99
99
2608 38
2609 133
2629 10000
2610 133
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0.067294
2803 0
2804 1
2805 0.0067294
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O22
2000 0.87213
2001 0.87213
2002 0.895387
2003 0.209311
2009 38
2010 0
2005
6
600 38
601 1
602
7
700 0.87213
701 0.209311
99
603
7
700 0.87213
701 0.895387
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2history
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
26
2604 O21
2600 0.894392
2601 0.183176
2602 0.894392
2603 0.371961
2605
25
2500 38
2501 1
2503 1
2504 0
2502
2
7
700 0.1
701 0.9
99
7
700 0.8
701 0.9
99
7
700 0.8
701 0.581399
99
7
700 0.688784
701 0.396456
99
7
700 0.594392
701 0.486066
99
7
700 0.411216
701 0.377569
99
7
700 0.305608
701 0.52149
99
7
700 0.194392
701 0.399059
99
7
700 0.0887843
701 0.414942
99
99
99
2608 38
2609 84
2629 10000
2610 84
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0.0943922
2803 0
2804 1
2805 -0.00560783
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O18
2000 0.9
2001 0.2
2002 0.9
2003 0.9
2009 38
2010 0
2005
6
600 38
601 1
602
7
700 0.9
701 0.9
99
603
7
700 0.2
701 0.9
99
99
2008
28
2800 1
2801 0
2802 -1.73472e-17
2803 0
2804 1
2805 1.35308e-16
2806 0
99
99
20
2004 O22
2000 0.9
2001 0.9
2002 0.886076
2003 0.2
2009 38
2010 0
2005
6
600 38
601 1
602
7
700 0.87213
701 0.209311
99
603
7
700 0.87213
701 0.895387
99
99
2008
28
2800 1
2801 0
2802 0.02787
2803 0
2804 1
2805 -0.009311
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2fast
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
26
2604 O23
2600 0.9
2601 0.2
2602 0.9
2603 0.5
2605
25
2500 38
2501 1
2503 1
2504 0
2502
2
7
700 0.9
701 0.9
99
7
700 0.2
701 0.9
99
7
700 0.2
701 0.5
99
7
700 0.3
701 0.5
99
7
700 0.5
701 0.7
99
7
700 0.6
701 0.5
99
7
700 0.7
701 0.6
99
7
700 0.8
701 0.5
99
7
700 0.9
701 0.5
99
99
99
2608 38
2609 224
2629 10000
2610 224
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 1.9082e-16
2803 0
2804 1
2805 -2.35922e-16
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O18
2000 0.9
2001 0.2
2002 0.9
2003 0.9
2009 39
2010 0
2005
6
600 39
601 1
602
7
700 0.9
701 0.9
99
603
7
700 0.2
701 0.9
99
99
2008
28
2800 1
2801 0
2802 1.73472e-17
2803 0
2804 1
2805 4e-07
2806 0
99
99
20
2004 O22
2000 0.2
2001 0.2
2002 0.886076
2003 0.2
2009 38
2010 0
2005
6
600 38
601 1
602
7
700 0.87213
701 0.209311
99
603
7
700 0.87213
701 0.895387
99
99
2008
28
2800 1
2801 0
2802 -0.67213
2803 0
2804 1
2805 -0.009311
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2openobject
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
19
1904 O64
1900 0.901926
1901 0.210294
1902 0.981371
1903 0.247679
1908 38
1909 3
1910 3
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 1
1921 0
1922 4
1923 1
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 38
501 1
504 1
505 0
502
7
700 0.210294
701 0.247679
99
503
7
700 0.901926
701 0.981371
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
20
2004 O65
2000 0.9066
2001 0.224313
2002 0.387875
2003 0.387875
2009 38
2010 0
2005
6
600 38
601 1
602
7
700 0.9066
701 0.387875
99
603
7
700 0.224313
701 0.387875
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2openplc
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
20
2004 O43
2000 0.366353
2001 0.166353
2002 0.405608
2003 0.405608
2009 37
2010 0
2005
6
600 37
601 1
602
7
700 0.3
701 0.4
99
603
7
700 0.1
701 0.4
99
99
2008
28
2800 1
2801 0
2802 0.066353
2803 0
2804 1
2805 0.00560783
2806 0
99
99
20
2004 O44
2000 0.366353
2001 0.166353
2002 0.605608
2003 0.605608
2009 37
2010 0
2005
6
600 37
601 1
602
7
700 0.3
701 0.6
99
603
7
700 0.1
701 0.6
99
99
2008
28
2800 1
2801 0
2802 0.066353
2803 0
2804 1
2805 0.00560783
2806 0
99
99
20
2004 O45
2000 0.966353
2001 0.766353
2002 0.405608
2003 0.405608
2009 37
2010 0
2005
6
600 37
601 1
602
7
700 1
701 0.4
99
603
7
700 0.8
701 0.4
99
99
2008
28
2800 1
2801 0
2802 -0.033647
2803 0
2804 1
2805 0.00560783
2806 0
99
99
19
1904 O47
1900 0.766353
1901 0.366353
1902 0.905608
1903 0.305608
1908 38
1909 2
1910 2
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 1
1921 0
1922 4
1923 1
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 38
501 1
504 1
505 0
502
7
700 0.4
701 0.3
99
503
7
700 0.8
701 0.9
99
99
1912
28
2800 1
2801 0
2802 -0.033647
2803 0
2804 1
2805 0.00560783
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2rtnavigator
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
26
2604 O34
2600 0.868509
2601 0.243509
2602 0.954207
2603 0.304207
2605
25
2500 39
2501 1
2503 1
2504 0
2502
2
7
700 0.25
701 0.325
99
7
700 0.275
701 0.3
99
7
700 0.55
701 0.45
99
7
700 0.85
701 0.3
99
7
700 0.875
701 0.325
99
7
700 0.675
701 0.625
99
7
700 0.875
701 0.925
99
7
700 0.85
701 0.95
99
7
700 0.55
701 0.8
99
7
700 0.275
701 0.95
99
7
700 0.25
701 0.925
99
7
700 0.425
701 0.625
99
7
700 0.25
701 0.325
99
99
99
2608 39
2609 74
2629 10000
2610 74
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 -0.00649055
2803 0
2804 1
2805 0.00420746
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
26
2604 O30
2600 1.025
2601 0.1
2602 1.1
2603 0.1
2605
25
2500 39
2501 1
2503 1
2504 0
2502
2
7
700 0.1
701 0.575
99
7
700 0.425
701 0.5
99
7
700 0.5
701 0.1
99
7
700 0.575
701 0.1
99
7
700 0.675
701 0.5
99
7
700 1.025
701 0.575
99
7
700 1.025
701 0.65
99
7
700 0.675
701 0.75
99
7
700 0.6
701 1.1
99
7
700 0.525
701 1.1
99
7
700 0.425
701 0.75
99
7
700 0.1
701 0.65
99
7
700 0.1
701 0.569472
99
99
99
2608 39
2609 74
2629 10000
2610 74
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 pwr_mb2crossreferences
301
2
19
1904 O17
1900 1.1
1901 0
1902 1.2
1903 0
1908 0
1909 30
1910 30
1911 1
1915 1
1913 8
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 1.1
701 1.2
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
24
2404 O70
2400 0.75
2401 0.15
2402 0.75
2403 0.15
2408 38
2409 3
2410 3
2423 10000
2411 1
2415 0
2413 5
2416 2
2414 0
2417 1
2421 1
2418 0
2419 4
2420 1
2422 0
2424 0
2407 0
2406
2405
8
802 38
803 1
800 0
801 360
806 1
804
7
700 0.2
701 0.2
99
805
7
700 0.8
701 0.8
99
99
2412
28
2800 1
2801 0
2802 -0.05
2803 0
2804 1
2805 -0.05
2806 0
99
99
26
2604 O72
2600 0.968692
2601 0.582712
2602 1.03598
2603 0.621961
2605
25
2500 38
2501 1
2503 1
2504 0
2502
2
7
700 0.55
701 0.7
99
7
700 0.821961
701 1.01729
99
7
700 0.93598
701 0.921961
99
7
700 0.667288
701 0.603268
99
7
700 0.55
701 0.7
99
99
99
2608 38
2609 38
2629 10000
2610 38
2611 1
2616 0
2614 5
2617 2
2615 0
2618 1
2607 0
2606
2612
28
2800 1
2801 0
2802 0.0327124
2803 0
2804 1
2805 0.0186928
2806 0
99
2613 0
2619 0
2620 0
2626 0
2627 0
2621 1
2622 0
2623 0
2624 4
2625 1
2628 0
99
20
2004 O73
2000 0.850521
2001 0.584149
2002 1.03745
2003 0.729018
2009 39
2010 0
2005
6
600 39
601 1
602
7
700 0.850521
701 1.03745
99
603
7
700 0.584149
701 0.729018
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
20
2004 O74
2000 0.943985
2001 0.682286
2002 0.948658
2003 0.649574
2009 35
2010 0
2005
6
600 35
601 1
602
7
700 0.943985
701 0.948658
99
603
7
700 0.682286
701 0.649574
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
30
3004 O75
3000 0.63148
3001 0.23148
3002 0.696505
3003 0.146505
3008 0
3010 4
3011 2
3007 0
3006
3005
9
900 1
901 304
904 0
902 X
903
7
700 -3.1
701 0.35
99
99
3009
28
2800 1
2801 0
2802 3.33148
2803 0
2804 1
2805 0.246505
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 128
330 0
321 8256
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
3
300 O207
301
2
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2opengraph
1002 pwr_mb2opengraph
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 1.1
1007 0
1008 1.2
1009 0
1013 1.1
1014 0
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2openobjectgraph
1002 pwr_mb2openobjectgraph
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 2.4
1007 1.3
1008 1.2
1009 0
1013 2.4
1014 1.3
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.3
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 1.3
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2trend
1002 pwr_mb2trend
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 3.7
1007 2.6
1008 1.2
1009 0
1013 3.7
1014 2.6
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 2.6
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 2.6
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2history
1002 pwr_mb2history
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 5
1007 3.9
1008 1.2
1009 0
1013 5
1014 3.9
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 3.9
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 3.9
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2fast
1002 pwr_mb2fast
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 6.3
1007 5.2
1008 1.2
1009 0
1013 6.3
1014 5.2
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 5.2
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 5.2
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2openobject
1002 pwr_mb2openobject
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 8
1007 6.9
1008 1.2
1009 0
1013 8
1014 6.9
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.9
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 6.9
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2openplc
1002 pwr_mb2openplc
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 9.3
1007 8.2
1008 1.2
1009 0
1013 9.3
1014 8.2
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 8.2
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 8.2
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2rtnavigator
1002 pwr_mb2rtnavigator
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 10.6
1007 9.5
1008 1.2
1009 0
1013 10.6
1014 9.5
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 9.5
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 9.5
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
27
2703 10000
2704 10000
2731 10000
2722 10000
2705 10000
2723 10000
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_mb2crossreferences
1002 pwr_mb2crossreferences
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 11.9
1007 10.8
1008 1.2
1009 0
1013 11.9
1014 10.8
1015 1.2
1016 0
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 10.8
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 10.8
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 1
99
99
302 0
304 0
303
305 0
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 13617
332 0
99
3
300 pwr_valuelarge
301
2
19
1904 O0
1900 4.2
1901 0.05
1902 1.35
1903 0.05
1908 0
1909 41
1910 41
1911 1
1915 0
1913 10
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 2
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0.25
701 0.45
99
503
7
700 4.4
701 1.75
99
99
1912
28
2800 1
2801 0
2802 -0.2
2803 0
2804 1
2805 -0.4
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 6
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
1308 0
99
2908
28
2800 1
2801 0
2802 -0.6
2803 0
2804 1
2805 -0.35
2806 0
99
2901 2
99
99
302 0
304 0
303
305 0
306
307
308 1024
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
99
124
2
99
125
2
19
1904 O277
1900 52.0253
1901 3.03343
1902 36
1903 34
1908 0
1909 318
1910 318
1911 0
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 3
701 26.5
99
503
7
700 35
701 31.5
99
99
1912
28
2800 1.53099
2801 0
2802 -1.55955
2803 0
2804 0.4
2805 23.4
2806 0
99
99
19
1904 O206
1900 51.9994
1901 2.87032
1902 3.32778
1903 2.20625
1908 0
1909 310
1910 310
1911 0
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 2
1922 2
1923 0
1924 1
1925 314
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 2.81876
701 2.17984
99
503
7
700 23.0386
701 3.04426
99
99
1912
28
2800 2.42975
2801 0
2802 -3.97855
2803 0
2804 1.29743
2805 -0.621935
2806 0
99
99
27
2703 10000
2704 550
2731 10000
2722 554
2705 550
2723 554
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_menubar2
1002 O18
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 52.0503
1007 2.85086
1008 2.2
1009 0.831579
1013 52.0503
1014 2.85086
1015 2.2
1016 0.831579
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 3.74746
701 2.04722
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.78907
2801 0
2802 2.85086
2803 0
2804 1.36842
2805 0.831579
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 0
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
27
2703 10000
2704 550
2731 10000
2722 554
2705 550
2723 554
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_pulldownmenu2
1002 O19
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 6.62337
1007 3.3462
1008 2.2
1009 0.831579
1013 6.62337
1014 3.3462
1015 2.2
1016 0.831579
1003
0
5
0
0
0
0
0
0
0
0
1004
"File"
1001
7
700 5
701 1.5
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.09239
2801 0
2802 3.3462
2803 0
2804 1.36842
2805 0.831579
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 0
2721
1
100 0
105 0
101 1
106 0
102 65535
103 0
68
6800 3
6801 Print
6833
1
100 1
105 0
101 65
106 0
102 65535
103 0
55
5500 print graph/class/inst=$object
99
99
6802 Close
6834
1
100 1
105 0
101 262145
106 0
102 65535
103 0
67
99
99
99
99
99
27
2703 10000
2704 550
2731 10000
2722 554
2705 550
2723 554
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_pulldownmenu2
1002 O20
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 14.9631
1007 11.6859
1008 2.2
1009 0.831579
1013 14.9631
1014 11.6859
1015 2.2
1016 0.831579
1003
0
5
0
0
0
0
0
0
0
0
1004
"Help"
1001
7
700 18
701 1.5
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.09239
2801 0
2802 11.6859
2803 0
2804 1.36842
2805 0.831579
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 0
2721
1
100 1
105 0
101 8388608
106 0
102 65535
103 0
72
7200 $object
7201 1
99
99
99
27
2703 10000
2704 550
2731 10000
2722 554
2705 550
2723 554
2706 10000
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_pulldownmenu2
1002 O131
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 10.3005
1007 7.02332
1008 2.2
1009 0.831579
1013 10.3005
1014 7.02332
1015 2.2
1016 0.831579
1003
0
8
0
0
0
0
0
0
0
0
1004
"Methods"
1001
7
700 5
701 1.5
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.09239
2801 0
2802 7.02332
2803 0
2804 1.36842
2805 0.831579
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 0
2721
1
100 1
105 0
101 8388608
106 0
102 65535
103 0
72
7200 $object
7201 0
99
99
99
47
4700
27
2703 562
2704 558
2731 10000
2722 10000
2705 558
2723 10000
2706 562
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 O207
1002 O207
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 21.0603
1007 3.6
1008 4.17464
1009 2.45
1013 21.0603
1014 3.6
1015 4.17464
1016 2.45
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.3
701 3.05
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.46726
2801 0
2802 3.6
2803 0
2804 1.4372
2805 2.45
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2730 0
2721
1
100 1
105 0
101 4194304
106 0
102 35454975
103 0
71
7100 $object
7101 0
99
99
99
99
30
3004 O262
3000 8.65
3001 3.75
3002 7.28657
3003 6.43657
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 CurrentLoad
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 0.9
2803 0
2804 1
2805 -1.41343
2806 0
99
99
19
1904 O275
1900 3
1901 0.5
1902 35.827
1903 0
1908 0
1909 318
1910 318
1911 0
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0.5
701 0
99
503
7
700 3
701 31.5
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1.13737
2805 0
2806 0
99
99
19
1904 O276
1900 54.5
1901 52
1902 35.8272
1903 0
1908 0
1909 318
1910 318
1911 0
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 35
701 0
99
503
7
700 37.5
701 31.5
99
99
1912
28
2800 1
2801 0
2802 17
2803 0
2804 1.13737
2805 0
2806 0
99
99
30
3004 O325
3000 8.65
3001 3.75
3002 8.75323
3003 7.90323
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 MediumLoad
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 0.9
2803 0
2804 1
2805 0.0532333
2806 0
99
99
30
3004 O326
3000 11.55
3001 3.75
3002 10.2199
3003 9.3699
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 MediumStorageRate
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 0.9
2803 0
2804 1
2805 1.5199
2806 0
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O346
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 39.3556
1007 9.4
1008 5.90974
1009 4.98006
1013 39.3556
1014 9.4
1015 5.90974
1016 4.98006
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 3.6
701 3.1
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.12615
2801 0
2802 9.4
2803 0
2804 1.32812
2805 4.98006
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Description##String80
1201 %s
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
30
3004 O347
3000 8.15
3001 3.75
3002 5.8199
3003 4.9699
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 Description
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 0.9
2803 0
2804 1
2805 -2.8801
2806 0
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O348
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 16.7867
1007 12.1
1008 7.42116
1009 6.34724
1013 16.7867
1014 12.1
1015 7.42116
1016 6.34724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 12.0435
2803 0
2804 0.826087
2805 6.30594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Stat.CurrentLoad##Float32
1201 %5.2f
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
19
1904 O439
1900 51.9998
1901 3.03343
1902 11
1903 10.5
1908 30
1909 318
1910 318
1911 0
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 30
501 1
504 1
505 1
502
7
700 3
701 10.5
99
503
7
700 42
701 11
99
99
1912
28
2800 1.25555
2801 0
2802 -0.733213
2803 0
2804 1
2805 0
2806 0
99
99
40
4000 $pwr_exe/pwr_c_sevserver_threads
4003 0.8
4006 622
4007 626
4004 1
4005 0
4008 1
4009 $object
4001
19
1904 O449
1900 51.5133
1901 4.04996
1902 33.6153
1903 13.9999
1908 0
1909 310
1910 310
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1924 0
1925 10000
1926 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 5.05
701 13.1
99
503
7
700 13.05
701 19.1
99
99
1912
28
2800 5.93291
2801 0
2802 -25.9113
2803 0
2804 3.26923
2805 -28.827
2806 0
99
99
4002
1
100 1
105 0
101 1
106 0
102 35454972
103 0
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O450
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 16.7867
1007 12.1
1008 8.82116
1009 7.74724
1013 16.7867
1014 12.1
1015 8.82116
1016 7.74724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 12.0435
2803 0
2804 0.826087
2805 7.70594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Stat.MediumLoad##Float32
1201 %5.2f
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O451
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 16.7867
1007 12.1
1008 10.2212
1009 9.14724
1013 16.7867
1014 12.1
1015 10.2212
1016 9.14724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 12.0435
2803 0
2804 0.826087
2805 9.10594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Stat.MediumStorageRate##Float32
1201 %7.1f
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
30
3004 O452
3000 41.5
3001 37.85
3002 7.28657
3003 6.43657
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 Database
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 35
2803 0
2804 1
2805 -1.41343
2806 0
99
99
30
3004 O453
3000 45.7
3001 37.85
3002 8.75323
3003 7.90323
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 DataStoreMsgCount
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 35
2803 0
2804 1
2805 0.0532333
2806 0
99
99
30
3004 O454
3000 44.9
3001 37.85
3002 10.2199
3003 9.3699
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 ThreadQueueLimit
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 35
2803 0
2804 1
2805 1.5199
2806 0
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O455
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 50.8867
1007 46.2
1008 7.42116
1009 6.34724
1013 50.8867
1014 46.2
1015 7.42116
1016 6.34724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 46.1435
2803 0
2804 0.826087
2805 6.30594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Database##Enum
1201 %s
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O456
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 50.8867
1007 46.2
1008 8.82116
1009 7.74724
1013 50.8867
1014 46.2
1015 8.82116
1016 7.74724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 46.1435
2803 0
2804 0.826087
2805 7.70594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Stat.DataStoreMsgCnt##UInt32
1201 %d
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O457
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 50.8867
1007 46.2
1008 10.2212
1009 9.14724
1013 50.8867
1014 46.2
1015 10.2212
1016 9.14724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 46.1435
2803 0
2804 0.826087
2805 9.10594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.ThreadQueueLimit##UInt32
1201 %d
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
30
3004 O458
3000 9.5
3001 3.8
3002 12.1
3003 11.25
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 ServerThreads
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 0.95
2803 0
2804 1
2805 3.4
2806 0
99
99
30
3004 O459
3000 10.85
3001 8.65
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 Thread
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 4.05
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O460
3000 17.25
3001 14.5
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 Load (%)
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 9.9
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O461
3000 21.85
3001 17.9
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 StorageRate
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 13.3
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O462
3000 25.3
3001 22.9
3002 12.85
3003 12.25
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 Medium
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 18.3
2803 0
2804 1
2805 13.35
2806 0
99
99
30
3004 O463
3000 40.55
3001 37.45
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 MsgCount
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 32.85
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O464
3000 45.1
3001 42.75
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 LostCnt
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 38.15
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O465
3000 49.9
3001 46.4
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 QueueAlloc
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 41.8
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O466
3000 26.8
3001 22.85
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 StorageRate
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 18.25
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O467
3000 30.6
3001 27.6
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 WriteRate
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 23
2803 0
2804 1
2805 14.15
2806 0
99
99
30
3004 O468
3000 30.05
3001 27.65
3002 12.85
3003 12.25
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 Medium
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 23.05
2803 0
2804 1
2805 13.35
2806 0
99
99
30
3004 O469
3000 36.9
3001 32.2
3002 13.65
3003 13.05
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 326
902 WriteQuota (%)
903
7
700 4.6
701 -0.6
99
99
3009
28
2800 1
2801 0
2802 27.6
2803 0
2804 1
2805 14.15
2806 0
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O470
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 32.9867
1007 28.3
1008 8.82116
1009 7.74724
1013 32.9867
1014 28.3
1015 8.82116
1016 7.74724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 28.2435
2803 0
2804 0.826087
2805 7.70594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Stat.WriteQuota##Float32
1201 %4.1f
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
30
3004 O471
3000 24.4
3001 19.95
3002 8.75323
3003 7.90323
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 WriteQuota
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 17.1
2803 0
2804 1
2805 0.0532333
2806 0
99
99
30
3004 O472
3000 26.75
3001 19.95
3002 10.2199
3003 9.3699
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 MediumWriteRate
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 17.1
2803 0
2804 1
2805 1.5199
2806 0
99
99
27
2703 310
2704 310
2731 10000
2722 326
2705 310
2723 326
2706 310
2732 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelarge
1002 O473
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 32.9867
1007 28.3
1008 10.2212
1009 9.14724
1013 32.9867
1014 28.3
1015 10.2212
1016 9.14724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 12.95
701 8.7
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1.12933
2801 0
2802 28.2435
2803 0
2804 0.826087
2805 9.10594
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2730 0
2721
1
100 1024
105 0
101 0
106 0
102 65532
103 0
12
1200 $object.Stat.MediumWriteRate##Float32
1201 %7.1f
1202 1
1203 1
1204 0
1205
1206 0
99
99
99
30
3004 O474
3000 17.8
3001 17.05
3002 7.28657
3003 6.43657
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 %
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 14.2
2803 0
2804 1
2805 -1.41343
2806 0
99
99
30
3004 O475
3000 17.8
3001 17.05
3002 8.75323
3003 7.90323
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 %
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 14.2
2803 0
2804 1
2805 0.0532333
2806 0
99
99
30
3004 O476
3000 33.95
3001 33.2
3002 8.75323
3003 7.90323
3008 326
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 326
902 %
903
7
700 2.85
701 8.55
99
99
3009
28
2800 1
2801 0
2802 30.35
2803 0
2804 1
2805 0.0532333
2806 0
99
99
99
99
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment