On Sat, Oct 20, 2012 at 3:11 AM, Andrius Sutas <andrius.su...@gmail.com> wrote:
> On Wed, Oct 17, 2012 at 11:31 PM, Juan Pablo Carbajal
> <ajuanpi+...@gmail.com> wrote:
>>
>> Hello,
>>
>> I am observing weird behaviors and I couldn't pin down at which level
>> things are going bad. Using instrument-control 0.1.0 from Forge.
>> Running Ubuntu 12.04 64 bit
>> Linux 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012
>> x86_64 x86_64 x86_64 GNU/Linux
>>
>> I am using serial communications. I am testing with a physical
>> loopback (RxD connected to TxD) in this USB2Serial adapter
>> https://www.sparkfun.com/products/718.
>>
>> Problem 1 [Ring bufffer?]:
>>   s = serial (); # 8-N-1
>>   srl_baudrate (s,9600);
>>
>>   srl_write(s,"hello")
>>   ans = 5
>>
>>   char(srl_read (s,5))
>>   ans = hello
>>
>>   char(srl_read (s,5))
>>   ans = hello
>>
>>   char(srl_read (s,15))
>>   ans = hellohellohello
>>
>>   char(srl_read (s,4))
>>   ans = hell
>>
>>   char(srl_read (s,6))
>>   ans = ohello
>>
>> It looks like as if the buffer is a ring buffer or is really big and
>> filled with "hello". Maybe flushing the input after reading will solve
>> the problem? Continued from the example before I got this
>>
>> Problem 2 [Hang after flush]:
>>   srl_flush (s, 1)
>>
>>   char(srl_read (s,5)) # This blocks as expected but ...
>>   srl_read: Interrupting...
>>   ans =
>>
>>   srl_write(s,"hello")
>>   ans =  5
>>
>>   char(srl_read (s,5)) # This also blocks!!!!
>>   srl_read: Interrupting...
>>   ans =
>>
>> The only way of getting things to work from this point on is to close
>> the port and open it again.
>>
>> Can anybody reproduce this? any suggestions of tests to run to see
>> whether the problem is at hardware level?
>>
>> I also tested with a virtual loopback (command "socat -d -d PTY:
>> PTY:", this is simpler than the suggestion in the wiki. I can update
>> that), I do not observe Problem 1, but I can't interrupt the second
>> call to srl_read
>>
>> s = serial("/dev/ptmx", 9600);
>> srl_write(s,"hello")
>> ans =  5
>> char(srl_read (s,5))
>> ans = hello
>> octave:5> char(srl_read (s,5))
>> srl_read: Interrupting...
>> srl_read: Interrupting...
>> srl_read: Interrupting...
>> srl_read: Interrupting...
>>
>>
>> Thanks
>>
>>
>> ------------------------------------------------------------------------------
>> Everyone hates slow websites. So do we.
>> Make your web apps faster with AppDynamics
>> Download AppDynamics Lite for free today:
>> http://p.sf.net/sfu/appdyn_sfd2d_oct
>> _______________________________________________
>> Octave-dev mailing list
>> Octave-dev@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/octave-dev
>
>
> UPDATE: I did replicate the bug eventually. I can not reproduce it
> consistently, will look further into this behavior.

Hi,
Thanks for taking action.

I tested again the following commands (Ubuntu 12.04 Linux
3.2.0-32-generic, FT232RL)

Ring buffer
http://agora.octave.org/snippet/Xd6x/

Read hangs after flush
http://agora.octave.org/snippet/mu7J/

Weird data handling
http://agora.octave.org/snippet/62x8/

Still working unsatisfactorily.

Cheers,

JPi

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to