various improvements
This commit is contained in:
@@ -84,6 +84,7 @@ async def create_device(config: auracast_config.AuracastGlobalConfig) -> AsyncGe
|
||||
name=config.device_name,
|
||||
address=config.auracast_device_address,
|
||||
keystore='JsonKeyStore',
|
||||
le_simultaneous_enabled=True #TODO: needed ?
|
||||
)
|
||||
|
||||
device = bumble.device.Device.from_config_with_hci(
|
||||
@@ -111,6 +112,9 @@ def run_async(async_command: Coroutine) -> None:
|
||||
color('!!! An error occurred while executing the command:', 'red'), message
|
||||
)
|
||||
|
||||
PKGS_COUNT = 0
|
||||
ADVERTISING_INTERVAL_SLOWDOWN_FACTOR = 2
|
||||
|
||||
async def run_broadcast(
|
||||
global_config : auracast_config.AuracastGlobalConfig,
|
||||
big_config: List[auracast_config.AuracastBigConfig]
|
||||
@@ -184,9 +188,9 @@ async def run_broadcast(
|
||||
advertising_event_properties=bumble.device.AdvertisingEventProperties(
|
||||
is_connectable=False
|
||||
),
|
||||
primary_advertising_interval_min=100,
|
||||
primary_advertising_interval_max=200,
|
||||
advertising_sid=0
|
||||
primary_advertising_interval_min=100*ADVERTISING_INTERVAL_SLOWDOWN_FACTOR,
|
||||
primary_advertising_interval_max=200*ADVERTISING_INTERVAL_SLOWDOWN_FACTOR,
|
||||
advertising_sid=i
|
||||
# TODO: use 2mbit phy
|
||||
),
|
||||
advertising_data=(
|
||||
@@ -198,8 +202,8 @@ async def run_broadcast(
|
||||
)
|
||||
),
|
||||
periodic_advertising_parameters=bumble.device.PeriodicAdvertisingParameters(
|
||||
periodic_advertising_interval_min=80,
|
||||
periodic_advertising_interval_max=160,
|
||||
periodic_advertising_interval_min=80*ADVERTISING_INTERVAL_SLOWDOWN_FACTOR,
|
||||
periodic_advertising_interval_max=160*ADVERTISING_INTERVAL_SLOWDOWN_FACTOR,
|
||||
),
|
||||
periodic_advertising_data=bigs[f'big{i}']['basic_audio_announcement'].get_advertising_data(),
|
||||
auto_restart=True,
|
||||
@@ -234,11 +238,21 @@ async def run_broadcast(
|
||||
|
||||
bigs[f'big{i}']['frames_iterator'] = itertools.cycle(frames)
|
||||
|
||||
LOOP_FINITE_PKGS = -1 # set -1 to loop infinitely
|
||||
|
||||
logging.info("Broadcasting...")
|
||||
def on_packet_complete(event):
|
||||
for val in bigs.values():
|
||||
frame = next(val['frames_iterator'] )
|
||||
val['big'].bis_links[0].write(frame)
|
||||
global PKGS_COUNT
|
||||
#for val in bigs.values(): # loop over bigs
|
||||
#frame = next(val['frames_iterator'] )
|
||||
#val['big'].bis_links[0].write(frame)
|
||||
#global pkgs_count
|
||||
PKGS_COUNT = PKGS_COUNT + 1
|
||||
if PKGS_COUNT < LOOP_FINITE_PKGS or LOOP_FINITE_PKGS == -1 :
|
||||
frame = next(bigs[f'big0']['frames_iterator'] )
|
||||
bigs[f'big0']['big'].bis_links[0].write(frame)
|
||||
bigs[f'big1']['big'].bis_links[0].write(frame)
|
||||
|
||||
|
||||
device.host.on('hci_number_of_completed_packets_event', on_packet_complete)
|
||||
|
||||
@@ -264,7 +278,7 @@ def broadcast(global_conf: auracast_config.AuracastGlobalConfig, big_conf: List[
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
|
||||
global_conf = auracast_config.global_base_config
|
||||
|
||||
@@ -273,14 +287,16 @@ if __name__ == "__main__":
|
||||
#global_conf.transport='serial:/dev/serial/by-id/usb-SEGGER_J-Link_001050076061-if02,1000000,rtscts' # transport for nrf53dk
|
||||
|
||||
global_conf.transport='serial:/dev/serial/by-id/usb-SEGGER_J-Link_001057705357-if02,1000000,rtscts' # transport for nrf54l15dk
|
||||
|
||||
# TODO: why are nrf54l15 and nrf52 not streaming - no sound can be heard. Advertising starts, streaming too but no sound
|
||||
# nrf5340 audio dk log says: audio_datapath: Pres comp state never gets to locked
|
||||
# Look at le audio transmitted packages with wireshark next ??
|
||||
|
||||
|
||||
|
||||
bigs = [
|
||||
auracast_config.broadcast_de,
|
||||
#auracast_config.broadcast_en
|
||||
auracast_config.broadcast_en
|
||||
]
|
||||
global_conf.octets_per_frame=60# 48kbps@24kHz
|
||||
|
||||
|
||||
Reference in New Issue
Block a user