// // Cannot use DMI through plug & play devices. This is probably OK for present. // bool getDMIPointer(int SocketId, transaction_type& trans, tlm::tlm_dmi& dmi_data) { Addr address = trans.get_address(); Addr offset; int portId = getPortId(address, offset); Bool result = false; if(portId >= 0) { initiator_socket_type* decodeSocket = &initiator_socket[portId]; // send on the transaction with the new address, adjusted for the decoder offset trans.set_address(offset); result = (*decodeSocket)->get_direct_mem_ptr(trans, dmi_data); // put the address back how it was trans.set_address(address); // Should always succeed Addr start = dmi_data.get_start_address(); Addr end = dmi_data.get_end_address(); if (result) { // Range must contain address assert(start <= offset); assert(end >= offset); } adjustRange(portId, address, start, end); dmi_data.set_start_address(start); dmi_data.set_end_address(end); } return result; }
/** * @brief Set the initial calibrated throttle based on the first event * passed by SDL. * @param Current value for axis. */ void JoyAxis::setInitialThrottle(int value) { if (value >= JoyAxis::NegativeHalfThrottle && value <= JoyAxis::PositiveHalfThrottle) { if (value != throttle) { throttle = value; adjustRange(); emit throttleChanged(); } } }
void JoyAxis::reset() { deadZone = getDefaultDeadZone(); isActive = false; eventActive = false; maxZoneValue = getDefaultMaxZone(); throttle = getDefaultThrottle(); paxisbutton->reset(); naxisbutton->reset(); activeButton = 0; adjustRange(); setCurrentRawValue(currentThrottledDeadValue); currentThrottledValue = calculateThrottledValue(currentRawValue); axisName.clear(); }
void Plotter2ViewportInfo::setData(const std::vector<float>& inXData, const std::vector<float>& inYData, const int id) { if (!hasDataRange) { minXData = inXData[0]; maxXData = inXData[0]; minYData = inYData[0]; maxYData = inYData[0]; hasDataRange = true; } Plotter2DataInfo* info = &vData[id]; info->xData.clear(); info->xData.reserve(inXData.size()); for (unsigned int i = 0; i < inXData.size(); ++i) { info->xData.push_back(inXData[i]); if (!info->hasData) { updateXDataRange(inXData[i]); } } info->yData.clear(); info->yData.reserve(inYData.size()); for (unsigned int i = 0; i < inYData.size(); ++i) { info->yData.push_back(inYData[i]); if (!info->hasData) { updateYDataRange(inYData[i]); } } if (info->hasData) { updateAllDataRanges(); } else { info->hasData = true; } adjustRange(); adjustTickInterval(); }
void compare2AlignmentsSame( char *filename, TString alment0="fromAlignment", TString alment1="ideal") { setupStyle(); AlighnmentTTrees alignTrees[2]; importTreesFromFile(filename, alment0, &alignTrees[0], alment0+"_"); importTreesFromFile(filename, alment1, &alignTrees[1], alment1+"_"); alignTrees[0].DTWheels->AddFriend(alignTrees[1].DTWheels,"a"); alignTrees[0].DTChambers->AddFriend(alignTrees[1].DTChambers,"a"); alignTrees[0].DTStations->AddFriend(alignTrees[1].DTStations,"a"); // alignTrees[0].DTSuperLayers->AddFriend(alignTrees[1].DTSuperLayers,"a"); // alignTrees[0].DTLayers->AddFriend(alignTrees[1].DTLayers,"a"); alignTrees[0].CSCStations->AddFriend(alignTrees[1].CSCStations,"a"); alignTrees[0].CSCChambers->AddFriend(alignTrees[1].CSCChambers,"a"); // alignTrees[0].CSCLayers->AddFriend(alignTrees[1].CSCLayers,"a"); /// ------ PLOTTING ------------- char histostr[100], histostr1[100], drawstr[300], cutstr[200], hsetupstr[200]; //double nbin = 20, low = -0.15, high = 0.15; double nbin = 20, low = -0.05, high = 0.05; TCanvas *c1 = (TCanvas*)gROOT->FindObject("c_barrel_dz"); if (c1==NULL) return; TH1F *h_1; TH1F *h_bz_[5]; for (int i=-2; i<=2; i++) { c1->cd(i+3); sprintf(histostr,"h_bz_s[%d]",i+2); sprintf(histostr1,"h_bz_[%d]",i+2); //sprintf(drawstr,"z-a.z>>%s(%d,%f,%f)",histostr,nbin,low,high); sprintf(drawstr,"xhatx*dx+xhaty*dy+xhatz*dz>>%s(%d,%f,%f)",histostr,nbin,low,high); sprintf(cutstr, "structa==%d",i); //sprintf(hsetupstr,"wheel %d: #Delta z;#Delta z;# chambers", i); sprintf(hsetupstr,"wheel %d: #Delta x;#Delta x;# chambers", i); cout<<drawstr<<endl; alignTrees[0].DTChambers->Draw(drawstr,cutstr,"same"); h_bz_[i+2] = (TH1F*) gROOT->FindObject(histostr); setupHisto(h_bz_[i+2],hsetupstr, -1, 4); h_1 = (TH1F*) gROOT->FindObjectAny(histostr1); adjustRange(h_bz_[i+2],h_1); } c1->cd(); //nbin = 20; low = -1.5; high = 1.5; nbin = 20; low = -.02; high = .02; TCanvas *c2 = (TCanvas*)gROOT->FindObject("c_endcap_dz"); if (c2==NULL) return; TH1F *h_edz_[9]; int npad=1; for (int i=-4; i<=4; i++) { if (i==0) continue; c2->cd(npad++); sprintf(histostr,"h_edz_s[%d]",i+4); sprintf(histostr1,"h_edz_[%d]",i+4); //sprintf(drawstr,"z-a.z>>%s(%d,%f,%f)",histostr,nbin,low,high); sprintf(drawstr,"xhatx*dx+xhaty*dy+xhatz*dz>>%s(%d,%f,%f)",histostr,nbin,low,high); //sprintf(cutstr, "structa==%d",i); sprintf(cutstr, "structa==%d&&(!(abs(structa)==1&&(structb==1||structb==4)))",i); //sprintf(hsetupstr,"disk %d: #Delta z;#Delta z;# chambers", i); sprintf(hsetupstr,"disk %d: #Delta x;#Delta x;# chambers", i); cout<<drawstr<<endl; alignTrees[0].CSCChambers->Draw(drawstr,cutstr,"same"); h_edz_[i+4] = (TH1F*) gROOT->FindObject(histostr); setupHisto(h_edz_[i+4],hsetupstr, -1, 4); h_1 = (TH1F*) gROOT->FindObjectAny(histostr1); adjustRange(h_edz_[i+4],h_1); } c2->cd(); //TCanvas *tc = new TCanvas("test","test",900,900); //tc->Divide(2,2); //tc->cd(1); /// ------ END PLOTTING ------------- return; if (gROOT->IsBatch()) return; new TBrowser(); TTreeViewer *treeview = new TTreeViewer(); // char tnames[8][50] = {"DTWheels","DTStations","DTChambers","DTSuperLayers","DTLayers" ,"CSCStations" ,"CSCChambers" ,"CSCLayers"}; char tnames[8][50] = {"DTWheels","DTStations","DTChambers","CSCStations" ,"CSCChambers" }; for (int i=0;i<8;i++) { char nm[200]; sprintf(nm,"%s_%s",alment0.Data(),tnames[i]); treeview->SetTreeName(nm); } for (int i=0;i<8;i++) { char nm[200]; sprintf(nm,"%s_%s",alment1.Data(),tnames[i]); treeview->SetTreeName(nm); } }
bool PSV_Public::getLabels(QVariant &maxValue, QVariant &minValue, QPair<double, double> &range, QList<QPair<QVariant, QString> > &labelList) { if(maxValue.type() != minValue.type()) { return false; } QVariant::Type type = maxValue.type(); switch(type) { case QVariant::Double: case QVariant::Int: case QVariant::UInt: { double max = maxValue.toDouble(); double min = minValue.toDouble(); int numTick = getNumTicks(max, min); if(numTick <= 0) { return false; } adjustRange(max, min); labelList.clear(); for(int i = 0; i <= numTick; ++i) { double value = min + 1.0 * (max - min) * i / numTick; QString str = QObject::tr("%1").arg(value); labelList.append(QPair<QVariant, QString>(value, str)); } maxValue = max; minValue = min; range = QPair<double,double>(min,max); return true; } break; case QVariant::Date: { QDate maxDate = maxValue.toDate(); QDate minDate = minValue.toDate(); bool isOk = getDateLabels(maxDate, minDate, labelList); maxValue = maxDate; minValue = minDate; range = QPair<double,double>(0.0, 1.0 * minDate.daysTo(maxDate)); return isOk; } break; case QVariant::Time: { QTime maxTime = maxValue.toTime(); QTime minTime = minValue.toTime(); bool isOk = getTimeLabels(maxTime, minTime, labelList); maxValue = maxTime; minValue = minTime; range = QPair<double,double>(0.0, 86400.0/*1.0 * minTime.secsTo(maxTime)*/); return isOk; } break; case QVariant::DateTime: { QDateTime maxTime = maxValue.toDateTime(); QDateTime minTime = minValue.toDateTime(); // PSV_Public::printMes(maxTime,"1maxTime"); // PSV_Public::printMes(minTime,"1minTime"); bool isOk = getDateTimeLabels(maxTime, minTime, labelList); maxValue = maxTime; minValue = minTime; // PSV_Public::printMes(maxTime,"2maxTime"); // PSV_Public::printMes(minTime,"2minTime"); range = QPair<double,double>(PSV_BEGIN_DATETIME.secsTo(minValue.toDateTime()),PSV_BEGIN_DATETIME.secsTo(maxValue.toDateTime())); return isOk; } break; default: break; } return false; }