Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / ACE / examples / IPC_SAP / DEV_SAP / writer / writer.cpp
blobc7db2c9653b0596a466db0d7c2ef55b27210d83e
1 #include "ace/DEV_Connector.h"
2 #include "ace/TTY_IO.h"
3 #include "ace/OS_NS_unistd.h"
5 int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
7 if (argc < 2)
8 ACE_ERROR_RETURN ((LM_ERROR,
9 ACE_TEXT ("usage: %s device-filename\n"),
10 argv[0]), 1);
12 ACE_TTY_IO write_dev;
13 ACE_DEV_Connector con;
15 if (con.connect (write_dev,
16 ACE_DEV_Addr (argv[1])) == -1)
17 ACE_ERROR_RETURN ((LM_ERROR,
18 ACE_TEXT ("%p\n"),
19 argv[1]),
20 1);
22 ACE_TTY_IO::Serial_Params myparams;
23 // Try to read default parameters
24 if (write_dev.control (ACE_TTY_IO::GETPARAMS, &myparams) == -1)
26 ACE_DEBUG ((LM_DEBUG, ACE_TEXT("GETPARAMS is not supported\n")));
28 else
30 ACE_DEBUG ((LM_DEBUG, ACE_TEXT("GETPARAMS is supported\n")));
33 myparams.baudrate = 19200;
34 myparams.readmincharacters = 0;
35 myparams.readtimeoutmsec = 10*1000; // 10 seconds
37 if (write_dev.control (ACE_TTY_IO::SETPARAMS, &myparams) == -1)
38 ACE_ERROR_RETURN ((LM_ERROR,
39 ACE_TEXT ("%p\n"),
40 ACE_TEXT ("control")),
41 1);
43 ACE_DEBUG ((LM_DEBUG,
44 ACE_TEXT ("enter character to send, q terminates :\n")));
46 for (char writeto;
47 ACE_OS::read (ACE_STDIN, &writeto, 1) != -1;
50 ssize_t bytes_written =
51 write_dev.send_n ((void *) &writeto,
52 1);
54 if (bytes_written != 1)
55 ACE_ERROR_RETURN ((LM_ERROR,
56 ACE_TEXT ("%p\n"),
57 ACE_TEXT ("send")),
58 1);
59 if (writeto == 'q')
60 break;
63 if (write_dev.close () == -1)
64 ACE_ERROR_RETURN ((LM_ERROR,
65 ACE_TEXT ("%p\n"),
66 ACE_TEXT ("close")),
67 1);
68 return 0;