Rev 167 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 167 | Rev 172 | ||
|---|---|---|---|
| Line 595... | Line 595... | ||
| 595 | /*             if( (gScopeDaq->scopeUseType == 1) && (sCamaclink->IsDown()) ) | 
            595 | /*             if( (gScopeDaq->scopeUseType == 1) && (sCamaclink->IsDown()) ) | 
          
| 596 | StartScopeAcq();*/ // TODO  | 
            596 | StartScopeAcq();*/ // TODO  | 
          
| 597 |             } | 
            597 |             } | 
          
| 598 | meas_data->Fill();  | 
            598 | meas_data->Fill();  | 
          
| 599 | n++;  | 
            599 | n++;  | 
          
| 600 | sleep(1);  | 
            - | |
| 601 | 600 | ||
| 602 |             // Start making a scope measurement | 
            601 |             // Start making a scope measurement | 
          
| 603 | /*          if( (gScopeDaq->scopeUseType == 2) && (sCamaclink->IsDown()) ) | 
            602 | /*          if( (gScopeDaq->scopeUseType == 2) && (sCamaclink->IsDown()) ) | 
          
| 604 |             { | 
            603 |             { | 
          
| 605 |                StartScopeAcq(); | 
            604 |                StartScopeAcq(); | 
          
| Line 1203... | Line 1202... | ||
| 1203 | 1202 | ||
| 1204 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 3 -r && sudo %s/src/MIKRO/mikro_ctrl -n 3 -i 3 && sudo %s/src/MIKRO/mikro_ctrl -n 3 -h", rootdir, rootdir, rootdir); // Z-axis  | 
            1203 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 3 -r && sudo %s/src/MIKRO/mikro_ctrl -n 3 -i 3 && sudo %s/src/MIKRO/mikro_ctrl -n 3 -h", rootdir, rootdir, rootdir); // Z-axis  | 
          
| 1205 | #if WORKSTAT == 'I' | 
            1204 | #if WORKSTAT == 'I' | 
          
| 1206 | retTemp = system(cmd);  | 
            1205 | retTemp = system(cmd);  | 
          
| 1207 | printf("Positioning table reset, initialization and homing complete.\n");  | 
            1206 | printf("Positioning table reset, initialization and homing complete.\n");  | 
          
| - | 1207 | #else | 
          |
| - | 1208 | printf("Cmd: %s\n",cmd);  | 
          |
| - | 1209 | #endif | 
          |
| - | 1210 | PositionSet(1);  | 
          |
| - | 1211 |    } | 
          |
| - | 1212 |    // Abort any motion | 
          |
| - | 1213 | else if(opt == 4)  | 
          |
| - | 1214 |    { | 
          |
| - | 1215 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 1 -c ab", rootdir); // X-axis  | 
          |
| - | 1216 | #if WORKSTAT == 'I' | 
          |
| - | 1217 | printf("Emergency stop of the current movement of all linear tables.\n");  | 
          |
| - | 1218 | retTemp = system(cmd);  | 
          |
| - | 1219 | #else | 
          |
| - | 1220 | printf("Cmd: %s\n",cmd);  | 
          |
| - | 1221 | #endif | 
          |
| - | 1222 | ||
| - | 1223 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 2 -c ab", rootdir); // Y-axis  | 
          |
| - | 1224 | #if WORKSTAT == 'I' | 
          |
| - | 1225 | retTemp = system(cmd);  | 
          |
| - | 1226 | #else | 
          |
| - | 1227 | printf("Cmd: %s\n",cmd);  | 
          |
| - | 1228 | #endif | 
          |
| - | 1229 | ||
| - | 1230 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 3 -c ab", rootdir); // Z-axis  | 
          |
| - | 1231 | #if WORKSTAT == 'I' | 
          |
| - | 1232 | retTemp = system(cmd);  | 
          |
| 1208 | #else | 
            1233 | #else | 
          
| 1209 | printf("Cmd: %s\n",cmd);  | 
            1234 | printf("Cmd: %s\n",cmd);  | 
          
| 1210 | #endif | 
            1235 | #endif | 
          
| 1211 | PositionSet(1);  | 
            1236 | PositionSet(1);  | 
          
| 1212 |    } | 
            1237 |    } | 
          
| Line 1289... | Line 1314... | ||
| 1289 | retTemp = system(cmd);  | 
            1314 | retTemp = system(cmd);  | 
          
| 1290 | sleep(15); // wait for the motor to change position from wherever to 0  | 
            1315 | sleep(15); // wait for the motor to change position from wherever to 0  | 
          
| 1291 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 4 -r && sudo %s/src/MIKRO/mikro_ctrl -n 4 -i 2", rootdir, rootdir);  | 
            1316 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 4 -r && sudo %s/src/MIKRO/mikro_ctrl -n 4 -i 2", rootdir, rootdir);  | 
          
| 1292 | retTemp = system(cmd);  | 
            1317 | retTemp = system(cmd);  | 
          
| 1293 | printf("Rotation platform reset, initalization and homing complete.\n");  | 
            1318 | printf("Rotation platform reset, initalization and homing complete.\n");  | 
          
| - | 1319 | #else | 
          |
| - | 1320 | printf("Cmd: %s\n",cmd);  | 
          |
| - | 1321 | #endif | 
          |
| - | 1322 | RotationSet(1);  | 
          |
| - | 1323 |    } | 
          |
| - | 1324 |    // Abort any motion | 
          |
| - | 1325 | else if(opt == 4)  | 
          |
| - | 1326 |    { | 
          |
| - | 1327 | sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 4 -c ab", rootdir);  | 
          |
| - | 1328 | #if WORKSTAT == 'I' | 
          |
| - | 1329 | printf("Emergency stop of the current movement of the rotation platform.\n");  | 
          |
| - | 1330 | retTemp = system(cmd);  | 
          |
| 1294 | #else | 
            1331 | #else | 
          
| 1295 | printf("Cmd: %s\n",cmd);  | 
            1332 | printf("Cmd: %s\n",cmd);  | 
          
| 1296 | #endif | 
            1333 | #endif | 
          
| 1297 | RotationSet(1);  | 
            1334 | RotationSet(1);  | 
          
| 1298 |    } | 
            1335 |    } | 
          
| 1299 | } | 
            1336 | } | 
          
| 1300 | 1337 | ||
| 1301 | // File browser for selecting the save file | 
            1338 | // File browser for selecting the save file | 
          
| 1302 | void TGAppMainFrame::SaveFile()  | 
            1339 | void TGAppMainFrame::SaveFile()  | 
          
| 1303 | { | 
            1340 | { | 
          
| - | 1341 | //   char *cTemp; | 
          |
| - | 1342 | ||
| 1304 |    TGFileInfo file_info; | 
            1343 |    TGFileInfo file_info; | 
          
| 1305 | const char *filetypes[] = {"Histograms",histextall,0,0};  | 
            1344 | const char *filetypes[] = {"Histograms",histextall,0,0};  | 
          
| 1306 | char *cTemp;  | 
            - | |
| 1307 | file_info.fFileTypes = filetypes;  | 
            1345 | file_info.fFileTypes = filetypes;  | 
          
| 1308 | 
  | 
            1346 | //   cTemp = new char[1024]; | 
          
| 1309 | 
  | 
            1347 | //   sprintf(cTemp, "%s/results", rootdir); | 
          
| 1310 | 
  | 
            1348 | //   file_info.fIniDir = StrDup(cTemp); | 
          
| - | 1349 | file_info.fIniDir = StrDup(currentMeasDir);  | 
          |
| 1311 | new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDSave, &file_info);  | 
            1350 | new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDSave, &file_info);  | 
          
| 1312 | 
  | 
            1351 | //   delete[] cTemp; | 
          
| 1313 | 1352 | ||
| 1314 | if(file_info.fFilename != NULL)  | 
            1353 | if(file_info.fFilename != NULL)  | 
          
| - | 1354 |    { | 
          |
| 1315 | fileName->widgetTE->SetText(file_info.fFilename);  | 
            1355 | fileName->widgetTE->SetText(file_info.fFilename);  | 
          
| - | 1356 | remove_from_last(file_info.fFilename, '/', currentMeasDir);  | 
          |
| - | 1357 |    } | 
          |
| 1316 | } | 
            1358 | } | 
          
| 1317 | 1359 | ||
| 1318 | // Start the acquisition | 
            1360 | // Start the acquisition | 
          
| 1319 | void TGAppMainFrame::StartAcq()  | 
            1361 | void TGAppMainFrame::StartAcq()  | 
          
| 1320 | { | 
            1362 | { | 
          
| Line 1390... | Line 1432... | ||
| 1390 |             // If step is not correctly set, stop the acqusition | 
            1432 |             // If step is not correctly set, stop the acqusition | 
          
| 1391 |             else | 
            1433 |             else | 
          
| 1392 |             { | 
            1434 |             { | 
          
| 1393 |                // TODO | 
            1435 |                // TODO | 
          
| 1394 | printf("Stopping current voltage scan...\n");  | 
            1436 | printf("Stopping current voltage scan...\n");  | 
          
| 1395 | gROOT->SetInterrupt();  | 
            1437 | gROOT->SetInterrupt();  | 
          
| 1396 | measProgress->widgetTB[0]->SetText("Start acquisition");  | 
            1438 | measProgress->widgetTB[0]->SetText("Start acquisition");  | 
          
| 1397 | acqStarted = false;  | 
            1439 | acqStarted = false;  | 
          
| 1398 | repetition = 0;  | 
            1440 | repetition = 0;  | 
          
| 1399 |             } | 
            1441 |             } | 
          
| 1400 |          } | 
            1442 |          } | 
          
| 1401 | 1443 | ||
| 1402 | if(DBGSIG) printf("StartAcq(): Voltage repetition (%lf,%lf,%lf) = %d\n", minVoltage, maxVoltage, stepVoltage, repetition);  | 
            1444 | if(DBGSIG) printf("StartAcq(): Voltage repetition (%lf,%lf,%lf) = %d\n", minVoltage, maxVoltage, stepVoltage, repetition);  | 
          
| Line 1602... | Line 1644... | ||
| 1602 | measProgress->widgetTB[0]->SetText("Stop acquisition");  | 
            1644 | measProgress->widgetTB[0]->SetText("Stop acquisition");  | 
          
| 1603 | acqStarted = true;  | 
            1645 | acqStarted = true;  | 
          
| 1604 | progVal = 0.00;  | 
            1646 | progVal = 0.00;  | 
          
| 1605 | measProgress->widgetPB->SetPosition(progVal);  | 
            1647 | measProgress->widgetPB->SetPosition(progVal);  | 
          
| 1606 | gVirtualX->Update(1);  | 
            1648 | gVirtualX->Update(1);  | 
          
| - | 1649 | ||
| - | 1650 | int nrAverMeas = -1;  | 
          |
| 1607 | 1651 | ||
| 1608 | clkt0 = clock();  | 
            1652 | clkt0 = clock();  | 
          
| 1609 | timet0 = time(NULL);  | 
            1653 | timet0 = time(NULL);  | 
          
| 1610 | 1654 | ||
| 1611 |          // Scan over Z axis | 
            1655 |          // Scan over Z axis | 
          
| Line 1666... | Line 1710... | ||
| 1666 | else if( repetX == 0 ) break;  | 
            1710 | else if( repetX == 0 ) break;  | 
          
| 1667 | 1711 | ||
| 1668 | progVal = (float)(100.00/(abs(repetX)*abs(repetY)*abs(repetZ)))*(k*abs(repetX)*abs(repetY) + j*abs(repetX) + i);  | 
            1712 | progVal = (float)(100.00/(abs(repetX)*abs(repetY)*abs(repetZ)))*(k*abs(repetX)*abs(repetY) + j*abs(repetX) + i);  | 
          
| 1669 | measProgress->widgetPB->SetPosition(progVal);  | 
            1713 | measProgress->widgetPB->SetPosition(progVal);  | 
          
| 1670 | 1714 | ||
| 1671 | 
  | 
            1715 | //                TimeEstimate(clkt0, timet0, progVal, cmd, doublewait*((abs(repetX)+2)*abs(repetY)+2)*abs(repetZ)); | 
          
| 1672 | 
  | 
            1716 | //                measProgress->widgetTE->SetText(cmd); | 
          
| 1673 | 1717 | ||
| 1674 | gVirtualX->Update(1);  | 
            1718 | gVirtualX->Update(1);  | 
          
| 1675 | 1719 | ||
| 1676 |                   // X-axis change | 
            1720 |                   // X-axis change | 
          
| 1677 | if( posUnits->widgetCB->GetSelected() == 0)  | 
            1721 | if( posUnits->widgetCB->GetSelected() == 0)  | 
          
| Line 1685... | Line 1729... | ||
| 1685 | #endif | 
            1729 | #endif | 
          
| 1686 | fflush(stdout);  | 
            1730 | fflush(stdout);  | 
          
| 1687 | 1731 | ||
| 1688 | printf("Next X position...\n");  | 
            1732 | printf("Next X position...\n");  | 
          
| 1689 | fflush(stdout);  | 
            1733 | fflush(stdout);  | 
          
| - | 1734 | ||
| - | 1735 | TimeEstimateNew(nrAverMeas, clkt0, timet0, repetX, repetY, repetZ, doublewait, 2*doublewait, 2*doublewait, cmd);  | 
          |
| - | 1736 | measProgress->widgetTE->SetText(cmd);  | 
          |
| 1690 | 1737 | ||
| 1691 | printf("Waiting for position change...\n");  | 
            1738 | printf("Waiting for position change...\n");  | 
          
| 1692 | sleep(doublewait);  | 
            1739 | sleep(doublewait);  | 
          
| 1693 | xPos->widgetNE[0]->SetNumber(minXpos + stepXpos*i);  | 
            1740 | xPos->widgetNE[0]->SetNumber(minXpos + stepXpos*i);  | 
          
| 1694 | printf("Continuing...\n");  | 
            1741 | printf("Continuing...\n");  | 
          
| 1695 | 1742 | ||
| 1696 |                // Here comes function to start histogramming <<<<<<<<<<<<<<<<<<<<<<<< | 
            1743 |                // Here comes function to start histogramming <<<<<<<<<<<<<<<<<<<<<<<< | 
          
| - | 1744 | clkt0 = clock();  | 
          |
| 1697 | RunMeas((void*)0, (j*repetX + i), scanon);  | 
            1745 | RunMeas((void*)0, (j*repetX + i), scanon);  | 
          
| 1698 | 1746 | nrAverMeas++;  | 
          |
| 1699 | fflush(stdout);  | 
            1747 | fflush(stdout);  | 
          
| 1700 | 1748 | ||
| 1701 | i++;  | 
            1749 | i++;  | 
          
| 1702 |                } | 
            1750 |                } | 
          
| 1703 | 1751 | ||
| Line 1967... | Line 2015... | ||
| 1967 | const char *filetypes[] = {"Histograms",histextall,0,0};  | 
            2015 | const char *filetypes[] = {"Histograms",histextall,0,0};  | 
          
| 1968 | file_info.fFileTypes = filetypes;  | 
            2016 | file_info.fFileTypes = filetypes;  | 
          
| 1969 | //   cTemp = new char[1024]; | 
            2017 | //   cTemp = new char[1024]; | 
          
| 1970 | //   sprintf(cTemp, "%s/results", rootdir); | 
            2018 | //   sprintf(cTemp, "%s/results", rootdir); | 
          
| 1971 | //   file_info.fIniDir = StrDup(cTemp); | 
            2019 | //   file_info.fIniDir = StrDup(cTemp); | 
          
| 1972 | file_info.fIniDir = StrDup(  | 
            2020 | file_info.fIniDir = StrDup(currentAnalDir);  | 
          
| 1973 | file_info.fMultipleSelection = kTRUE;  | 
            2021 | file_info.fMultipleSelection = kTRUE;  | 
          
| 1974 | new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDOpen, &file_info);  | 
            2022 | new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDOpen, &file_info);  | 
          
| 1975 | //   delete[] cTemp; | 
            2023 | //   delete[] cTemp; | 
          
| 1976 | 2024 | ||
| 1977 | TList *files = file_info.fFileNamesList;  | 
            2025 | TList *files = file_info.fFileNamesList;  | 
          
| Line 1981... | Line 2029... | ||
| 1981 |       TString fname; | 
            2029 |       TString fname; | 
          
| 1982 | TIter next(files);  | 
            2030 | TIter next(files);  | 
          
| 1983 | while(file=(TSystemFile*)next())  | 
            2031 | while(file=(TSystemFile*)next())  | 
          
| 1984 |       { | 
            2032 |       { | 
          
| 1985 | fname = file->GetName();  | 
            2033 | fname = file->GetName();  | 
          
| 1986 | remove_from_last((char*)fname.Data(), '/',  | 
            2034 | remove_from_last((char*)fname.Data(), '/', currentAnalDir);  | 
          
| 1987 | fileList->AddEntry(fname.Data(), i);  | 
            2035 | fileList->AddEntry(fname.Data(), i);  | 
          
| 1988 | i++;  | 
            2036 | i++;  | 
          
| 1989 |       } | 
            2037 |       } | 
          
| 1990 |    } | 
            2038 |    } | 
          
| 1991 | fileList->Layout();  | 
            2039 | fileList->Layout();  |