int check_tira(void) { logprintf(LOG_ERR, "Searching for Tira"); if(!tty_reset(hw.fd) || !tty_setbaud(hw.fd, 9600) || !tty_setrtscts(hw.fd, 1)) return 0; usleep (50000); return tira_setup(); }
static int irlink_open(const char * portName) { int port = -1; if(!tty_create_lock((char*)portName)) { logprintf(LOG_ERR,"could not create lock files"); return -1; } if((port=open(portName,O_RDWR | O_NOCTTY | O_NDELAY))<0) { logprintf(LOG_ERR,"could not open %s",hw.device); tty_delete_lock(); return -1; } if(tty_reset(port) < 0 || tty_setbaud(port , 115200) < 0 || tty_setcsize(port , 8) < 0 || tty_setrtscts(port , 0) < 0 ) { irlink_close(port); port = -1; } return port; }
static int uirt2_raw_init(void) { int version; if (!tty_create_lock(hw.device)) { logprintf(LOG_ERR, "uirt2_raw: could not create lock files"); return (0); } if ((hw.fd = open(hw.device, O_RDWR | O_NONBLOCK | O_NOCTTY)) < 0) { logprintf(LOG_ERR, "uirt2_raw: could not open %s", hw.device); tty_delete_lock(); return (0); } if (!tty_reset(hw.fd)) { logprintf(LOG_ERR, "uirt2_raw: could not reset tty"); close(hw.fd); tty_delete_lock(); return (0); } /* Wait for UIRT device to power up */ usleep(100 * 1000); if (!tty_setbaud(hw.fd, 115200)) { logprintf(LOG_ERR, "uirt2_raw: could not set baud rate"); close(hw.fd); tty_delete_lock(); return (0); } if (!tty_setcsize(hw.fd, 8)) { logprintf(LOG_ERR, "uirt2_raw: could not set csize"); close(hw.fd); tty_delete_lock(); return (0); } if (!tty_setrtscts(hw.fd, 1)) { logprintf(LOG_ERR, "uirt2_raw: could not enable hardware flow"); close(hw.fd); tty_delete_lock(); return (0); } if ((dev = uirt2_init(hw.fd)) == NULL) { logprintf(LOG_ERR, "uirt2_raw: No UIRT2 device found at %s", hw.device); close(hw.fd); tty_delete_lock(); return (0); } if (uirt2_setmoderaw(dev) < 0) { logprintf(LOG_ERR, "uirt2_raw: could not set raw mode"); uirt2_raw_deinit(); return (0); } if (uirt2_getversion(dev, &version) < 0) { uirt2_raw_deinit(); return (0); } if (version >= 0x0905) { if (!tty_setdtr(hw.fd, 0)) { logprintf(LOG_ERR, "uirt2_raw: could not set DTR"); uirt2_raw_deinit(); return (0); } } init_rec_buffer(); init_send_buffer(); rec_rptr = 0; rec_wptr = 0; rec_size = sizeof(rec_buf) / sizeof(rec_buf[0]); return (1); }