summaryrefslogtreecommitdiff
path: root/src/class
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2020-03-07 16:38:59 +0700
committerGitHub <[email protected]>2020-03-07 16:38:59 +0700
commit5f5ee465a672fabaa101334409120707b7f2f717 (patch)
tree15e06cc3b24b79e35daa3009a2cf0e354a2eb553 /src/class
parent093b1381f2892994c25de7927544882a7e7e9d1c (diff)
parent46f22860fb6eaf0b65469b47b099e20f489b2e47 (diff)
Merge pull request #291 from hathach/port-samg55
Port samg55
Diffstat (limited to 'src/class')
-rw-r--r--src/class/cdc/cdc_device.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c
index c0de0cadd..f63418dae 100644
--- a/src/class/cdc/cdc_device.c
+++ b/src/class/cdc/cdc_device.c
@@ -335,25 +335,34 @@ bool cdcd_control_request(uint8_t rhport, tusb_control_request_t const * request
switch ( request->bRequest )
{
case CDC_REQUEST_SET_LINE_CODING:
+ TU_LOG2(" Set Line Coding\n");
tud_control_xfer(rhport, request, &p_cdc->line_coding, sizeof(cdc_line_coding_t));
break;
case CDC_REQUEST_GET_LINE_CODING:
+ TU_LOG2(" Get Line Coding\n");
tud_control_xfer(rhport, request, &p_cdc->line_coding, sizeof(cdc_line_coding_t));
break;
case CDC_REQUEST_SET_CONTROL_LINE_STATE:
+ {
// CDC PSTN v1.2 section 6.3.12
// Bit 0: Indicates if DTE is present or not.
// This signal corresponds to V.24 signal 108/2 and RS-232 signal DTR (Data Terminal Ready)
// Bit 1: Carrier control for half-duplex modems.
// This signal corresponds to V.24 signal 105 and RS-232 signal RTS (Request to Send)
+ bool const dtr = tu_bit_test(request->wValue, 0);
+ bool const rts = tu_bit_test(request->wValue, 1);
+
p_cdc->line_state = (uint8_t) request->wValue;
+ TU_LOG2(" Set Control Line State: DTR = %d, RTS = %d\n", dtr, rts);
+
tud_control_status(rhport, request);
// Invoke callback
- if ( tud_cdc_line_state_cb) tud_cdc_line_state_cb(itf, tu_bit_test(request->wValue, 0), tu_bit_test(request->wValue, 1));
+ if ( tud_cdc_line_state_cb) tud_cdc_line_state_cb(itf, dtr, rts);
+ }
break;
default: return false; // stall unsupported request