comp.lang.ada
 help / color / mirror / Atom feed
From: jan.de.kruyf@gmail.com
Subject: Re: file descriptor of a serial port
Date: Wed, 22 Aug 2018 00:03:54 -0700 (PDT)
Date: 2018-08-22T00:03:54-07:00	[thread overview]
Message-ID: <b10b7a7e-00a4-4085-a3fe-dca2441c96ba@googlegroups.com> (raw)
In-Reply-To: <f8db92cc-707a-46b4-8aea-7fb0e3b7d823@googlegroups.com>

On Tuesday, August 21, 2018 at 9:19:36 AM UTC+2, jan.de...@gmail.com wrote:
> On Monday, August 20, 2018 at 9:52:28 PM UTC+2, Per Sandberg wrote:
> > Why don't patch your own "GNAT.Serial_Communications" and put in your 
> > own projects sources.
> > --------------------------------------------------------------------
> > package GNAT.Serial_Communications is
> > ...
> >     type Data_Rate is
> >       (B75, B110, B150, B300, B600, B1200, B2400, B4800, B9600,
> >        B19200, B38400, B57600, B100000, B115200);
> > ...
> > private
> > ...
> >     Data_Rate_Value : constant array (Data_Rate) of 
> > Interfaces.C.unsigned ...
> >                          B57600  =>  57_600,
> >                          B100000 => 100_000,
> >                          B115200 => 115_200);
> > 
> > end GNAT.Serial_Communications;
> > --------------------------------------------------------------------
> > package body GNAT.Serial_Communications is
> > ...
> >     C_Data_Rate : constant array (Data_Rate) of unsigned :=
> > ...
> >                      B57600  => OSC.B57600,
> >                      B100000 => 0010010, --<<bits/termios.h:162
> >                      B115200 => OSC.B115200);
> > ...
> > end GNAT.Serial_Communications;
> > --------------------------------------------------------------------
> > project Serial_Mess is
> >     for Source_Dirs use ("src");
> >     for Object_Dir use ".obj";
> >     for Main use ("main.adb");
> > 
> >     package Compiler is
> >        for Switches ("g-sercom.adb") use ("-gnatg");
> >     end Compiler;
> > end Serial_Mess;
> > --------------------------------------------------------------------
> > And you are done.
> > 
> > Did the same thing some years ago for B75 before it was implemented in 
> > the distributed Run-times.
> > /P
> > 
> > 
> > 
> > On 08/20/18 15:56, jan.....com wrote:
> > > Hallo,
> > > 
> > > I try to set up a custom baudrate on a serial port, which I believe is done with the C ioctl procedure.
> > > 
> > > However, for that I need the fd of the serial port which is hidden in the private part of GNAT.Serial_Communications.
> > > 
> > > I tried to construct a child package of GNAT.Serial_Communications but the compiler does not like that, since it does not actually compile that package.
> > > 
> > > Has anybody any idea?
> > > 
> > > Thanks,
> > > 
> > > Jan de Kruijf.
> > >
> 
> Per,
> Yes, it is not as simple as you make it, but that I will do. The whole issue comes about because I need to read a serial port at 100kBaud which Linux does not handle by normal means. You need to give a custom divider (i.e. not preset in the serial driver) with ioctl
> 
> See here:
> stackoverflow.com/questions/3192478/specifying-non-standard-baud-rate-for-ftdi-virtual-serial-port-under-linux#
> 
> Enjoy your day.
> 
> j.

Rejoice with me, the stackoverflow.com recipe works.
I get 100kBaud now. 
The code is here for anybody who might ever need it.

Thanks for all the help.

j.

      reply	other threads:[~2018-08-22  7:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-20 13:56 file descriptor of a serial port jan.de.kruyf
2018-08-20 14:21 ` J-P. Rosen
2018-08-20 14:33   ` jan.de.kruyf
2018-08-20 14:58     ` joakimds
2018-08-20 15:12       ` jan.de.kruyf
2018-08-20 16:36     ` Dmitry A. Kazakov
2018-08-20 19:10       ` jan.de.kruyf
2018-08-20 19:26         ` Dmitry A. Kazakov
2018-08-21  7:09           ` jan.de.kruyf
2018-08-20 15:17 ` Björn Lundin
2018-08-20 15:41   ` jan.de.kruyf
2018-08-20 19:52 ` Per Sandberg
2018-08-21  7:19   ` jan.de.kruyf
2018-08-22  7:03     ` jan.de.kruyf [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox