summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/serial/serial_dev.cc
diff options
context:
space:
mode:
authorschodet2004-04-17 07:46:47 +0000
committerschodet2004-04-17 07:46:47 +0000
commit105698a1cc5bbfebe10b5219105b836a343b3c61 (patch)
tree3b98e513de073b2c0dbba3aee329c50518b743a6 /2004/i/nono/src/serial/serial_dev.cc
parent0f5b4128344db510e734292770bd97fdef780fa6 (diff)
Préparation du terrain pour stdin/stdout.
Diffstat (limited to '2004/i/nono/src/serial/serial_dev.cc')
-rw-r--r--2004/i/nono/src/serial/serial_dev.cc20
1 files changed, 11 insertions, 9 deletions
diff --git a/2004/i/nono/src/serial/serial_dev.cc b/2004/i/nono/src/serial/serial_dev.cc
index 47d7461..7baa9d8 100644
--- a/2004/i/nono/src/serial/serial_dev.cc
+++ b/2004/i/nono/src/serial/serial_dev.cc
@@ -45,13 +45,13 @@ SerialDev::open (const char *ttyname, int speed/*0*/)
{
struct termios tios;
// Ouvre le port série.
- fd_ = ::open (ttyname, O_RDWR | O_NOCTTY | O_NONBLOCK);
- if (fd_ < 0)
+ fdIn_ = ::open (ttyname, O_RDWR | O_NOCTTY | O_NONBLOCK);
+ if (fdIn_ < 0)
throw ErreurFatale ("Erreur d'ouverture du port série.\n");
// Rendre le port série asynchrone.
//fcntl (fd_, F_SETFL, FASYNC);
// Sauver la configuration courante du port série.
- tcgetattr (fd_, &old_);
+ tcgetattr (fdIn_, &old_);
// Paramètrer les options du port série.
tios.c_cflag = CS8 | CLOCAL | CREAD /*| BAUDRATE*/;
tios.c_iflag = IGNBRK | IGNPAR;
@@ -88,8 +88,9 @@ SerialDev::open (const char *ttyname, int speed/*0*/)
throw ErreurFatale ("Vitesse de port série non supportée\n");
}
// Vider et configurer le port série.
- tcflush (fd_, TCIFLUSH);
- tcsetattr (fd_, TCSANOW, &tios);
+ tcflush (fdIn_, TCIFLUSH);
+ tcsetattr (fdIn_, TCSANOW, &tios);
+ fdOut_ = fdIn_;
}
/// Ferme le port série, appellé automatiquement dans le destructeur de la
@@ -97,11 +98,12 @@ SerialDev::open (const char *ttyname, int speed/*0*/)
void
SerialDev::close (void)
{
- if (fd_ != -1)
+ if (fdIn_ != -1)
{
- tcsetattr (fd_, TCSANOW, &old_);
- ::close (fd_);
- fd_ = -1;
+ tcsetattr (fdIn_, TCSANOW, &old_);
+ ::close (fdIn_);
+ fdIn_ = -1;
+ fdOut_ = -1;
}
}