Example #1
0
static void
new_data(uint8_t *data, size_t len)
{
    printf("received: `%*s'\n", len, data);
    cdc_write(data, len, &cdc);
    cdc_read_more(&cdc);
}
Example #2
0
void
new_data(uint8_t *data, size_t len)
{
        onboard_led(-1);
        cdc_write(data, len, &loopback);
        cdc_read_more(&loopback);
}
Example #3
0
static void
new_data(uint8_t *data, size_t len)
{
        draining = process_data(data, len);

        if (!draining)
                cdc_read_more(&cdc);
}
Example #4
0
void
cdc_init(void (*data_ready_cb)(uint8_t *, size_t), void (*data_sent_cb)(size_t), struct cdc_ctx *ctx)
{
  usb_attach_function(&cdc_function, &ctx->header);
  ctx->data_ready_cb = data_ready_cb;
  ctx->data_sent_cb = data_sent_cb;
  ctx->out_queued = 0;
  ctx->notice_pipe = usb_init_ep(&ctx->header, CDC_NOTICE_EP, USB_EP_TX, CDC_NOTICE_SIZE);
  ctx->tx_pipe = usb_init_ep(&ctx->header, CDC_TX_EP, USB_EP_TX, CDC_TX_SIZE);
  ctx->rx_pipe = usb_init_ep(&ctx->header, CDC_RX_EP, USB_EP_RX, CDC_RX_SIZE);
  cdc_read_more(ctx);
  cdc_tx_done(ctx->outbuf, -1, ctx);
}