Ejemplo n.º 1
0
        // 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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        // 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();
        }
Ejemplo n.º 5
0
        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);
                }
            }
        }