static public bool GetAcqDeviceOptionsFromCommandLine(string[] args, MyAcquisitionParams acparams) { // Check the command line for user commands if (args[1].Equals("/?") || args[1].Equals("-?")) { // print help Console.WriteLine("Usage:\n"); Console.WriteLine("GigECameraLut [<acquisition server name> <acquisition device index>]\n"); return(false); } // Check if enough arguments were passed if (args.Length < 3) { Console.WriteLine("Invalid command line!\n"); return(false); } // Validate server name if (SapManager.GetServerIndex(args[1]) < 0) { Console.WriteLine("Invalid acquisition server name!\n"); return(false); } // Does the server support acquisition? int deviceCount = SapManager.GetResourceCount(args[1], SapManager.ResourceType.AcqDevice); if (deviceCount == 0) { Console.WriteLine("This server does not support acquisition!\n"); return(false); } // Validate device index if (int.Parse(args[2]) < 0 || int.Parse(args[2]) >= deviceCount) { Console.WriteLine("Invalid acquisition device index!\n"); return(false); } // Fill-in output variables acparams.ServerName = args[1]; acparams.ResourceIndex = int.Parse(args[2]); return(true); }
//////// Ask questions to user to select acquisition board/device and config file //////// static public bool GetOptionsFromQuestions(MyAcquisitionParams acqParams) { // Get total number of boards in the system string[] configFileNames = new string[MAX_CONFIG_FILES]; int serverCount = SapManager.GetServerCount(); //string configFileIndexToPrint; if (serverCount == 0) { Console.WriteLine("No device found!\n"); return(false); } Console.WriteLine("\nSelect the acquisition server (or 'q' to quit)"); Console.WriteLine(".............................................."); // Scan the boards to find those that support acquisition int serverIndex; bool serverFound = false; bool cameraFound = false; for (serverIndex = 0; serverIndex < serverCount; serverIndex++) { if (SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.Acq) != 0) { string serverName = SapManager.GetServerName(serverIndex); Console.WriteLine(serverIndex.ToString() + ": " + serverName); serverFound = true; } else if (SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.AcqDevice) != 0) { string serverName = SapManager.GetServerName(serverIndex); Console.WriteLine(serverIndex.ToString() + ": " + serverName); cameraFound = true; } } // At least one acquisition server must be available if (!serverFound && !cameraFound) { Console.WriteLine("No acquisition server found!\n"); return(false); } ConsoleKeyInfo info = Console.ReadKey(true); char key = info.KeyChar; if (key == 'q') { return(false); } int serverNum = key - '0'; // char-to-int conversion if ((serverNum >= 1) && (serverNum < serverCount)) { acqParams.ServerName = SapManager.GetServerName(serverNum); } else { Console.WriteLine("Invalid selection!\n"); return(false); } // Scan all the acquisition devices on that server and show menu to user int deviceCount = SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.Acq); int cameraCount = SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.AcqDevice); int allDeviceCount = deviceCount + cameraCount; Console.WriteLine("\nSelect the acquisition device (or 'q' to quit)"); Console.WriteLine("..............................................\n"); for (int deviceIndex = 0; deviceIndex < deviceCount; deviceIndex++) { string deviceName = SapManager.GetResourceName(acqParams.ServerName, SapManager.ResourceType.Acq, deviceIndex); Console.WriteLine(((int)(deviceIndex + 1)).ToString() + ": " + deviceName); } if (deviceCount == 0) { for (int cameraIndex = 0; cameraIndex < cameraCount; cameraIndex++) { string cameraName = SapManager.GetResourceName(acqParams.ServerName, SapManager.ResourceType.AcqDevice, cameraIndex); Console.WriteLine(((int)(cameraIndex + 1)).ToString() + ": " + cameraName); } } info = Console.ReadKey(true); key = info.KeyChar; if (key == 'q') { return(false); } int deviceNum = key - '0'; if ((deviceNum >= 1) && (deviceNum <= allDeviceCount)) { acqParams.ResourceIndex = deviceNum - 1; } else { Console.WriteLine("Invalid selection!\n"); return(false); } //////////////////////////////////////////////////////////// // List all files in the config directory string configPath = Environment.GetEnvironmentVariable("SAPERADIR") + "\\CamFiles\\User\\"; if (!Directory.Exists(configPath)) { Console.WriteLine("Directory : {0} Does not exist", configPath); return(false); } string[] ccffiles = Directory.GetFiles(configPath, "*.ccf"); int configFileCount = ccffiles.Length; if (configFileCount == 0) { if (cameraCount == 0) { Console.WriteLine("No config file found.\nUse CamExpert to generate a config file before running this example.\n"); return(false); } else { Console.WriteLine("\nSelect the config file (or 'q' to quit.)"); Console.WriteLine("\n........................................\n"); Console.WriteLine("1: No config File.\n"); configFileCount = 1; } } else { Console.WriteLine("\nSelect the config file (or 'q' to quit)"); Console.WriteLine(".......................................\n"); configFileCount = 0; if (deviceCount == 0 && cameraCount != 0) { configFileCount = 1; Console.WriteLine("1: No config File."); } int configFileShow = 0; foreach (string ccfFileName in ccffiles) { string fileName = ccfFileName.Replace(configPath, ""); if (configFileCount < 9) { configFileShow = configFileCount + 1; Console.WriteLine(configFileShow.ToString() + ": " + fileName); } else { configFileShow = configFileCount - 9 + 'a'; Console.WriteLine(Convert.ToChar(configFileShow) + ": " + fileName); } configFileNames[configFileCount] = ccfFileName; configFileCount++; } } info = Console.ReadKey(true); key = info.KeyChar; if (key == 'q') { return(false); } int configNum = 0; // Use numbers 0 to 9, then lowercase letters if there are more than 10 files if (key >= '1' && key <= '9') { configNum = key - '0'; // char-to-int conversion } else { configNum = key - 'a' + 10; // char-to-int conversion } if ((configNum >= 1) && (configNum <= configFileCount)) { acqParams.ConfigFileName = configFileNames[configNum - 1]; } else { Console.WriteLine("\nInvalid selection!\n"); return(false); } Console.WriteLine("\n"); return(true); }
static public bool GetCorAcqDeviceOptionsFromQuestions(MyAcquisitionParams acqParams, bool showGigEOnly) { int serverCount = SapManager.GetServerCount(); int GenieIndex = 0; ArrayList listServerNames = new System.Collections.ArrayList(); if (serverCount == 0) { Console.WriteLine("No device found!\n"); return(false); } bool cameraFound = false; for (int serverIndex = 0; serverIndex < serverCount; serverIndex++) { if (SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.AcqDevice) != 0) { string serverName = SapManager.GetServerName(serverIndex); if (!showGigEOnly || (showGigEOnly && SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.Acq) == 0)) { listServerNames.Add(serverName); GenieIndex++; cameraFound = true; } } } // At least one acquisition server must be available if (!cameraFound) { Console.WriteLine("No GigE camera found!\n"); return(false); } #if GRAB_CAMERA_LINK Console.WriteLine("\nNote:\nOnly CameraLink cameras will work with this example !\nBehavior is undefined for any other devices.\n"); #endif Console.WriteLine("\nSelect one of the camera(s) detected (or 'q' to quit)"); int count = 1; foreach (string serverName in listServerNames) { Console.WriteLine("\n........................................"); Console.WriteLine(Convert.ToString(count) + ": " + serverName); string deviceName = SapManager.GetResourceName(serverName, SapManager.ResourceType.AcqDevice, 0); Console.WriteLine("User defined Name : " + deviceName); Console.Write("........................................\n"); count++; } ConsoleKeyInfo info = Console.ReadKey(true); char key = info.KeyChar; if (key == 'q') { return(false); } int serverNum = key - '0'; // char-to-int conversion if ((serverNum >= 1) && (serverNum <= GenieIndex)) { acqParams.ServerName = Convert.ToString(listServerNames[serverNum - 1]); acqParams.ResourceIndex = 0; } else { Console.WriteLine("Invalid selection!\n"); return(false); } Console.WriteLine("\n"); return(true); }
const int MAX_CONFIG_FILES = 36; // 10 numbers + 26 letters //static char configFileNames[MAX_CONFIG_FILES][MAX_PATH] = {0}; static public bool GetOptionsFromCommandLine(string[] argv, MyAcquisitionParams acqParams) { // Check the command line for user commands if (argv[1].Equals("/?") || argv[1].Equals("-?")) { // print help Console.WriteLine("Usage:\n"); Console.WriteLine("Grab [<acquisition server name> <acquisition device index> <config filename>]\n"); return(false); } // Check if enough arguments were passed if (argv.Length < 4) { Console.WriteLine("Invalid command line!\n"); return(false); } // Validate server name if (SapManager.GetServerIndex(argv[1]) < 0) { Console.WriteLine("Invalid acquisition server name!\n"); return(false); } // Does the server support acquisition? int deviceCount = SapManager.GetResourceCount(argv[1], SapManager.ResourceType.Acq); int cameraCount = SapManager.GetResourceCount(argv[1], SapManager.ResourceType.AcqDevice); if (deviceCount + cameraCount == 0) { Console.WriteLine("This server does not support acquisition!\n"); return(false); } // Validate device index if (int.Parse(argv[2]) < 0 || int.Parse(argv[2]) >= deviceCount + cameraCount) { Console.WriteLine("Invalid acquisition device index!\n"); return(false); } if (cameraCount == 0) { if (!File.Exists(argv[3])) { Console.WriteLine("The specified config file (" + argv[3] + "is invalid!\n"); return(false); } } // Fill-in output variables acqParams.ServerName = argv[1]; acqParams.ResourceIndex = int.Parse(argv[2]); if (cameraCount == 0) { acqParams.ConfigFileName = argv[3]; } return(true); }
//////// Ask questions to user to select acquisition board/device and config file //////// static public bool GetOptionsFromQuestions(MyAcquisitionParams acqParams) { // Get total number of boards in the system string[] configFileNames = new string[MAX_CONFIG_FILES]; int serverCount = SapManager.GetServerCount(); //string configFileIndexToPrint; if (serverCount == 0) { MessageBox.Show("No device found!"); return(false); } int serverIndex = serverCount - 1; // Scan the boards to find those that support acquisition bool serverFound = false; bool cameraFound = false; for (serverIndex = 0; serverIndex < serverCount; serverIndex++) { if (SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.Acq) != 0) { string serverName = SapManager.GetServerName(serverIndex); serverFound = true; } if (SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.AcqDevice) != 0) { string serverName = SapManager.GetServerName(serverIndex); cameraFound = true; } } // At least one acquisition server must be available if (!serverFound && !cameraFound) { MessageBox.Show("No acquisition server found!"); return(false); } int serverNum = 1; // char-to-int conversion if ((serverNum >= 1) && (serverNum < serverCount)) { acqParams.ServerName = SapManager.GetServerName(serverNum); } else { MessageBox.Show("Invalid selection!"); return(false); } // Scan all the acquisition devices on that server and show menu to user int deviceCount = SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.Acq); int cameraCount = SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.AcqDevice); int allDeviceCount = deviceCount + cameraCount; for (int deviceIndex = 0; deviceIndex < deviceCount; deviceIndex++) { string deviceName = SapManager.GetResourceName(acqParams.ServerName, SapManager.ResourceType.Acq, deviceIndex); } for (int cameraIndex = 0; cameraIndex < cameraCount; cameraIndex++) { string cameraName = SapManager.GetResourceName(acqParams.ServerName, SapManager.ResourceType.AcqDevice, cameraIndex); } int deviceNum = 1; if ((deviceNum >= 1) && (deviceNum <= allDeviceCount)) { acqParams.ResourceIndex = deviceNum - 1; } else { MessageBox.Show("Invalid selection!"); return(false); } //////////////////////////////////////////////////////////// // List all files in the config directory if (!Directory.Exists(configPath)) { MessageBox.Show("Îļþ²»´æÔÚ!"); return(false); } string[] ccffiles = Directory.GetFiles(configPath, "*.ccf"); int configFileCount = ccffiles.Length; if (configFileCount == 0) { if (cameraCount == 0) { return(false); } else { configFileCount = 1; } } else { if (cameraCount == 0) { if (configFileCount >= 2) { Console.Write(" to "); Console.Write(configFileCount.ToString()); } configFileCount = 0; } else { configFileCount += 1; configFileCount = 1; } int configFileShow = 0; foreach (string ccfFileName in ccffiles) { string fileName = ccfFileName.Replace(configPath, ""); if (configFileCount < 9) { configFileShow = configFileCount + 1; } else { configFileShow = configFileCount - 9 + 'a'; } configFileNames[configFileCount] = ccfFileName; configFileCount++; } } int configNum = 1; if ((configNum >= 1) && (configNum <= configFileCount)) { acqParams.ConfigFileName = configFileNames[configNum - 1]; } else { MessageBox.Show("Invalid selection!"); return(false); } return(true); }
static public bool GetCorAcquisitionOptionsFromQuestions(MyAcquisitionParams acqParams) { // Get total number of boards in the system string[] configFileNames = new string[MAX_CONFIG_FILES]; int serverCount = SapManager.GetServerCount(); int GrabberIndex = 0; if (serverCount == 0) { Console.WriteLine("No device found!\n"); return(false); } // Scan the boards to find those that support acquisition bool serverFound = false; for (int serverIndex = 0; serverIndex < serverCount; serverIndex++) { if (SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.Acq) != 0) { GrabberIndex++; serverFound = true; } } // At least one acquisition server must be available if (!serverFound) { Console.WriteLine("No acquisition server found!\n"); return(false); } Console.Write("\nSelect the acquisition server: Press "); Console.Write("1"); if (GrabberIndex >= 2) { Console.Write(" to "); Console.Write(GrabberIndex.ToString()); } Console.Write(" or 'q' to quit."); Console.WriteLine("........................................"); string serverName = ""; for (int serverIndex = 0; serverIndex < serverCount; serverIndex++) { if (SapManager.GetResourceCount(serverIndex, SapManager.ResourceType.Acq) != 0) { serverName = SapManager.GetServerName(serverIndex); Console.WriteLine(serverIndex.ToString() + ": " + serverName); } } ConsoleKeyInfo info = Console.ReadKey(true); char key = info.KeyChar; if (key == 'q') { return(false); } int serverNum = key - '0'; // char-to-int conversion if ((serverNum >= 1) && (serverNum < serverCount)) { acqParams.ServerName = SapManager.GetServerName(serverNum); } else { Console.WriteLine("Invalid selection!\n"); return(false); } // Scan all the acquisition devices on that server and show menu to user int deviceCount = SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.Acq); #if GRAB_CAMERA_LINK Console.Write("\nSelect the device you wish to use on this server: Press "); #else Console.Write("\nSelect the acquisition device: Press "); #endif if (deviceCount >= 2) { Console.Write(" to "); Console.Write(deviceCount.ToString()); } Console.Write(" or 'q' to quit."); Console.WriteLine("........................................"); string deviceName = ""; for (int deviceIndex = 0; deviceIndex < deviceCount; deviceIndex++) { deviceName = SapManager.GetResourceName(acqParams.ServerName, SapManager.ResourceType.Acq, deviceIndex); Console.WriteLine(((int)(deviceIndex + 1)).ToString() + ": " + deviceName); } info = Console.ReadKey(true); key = info.KeyChar; if (key == 'q') { return(false); } int deviceNum = key - '0'; if ((deviceNum >= 1) && (deviceNum <= deviceCount)) { acqParams.ResourceIndex = deviceNum - 1; } else { Console.WriteLine("Invalid selection!\n"); return(false); } //////////////////////////////////////////////////////////// // List all files in the config directory if (!Directory.Exists(configPath)) { Console.WriteLine("Directory : {0} Does not exist", configPath); return(false); } string[] ccffiles = Directory.GetFiles(configPath, "*.ccf"); if (ccffiles.Length == 0) { Console.WriteLine("No config file found.\nUse CamExpert to generate a config file before running this example.\n"); return(false); } else { Console.Write("\nSelect the config file: Press "); Console.Write("1"); if (ccffiles.Length >= 2) { Console.Write(" to "); Console.Write(ccffiles.Length.ToString()); } Console.Write(" or 'q' to quit."); Console.WriteLine("........................................"); int configFileCount = 0; int configFileShow = 0; foreach (string ccfFileName in ccffiles) { string fileName = ccfFileName.Replace(configPath, ""); if (configFileCount < 9) { configFileShow = configFileCount + 1; Console.WriteLine(configFileShow.ToString() + ": " + fileName); } else { configFileShow = configFileCount - 9 + 'a'; Console.WriteLine(Convert.ToChar(configFileShow) + ": " + fileName); } configFileNames[configFileCount] = ccfFileName; configFileCount++; } info = Console.ReadKey(true); key = info.KeyChar; if (key == 'q') { return(false); } int configNum = 0; // Use numbers 0 to 9, then lowercase letters if there are more than 10 files if (key >= '1' && key <= '9') { configNum = key - '0'; // char-to-int conversion } else { configNum = key - 'a' + 10; // char-to-int conversion } if ((configNum >= 1) && (configNum <= configFileCount)) { acqParams.ConfigFileName = configFileNames[configNum - 1]; } else { Console.WriteLine("\nInvalid selection!\n"); return(false); } } Console.WriteLine("\n"); return(true); }