Changeset 12160 for trunk/FACT++/src
- Timestamp:
- 10/02/11 13:28:28 (14 years ago)
- Location:
- trunk/FACT++/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/src/DataWriteFits.cc
r12148 r12160 44 44 fFile.AddColumn('C', "Errors", 4); 45 45 fFile.AddColumn('I', "SoftTrig"); 46 fFile.AddColumn('I', " PCTime",2);46 fFile.AddColumn('I', "UnixTimeUTC", 2); 47 47 fFile.AddColumn('I', "BoardTime", NBOARDS); 48 48 fFile.AddColumn('S', "StartCellData", NPIX); -
trunk/FACT++/src/PixelMap.h
r12151 r12160 31 31 int group() const { return pixel()>4; } 32 32 int hv() const { return hv_channel+hv_board*32; } 33 34 operator bool() const { return index>=0; } 33 35 }; 34 36 … … 181 183 }; 182 184 183 //const PixelMapEntry PixelMap::empty = { 0, 0, 0, 0, 0, 0 };184 185 185 #endif -
trunk/FACT++/src/feedback.cc
r12067 r12160 301 301 // Kd = 0; 302 302 303 // -110 / -110 (-23 DAC / -0.51V)304 // Reference voltage: -238 / -203305 // -360 / -343 ( 23 DAC / 0.51V)306 307 // 0.005 A/V308 // 220 Amplitude / 1V309 310 // Gain = 1V / 200 = 0.005311 312 303 // => Kp = 0.01 * gain = 0.00005 313 304 // => Ki = 0.8 * gain/20s = 0.00025 314 305 // => Kd = 0.1 * gain/20s = 0.00003 315 306 316 //valarray<double> correction = - Kp*(PV[2] - PV[1]) + Ki * dT * (SP-PV[2]) - Kd/dT * (PV[2] - 2*PV[1] + PV[0]); 307 //valarray<double> correction = 308 // - Kp * (PV[2] - PV[1]) 309 // + dT * Ki * (SP - PV[2]) 310 // - Kd / dT * (PV[2] - 2*PV[1] + PV[0]); 311 // 312 // - (Kp+Kd/dT1) * (PV[2] - PV[1]) 313 // + dT2 * Ki * (SP - PV[2]) 314 // + Kd / dT1 * (PV[1] - PV[0]); 315 // 316 // - Kp * (PV[2] - PV[1]) 317 // + Ki * (SP - PV[2])*dT 318 // - Kd * (PV[2] - PV[1])/dT 319 // + Kd * (PV[1] - PV[0])/dT; 320 // 317 321 //valarray<double> correction = 318 322 // - Kp*(PV[2] - PV[1]) + Ki * T21 * (SP-PV[2]) - Kd*(PV[2]-PV[1])/T21 - Kd*(PV[0]-PV[1])/T01; … … 324 328 ); 325 329 330 /* 331 integral = 0 332 start: 333 integral += (fSP - fPV[2])*dt 334 335 output = Kp*(fSP - fPV[2]) + Ki*integral - Kd*(fPV[2] - fPV[1])/dt 336 337 wait(dt) 338 339 goto start 340 */ 341 326 342 vector<float> vec(2*BIAS::kNumChannels); 327 343 for (int i=0; i<BIAS::kNumChannels; i++) … … 337 353 Info("Sending correction to feedback."); 338 354 339 dic_cmnd_service((char*)"BIAS_CONTROL/ADD_REFERENCE_VOLTAGES",340 (void*)(vec.data()+416), 416*sizeof(float));355 DimClient::sendCommandNB("BIAS_CONTROL/ADD_REFERENCE_VOLTAGES", 356 (void*)(vec.data()+416), 416*sizeof(float)); 341 357 342 358 /* … … 607 623 return 1; 608 624 } 625 626 // -110 / -110 (-23 DAC / -0.51V) 627 // Reference voltage: -238 / -203 628 // -360 / -343 ( 23 DAC / 0.51V) 629 630 // 0.005 A/V 631 // 220 Amplitude / 1V 632 633 // Gain = 1V / 200 = 0.005 609 634 610 635 fGain = 5; // (BIAS)V / (DRS)V ( 1V / 0.22V ) … … 676 701 void PrintHelp() 677 702 { 703 Main::PrintHelp<StateMachineFeedback>(); 704 678 705 /* Additional help text which is printed after the configuration 679 706 options goes here */ -
trunk/FACT++/src/tools.cc
r11229 r12160 73 73 return str.substr(start, end-start+1); 74 74 } 75 76 // -------------------------------------------------------------------------- 77 // 78 //! This is a static helper to remove leading and trailing whitespaces. 79 //! 80 //! Usage example: 81 //! 82 //! \code 83 //! string str = " Dies ist ein test fuer einen ganz langen Satz " 84 //! "und ob er korrekt umgebrochen und formatiert wird. Alles " 85 //! "nur ein simpler test aber trotzdem ganz wichtig."; 86 //! 87 //! cout << setfill('-') << setw(40) << "+" << endl; 88 //! while (1) 89 //! { 90 //! const string rc = Tools::Wrap(str, 40); 91 //! if (rc.empty()) 92 //! break; 93 //! cout << rc << endl; 94 //! } 95 //! \endcode 96 //! 97 string Tools::Wrap(string &str, size_t width) 98 { 99 const size_t pos = str.length()<width ? string::npos : str.find_last_of(' ', width); 100 if (pos==string::npos) 101 { 102 const string rc = str; 103 str = ""; 104 return rc; 105 } 106 107 const size_t indent = str.find_first_not_of(' '); 108 109 const string rc = str.substr(0, pos); 110 const size_t p2 = str.find_first_not_of(' ', pos+1); 111 112 str = str.substr(0, indent) + str.substr(p2==string::npos ? pos+1 : p2); 113 114 return rc; 115 } -
trunk/FACT++/src/tools.h
r11229 r12160 1 #ifndef FACT_Tools 2 #define FACT_Tools 3 1 4 #include <string> 2 5 … … 6 9 std::string Form(const char *fmt, ...); 7 10 std::string Trim(const std::string &str); 11 std::string Wrap(std::string &str, size_t width=78); 8 12 } 13 14 #endif
Note:
See TracChangeset
for help on using the changeset viewer.