Пример #1
0
        public ValueTask <Recording> ProcessFileAsync(TargetInformation information, Recording recording)
        {
            var stream = information.FileStream;

            var tryWamdData = Wamd.ExtractMetadata(stream);

            if (tryWamdData.IsSucc)
            {
                Wamd wamdData = (Wamd)tryWamdData;

                int numMicrophones = wamdData.MicrophoneType.Length;

                // Update recording information with wamd metadata
                recording = recording with
                {
                    StartDate      = recording.StartDate ?? (wamdData.StartDate.IsLeft ? (OffsetDateTime?)wamdData.StartDate : null),
                    LocalStartDate = recording.LocalStartDate ?? (wamdData.StartDate.IsRight ? (LocalDateTime?)wamdData.StartDate : null),
                    Sensor         = (recording.Sensor ?? new Sensor()) with
                    {
                        Name         = recording.Sensor?.Name ?? wamdData.Name,
                        SerialNumber = recording.Sensor?.SerialNumber ?? wamdData.SerialNumber,
                        Firmware     = recording.Sensor?.Firmware ?? wamdData.Firmware,
                        Temperature  = recording.Sensor?.Temperature ?? wamdData.Temperature,
                        Microphones  = recording.Sensor?.Microphones ?? new Microphone[numMicrophones],
                    },
Пример #2
0
        public void HasVersion1WamdChunkTest()
        {
            Stream wamdFile = this.RealFileSystem.File.Open(Helpers.FixturesRoot + "/WA_SM4BAT/2.2.1_Normal/S4U09523_20210621_205706.wav", FileMode.Open, FileAccess.Read, FileShare.Read);
            bool   hasWamd  = Wamd.HasVersion1WamdChunk(wamdFile).IfFail(false);

            Assert.True(hasWamd);

            Stream noWamdFile = this.RealFileSystem.File.Open(Helpers.FixturesRoot + "/FL_BAR_LT/3.14_Normal/20191026T000000+1000_REC.flac", FileMode.Open, FileAccess.Read, FileShare.Read);

            hasWamd = Wamd.HasVersion1WamdChunk(noWamdFile).IfFail(false);
            Assert.False(hasWamd);
        }
Пример #3
0
        public void ExtractMetadataTest()
        {
            Stream stream = this.RealFileSystem.File.Open(Helpers.FixturesRoot + "/WA_SM4BAT/2.2.1_Normal/S4U09523_20210621_205706.wav", FileMode.Open, FileAccess.Read, FileShare.Read);

            var tryWamdData = Wamd.ExtractMetadata(stream);

            Assert.True(tryWamdData.IsSucc);

            Wamd wamdData = (Wamd)tryWamdData;

            ((OffsetDateTime)wamdData.StartDate).Should().Be(OffsetDateTimePattern.CreateWithInvariantCulture("G").Parse("2021-06-21T20:57:06-03:00").Value);
            wamdData.Name.Should().Be("SM4BAT-FS");
            wamdData.SerialNumber.Should().Be("S4U09523");
            wamdData.Firmware.Should().Be("2.2.1");
            wamdData.Temperature.Should().Be(24.25);
            wamdData.MicrophoneType.Should().AllBe("U2");
            wamdData.MicrophoneSensitivity.Should().AllBeEquivalentTo(13.0);
            wamdData.Latitude.Should().Be(45.7835);
            wamdData.Longitude.Should().Be(-64.23352);
        }