pd messages back over BT link

This commit is contained in:
Miller Puckette 2021-07-12 13:56:50 -07:00
parent fc1c3bce26
commit 7e1557557f
2 changed files with 35 additions and 7 deletions

View file

@ -76,12 +76,15 @@ void senddacs( void)
ESP_LOGE(TAG, "error writing"); ESP_LOGE(TAG, "error writing");
} }
void pd_bt_writeback(const unsigned char *s, int length);
void pdmain_print( const char *s) void pdmain_print( const char *s)
{ {
char y[80]; char y[80];
strncpy(y, s, 79); strncpy(y, s, 79);
y[79]=0; y[79]=0;
ESP_LOGI(TAG, "%s", y); ESP_LOGI(TAG, "%s", y);
pd_bt_writeback((unsigned char *)y, strlen(y));
} }
void trymem(int foo); void trymem(int foo);
@ -137,7 +140,21 @@ void app_main(void)
/* -------------------- bluetooth and SD card ------------------ */ /* -------------------- bluetooth and SD card ------------------ */
void pd_dispatch_bt(char *data, size_t size); void pd_bt_dispatch(char *data, size_t size);
static uint32_t pd_bt_writehandle;
void pd_bt_writeback(const unsigned char *s, int length)
{
#if 1
if (pd_bt_writehandle)
{
if (esp_spp_write(pd_bt_writehandle, length, s) != ESP_OK)
ESP_LOGI(TAG, "bt writeback error");
}
else ESP_LOGI(TAG, "writeback: not open");
#endif
}
static const esp_spp_mode_t esp_spp_mode = ESP_SPP_MODE_CB; static const esp_spp_mode_t esp_spp_mode = ESP_SPP_MODE_CB;
static const esp_spp_sec_t sec_mask = ESP_SPP_SEC_AUTHENTICATE; static const esp_spp_sec_t sec_mask = ESP_SPP_SEC_AUTHENTICATE;
@ -159,6 +176,7 @@ static void esp_spp_cb(esp_spp_cb_event_t event, esp_spp_cb_param_t *param)
ESP_LOGI(TAG, "ESP_SPP_OPEN_EVT"); ESP_LOGI(TAG, "ESP_SPP_OPEN_EVT");
break; break;
case ESP_SPP_CLOSE_EVT: case ESP_SPP_CLOSE_EVT:
pd_bt_writehandle = 0;
ESP_LOGI(TAG, "ESP_SPP_CLOSE_EVT"); ESP_LOGI(TAG, "ESP_SPP_CLOSE_EVT");
break; break;
case ESP_SPP_START_EVT: case ESP_SPP_START_EVT:
@ -172,8 +190,16 @@ static void esp_spp_cb(esp_spp_cb_event_t event, esp_spp_cb_param_t *param)
if (param->data_ind.len > 2) if (param->data_ind.len > 2)
ESP_LOGI(TAG, "ESP_SPP_DATA_IND_EVT len=%d handle=%d", ESP_LOGI(TAG, "ESP_SPP_DATA_IND_EVT len=%d handle=%d",
param->data_ind.len, param->data_ind.handle); param->data_ind.len, param->data_ind.handle);
#if 0
pd_dispatch_bt((char *)(param->data_ind.data), param->data_ind.len); {
char foo[80];
int len = (param->data_ind.len > 79 ? 79 : param->data_ind.len);
memcpy(foo, param->data_ind.data, len);
foo[len] = 0;
ESP_LOGI(TAG, "message %s", foo);
}
#endif
pd_bt_dispatch((char *)(param->data_ind.data), param->data_ind.len);
break; break;
case ESP_SPP_CONG_EVT: case ESP_SPP_CONG_EVT:
@ -183,6 +209,8 @@ static void esp_spp_cb(esp_spp_cb_event_t event, esp_spp_cb_param_t *param)
ESP_LOGI(TAG, "ESP_SPP_WRITE_EVT"); ESP_LOGI(TAG, "ESP_SPP_WRITE_EVT");
break; break;
case ESP_SPP_SRV_OPEN_EVT: case ESP_SPP_SRV_OPEN_EVT:
pd_bt_writehandle = param->write.handle;
// ((struct spp_open_evt_param *)param)->handle;
ESP_LOGI(TAG, "ESP_SPP_SRV_OPEN_EVT"); ESP_LOGI(TAG, "ESP_SPP_SRV_OPEN_EVT");
break; break;
default: default:

View file

@ -51,7 +51,7 @@ void trymem(int foo)
free(foo); free(foo);
else break; else break;
} }
sprintf(msg, "%d max mem %dk", foo, i-1); sprintf(msg, "%d max mem %dk\n", foo, i-1);
pdmain_print(msg); pdmain_print(msg);
#endif #endif
} }
@ -60,7 +60,7 @@ void trymem(int foo)
static char *pd_bt_buf; static char *pd_bt_buf;
static int pd_bt_size; static int pd_bt_size;
void pd_dispatch_bt(char *data, size_t size) void pd_bt_dispatch(char *data, size_t size)
{ {
if (!pd_bt_buf) if (!pd_bt_buf)
pd_bt_buf = getbytes(0); pd_bt_buf = getbytes(0);
@ -69,7 +69,7 @@ void pd_dispatch_bt(char *data, size_t size)
pd_bt_size += size; pd_bt_size += size;
} }
void pd_poll_bt( void) void pd_bt_poll( void)
{ {
int lastchar; int lastchar;
static t_binbuf *b; static t_binbuf *b;
@ -122,7 +122,7 @@ void pdmain_init( void)
void pdmain_tick( void) void pdmain_tick( void)
{ {
memset(soundout, 0, 64*sizeof(float)); memset(soundout, 0, 64*sizeof(float));
pd_poll_bt(); pd_bt_poll();
sched_tick(); sched_tick();
} }