Is it possible to open the serial port in canonical mode ?

Hello,

I just developped a new driver for MRPT. A driver for a gyro (the KVH DSP 3000).
To develop this driver I need to open a serial communication with the device. At the begining of the driver development, I use the MRPT class : hwdrivers::CSerialPort. But, (on linux) this class open the serial port in NON CANONICAL mode, and my driver is very easiest to wrote in canonical mode. I look into the source of CSerialPort, and I can't find an easy way to open the port in canonical mode.
I decide to create a serial port in my driver class using POSIX call, backwards of doing this are :
1 - More code lines,
2 - Only POSIX compatible.

My question is :
Is there an easy way to force CSerialPort::Read to return after a "new line" (\n) character ?

If that is not possible, I will publish my driver as is (only posix compatible).

Regards,
A.BARRAL

jlblanco's picture

Hi, I just saw your commit,

Hi,

I just saw your commit, thanks for the work! Seems a pretty cool Gyro, by the way...

Although a bit late, I just added (it's in SVN HEAD) a new method to CSerialPort named "ReadString()" that should do what you want.
It would be great if you could try it to allow the driver to work on Windows too :-)

Best,
JL

abarral's picture

Ok, I will change the

Ok, I will change the serial
Ok, I will change the serial port interface of this class with you new function "readString".

I will be very busy for the two following monthes... I will try to do it in october.

Regards, A.BARRAL

jlblanco's picture

No rush at all... Thanks!

No rush at all... Thanks!

Syndicate content

The Mobile Robot Programming Toolkit (MRPT) initiative (C) 2012