Changeset 216 for Evidence/Edd
- Timestamp:
- 05/28/10 09:01:45 (15 years ago)
- Location:
- Evidence/Edd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Evidence/Edd/Edd.cc
r212 r216 30 30 DimBrowser Browser; 31 31 32 // If status service displayed as text history 33 if (strstr(Service, "/Message") != NULL) return new EddText(Service); 34 35 // If service currently not available, default open as plot 32 36 Browser.getServices(Service); 33 37 if (Browser.getNextService(Name, Format) != DimSERVICE) return new EddPlot(Service, Index); 34 38 39 // Otherwise, determine from format if plot or text history 35 40 if (strlen(Format) == 1 && *Format != 'C') return new EddPlot(Service, Index); 36 41 else return new EddText(Service); … … 205 210 206 211 DimClient::sendCommand(Name.toAscii().data(), text().toAscii().data()); 212 clear(); 207 213 } 208 214 … … 276 282 for (ItemNo=0; ItemNo<List.size(); ItemNo++) if (List[ItemNo].Name == Name) { 277 283 278 // Service available?279 if (!SetStatus(this, Name, Time, Format)) return;280 281 284 // If size limit reached, clear buffer 282 285 if (List[ItemNo].Signal->dataSize() > SizeLimit) List[ItemNo].Signal->setData(QPolygonF()); … … 284 287 // If buffer empty, request new history buffer 285 288 if (List[ItemNo].Signal->dataSize() == 0) { 286 int Time, Size,Count=0;287 void *Data;289 int Count=0; 290 const struct EvidenceHistory::Item *R; 288 291 class EvidenceHistory *Hist; 289 292 290 293 if ((Hist = Handler->GetHistory(List[ItemNo].Name)) != NULL) { 291 294 double Number=0; 292 while ( Hist->Next(Time, Size, Data)) {295 while ((R=Hist->Next()) != NULL) { 293 296 switch (Format[0].toUpper().toAscii()) { 294 297 case 'I': 295 case 'L': Number = *((int *) Data + List[ItemNo].Index); break;296 case 'S': Number = *((short *) Data + List[ItemNo].Index); break;297 case 'F': Number = *((float *) Data + List[ItemNo].Index); break;298 case 'D': Number = *((double *) Data + List[ItemNo].Index); break;299 case 'X': Number = *((long long *) Data + List[ItemNo].Index); break;298 case 'L': Number = *((int *) R->Data + List[ItemNo].Index); break; 299 case 'S': Number = *((short *) R->Data + List[ItemNo].Index); break; 300 case 'F': Number = *((float *) R->Data + List[ItemNo].Index); break; 301 case 'D': Number = *((double *) R->Data + List[ItemNo].Index); break; 302 case 'X': Number = *((long long *) R->Data + List[ItemNo].Index); break; 300 303 default: break; 301 304 } 302 AddPoint(ItemNo, Time, Number);305 AddPoint(ItemNo, R->Time, Number); 303 306 Count++; 304 307 } … … 309 312 } 310 313 311 // Append data 312 QString Txt = Text; 313 Txt = Txt.section(' ', List[ItemNo].Index, List[ItemNo].Index); 314 AddPoint(ItemNo, Time, atof(Txt.toAscii().data())); 314 // Appen data only if service available 315 if (SetStatus(this, Name, Time, Format)) { 316 QString Txt = Text; 317 Txt = Txt.section(' ', List[ItemNo].Index, List[ItemNo].Index); 318 AddPoint(ItemNo, Time, atof(Txt.toAscii().data())); 319 } 315 320 } 316 321 … … 721 726 if (!Pure) { 722 727 // Get history for this service 723 int Time, Size; 724 void *Data; 728 const struct EvidenceHistory::Item *R; 725 729 class EvidenceHistory *Hist; 726 730 727 731 if ((Hist = Handler->GetHistory(Name)) != NULL) { 728 while ( Hist->Next(Time, Size, Data)) {732 while ((R=Hist->Next()) != NULL) { 729 733 moveCursor (QTextCursor::Start); 730 insertPlainText(QString("(")+QDateTime::fromTime_t( Time).toString()+") ");731 insertPlainText(QString((char *) Data) + "\n");734 insertPlainText(QString("(")+QDateTime::fromTime_t(R->Time).toString()+") "); 735 insertPlainText(QString((char *) R->Data) + "\n"); 732 736 } 733 737 } … … 780 784 781 785 Mutex = new QMutex(QMutex::Recursive); 782 783 MinuteVolume = 0; 784 TotalVolume = 0; 786 Volume = 0; 785 787 786 788 // Timer to calculate data rates … … 815 817 YEP(Name, ServiceList[i].TimeStamp, ServiceList[i].ByteArray, ServiceList[i].Format, ServiceList[i].Text); 816 818 } 819 else YEP(Name, -1); 817 820 return; 818 821 } … … 878 881 QMutexLocker Locker(Mutex); 879 882 880 float Rate = MinuteVolume/1024.0 * 6; 881 float Total = TotalVolume/1024.0/1024.0; 882 883 YEP("Edd/Rate_kBMin", time(NULL), QByteArray::number(Rate), "F", QString::number(Rate)); 884 YEP("Edd/Total_MB", time(NULL), QByteArray::number(Total), "F", QString::number(Total)); 885 MinuteVolume = 0; 883 float Rate = Volume/1024.0/10; 884 885 YEP("Edd/Rate_kBSec", time(NULL), QByteArray::number(Rate), "F", QString::number(Rate)); 886 Volume = 0; 886 887 } 887 888 … … 900 901 901 902 // Update statistics only for Dim services 902 if (!Name.startsWith("Edd/")) { 903 TotalVolume += Data.size(); 904 MinuteVolume += Data.size(); 905 } 903 if (!Name.startsWith("Edd/")) Volume += Data.size(); 906 904 } 907 905 … … 1149 1147 1150 1148 // Status display 1151 EddLineDisplay *Line = new EddLineDisplay("ARDUINO/ Status");1149 EddLineDisplay *Line = new EddLineDisplay("ARDUINO/Message"); 1152 1150 Line->setMaximumWidth(200); 1153 1151 Layout->addWidget(Line, 0, 0, 1, 2); … … 1188 1186 1189 1187 Layout->addWidget(Plot, 0, 4, 12, 3); 1190 Line = new EddLineDisplay("Bias/ Status");1188 Line = new EddLineDisplay("Bias/Message"); 1191 1189 Line->setMaximumWidth(200); 1192 1190 Layout->addWidget(Line, 0, 0, 1, 3); … … 1195 1193 Layout->addWidget(Command, 10, 0, 1, 4); 1196 1194 1197 EddText *Text = new EddText("Bias/ StdOut", true);1195 EddText *Text = new EddText("Bias/Textout", true); 1198 1196 Text->setFixedWidth(400); 1199 1197 Layout->addWidget(Text, 11, 0, 4, 4); … … 1224 1222 //FeedbackLayout->addWidget(Graph, 10, 0, 10, 3); 1225 1223 1226 Line = new EddLineDisplay("drsdaq/ Status");1224 Line = new EddLineDisplay("drsdaq/Message"); 1227 1225 Line->setMaximumWidth(200); 1228 1226 Layout->addWidget(Line, 0, 0, 1, 2); … … 1409 1407 EddText *Text; 1410 1408 1411 Line = new EddLineDisplay("Alarm/ Status");1409 Line = new EddLineDisplay("Alarm/Message"); 1412 1410 Line->setMaximumWidth(200); 1413 1411 Layout->addWidget(Line, 0, 0, 1, 2); … … 1422 1420 Layout->addWidget(Text, 1, 0, 1, 2); 1423 1421 1424 Line = new EddLineDisplay("DColl/ Status");1422 Line = new EddLineDisplay("DColl/Message"); 1425 1423 Line->setMaximumWidth(200); 1426 1424 Layout->addWidget(Line, 3, 0, 1, 2); 1427 1425 1428 Line = new EddLineDisplay("DColl/DataSize kB");1426 Line = new EddLineDisplay("DColl/DataSizeMB"); 1429 1427 Layout->addWidget(Line, 4, 0, 1, 1); 1430 1428 1431 Line = new EddLineDisplay("DColl/LogSize kB");1429 Line = new EddLineDisplay("DColl/LogSizeMB"); 1432 1430 Layout->addWidget(Line, 4, 1, 1, 1); 1433 1431 … … 1436 1434 Layout->addWidget(Line, 5, 0, 1, 3); 1437 1435 1438 Line = new EddLineDisplay("Config/ Status");1436 Line = new EddLineDisplay("Config/Message"); 1439 1437 Line->setMaximumWidth(200); 1440 1438 Layout->addWidget(Line, 6, 0, 1, 2); … … 1450 1448 Layout->addWidget(Button, 7, 1, 1, 1); 1451 1449 1452 Line = new EddLineDisplay("Edd/Rate_kB Min");1450 Line = new EddLineDisplay("Edd/Rate_kBSec"); 1453 1451 Layout->addWidget(Line, 8, 0, 1, 1); 1454 Line = new EddLineDisplay("Edd/Total_MB");1455 Layout->addWidget(Line, 8, 1, 1, 1);1456 1452 } 1457 1453 -
Evidence/Edd/Edd.h
r212 r216 232 232 QList<HistItem> HistoryList; 233 233 234 long long TotalVolume; 235 long long MinuteVolume; 234 long long Volume; 236 235 237 236 void infoHandler();
Note:
See TracChangeset
for help on using the changeset viewer.