Ejemplo n.º 1
0
        public C3dWriter(string [] pointNames, float expectedFrameRate, string [] analogChannelNames = null, Int16 analogSamplesPerFrame = 0, bool eventsEnabled = false)
        {
            if (analogSamplesPerFrame * analogChannelNames.Length >= Int16.MaxValue)
            {
                throw new ApplicationException("Analog section is too big for C3D file. Reduce amount of channels or samples per frame");
            }

            _eventsEnabled      = eventsEnabled;
            _nameToGroups       = new Dictionary <string, ParameterGroup>();
            _idToGroups         = new Dictionary <int, ParameterGroup>();
            _readOnlyParameters = new HashSet <string>();
            _pointsLabels       = new List <string>();
            _header             = new C3dHeader(
                (Int16)pointNames.Length,
                (Int16)(analogChannelNames.Length * analogSamplesPerFrame),
                analogSamplesPerFrame);
            _header.FrameRate = expectedFrameRate;

            SetDefaultParametrs(pointNames, analogChannelNames);
        }
Ejemplo n.º 2
0
        public bool Open(string c3dFile)
        {
            _c3dFile = c3dFile;
            try
            {
                _fs     = new FileStream(_c3dFile, FileMode.Open, FileAccess.Read);
                _reader = new BinaryReader(_fs);
                _header = new C3dHeader();

                ReadHeader();
                ReadParameters();
                ParseRequiredParameters();

                ReadEvents();

                _reader.BaseStream.Seek(_dataStart, 0);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("C3dReader.Open(\"" + c3dFile + "\"): " + e.Message);
                return(false);
            }
            return(true);
        }