modifications to pass qualification
This commit is contained in:
@@ -69,7 +69,7 @@ class AuracastBigConfigEng(AuracastBigConfig):
|
||||
random_address: str = 'F2:F1:F2:F3:F4:F5'
|
||||
name: str = 'Lecture Hall A'
|
||||
language: str ='eng'
|
||||
program_info: str = 'Lecture EN'
|
||||
program_info: str = 'Lecture EN'
|
||||
audio_source: str = 'file:./testdata/wave_particle_5min_en.wav'
|
||||
|
||||
class AuracastBigConfigFra(AuracastBigConfig):
|
||||
@@ -78,7 +78,7 @@ class AuracastBigConfigFra(AuracastBigConfig):
|
||||
# French
|
||||
name: str = 'Auditoire A'
|
||||
language: str ='fra'
|
||||
program_info: str = 'Auditoire FR'
|
||||
program_info: str = 'Auditoire FR'
|
||||
audio_source: str = 'file:./testdata/wave_particle_5min_fr.wav'
|
||||
|
||||
class AuracastBigConfigSpa(AuracastBigConfig):
|
||||
@@ -86,7 +86,7 @@ class AuracastBigConfigSpa(AuracastBigConfig):
|
||||
random_address: str = 'F4:F1:F2:F3:F4:F5'
|
||||
name: str = 'Auditorio A'
|
||||
language: str ='spa'
|
||||
program_info: str = 'Auditorio ES'
|
||||
program_info: str = 'Auditorio ES'
|
||||
audio_source: str = 'file:./testdata/wave_particle_5min_es.wav'
|
||||
|
||||
class AuracastBigConfigIta(AuracastBigConfig):
|
||||
@@ -94,7 +94,7 @@ class AuracastBigConfigIta(AuracastBigConfig):
|
||||
random_address: str = 'F5:F1:F2:F3:F4:F5'
|
||||
name: str = 'Aula A'
|
||||
language: str ='ita'
|
||||
program_info: str = 'Aula IT'
|
||||
program_info: str = 'Aula IT'
|
||||
audio_source: str = 'file:./testdata/wave_particle_5min_it.wav'
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ class AuracastBigConfigPol(AuracastBigConfig):
|
||||
random_address: str = 'F6:F1:F2:F3:F4:F5'
|
||||
name: str = 'Sala Wykładowa'
|
||||
language: str ='pol'
|
||||
program_info: str = 'Sala Wykładowa PL'
|
||||
program_info: str = 'Sala Wykładowa PL'
|
||||
audio_source: str = 'file:./testdata/wave_particle_5min_pl.wav'
|
||||
|
||||
|
||||
|
||||
@@ -286,7 +286,8 @@ async def init_broadcast(
|
||||
tag=le_audio.Metadata.Tag.LANGUAGE, data=conf.language.encode()
|
||||
),
|
||||
le_audio.Metadata.Entry(
|
||||
tag=le_audio.Metadata.Tag.PROGRAM_INFO, data=conf.program_info.encode()
|
||||
tag=le_audio.Metadata.Tag.PROGRAM_INFO,
|
||||
data=conf.program_info.encode('latin-1')
|
||||
),
|
||||
le_audio.Metadata.Entry(
|
||||
tag=le_audio.Metadata.Tag.BROADCAST_NAME, data=conf.name.encode()
|
||||
@@ -309,9 +310,10 @@ async def init_broadcast(
|
||||
else []
|
||||
)
|
||||
)
|
||||
logging.info(
|
||||
metadata.pretty_print("\n")
|
||||
)
|
||||
try:
|
||||
logging.info(metadata.pretty_print("\n"))
|
||||
except UnicodeDecodeError:
|
||||
logging.info("Metadata: (contains non-UTF-8 bytes)")
|
||||
bigs[f'big{i}'] = {}
|
||||
# Config advertising set
|
||||
bigs[f'big{i}']['basic_audio_announcement'] = bap.BasicAudioAnnouncement(
|
||||
@@ -321,7 +323,7 @@ async def init_broadcast(
|
||||
codec_id=hci.CodingFormat(codec_id=hci.CodecID.LC3),
|
||||
codec_specific_configuration=bap.CodecSpecificConfiguration(
|
||||
sampling_frequency=bap_sampling_freq,
|
||||
frame_duration=bap.FrameDuration.DURATION_10000_US,
|
||||
frame_duration=bap.FrameDuration.DURATION_7500_US if global_config.frame_duration_us == 7500 else bap.FrameDuration.DURATION_10000_US,
|
||||
octets_per_codec_frame=global_config.octets_per_frame,
|
||||
),
|
||||
metadata=metadata,
|
||||
@@ -367,7 +369,11 @@ async def init_broadcast(
|
||||
elif global_config.auracast_sampling_rate_hz == 48000:
|
||||
pbp_features |= 0x04 # High Quality
|
||||
|
||||
pbp_service_data = struct.pack('<H', 0x1856) + bytes([pbp_features, 0x00])
|
||||
# Build PBP service data with Program_Info metadata (LTV format: Length, Type=0x03, Value)
|
||||
# LTV: Length = 1 (type) + len(value), Type = 0x03 (Program_Info)
|
||||
program_info_bytes = conf.program_info.encode('latin-1')
|
||||
pbp_metadata_ltv = bytes([len(program_info_bytes) + 1, 0x03]) + program_info_bytes
|
||||
pbp_service_data = struct.pack('<H', 0x1856) + bytes([pbp_features, len(pbp_metadata_ltv)]) + pbp_metadata_ltv
|
||||
advertising_data_types.append(
|
||||
(core.AdvertisingData.SERVICE_DATA_16_BIT_UUID, pbp_service_data)
|
||||
)
|
||||
|
||||
@@ -30,9 +30,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -30,9 +30,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -30,9 +30,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -30,9 +30,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -30,9 +30,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -26,16 +26,16 @@ if __name__ == "__main__":
|
||||
# First BIG
|
||||
big1 = AuracastBigConfig()
|
||||
big1.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big1.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big1.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big1.num_bis = 1
|
||||
big1.id = 12
|
||||
big1.num_bis = 2 # stereo
|
||||
|
||||
# Second BIG
|
||||
big2 = AuracastBigConfig()
|
||||
big2.random_address = "F1:F1:F2:F3:F4:F6"
|
||||
big2.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big2.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big2.num_bis = 1
|
||||
big2.id = 13
|
||||
big2.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -29,9 +29,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -29,9 +29,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -29,9 +29,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -29,9 +29,9 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
|
||||
@@ -29,7 +29,7 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_es_stereo.wav"
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo (multiple BISes)
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_es_stereo.wav"
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo (multiple BISes)
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_es_stereo.wav"
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo (multiple BISes)
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_es_stereo.wav"
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo (multiple BISes)
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_es_stereo.wav"
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo (multiple BISes)
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ if __name__ == "__main__":
|
||||
# Stereo BIG with 2 BISes (FRONT_LEFT + FRONT_RIGHT)
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_es_stereo.wav"
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo: 2 BISes
|
||||
|
||||
|
||||
45
src/qualification/PBP/test_pbp_pbs_pbm_bv01c.py
Normal file
45
src/qualification/PBP/test_pbp_pbs_pbm_bv01c.py
Normal file
@@ -0,0 +1,45 @@
|
||||
"""
|
||||
PBP/PBS/PBM/BV-01-C: Transmit Program_Info Metadata
|
||||
|
||||
Configuration: 16kHz, unencrypted, stereo (2 BISes)
|
||||
Program_Info metadata: 0x00112233445566778899AABBCCDDEEFF
|
||||
"""
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
from auracast.auracast_config import AuracastGlobalConfig, AuracastBigConfig, AuracastQosFast
|
||||
from auracast.multicast import broadcast, run_async
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(
|
||||
level=os.environ.get("LOG_LEVEL", logging.INFO),
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
config.qos_config = AuracastQosFast()
|
||||
config.transport = "serial:/dev/ttyAMA3,1000000,rtscts"
|
||||
|
||||
# 16_2_1: 16kHz, stereo
|
||||
config.auracast_sampling_rate_hz = 16000
|
||||
config.octets_per_frame = 40
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.name = "Broadcast"
|
||||
# Program_Info metadata: 00112233445566778899AABBCCDDEEFF
|
||||
big.program_info = bytes.fromhex("00112233445566778899AABBCCDDEEFF").decode('latin-1')
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
config,
|
||||
[big],
|
||||
)
|
||||
)
|
||||
@@ -19,7 +19,7 @@ if __name__ == "__main__":
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../../../auracast"))
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
config.qos_config = AuracastQosFast()
|
||||
@@ -31,10 +31,10 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
big.name = "Broadcast"
|
||||
big.num_bis = 1
|
||||
big.name = "Broadcaster"
|
||||
# Unencrypted (no code)
|
||||
|
||||
run_async(
|
||||
@@ -19,22 +19,23 @@ if __name__ == "__main__":
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../../../auracast"))
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
config.qos_config = AuracastQosFast()
|
||||
config.transport = "serial:/dev/ttyAMA3,1000000,rtscts"
|
||||
|
||||
# High Quality: 48kHz
|
||||
# High Quality: 48kHz, 48_1_1 configuration
|
||||
config.auracast_sampling_rate_hz = 48000
|
||||
config.octets_per_frame = 100 # 48kHz typical
|
||||
config.octets_per_frame = 75 # 48_1_1: 48kHz, 75 octets/frame
|
||||
config.frame_duration_us = 7500 # 7.5ms frame duration for 48_1_1
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
big.name = "Broadcast"
|
||||
big.name = "Broadcaster"
|
||||
# Unencrypted (no code)
|
||||
|
||||
run_async(
|
||||
@@ -19,7 +19,7 @@ if __name__ == "__main__":
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../../../auracast"))
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
config.qos_config = AuracastQosFast()
|
||||
@@ -31,11 +31,11 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
big.name = "Broadcast"
|
||||
big.code = "PBP_TEST_CODE" # Encrypted
|
||||
big.name = "Broadcaster"
|
||||
big.code = "0x0102680553F1415AA265BBAFC6EA03B8" # Encrypted (hex format)
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
@@ -19,23 +19,24 @@ if __name__ == "__main__":
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../../../auracast"))
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
config.qos_config = AuracastQosFast()
|
||||
config.transport = "serial:/dev/ttyAMA3,1000000,rtscts"
|
||||
|
||||
# High Quality: 48kHz
|
||||
# High Quality: 48kHz, 48_1_1 configuration
|
||||
config.auracast_sampling_rate_hz = 48000
|
||||
config.octets_per_frame = 100
|
||||
config.octets_per_frame = 75 # 48_1_1: 48kHz, 75 octets/frame
|
||||
config.frame_duration_us = 7500 # 7.5ms frame duration for 48_1_1
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
big.name = "Broadcast"
|
||||
big.code = "PBP_TEST_CODE" # Encrypted
|
||||
big.name = "Broadcaster"
|
||||
big.code = "0x0102680553F1415AA265BBAFC6EA03B8" # Encrypted (hex format)
|
||||
|
||||
run_async(
|
||||
broadcast(
|
||||
@@ -19,7 +19,7 @@ if __name__ == "__main__":
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../../../auracast"))
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
# 16_2_2 uses different QoS (RTN=2, higher latency)
|
||||
@@ -32,10 +32,10 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
big.name = "Broadcast"
|
||||
big.name = "Broadcaster"
|
||||
# Unencrypted (no code)
|
||||
|
||||
run_async(
|
||||
@@ -19,7 +19,7 @@ if __name__ == "__main__":
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../../../auracast"))
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
config.qos_config = AuracastQosFast()
|
||||
@@ -31,10 +31,10 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
big.name = "Broadcast"
|
||||
big.name = "Broadcaster"
|
||||
# Unencrypted (no code)
|
||||
|
||||
run_async(
|
||||
@@ -19,7 +19,7 @@ if __name__ == "__main__":
|
||||
format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
|
||||
)
|
||||
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../../../auracast"))
|
||||
os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))
|
||||
|
||||
config = AuracastGlobalConfig()
|
||||
# 24_2_2 uses different QoS (RTN=2, higher latency)
|
||||
@@ -32,10 +32,10 @@ if __name__ == "__main__":
|
||||
|
||||
big = AuracastBigConfig()
|
||||
big.random_address = "F1:F1:F2:F3:F4:F5"
|
||||
big.audio_source = "file:./testdata/announcement_en_stereo.wav"
|
||||
big.audio_source = "file:./testdata/announcement_en.wav"
|
||||
big.num_bis = 1
|
||||
big.id = 12
|
||||
big.num_bis = 2 # stereo
|
||||
big.name = "Broadcast"
|
||||
big.name = "Broadcaster"
|
||||
# Unencrypted (no code)
|
||||
|
||||
run_async(
|
||||
27
src/qualification/README.md
Normal file
27
src/qualification/README.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Qualification procedure
|
||||
|
||||
# flash a qualifiaction dongle
|
||||
- To use a normal nRF5240 Nordic dongle
|
||||
- See https://bluekitchen-gmbh.com/bluetooth-pts-with-nordic-nrf52840-usb-dongle/ for Nordic nRF52 dev dongle
|
||||
- Install PTS Firmware Upgrade Software
|
||||
- Plug-in nRF52840 USB Dongle
|
||||
- Start PTS Firmware Update Software
|
||||
- If you click on 'OK', updating the bootloader will fail (the Nordic bootloader on the nRF52840 USB cannot be updated via DFU)
|
||||
- Close the software
|
||||
- Open an Explorer window and navigate to C:\Program Files (x86)\Bluetooth SIG\PTS Firmware Upgrade Software\tools and copy the file nrfutil.exe
|
||||
- Navigate to AppData\Local\PTSFirmwareUpgradeSoftware within your user folder and paste the nrfutil.exe into this folder
|
||||
- Note the file with the UUID128-like file name as you'll need it soon
|
||||
- Open a PowerShell via File->Open Windows PowerShell as a regular user
|
||||
- Reset the nRF52840 USB Dongle by pressing the smaller button (labeled 'RESET') to enter DFU mode
|
||||
- A red LED should start flashing
|
||||
- Run the nrfutil.exe with the .bin file (it's actually a ZIP archive) with the UUID128-like name
|
||||
- Or just press the TAB key: .\nrfutil dfu usb-serial -pkg be4d3ab8-9c98-408a-8be4-18acf4b32d28.zip -p COM4
|
||||
- Et voila, the nRF52840 USB Dongle can be used with PTS
|
||||
|
||||
# PTS ixit prerequisites
|
||||
In BAP set
|
||||
- Broadcast_ID=12
|
||||
- Broadcast_ID_2=13
|
||||
|
||||
In CAP set
|
||||
- TSPX_BST_CODEC_CONFIG=16_2_1
|
||||
Reference in New Issue
Block a user