// Funtion to open a new dialog window to load the virtual world file public void GetStimulus() { string fileName = ""; Thread t = new Thread((ThreadStart)(() => { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.InitialDirectory = Assembly.GetExecutingAssembly().Location; fileDialog.Title = "Open File"; fileDialog.Filter = "XML Files (*.xml)|*.xml|" + "All Files (*.*)|*.*"; if (fileDialog.ShowDialog() == DialogResult.OK) { fileName = fileDialog.SafeFileName; root = LoadStimulus(fileDialog.FileName); } })); t.SetApartmentState(ApartmentState.STA); t.Start(); t.Join(); if (root != null) { Init(root); VRProtocolFactory vrpF = (VRProtocolFactory)root.objectBuilder[0]; vrpF.Initialize(root, this); this.vRProtocol = (VRProtocol)root.GetService(typeof(VRProtocol)); if (vRProtocol.recordCam1 || vRProtocol.recordCam2 || vRProtocol.recordTracking || vRProtocol.recordStimulus || vRProtocol.recordPhotodiode) { CreateSaveDirectory(fileName, this.vRProtocol); } } }
public override void Initialize(IServiceProvider provider, VirtualWorld VW) { var wo = (IServiceContainer)provider.GetService(typeof(IServiceContainer)); var vrProtocol = new VRProtocol(wo, VW, cam1pathParams, cam2pathParams, cam1Use, cam2Use, cam1Track, cam2Track, cam1Disp, cam2Disp, cam1Rec, cam2Rec, cam1pathRec, cam2pathRec, cam1FPS, cam2FPS, usePulsePal, ppPort, usePhotodiode, pdPort, recordTracking, pathRecordingTracking, recordStimulus, pathRecordingStimulus, recordPhotodiode, pathRecordingPhotodiode, twoFliesInArena, duration); wo.AddService(typeof(VRProtocol), vrProtocol); }
// Create Save Directory public void CreateSaveDirectory(string protocolName, VRProtocol protocol) { int index0 = protocolName.LastIndexOf("."); string directory = ""; protocolName = protocolName.Substring(0, index0); if (protFolder == null) { Thread t = new Thread((ThreadStart)(() => { FolderBrowserDialog folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); folderBrowserDialog1.Description = "Select the directory that you want to save the data."; folderBrowserDialog1.ShowNewFolderButton = true; folderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.Desktop; if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { directory = folderBrowserDialog1.SelectedPath; } })); t.SetApartmentState(ApartmentState.STA); t.Start(); t.Join(); } else { directory = protFolder; } directory = directory + "\\"; var subDirectories = Directory.GetDirectories(directory); int nFolders = 1; foreach (string subDirectory in subDirectories) { int index1 = subDirectory.LastIndexOf("\\"); string folderName = subDirectory.Substring(index1 + 1); int index2 = folderName.LastIndexOf("__"); if (index2 != -1) { folderName = folderName.Substring(0, index2); } if (String.Compare(folderName, protocolName) == 0) { nFolders = nFolders + 1; } } directory = directory + protocolName + "__" + nFolders.ToString(); Directory.CreateDirectory(directory); protocol.recordPathCam1 = directory + protocol.recordPathCam1.Substring(protocol.recordPathCam1.LastIndexOf("\\")); protocol.recordPathCam2 = directory + protocol.recordPathCam2.Substring(protocol.recordPathCam2.LastIndexOf("\\")); protocol.recordPathTracking = directory + protocol.recordPathTracking.Substring(protocol.recordPathTracking.LastIndexOf("\\")); protocol.recordPathStimulus = directory + protocol.recordPathStimulus.Substring(protocol.recordPathStimulus.LastIndexOf("\\")); protocol.recordPathPhotodiode = directory + protocol.recordPathPhotodiode.Substring(protocol.recordPathPhotodiode.LastIndexOf("\\")); }
protected override void Initialize() { // Add some objects as services Services.AddService(typeof(GraphicsDeviceManager), graphics); Services.AddService(typeof(GraphicsDevice), this.GraphicsDevice); // Initialize vr components render = new RenderSubsystem(this); update = new UpdateSubsystem(this); Components.Add(render); Components.Add(update); // Load virtual world GetStimulus(); pType = new VRProtocol(); pType.tDuration = EP.durationTrial; pType.trials = EP.stimTypes; Services.AddService(typeof(VRProtocol), pType); // Initialize frame acquisition objects pulsePal = new PulsePal(); cam1 = new uEyeCamera(0, "C:\\Users\\Chiappee\\Desktop\\p1 600x600.ini", true, true, 850); cam2 = new uEyeCamera(1, "C:\\Users\\Chiappee\\Desktop\\p2 - 1024x544.ini", false, true, 250, pulsePal); if (cam1.m_IsLive == true) { // Initialize objects for online tracking ft = new FastBlobTracking(); kft = new KalmanFilterTrack(); Services.AddService(typeof(KalmanFilterTrack), kft); // Initalize file for data storage filestream = File.OpenWrite("C:\\Users\\Chiappee\\Desktop\\Cameras.txt"); textWriter = new StreamWriter(filestream); textWriter.Flush(); // Calibration values c[0] = 0.0011f; c[1] = -0.7660f; c[2] = 0.0000f; c[3] = 0.0004f; c[4] = 1; c[5] = 0.0012f; c[6] = -0.0000f; c[7] = -0.3676f; c[8] = 12.5535f; c[9] = 4.6354f + 0.07f; c[10] = -12.9056f; c[11] = -1.0711f; } base.Initialize(); }
public void GetStimulus(string protName) { root = LoadStimulus(protName); string fileName = Path.GetFileName(protName); if (root != null) { Init(root); VRProtocolFactory vrpF = (VRProtocolFactory)root.objectBuilder[0]; vrpF.Initialize(root, this); this.vRProtocol = (VRProtocol)root.GetService(typeof(VRProtocol)); if (vRProtocol.recordCam1 || vRProtocol.recordCam2 || vRProtocol.recordTracking || vRProtocol.recordStimulus || vRProtocol.recordPhotodiode) { CreateSaveDirectory(fileName, this.vRProtocol); } } }