I should mention I am using:
    - Windows 10
    - Drivers from about 2 weeks ago
    - A beaglebone image from about 2 weeks ago

On Friday, April 21, 2017 at 5:18:37 PM UTC+1, David Howlett wrote:
>
> I have spent about two days tracking down an issue in one of my machines. 
> I am streaming pressure readings from an i2c pressure sensor to a PC at 
> high speed. I have reduced the problem to a small test case. To replicate 
> the fault I connect the beaglebone black to a PC, connect to it with serial 
> over the micro USB port, login and launch a command that streams data fast. 
> On the PC run a program that collects the streamed data more slowly than it 
> is being created. 
>
> import serial
>
> x = serial.Serial('COM15')
> to_send = b'\x03yes HelloWorld\n'
> x.write(to_send)
> while True:
>     received = x.readline()
>     if received != b'HelloWorld\r\n':
>         print(received) 
>
>
> The python program above prints lines like:
>
> b'ld\r\n'
> b'HelloWoroWorld\r\n'
> b'HelloWorldorld\r\n'
> b'HelloWorldorld\r\n'
> b'ld\r\n'
> b'ld\r\n'
> b'ld\r\n'
> b'ld\r\n'
> b'ld\r\n'
> b'ld\r\n'
> b'HelloWoroWorld\r\n'
> b'ld\r\n'
> b'HelloWlloWorld\r\n'
> b'ld\r\n'
> b'HelloWorldorld\r\n'
>
> At about 4 lines per second. If I set the program on the beagle bone to 
> stream slowly then this issue goes away. It appears to be an issue with a 
> buffer filling up somewhere between the output of the yes command and 
> reading bytes from the windows API. The correct behaviour is that the yes 
> command should be stopped when the buffer is full to prevent the loss of 
> data, then allowed to continue when there is space in the buffer again. I 
> observe that the streaming command (in this case yes) is stopped but there 
> is still data loss happening somewhere. 
>
> I wrote this in python because it is the language I am most comfortable in 
> but if you needed me to I could rewrite the example in some other language. 
> To run the program shown above you will need pyserial and you will need to 
> change 'COM15' to be whatever the port is called on your computer. 
>
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/f4c86058-1fee-41fb-bc6f-d41f8eccb3b6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to