int DataFileSaveAsCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { char path[300], path1[300], path2[300], name[300]; int i, filestatus; char *date, mon[10], day[10], yr[10]; if (event == EVENT_COMMIT) { Fmt (name, "%s<%s.%i", dataFile.name, dataFile.ext); filestatus = FileSelectPopup (dataFile.dir, name, "", "Save As [file extension must be a #!]:", VAL_OK_BUTTON, 0, 0, 1, 1, path); switch (filestatus) { case VAL_EXISTING_FILE_SELECTED: MessagePopup ("Save As Message", "Cannot select duplicate file paths"); break; case VAL_NEW_FILE_SELECTED: Fmt (path1, path); while (Scan(path1, "%s>%s[xdt92]%s", path2) == 2) Fmt (path1, path2); Scan (path2, "%s>%s[t46]", dataFile.name); i = Scan (path2, "%s>%s[xdt46]%i[b2]", &dataFile.ext); if (i != 2) MessagePopup ("File name error", "File extension must be a number..." "extension ignored"); Fmt (path1, path); i = FindPattern (path1, 0, StringLength (path1), path2, 0, 0); CopyString (dataFile.dir, 0, path1, 0, i-1); acquire_UpdateDataFileInfo(); break; } } return 0; }
int CVICALLBACK Load_Picture (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { char picname[512] = {'\0'}; int ret = 0; HistogramReport *report = NULL; switch (event) { case EVENT_COMMIT: ret = FileSelectPopup ("", "*.*", "", "Load; select an image file", VAL_LOAD_BUTTON, 0, 0, 1, 0, picname); if (ret == 1) { imaqReadFile (sourimage, picname, NULL, NULL); imaqMoveWindow (0, imaqMakePoint (50, 260)); imaqDisplayImage (sourimage, 0, TRUE); report = imaqHistogram (sourimage, 256, 0, 255, IMAQ_IMAGE_U8); DeleteGraphPlot (mypanel, MYPANEL_MYGRAPH, -1, VAL_IMMEDIATE_DRAW); PlotY (mypanel, MYPANEL_MYGRAPH, (*report).histogram, 256, VAL_UNSIGNED_INTEGER, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED); } break; } return 0; }
void CVICALLBACK clbMenuOpenFile (int menuBar, int menuItem, void *callbackData, int panel) { char szFilePath[STD_STRING] = {0}; if ( FileSelectPopup ("", "*.daqcnf", "*.daqcnf", "Load", VAL_LOAD_BUTTON, 0, 1, 1, 1, szFilePath )) { OpenConfigurationFile( szFilePath ); UpdateList( panel ); UpdateCurrentItem( panel ); } }
/* 读取文件面板-选择文件Btn */ int CVICALLBACK chooseFileBtnCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: if (FileSelectPopup ("", "", "", "Select File to Load", VAL_OK_BUTTON, 0, 0, 1, 1, loadFilePath) <= 0) return 0; SetCtrlVal(panel, ReadPanel_PathString, loadFilePath); showFileInfo(panel); break; } return 0; }
void K213SaveCallback(int menubar, int menuItem, void *callbackData, int panel) { int fileselect; char path[256]; gpibioPtr dev = callbackData; k213Ptr quadsrc = dev->device; fileselect = FileSelectPopup ("", "*.dev", "*.dev", "Save K213 Setup", VAL_SAVE_BUTTON, 0, 1, 1, 1, path); if (fileselect == VAL_NEW_FILE_SELECTED) { fileHandle.analysis = util_OpenFile (path, FILE_WRITE, FALSE); FmtFile (fileHandle.analysis, "%s<#INSTRSETUP %i\n", quadsrc->id); k213_Save(dev); FmtFile (fileHandle.analysis, "#ENDSETUP\n"); util_CloseFile(); } }
void SaveFileAs( int bAskUser , int bAskForSaveChanges ) { char szFilePath[STD_STRING] = {0}, szPath[STD_STRING] = {0}, szFileName[LOW_STRING] = {0}; char *pTemp = NULL; int hFileHandle = 0; int iIndex = 0; if ( bSaveChanges && (( bAskUser == 0 ) || ( bAskForSaveChanges == 0 ) || ConfirmPopup ("Save Changes", "Do you want to save last changes?"))) { strcpy( szFilePath , szCurrentFilePath ); strcpy( szPath , szCurrentFilePath ); pTemp = strrchr( szPath , '\\' ); if ( pTemp ) { *pTemp++ = 0; strcpy( szFileName , pTemp ); } if (( bAskUser == 0 ) || ( FileSelectPopup (szPath, szFileName , "*.daqcnf", "Save", VAL_SAVE_BUTTON, 0, 1, 1, 1, szFilePath ))) { hFileHandle = OpenFile (szFilePath, VAL_WRITE_ONLY, VAL_TRUNCATE, VAL_BINARY); for ( iIndex = 0 ; iIndex < giNumberOfItems; iIndex++ ) { gvtListOfCommands[iIndex].ulSignatureID = DEVICE_ID; WriteFile ( hFileHandle , gvtListOfCommands[iIndex].max_size , sizeof(tsSTD_Extended_CommandItem) ); } CloseFile (hFileHandle); bSaveChanges = 0; } } return; }
void K213LoadCallback(int menubar, int menuItem, void *callbackData, int panel) { int fileselect, id; char path[256], info[256]; gpibioPtr dev = callbackData; k213Ptr quadsrc = dev->device; fileselect = FileSelectPopup ("", "*.dev", "*.dev", "Load Keithley 213 Quad Voltage Source Setup", VAL_LOAD_BUTTON, 0, 1, 1, 0, path); if (fileselect == VAL_EXISTING_FILE_SELECTED) { fileHandle.analysis = util_OpenFile (path, FILE_READ, FALSE); ScanFile (fileHandle.analysis, "%s>#INSTRSETUP %i", &id); if (quadsrc->id == id) { k213_Load (dev); ReadLine (fileHandle.analysis, info, 255); k213_UpdateControls(panel, dev); } else MessagePopup ("Keithley Load Message", "Different instrument types--process aborted"); util_CloseFile(); } }
int CVICALLBACK SystemFunctions (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { char msg[512], maxpathlen[5200]; int cnt = 0, ioerr = 0; int line, hwfile = -1, senini = -1; switch (event) { case EVENT_LEFT_CLICK: switch(control) { case P_SYSTEM_CMD_LOAD_HWCONFIG_INI: // Load HWConfig.ini File + Init if (FileSelectPopup ("c:\\Users\\uid500qz\\Desktop\\123\\Haptik\\Ini", "*.ini", ".ini", "Load", VAL_OK_BUTTON, 0, 0, 1, 0, maxpathlen) == (1 || 2)) { hwfile = OpenFile(maxpathlen, VAL_READ_ONLY, VAL_OPEN_AS_IS, VAL_ASCII); while(1) { ioerr = ReadLine(hwfile, msg, -1); // Read every Line if (ioerr == -2) break; if (ioerr == -1) line = __LINE__; cnt++; // Line Counter switch(cnt) // Werte in Struct übergeben { case 3: srctPiCard.iCardNo = atoi(msg); break; case 5: srctPiCard.dDelayOffset = atof(msg); break; } } SetFilePtr(hwfile, 0, 0); DebugPrintf("iCardNo: %d\n", srctPiCard.iCardNo); SetCtrlVal(pSystem, P_SYSTEM_STR_HW_INI_FILE, maxpathlen); SetCtrlAttribute (pSystem, P_SYSTEM_CMD_LOAD_INI, ATTR_DIMMED, 0); SetCtrlAttribute (pSystem, P_SYSTEM_STR_SENSOR_INI_FILE, ATTR_DIMMED, 0); } break; case P_SYSTEM_CMD_LOAD_INI: if (FileSelectPopup ("c:\\Users\\uid500qz\\Desktop\\123\\Haptik\\Ini", "*.ini", ".ini", "Load", VAL_OK_BUTTON, 0, 0, 1, 0, maxpathlen) == (1 || 2)) { senini = OpenFile(maxpathlen, VAL_READ_ONLY, VAL_OPEN_AS_IS, VAL_ASCII); while(1) { ioerr = ReadLine(senini, msg, -1); // Read every Line if (ioerr == -2) break; if (ioerr == -1) { line = __LINE__; } cnt++; switch(cnt) { case 5: srctPiCard.dMaxAmpVolt = atof(msg); break; case 9: srctPiCard.dMaxAmpCapa = atof(msg); break; case 15: srctPiCard.dChargeSensorPos = atof(msg); break; case 17: srctPiCard.dChargeSensorNeg = atof(msg); break; case 38: for (int j = 0; j <= 10; j++) { srctPiCard.sEngineName[j] = msg[j]; } break; case 40: srctPiCard.dMultDistance = atof(msg); break; case 42: srctPiCard.dAcceleration = atof(msg); break; case 43: srctPiCard.dDeceleration = atof(msg); break; case 46: srctPiCard.dVelocity = atof(msg); break; case 48: srctPiCard.dMaxVelocity = atof(msg); break; case 50: srctPiCard.dMaxMove = atof(msg); break; case 52: srctPiCard.dMaxSpin = atof(msg); break; case 44: srctPiCard.iOverSampling = atoi(msg); break; } } SetFilePtr(senini, 0, 0); } SetCtrlVal (pSystem, P_SYSTEM_STR_SENSOR_INI_FILE, maxpathlen); SetCtrlAttribute (pSystem, P_SYSTEM_CMD_DEINIT, ATTR_DIMMED, 0); SetCtrlAttribute (pSystem, P_SYSTEM_CMD_LOAD_INI, ATTR_DIMMED, 1); SetCtrlAttribute (pSystem, P_SYSTEM_CMD_LOAD_HWCONFIG_INI, ATTR_DIMMED, 1); DebugPrintf ("srctPiCard.iId: %d.\n", srctPiCard.iId); DebugPrintf ("sEngineName: %s\n", srctPiCard.sEngineName); PiCardFnct (PI_CONNECT); PiCardFnct (PI_INIT); SetCtrlVal (pSystem, P_SYSTEM_LED_PI_IS_INIT, 1); SetCtrlVal (pControlPad, P_CTRL_PAD_LED_ACTIVE, 1); PiCardFnct (PI_HOME); break; case P_SYSTEM_CMD_DEINIT: memset(&srctPiCard, 0, sizeof(srctPiCard)); SetCtrlVal (pSystem, P_SYSTEM_STR_HW_INI_FILE, ""); SetCtrlVal (pSystem, P_SYSTEM_STR_SENSOR_INI_FILE, ""); SetCtrlAttribute (pSystem, P_SYSTEM_CMD_DEINIT, ATTR_DIMMED, 1); SetCtrlAttribute (pSystem, P_SYSTEM_CMD_LOAD_INI, ATTR_DIMMED, 0); SetCtrlAttribute (pSystem, P_SYSTEM_CMD_LOAD_HWCONFIG_INI, ATTR_DIMMED, 0); break; } break; } return 0; }