public KamaAcquisitionFile(string filename, AcquisitionInterface acquisitionInterface, ILogger logger,
                                   int eitDefaultChunkSize = 24000, int ecgDefaultChunkSize = 10)
        {
            FileName            = filename;
            Logger              = logger;
            EITDefaultChunkSize = eitDefaultChunkSize;
            ECGDefaultChunkSize = ecgDefaultChunkSize;

            RecordNumber = 1;
            H5E.set_auto(H5E.DEFAULT, null, IntPtr.Zero);
            fileId               = Hdf5.CreateFile(filename);
            groupRoot            = fileId;
            groupEIT             = Hdf5.CreateOrOpenGroup(groupRoot, "eit");
            ProcedureInformation = new ProcedureInformation(fileId, groupRoot, logger)
            {
                ProcedureDirectory = Path.GetDirectoryName(filename),
                StartDateTime      = DateTime.Now,
                EndDateTime        = DateTime.Now
            };

            SystemInformation            = new SystemInformation(fileId, groupRoot, logger);
            SystemInformation.SystemType = acquisitionInterface.ToString();
            //  InjectionGroup = new InjectionGroup(fileId, groupRoot);
            CalibrationGroup = new CalibrationGroup(fileId, groupRoot, logger);
            SystemEvents     = new SystemEventGroup(fileId, groupRoot, logger);
            RPosition        = new RPositionGroup(fileId, groupRoot, logger);
            Tags             = new TagsGroup(fileId, groupRoot, logger);
            UserEventsGroup  = new UserEventsGroup(fileId, groupRoot, logger);
        }
Example #2
0
        static void Main(string[] args)
        {
            CalibrationGroup calibrationGroup1 = new CalibrationGroup();

            calibrationGroup1.groupTitle = "group1";
            calibrationGroup1.itemTitle  = "myItemTitle1";
            calibrationGroup1.itemTotal  = "myItemTotal1";
            calibrationGroup1.itemBase   = "myItemBase1";

            CalibrationGroup calibrationGroup2 = new CalibrationGroup();

            calibrationGroup2.groupTitle = "group2";
            calibrationGroup2.itemTitle  = "myItemTitle2";
            calibrationGroup2.itemTotal  = "myItemTotal2";
            calibrationGroup2.itemBase   = "myItemBase2";

            CalibrationGroup calibrationGroup3 = new CalibrationGroup();

            calibrationGroup3.groupTitle = "group3";
            calibrationGroup3.itemTitle  = "myItemTitle3";
            calibrationGroup3.itemTotal  = "myItemTotal3";
            calibrationGroup3.itemBase   = "myItemBase3";

            Console.WriteLine(calibrationGroup1.groupTitle);
            Console.WriteLine(calibrationGroup1.itemBase);
            Console.WriteLine(calibrationGroup2.groupTitle);
            Console.WriteLine(calibrationGroup2.itemBase);
            Console.WriteLine(calibrationGroup3.groupTitle);
            Console.WriteLine(calibrationGroup3.itemBase);
        }
        private async Task CloseHandles()
        {
            ProcedureInformation.FlushDataAndCloseObject();
            SystemInformation.FlushDataAndCloseObject();
            CalibrationGroup.FlushDataAndCloseObject();
            //wait for writing all data before resetting
            if (EIT != null)
            {
                await EIT.WaitForDataWritten();

                EIT.Dispose();
            }

            if (ECG != null)
            {
                await ECG.WaitForDataWritten();

                ECG.Dispose();
            }
            if (SystemEvents != null)
            {
                await SystemEvents.WaitForDataWritten();

                SystemEvents.Dispose();
            }

            if (RPosition != null)
            {
                await RPosition.WaitForDataWritten();

                RPosition.Dispose();
            }
            if (Tags != null)
            {
                await Tags.WaitForDataWritten();

                Tags.Dispose();
            }
            if (UserEventsGroup != null)
            {
                await UserEventsGroup.WaitForDataWritten();

                UserEventsGroup.Dispose();
            }
            await Task.CompletedTask;
        }
 public void AddCalibrationsData(CalibrationsSystemInformation calibrationsSystemInformation)
 {
     CalibrationGroup.AddCalibrationsData(calibrationsSystemInformation);
     CalibrationGroup.FlushDataAndCloseObject();
 }