int main (int argc, char * argv[]) { int rc = 0; char defaultName[] = "/dev/tts/0"; char const * name = defaultName; if (argc > 1) name = argv[1]; ACE_DEV_Addr ttyName(name); ACE_DEV_Connector connector; if (connector.connect(ioBuffer, ttyName, 0, ACE_Addr::sap_any, 0, O_RDWR) == -1) { std::cerr << "Failed to open device: " << name << std::endl; return 1; } if ((rc = saveTtyParams()) == 0 && (rc = setTtyParams()) == 0) { rc = binInit(); ACE_Time_Value start = ACE_OS::gettimeofday(); std::cout << "start: " << start << std::endl; for (int i = 0; i < 100 && rc == 0; i++) { rc = testParcours(); std::cout<< i <<": "<< std::endl; } std::cout << "stop: " << (ACE_OS::gettimeofday() - start) << std::endl; restoreTtyParams(); } ioBuffer.close(); return rc; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { if (argc < 2) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("usage: %s device-filename\n"), argv[0]), 1); ACE_TTY_IO write_dev; ACE_DEV_Connector con; if (con.connect (write_dev, ACE_DEV_Addr (argv[1])) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), argv[1]), 1); ACE_TTY_IO::Serial_Params myparams; // Try to read default parameters if (write_dev.control (ACE_TTY_IO::GETPARAMS, &myparams) == -1) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT("GETPARAMS is not supported\n"))); } else { ACE_DEBUG ((LM_DEBUG, ACE_TEXT("GETPARAMS is supported\n"))); } myparams.baudrate = 19200; myparams.readmincharacters = 0; myparams.readtimeoutmsec = 10*1000; // 10 seconds if (write_dev.control (ACE_TTY_IO::SETPARAMS, &myparams) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("control")), 1); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("enter character to send, q terminates :\n"))); for (char writeto; ACE_OS::read (ACE_STDIN, &writeto, 1) != -1; ) { ssize_t bytes_written = write_dev.send_n ((void *) &writeto, 1); if (bytes_written != 1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send")), 1); if (writeto == 'q') break; } if (write_dev.close () == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("close")), 1); return 0; }
int ZigbeeSerialportService::open_serial_port() { if ( io_svc_ != 0 ) { ACE_DEBUG((LM_DEBUG, "the serialport have been opened.\n")); return -1; } io_svc_ = new ACE_TTY_IO(); ACE_DEV_Connector con; if (con.connect ((*io_svc_), ACE_DEV_Addr (conf_->serial_port_.c_str())) == -1) { delete io_svc_; io_svc_ = 0; ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("Failed to open serial port:%p\n"), conf_->serial_port_.c_str()), -1); } ACE_TTY_IO::Serial_Params serial_port_params; serial_port_params.baudrate = conf_->baudrate_; serial_port_params.xonlim = 0; serial_port_params.xofflim = 0; serial_port_params.readmincharacters = 0; serial_port_params.readtimeoutmsec = 1000; // 10 seconds serial_port_params.paritymode = "none"; //"EVEN"; serial_port_params.ctsenb = false; serial_port_params.rtsenb = 0; serial_port_params.xinenb = false; serial_port_params.xoutenb = false; serial_port_params.modem = false; serial_port_params.rcvenb = true; serial_port_params.dsrenb = false; serial_port_params.dtrdisable = false; serial_port_params.databits = 8; serial_port_params.stopbits = 1; if (io_svc_->control (ACE_TTY_IO::SETPARAMS, &serial_port_params) == -1) { delete io_svc_; io_svc_ = 0; ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("failed to set %p control\n"), conf_->serial_port_.c_str()), -1); } state_ = Opened; net_->RegHandler(this, ACE_Event_Handler::READ_MASK); ACE_DEBUG((LM_DEBUG, "Sucessfully opened serial port:%s\n", conf_->serial_port_.c_str())); }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { if (argc < 2) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("usage: %s device-filename\n"), argv[0]), 1); ACE_TTY_IO read_dev; ACE_DEV_Connector con; if (con.connect (read_dev, ACE_DEV_Addr (argv[1])) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), argv[1]), 1); ACE_TTY_IO::Serial_Params myparams; myparams.baudrate = 19200; myparams.xonlim = 0; myparams.xofflim = 0; myparams.readmincharacters = 0; myparams.readtimeoutmsec = 10*1000; // 10 seconds myparams.paritymode = "EVEN"; myparams.ctsenb = false; myparams.rtsenb = 0; myparams.xinenb = false; myparams.xoutenb = false; myparams.modem = false; myparams.rcvenb = true; myparams.dsrenb = false; myparams.dtrdisable = false; myparams.databits = 8; myparams.stopbits = 1; if (read_dev.control (ACE_TTY_IO::SETPARAMS, &myparams) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p control\n"), argv[1]), 1); // Read till character 'q'. for (char readback = 'x'; readback != 'q'; ) { ssize_t bytes_read = read_dev.recv ((void *) &readback, 1); if (bytes_read == 1) ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("read: %c\n"), readback)); else if (bytes_read == 0) ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("timeout!\n"))); else if (bytes_read == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p recv\n"), argv[1]), 1); } return 0; }