Cool! That demo code does do that.

I am not sure if it is completely compliant however.

It implements SET_LINE_CODING and SET_CONTROL_LINE_STATE, but the 
capability bit (0x2) indicates that we support GET_LINE_CODING as well. 
The bit indicates support for these 3 requests (and a notification, 
which we don't care about).

There is no way to indicate support for only SET_CONTROL_LINE_STATE.

And it seems like the only symbol missing (for implementing this) in 
cdc.h is GET_LINE_CODING.

I am not sure if GET_LINE_CODING is actually ever sent by Windows or 
Linux, and whether not supporting it (despite setting the capability 
bit) would actually be a problem.

Thanks
Matthew

On 2015-11-09 4:41 AM, Karl Palsson wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hrm, I thought the ti/lm4f cdc-acm demo code did this, but it
> might have it locally. The definitions from the standard would be
> certainly welcome in cdc.h
>
> Cheers,
> Karl P
>
> Matthew Lai <m...@matthewlai.ca> wrote:
>> Upon further research, I found that there is an optional "Set
>> Control Line State" request that does exactly what I want. It
>> is not yet implemented in cdc.h.
>>
>> I am going to implement it myself unless someone has done it
>> already?
>>
>> Thanks
>> Matthew
>>
>> On 2015-11-08 11:31 PM, Matthew Lai wrote:
>>> Hello!
>>>
>>> I am using CDC ACM as a debug logging interface, so sometimes there is a
>>> USB cable connected, and sometimes there isn't.
>>>
>>> My send routine looks like this -
>>>
>>>        int ret = 0;
>>>
>>>        do
>>>        {
>>>            ret = usbd_ep_write_packet(usbd_dev, 0x82, data, size);
>>>        }
>>>        while (ret == 0);
>>>
>>> However, if I call this function when either the USB cable isn't plugged
>>> in or serial monitor is not opened on the computer, usbd_ep_write_packet
>>> will just keep returning 0.
>>>
>>> Is there a way around this? Is there a way to tell whether the function
>>> returned zero because there is no receiver, or if it returned zero
>>> because it's busy and we should retry? Detecting whether the cable is
>>> plugged in (or even whether the device is enumerated) is insufficient.
>>>
>>> Thanks!
>>> Matthew
>>>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
>
> iQIcBAEBAgAGBQJWQJSIAAoJEBmotQ/U1cr2iogP/iTCVCV1YYPSJ+5c2v0Ih0Xa
> tphtjWIGQgGUUtLWRgGvUydZtJ10ec2gHybe7v+v3spqKhbLO3ydzmgxNdedg7AN
> IfIo7axZt3A1LbUBOLSwqBBNS/Jr7MnZSw0V/56MBfnr2zL8+txuYmOAH/cwcbiq
> c9GUwgK5QZTg/wQHaIqR9nPrEnejPAU/Tyelndmk5lkHH9/+QVr/F/HR/p6GZc3x
> sWntENu30KvveQ2NZsCeE9tNa+9T1l5JTnDEfFch5Gt2PPjw31A87yDJEgeid1Yk
> +hzmgZ+lf/3V/NL71JmNT8ky84ecejXX5xooqgFn9XJkHY4IidkTrUmPJiYnjytM
> 7VjCzhVtiWSkqLMC3P70N6zAEZ/T4UCALriJz56rOL/AJebkdv2/pQXHEXBLKvVV
> BxMFedV8JqL+fhMQlwOjPJ3hRAVM0N69BLGNIWfAeJoN+YhWZk8W/I01XrEof21r
> 7qXiueGSqvzqj4GAMGcTEQTEn88utAUWb5MOjj0IdFEw4CsOVCGUlecvvkQFc6rC
> nCxbQx6EyKR07ADDYoPDZBfrn6Q2JHbB3rpXQvfiH7Ky974sgIPouvYGuI6fP1mt
> WCFfM9D9+Ewd3pfkHjDLIcddj2fU61fEvKh+ANyX1MVIqyJuVYnUgmJKjsbEAjWo
> 1/87o6QolfPdFOZ7qlvD
> =pxLy
> -----END PGP SIGNATURE-----


------------------------------------------------------------------------------
Presto, an open source distributed SQL query engine for big data, initially
developed by Facebook, enables you to easily query your data on Hadoop in a 
more interactive manner. Teradata is also now providing full enterprise
support for Presto. Download a free open source copy now.
http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140
_______________________________________________
libopencm3-devel mailing list
libopencm3-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libopencm3-devel

Reply via email to