Changeset 11855
- Timestamp:
- 08/09/11 13:54:35 (14 years ago)
- Location:
- trunk/FACT++/gui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/gui/FactGui.h
r11854 r11855 356 356 357 357 358 struct PixelMapEntry 359 { 360 int index; 361 int cbpx; 362 int gapd; 363 int hv_board; 364 int hv_channel; 365 366 int crate() const { return cbpx/1000; } 367 int board() const { return (cbpx/100)%10; } 368 int patch() const { return (cbpx/10)%10; } 369 int pixel() const { return cbpx%10; } 370 int group() const { return pixel()>4; } 371 int hv() const { return hv_channel+hv_board*32; } 372 }; 373 374 class PixelMap : public vector<PixelMapEntry> 375 { 376 public: 377 static const PixelMapEntry empty; 378 379 PixelMap() : vector<PixelMapEntry>(1440) 380 { 381 } 382 383 const PixelMapEntry &index(int idx) const 384 { 385 for (vector<PixelMapEntry>::const_iterator it=begin(); it!=end(); it++) 386 if (it->index==idx) 387 return *it; 388 cerr << "PixelMap: index " << idx << " not found" << endl; 389 return empty; 390 } 391 392 const PixelMapEntry &cbpx(int c) const 393 { 394 for (vector<PixelMapEntry>::const_iterator it=begin(); it!=end(); it++) 395 if (it->cbpx==c) 396 return *it; 397 cerr << "PixelMap: cbpx " << c << " not found" << endl; 398 return empty; 399 } 400 401 const PixelMapEntry &cbpx(int c, int b, int p, int px) const 402 { 403 return cbpx(px + p*9 + b*36 + c*360); 404 } 405 406 const PixelMapEntry &hv(int board, int channel) const 407 { 408 for (vector<PixelMapEntry>::const_iterator it=begin(); it!=end(); it++) 409 if (it->hv_board==board && it->hv_channel==channel) 410 return *it; 411 cerr << "PixelMap: hv " << board << "/" << channel << " not found" << endl; 412 return empty; 413 } 414 415 const PixelMapEntry &hv(int idx) const 416 { 417 return hv(idx/32, idx%32); 418 } 419 }; 420 421 const PixelMapEntry PixelMap::empty = { 0, 0, 0, 0, 0 }; 422 423 358 424 class FactGui : public MainWindow, public DimNetwork 359 425 { … … 373 439 valarray<int8_t> fFtuStatus; 374 440 441 PixelMap fPixelMap; 442 375 443 vector<int> fPixelMapHW; // Software -> Hardware 376 444 vector<int> fPatchMapHW; // Software -> Hardware … … 378 446 379 447 bool fInChoosePatchTH; // FIXME. Find a better solution 380 bool fInChoosePatchBias; // FIXME. Find a better solution 448 bool fInChooseBiasHv; // FIXME. Find a better solution 449 bool fInChooseBiasCam; // FIXME. Find a better solution 381 450 382 451 DimStampedInfo fDimDNS; … … 420 489 DimStampedInfo fDimFscHumidity; 421 490 422 //DimStampedInfo fDimBiasVolt;491 DimStampedInfo fDimBiasVolt; 423 492 DimStampedInfo fDimBiasCurrent; 424 493 … … 652 721 if (fServices.find(service)!=fServices.end()) 653 722 { 654 c out<< "ERROR - We are already subscribed to " << service << endl;723 cerr << "ERROR - We are already subscribed to " << service << endl; 655 724 return; 656 725 } … … 666 735 { 667 736 if (!allow_unsubscribed) 668 c out<< "ERROR - We are not subscribed to " << service << endl;737 cerr << "ERROR - We are not subscribed to " << service << endl; 669 738 return; 670 739 } … … 908 977 { 909 978 if (print) 910 c out<< "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << sz << endl;979 cerr << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << sz << endl; 911 980 return false; 912 981 } … … 1010 1079 if (d.size()<20) 1011 1080 { 1012 c out<< "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected>=20" << endl;1081 cerr << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected>=20" << endl; 1013 1082 return; 1014 1083 } … … 1493 1562 if (d.size()<sizeof(EVENT)) 1494 1563 { 1495 c out<< "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected>=" << sizeof(EVENT) << endl;1564 cerr << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected>=" << sizeof(EVENT) << endl; 1496 1565 return; 1497 1566 } … … 1499 1568 if (d.size()!=sizeof(EVENT)+dat.Roi*4*1440) 1500 1569 { 1501 c out<< "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << dat.Roi*4*1440+sizeof(EVENT) << " [roi=" << dat.Roi << "]" << endl;1570 cerr << "Size mismatch in " << d.name << ": Found=" << d.size() << " Expected=" << dat.Roi*4*1440+sizeof(EVENT) << " [roi=" << dat.Roi << "]" << endl; 1502 1571 return; 1503 1572 } … … 1939 2008 void UpdateRatesCam(const FTM::DimTriggerRates &sdata) 1940 2009 { 1941 #ifdef HAVE_ROOT1942 2010 if (fThresholdIdx->value()>=0) 1943 2011 { … … 1960 2028 } 1961 2029 1962 // TCanvas *c = fRatesCanv->GetCanvas();1963 // Camera *cam = (Camera*)c->FindObject("Camera");1964 1965 2030 fRatesCanv->SetData(dat); 1966 1967 // c->Modified();1968 // c->Update();1969 #endif1970 2031 } 1971 2032 … … 2114 2175 } 2115 2176 #endif 2116 }2117 2118 void on_fRatePatch1_valueChanged(int)2119 {2120 DisplayRates();2121 }2122 2123 void on_fRatePatch2_valueChanged(int)2124 {2125 DisplayRates();2126 }2127 2128 void on_fRateBoard1_valueChanged(int)2129 {2130 DisplayRates();2131 }2132 2133 void on_fRateBoard2_valueChanged(int)2134 {2135 DisplayRates();2136 2177 } 2137 2178 … … 2452 2493 // ========================== FSC ======================================= 2453 2494 2454 vector<int16_t> fVecBias; 2495 vector<int16_t> fVecBiasVolt; 2496 vector<int16_t> fVecBiasCurrent; 2455 2497 2456 2498 void handleBiasVolt(const DimData &d) … … 2461 2503 const int16_t *ptr = d.ptr<int16_t>(); 2462 2504 2463 fVecBias.assign(ptr, ptr+416); 2464 // FIXME: Update displayed value 2505 fVecBiasVolt.assign(ptr, ptr+416); 2506 2507 UpdateBiasValues(); 2465 2508 } 2466 2509 … … 2471 2514 2472 2515 const int16_t *ptr = d.ptr<int16_t>(); 2516 2517 fVecBiasCurrent.assign(ptr, ptr+416); 2473 2518 2474 2519 valarray<double> dat(0., 1440); … … 2477 2522 for (int i=0; i<1440; i++) 2478 2523 { 2479 const int ihw = fPatchHW[i];2524 const PixelMapEntry &entry = fPixelMap.index(i); 2480 2525 2481 2526 // FIXME: Display Overcurrent 2482 dat[i] = abs(ptr[ ihw])*5000./4096;2483 2484 fBiasCam->SetEnable(i, uint16_t(ptr[ ihw])!=0x8000);2527 dat[i] = abs(ptr[entry.hv()])*5000./4096; 2528 2529 fBiasCam->SetEnable(i, uint16_t(ptr[entry.hv()])!=0x8000); 2485 2530 } 2486 2531 2487 2532 fBiasCam->SetData(dat); 2533 2534 UpdateBiasValues(); 2488 2535 } 2489 2536 … … 2924 2971 return PostInfoHandler(&FactGui::handleFscHumidity); 2925 2972 2926 //if (getInfo()==&fDimBiasVolt)2927 //return PostInfoHandler(&FactGui::handleBiasVolt);2973 if (getInfo()==&fDimBiasVolt) 2974 return PostInfoHandler(&FactGui::handleBiasVolt); 2928 2975 2929 2976 if (getInfo()==&fDimBiasCurrent) … … 3095 3142 } 3096 3143 3144 /* 3097 3145 void ChoosePatchBias(Camera &cam, int isw) 3098 3146 { 3099 3147 cam.Reset(); 3100 3148 3101 fBias Pixel->setValue(isw);3149 fBiasChannel->setValue(isw); 3102 3150 3103 3151 const int ihw = isw<0 ? 0 : fPatchMapHW[isw]; … … 3127 3175 // FIXME: Mapping 3128 3176 fBiasVoltDac->setValue(fVecBias[ihw]); 3129 fBiasVolt->setValue(fVecBias[ihw]*90 /4096);3177 fBiasVolt->setValue(fVecBias[ihw]*90./4096); 3130 3178 } 3131 3179 … … 3136 3184 if (fPatchHW[i]==ihw) 3137 3185 cam.SetBold(i); 3138 } 3186 }*/ 3139 3187 3140 3188 void slot_ChoosePixelThreshold(int isw) … … 3144 3192 const bool on = fFtmStaticData.IsEnabled(ihw); 3145 3193 fPixelEnable->setChecked(on); 3146 }3147 3148 void slot_ChoosePixelBias(int isw)3149 {3150 fBiasPixel->setValue(isw);3151 //const uint16_t ihw = fPixelMapHW[isw];3152 //const bool on = fFtmStaticData.IsEnabled(ihw);3153 //fPixelEnable->setChecked(on);3154 3194 } 3155 3195 … … 3207 3247 } 3208 3248 3209 void UpdateBiasIdx()3210 {3211 if (fInChoosePatchBias)3212 return;3213 3214 const int crate = fBiasCrate->value();3215 const int board = fBiasBoard->value();3216 const int patch = fBiasPatch->value();3217 3218 const int ihw = patch + board*4 + crate*40;3219 3220 int isw = 0;3221 for (; isw<160; isw++)3222 if (ihw==fPatchMapHW[isw])3223 break;3224 3225 on_fBiasPixel_valueChanged(isw);3226 }3227 3228 3249 void on_fPixelIdx_valueChanged(int isw) 3229 3250 { … … 3242 3263 } 3243 3264 3244 void on_fBiasPixel_valueChanged(int isw) 3245 { 3246 const int ihw = fPixelMapHW[isw]; 3247 3248 int ii = 0; 3249 for (; ii<160; ii++) 3250 if (fPatchHW[isw]==fPatchMapHW[ii]) 3251 break; 3252 3253 fBiasCam->SetWhite(isw); 3254 ChoosePatchBias(*fRatesCanv, ii); 3255 3256 const bool on = fFtmStaticData.IsEnabled(ihw); 3257 fPixelEnable->setChecked(on); 3258 } 3259 3265 // ------------------- Bias display --------------------- 3266 3267 void UpdateBiasValues() 3268 { 3269 const int b = fBiasHvBoard->value(); 3270 const int c = fBiasHvChannel->value(); 3271 3272 const int ihw = b*32+c; 3273 3274 if (fVecBiasVolt.size()>0) 3275 { 3276 fBiasVoltDac->setValue(fVecBiasVolt[ihw]); 3277 fBiasVolt->setValue(fVecBiasVolt[ihw]*90./4096); 3278 } 3279 3280 if (fVecBiasCurrent.size()>0) 3281 fBiasCurrent->setValue(fVecBiasCurrent[ihw]*5000./4096); 3282 } 3283 3284 void UpdateBiasCam(const PixelMapEntry &entry) 3285 { 3286 fInChooseBiasCam = true; 3287 3288 fBiasCamCrate->setValue(entry.crate()); 3289 fBiasCamBoard->setValue(entry.board()); 3290 fBiasCamPatch->setValue(entry.patch()); 3291 fBiasCamPixel->setValue(entry.pixel()); 3292 3293 fInChooseBiasCam = false; 3294 } 3295 3296 void UpdateBiasHv(const PixelMapEntry &entry) 3297 { 3298 fInChooseBiasHv = true; 3299 3300 fBiasHvBoard->setValue(entry.hv_board); 3301 fBiasHvChannel->setValue(entry.hv_channel); 3302 3303 fInChooseBiasHv = false; 3304 } 3305 3306 void BiasHvChannelChanged() 3307 { 3308 if (fInChooseBiasHv) 3309 return; 3310 3311 const int b = fBiasHvBoard->value(); 3312 const int ch = fBiasHvChannel->value(); 3313 3314 const PixelMapEntry &entry = fPixelMap.hv(b, ch); 3315 fBiasCam->SetWhite(entry.index); 3316 fBiasCam->updateGL(); 3317 // FIXME: mark patch in camera 3318 UpdateBiasCam(entry); 3319 UpdateBiasValues(); 3320 } 3321 3322 void BiasCamChannelChanged() 3323 { 3324 if (fInChooseBiasCam) 3325 return; 3326 3327 const int crate = fBiasCamCrate->value(); 3328 const int board = fBiasCamBoard->value(); 3329 const int patch = fBiasCamPatch->value(); 3330 const int pixel = fBiasCamPixel->value(); 3331 3332 const PixelMapEntry &entry = fPixelMap.cbpx(crate, board, patch, pixel); 3333 fBiasCam->SetWhite(entry.index); 3334 fBiasCam->updateGL(); 3335 // FIXME: mark patch in camera 3336 UpdateBiasHv(entry); 3337 UpdateBiasValues(); 3338 } 3339 3340 void slot_ChooseBiasChannel(int isw) 3341 { 3342 const PixelMapEntry &entry = fPixelMap.index(isw); 3343 3344 UpdateBiasHv(entry); 3345 UpdateBiasCam(entry); 3346 UpdateBiasValues(); 3347 } 3348 3349 // ------------------------------------------------------ 3260 3350 3261 3351 void on_fPixelEnable_stateChanged(int b) … … 3344 3434 public: 3345 3435 FactGui(Configuration &conf) : 3346 fFtuStatus(40), 3436 fFtuStatus(40), 3347 3437 fPixelMapHW(1440), fPatchMapHW(160), fPatchHW(1440), 3348 fInChoosePatchTH(false), fInChoosePatchBias(false), 3438 fInChoosePatchTH(false), 3439 fInChooseBiasHv(false), fInChooseBiasCam(false), 3349 3440 fDimDNS("DIS_DNS/VERSION_NUMBER", 1, int(0), this), 3350 3441 //- … … 3387 3478 fDimFscHumidity ("FSC_CONTROL/HUMIDITY", (void*)NULL, 0, this), 3388 3479 //- 3389 //fDimBiasVolt ("BIAS_CONTROL/VOLTAGE", (void*)NULL, 0, this),3480 fDimBiasVolt ("BIAS_CONTROL/VOLTAGE", (void*)NULL, 0, this), 3390 3481 fDimBiasCurrent ("BIAS_CONTROL/CURRENT", (void*)NULL, 0, this), 3391 3482 //- 3392 3483 fEventData(0), fDrsCalibration(1440*1024*6), 3393 3484 fTimeStamp0(0) 3394 3395 3485 { 3396 3486 fClockCondFreq->addItem("--- Hz", QVariant(-1)); … … 3448 3538 // -------------------------------------------------------------------------- 3449 3539 3540 ifstream fin0("FACTmapV5.txt"); 3541 3542 int l = 0; 3543 3544 string buf; 3545 while (getline(fin0, buf, '\n')) 3546 { 3547 if (l>1439) 3548 break; 3549 3550 buf = Tools::Trim(buf); 3551 if (buf[0]=='#') 3552 continue; 3553 3554 stringstream str(buf); 3555 3556 int idummy; 3557 float fdummy; 3558 3559 PixelMapEntry entry; 3560 3561 str >> entry.index; 3562 str >> entry.cbpx; 3563 str >> idummy; 3564 str >> idummy; 3565 str >> entry.gapd; 3566 str >> fdummy; 3567 str >> entry.hv_board; 3568 str >> entry.hv_channel; 3569 str >> fdummy; 3570 str >> fdummy; 3571 str >> fdummy; 3572 3573 fPixelMap[l++] = entry; 3574 } 3575 3576 if (l!=1440) 3577 { 3578 cerr << "ERROR - Problems reading FACTmapV5.txt" << endl; 3579 exit(-1); 3580 } 3581 3582 // -------------------------------------------------------------------------- 3583 3450 3584 ifstream fin1("Trigger-Patches.txt"); 3451 3585 3452 int l = 0; 3453 3454 string buf; 3586 l = 0; 3455 3587 while (getline(fin1, buf, '\n')) 3456 3588 { … … 3608 3740 // -------------------------------------------------------------------------- 3609 3741 3742 fBiasCam->SetMin(fBiasMin->value()); 3743 fBiasCam->SetMax(fBiasMax->value()); 3744 fBiasCam->updateGL(); 3745 3746 // -------------------------------------------------------------------------- 3747 3610 3748 fRatesCanv->SetMin(fRatesMin->value()); 3611 3749 fRatesCanv->SetMax(fRatesMax->value()); … … 3657 3795 this, SLOT(slot_ChoosePixelThreshold(int))); 3658 3796 connect(fBiasCam, SIGNAL(signalCurrentPixel(int)), 3659 this, SLOT(slot_Choose PixelBias(int)));3797 this, SLOT(slot_ChooseBiasChannel(int))); 3660 3798 connect(fFtmRateCanv, SIGNAL( RootEventProcessed(TObject*, unsigned int, TCanvas*)), 3661 3799 this, SLOT (slot_RootEventProcessed(TObject*, unsigned int, TCanvas*))); -
trunk/FACT++/gui/design.ui
r11854 r11855 3008 3008 </property> 3009 3009 <property name="maximum"> 3010 <number> 4</number>3010 <number>3</number> 3011 3011 </property> 3012 3012 </widget> … … 3350 3350 <widget class="QLabel" name="label_202"> 3351 3351 <property name="text"> 3352 <string>Pixel</string> 3352 <string>Bias supply</string> 3353 </property> 3354 <property name="alignment"> 3355 <set>Qt::AlignCenter</set> 3353 3356 </property> 3354 3357 </widget> 3355 3358 </item> 3356 3359 <item> 3357 <layout class="Q HBoxLayout" name="horizontalLayout_43">3360 <layout class="QGridLayout" name="gridLayout_87"> 3358 3361 <property name="topMargin"> 3359 3362 <number>0</number> 3360 3363 </property> 3361 <item >3362 <widget class="QSpinBox" name="fBias Pixel">3364 <item row="1" column="0"> 3365 <widget class="QSpinBox" name="fBiasHvBoard"> 3363 3366 <property name="alignment"> 3364 3367 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3365 3368 </property> 3366 3369 <property name="maximum"> 3367 <number> 1439</number>3370 <number>9</number> 3368 3371 </property> 3369 3372 </widget> 3370 3373 </item> 3371 <item> 3372 <widget class="QCheckBox" name="fPixelEnable_2"> 3373 <property name="enabled"> 3374 <bool>false</bool> 3375 </property> 3376 <property name="maximumSize"> 3377 <size> 3378 <width>20</width> 3379 <height>16777215</height> 3380 </size> 3381 </property> 3374 <item row="0" column="0"> 3375 <widget class="QLabel" name="label_229"> 3382 3376 <property name="text"> 3383 <string />3377 <string>Board</string> 3384 3378 </property> 3385 3379 </widget> 3386 3380 </item> 3387 </layout> 3388 </item> 3389 <item> 3390 <layout class="QHBoxLayout" name="horizontalLayout_44"> 3391 <property name="topMargin"> 3392 <number>0</number> 3393 </property> 3394 <item> 3395 <widget class="QPushButton" name="fPixelEnableAll_2"> 3396 <property name="enabled"> 3397 <bool>false</bool> 3398 </property> 3381 <item row="0" column="1"> 3382 <widget class="QLabel" name="label_230"> 3399 3383 <property name="text"> 3400 <string> Enable all</string>3384 <string>Channel</string> 3401 3385 </property> 3402 3386 </widget> 3403 3387 </item> 3404 <item> 3405 <widget class="QPushButton" name="fPixelDisableAll_2"> 3406 <property name="enabled"> 3388 <item row="1" column="1"> 3389 <widget class="QSpinBox" name="fBiasHvChannel"> 3390 <property name="alignment"> 3391 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3392 </property> 3393 <property name="readOnly"> 3407 3394 <bool>false</bool> 3408 3395 </property> 3409 <property name="text"> 3410 <string>Disable all</string> 3411 </property> 3412 </widget> 3413 </item> 3414 </layout> 3415 </item> 3416 <item> 3417 <layout class="QHBoxLayout" name="horizontalLayout_45"> 3418 <property name="topMargin"> 3419 <number>0</number> 3420 </property> 3421 <item> 3422 <widget class="QPushButton" name="fPixelDisableOthers_2"> 3423 <property name="enabled"> 3424 <bool>false</bool> 3425 </property> 3426 <property name="text"> 3427 <string>Disable others</string> 3396 <property name="buttonSymbols"> 3397 <enum>QAbstractSpinBox::UpDownArrows</enum> 3398 </property> 3399 <property name="maximum"> 3400 <number>31</number> 3428 3401 </property> 3429 3402 </widget> … … 3450 3423 <widget class="QLabel" name="label_206"> 3451 3424 <property name="text"> 3452 <string>Patch</string> 3425 <string>Camera</string> 3426 </property> 3427 <property name="alignment"> 3428 <set>Qt::AlignCenter</set> 3453 3429 </property> 3454 3430 </widget> 3455 </item>3456 <item>3457 <widget class="QSpinBox" name="fBiasPatch">3458 <property name="alignment">3459 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>3460 </property>3461 <property name="readOnly">3462 <bool>false</bool>3463 </property>3464 <property name="specialValueText">3465 <string>all</string>3466 </property>3467 <property name="minimum">3468 <number>-1</number>3469 </property>3470 <property name="maximum">3471 <number>159</number>3472 </property>3473 <property name="value">3474 <number>0</number>3475 </property>3476 </widget>3477 </item>3478 <item>3479 <layout class="QHBoxLayout" name="horizontalLayout_46">3480 <property name="topMargin">3481 <number>0</number>3482 </property>3483 <item>3484 <widget class="QPushButton" name="fThresholdDisableOthers_2">3485 <property name="enabled">3486 <bool>false</bool>3487 </property>3488 <property name="text">3489 <string>Disable others</string>3490 </property>3491 </widget>3492 </item>3493 </layout>3494 </item>3495 <item>3496 <spacer name="verticalSpacer_62">3497 <property name="orientation">3498 <enum>Qt::Vertical</enum>3499 </property>3500 <property name="sizeType">3501 <enum>QSizePolicy::Fixed</enum>3502 </property>3503 <property name="sizeHint" stdset="0">3504 <size>3505 <width>20</width>3506 <height>5</height>3507 </size>3508 </property>3509 </spacer>3510 3431 </item> 3511 3432 <item> … … 3515 3436 </property> 3516 3437 <item row="1" column="0"> 3517 <widget class="QSpinBox" name="fBiasC rate">3438 <widget class="QSpinBox" name="fBiasCamCrate"> 3518 3439 <property name="alignment"> 3519 3440 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> … … 3525 3446 </item> 3526 3447 <item row="1" column="1"> 3527 <widget class="QSpinBox" name="fBias Board">3448 <widget class="QSpinBox" name="fBiasCamBoard"> 3528 3449 <property name="alignment"> 3529 3450 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> … … 3531 3452 <property name="maximum"> 3532 3453 <number>9</number> 3533 </property>3534 </widget>3535 </item>3536 <item row="1" column="3">3537 <widget class="QSpinBox" name="fBiasPatch_2">3538 <property name="alignment">3539 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>3540 </property>3541 <property name="maximum">3542 <number>4</number>3543 </property>3544 </widget>3545 </item>3546 <item row="0" column="3">3547 <widget class="QLabel" name="label_222">3548 <property name="text">3549 <string>Patch</string>3550 3454 </property> 3551 3455 </widget> … … 3562 3466 <property name="text"> 3563 3467 <string>Board</string> 3468 </property> 3469 </widget> 3470 </item> 3471 <item row="2" column="0"> 3472 <widget class="QLabel" name="label_222"> 3473 <property name="text"> 3474 <string>Patch</string> 3475 </property> 3476 </widget> 3477 </item> 3478 <item row="3" column="0"> 3479 <widget class="QSpinBox" name="fBiasCamPatch"> 3480 <property name="alignment"> 3481 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3482 </property> 3483 <property name="maximum"> 3484 <number>3</number> 3485 </property> 3486 </widget> 3487 </item> 3488 <item row="2" column="1"> 3489 <widget class="QLabel" name="label_231"> 3490 <property name="text"> 3491 <string>Pixel</string> 3492 </property> 3493 </widget> 3494 </item> 3495 <item row="3" column="1"> 3496 <widget class="QSpinBox" name="fBiasCamPixel"> 3497 <property name="alignment"> 3498 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3499 </property> 3500 <property name="readOnly"> 3501 <bool>false</bool> 3502 </property> 3503 <property name="buttonSymbols"> 3504 <enum>QAbstractSpinBox::UpDownArrows</enum> 3505 </property> 3506 <property name="maximum"> 3507 <number>8</number> 3508 </property> 3509 <property name="singleStep"> 3510 <number>1</number> 3564 3511 </property> 3565 3512 </widget> … … 3638 3585 </item> 3639 3586 <item> 3587 <widget class="QCheckBox" name="fBiasApplyGlobal"> 3588 <property name="text"> 3589 <string>Apply globally</string> 3590 </property> 3591 </widget> 3592 </item> 3593 <item> 3640 3594 <spacer name="verticalSpacer_64"> 3641 3595 <property name="orientation"> … … 3672 3626 </property> 3673 3627 <property name="suffix"> 3674 <string> mA</string>3628 <string> µA</string> 3675 3629 </property> 3676 3630 <property name="maximum"> … … 3737 3691 </property> 3738 3692 <property name="suffix"> 3739 <string> Hz</string>3693 <string> µA</string> 3740 3694 </property> 3741 3695 <property name="minimum"> … … 3743 3697 </property> 3744 3698 <property name="maximum"> 3745 <number>2147483647</number> 3699 <number>5000</number> 3700 </property> 3701 <property name="value"> 3702 <number>0</number> 3746 3703 </property> 3747 3704 </widget> … … 3775 3732 </property> 3776 3733 <property name="suffix"> 3777 <string> Hz</string>3734 <string> µA</string> 3778 3735 </property> 3779 3736 <property name="minimum"> … … 3781 3738 </property> 3782 3739 <property name="maximum"> 3783 <number> 2147483647</number>3740 <number>5000</number> 3784 3741 </property> 3785 3742 <property name="value"> 3786 <number> 1000</number>3743 <number>5000</number> 3787 3744 </property> 3788 3745 </widget> … … 14930 14887 <hints> 14931 14888 <hint type="sourcelabel"> 14932 <x>11 41</x>14933 <y>77 2</y>14889 <x>1191</x> 14890 <y>774</y> 14934 14891 </hint> 14935 14892 <hint type="destinationlabel"> … … 14946 14903 <hints> 14947 14904 <hint type="sourcelabel"> 14948 <x>1 176</x>14949 <y>77 2</y>14905 <x>1226</x> 14906 <y>774</y> 14950 14907 </hint> 14951 14908 <hint type="destinationlabel"> … … 14962 14919 <hints> 14963 14920 <hint type="sourcelabel"> 14964 <x>11 30</x>14921 <x>1180</x> 14965 14922 <y>109</y> 14966 14923 </hint> … … 14978 14935 <hints> 14979 14936 <hint type="sourcelabel"> 14980 <x>1 165</x>14937 <x>1215</x> 14981 14938 <y>109</y> 14982 14939 </hint> … … 15026 14983 <hints> 15027 14984 <hint type="sourcelabel"> 15028 <x>11 30</x>14985 <x>1180</x> 15029 14986 <y>105</y> 15030 14987 </hint> … … 15042 14999 <hints> 15043 15000 <hint type="sourcelabel"> 15044 <x>1 165</x>15001 <x>1215</x> 15045 15002 <y>105</y> 15046 15003 </hint> … … 15218 15175 <hints> 15219 15176 <hint type="sourcelabel"> 15220 <x>11 30</x>15221 <y>44 2</y>15177 <x>1180</x> 15178 <y>443</y> 15222 15179 </hint> 15223 15180 <hint type="destinationlabel"> … … 15234 15191 <hints> 15235 15192 <hint type="sourcelabel"> 15236 <x>1 165</x>15237 <y>44 2</y>15193 <x>1215</x> 15194 <y>443</y> 15238 15195 </hint> 15239 15196 <hint type="destinationlabel"> … … 15250 15207 <hints> 15251 15208 <hint type="sourcelabel"> 15252 <x>1 086</x>15253 <y>4 23</y>15209 <x>1215</x> 15210 <y>438</y> 15254 15211 </hint> 15255 15212 <hint type="destinationlabel">
Note:
See TracChangeset
for help on using the changeset viewer.