make 4 broadcasters with 16kHz work
This commit is contained in:
+32
-12
@@ -53,33 +53,53 @@ def gen_broadcast_config_cmd(preset, broadcast_config: dict):
|
||||
for ch, file_name in broadcast_config.items():
|
||||
|
||||
cmds.append(f"nac preset {preset} {ch}")
|
||||
cmds.append(f"nac broadcast_name broadcaster{ch} {ch}")
|
||||
cmds.append(f"nac broadcast_name broadcast{ch} {ch}")
|
||||
cmds.append(f"nac file select {file_name} {ch} 0 0")
|
||||
cmds.append(f"nac num_bises 1 {ch} 0")
|
||||
#cmds.append(f"nac immediate 1 {ch} 0")
|
||||
|
||||
return cmds
|
||||
|
||||
if __name__ == "__main__":
|
||||
import subprocess
|
||||
|
||||
serial_port = "/dev/ttyACM0"
|
||||
PORT = "/dev/ttyACM0"
|
||||
|
||||
SAMPLING_RATE_KHZ = 16
|
||||
FRAME_DUR_MS = 10
|
||||
PRESET = f'{SAMPLING_RATE_KHZ}_2_1'
|
||||
|
||||
if SAMPLING_RATE_KHZ == 8:
|
||||
BITRATE_KBPS = 16
|
||||
elif SAMPLING_RATE_KHZ == 16:
|
||||
BITRATE_KBPS = 32
|
||||
elif SAMPLING_RATE_KHZ == 24:
|
||||
BITRATE_KBPS = 48
|
||||
else:
|
||||
raise NotImplemented()
|
||||
|
||||
|
||||
# TODO: Advertising interval wird ungelmäßig bei mehr als 3 broadcasts 10ms -> 1s< bei 24kHz sampling rate
|
||||
broadcast_config = {
|
||||
0: "announcement_de.lc3",
|
||||
1: "announcement_en.lc3",
|
||||
2: "announcement_fr.lc3",
|
||||
3: "announcement_es.lc3"
|
||||
0: f"announcement_{SAMPLING_RATE_KHZ}_{FRAME_DUR_MS}_{BITRATE_KBPS}_de.lc3",
|
||||
1: f"announcement_{SAMPLING_RATE_KHZ}_{FRAME_DUR_MS}_{BITRATE_KBPS}_en.lc3",
|
||||
2: f"announcement_{SAMPLING_RATE_KHZ}_{FRAME_DUR_MS}_{BITRATE_KBPS}_fr.lc3",
|
||||
3: f"announcement_{SAMPLING_RATE_KHZ}_{FRAME_DUR_MS}_{BITRATE_KBPS}_es.lc3",
|
||||
#4: f"announcement_{SAMPLING_RATE_KHZ}_{FRAME_DUR_MS}_{BITRATE_KBPS}_it.lc3"
|
||||
}
|
||||
|
||||
cmds = gen_broadcast_config_cmd("24_2_1", broadcast_config)
|
||||
cmds = gen_broadcast_config_cmd(PRESET, broadcast_config)
|
||||
|
||||
subprocess.run(["nrfjprog", "--reset", "-s", "1050109484"], check=True)
|
||||
time.sleep(1)
|
||||
|
||||
time.sleep(2)
|
||||
|
||||
for cmd in cmds:
|
||||
ret = write_to_serial_read_respone(serial_port, cmd, timeout=0.1)
|
||||
ret = write_to_serial_read_respone(PORT, cmd, timeout=0.1)
|
||||
print("\n".join(ret))
|
||||
|
||||
time.sleep(1)
|
||||
ret = write_to_serial_read_respone(serial_port, "nac start", timeout=0.1)
|
||||
print("\n".join(ret))
|
||||
|
||||
for i in broadcast_config.keys():
|
||||
ret = write_to_serial_read_respone(PORT, f"nac start_idx {i}", timeout=0.1)
|
||||
print("\n".join(ret))
|
||||
time.sleep(0.2)
|
||||
+32
-8
@@ -735,14 +735,6 @@ int main(void)
|
||||
int ret;
|
||||
|
||||
LOG_INF("Main started");
|
||||
//setup_disk();
|
||||
ret = usb_enable(NULL);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to enable USB");
|
||||
return 0;
|
||||
}
|
||||
LOG_INF("The device is put in USB mass storage mode.\n");
|
||||
|
||||
|
||||
ret = nrfx_clock_divider_set(NRF_CLOCK_DOMAIN_HFCLK, NRF_CLOCK_HFCLK_DIV_1);
|
||||
ret -= NRFX_ERROR_BASE_NUM;
|
||||
@@ -963,6 +955,18 @@ static void nrf_auraconfig_print(const struct shell *shell, uint8_t group_index)
|
||||
}
|
||||
}
|
||||
|
||||
static int cmd_usb_mass_enable(const struct shell *shell, size_t argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
ret = usb_enable(NULL);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to enable USB");
|
||||
return -1;
|
||||
}
|
||||
LOG_INF("The device is put in USB mass storage mode.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cmd_list(const struct shell *shell, size_t argc, char **argv)
|
||||
{
|
||||
ARG_UNUSED(argc);
|
||||
@@ -1192,6 +1196,23 @@ static int cmd_start(const struct shell *shell, size_t argc, char **argv)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cmd_start_idx(const struct shell *shell, size_t argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
uint8_t big_index;
|
||||
|
||||
big_index = (uint8_t)atoi(argv[1]);
|
||||
LOG_INF("Enable big %d", big_index);
|
||||
ret = big_enable(shell, big_index);
|
||||
if (ret) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
led_blink(LED_APP_RGB, LED_COLOR_GREEN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int enable_broadcast_source_only(const struct shell *shell, uint8_t big_index)
|
||||
{
|
||||
int ret;
|
||||
@@ -2952,9 +2973,12 @@ SHELL_STATIC_SUBCMD_SET_CREATE(
|
||||
configuration_cmd, SHELL_COND_CMD(CONFIG_SHELL, list, NULL, "List presets", cmd_list),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, start, NULL, "Start broadcaster", cmd_start),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, stop, NULL, "Stop broadcaster", cmd_stop),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, start_idx, NULL, "Start broadcaster with index", cmd_start_idx),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, source_disable, NULL, "Disable broadcast source", cmd_broadcast_source_disable),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, source_enable, NULL, "Enable broadcast source", cmd_broadcast_source_enable),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, stream_close, NULL, "Close lc3 stream", cmd_stream_close),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, en_usb_mass, NULL, "Enable usb mass storage device", cmd_usb_mass_enable),
|
||||
|
||||
|
||||
SHELL_COND_CMD(CONFIG_SHELL, show, NULL, "Show current configuration", cmd_show),
|
||||
SHELL_COND_CMD(CONFIG_SHELL, packing, NULL, "Set type of packing", cmd_packing),
|
||||
|
||||
Reference in New Issue
Block a user