Перейти к содержанию

Заблокировать ком порт


Рекомендуемые сообщения

Приветствую.

Для того чтобы устройство на ttyACM0 правильно функционировало, необходимо чтобы программа открывала его в монопольном режиме, например

program открывает /dev/ttyACM0, тогда команда echo "aaaa" > /dev/ttyACM0 должна закончиться неудачей. Minicom это делает, а у меня не получается.

Вот код открытия:

fd = open(device, O_RDWR | O_EXCL );	  if (fd == -1)	  {	   /*	* Could not open the port.	*/	perror(device);		  //return NULL;	  }	//fcntl(fd, F_SETFL, FNDELAY);		struct flock lock;	lock . l_type = F_WRLCK;	lock . l_whence = SEEK_SET;	lock . l_start = 0;	lock . l_len = 0;	if (fcntl (fd, F_SETLK, & lock) < 0) {	  perror(device);	  //return NULL;	}	int status;		ioctl(fd, TIOCMGET, &status);	status &= ~TIOCM_RTS;	status &= ~TIOCM_DTR;	status &= ~TIOCM_CTS;	status &= ~TIOCM_DSR;	if (ioctl(fd, TIOCMSET, &status))	{	  perror("ioctl");	  //return 0;	}	struct termios options;	/*	 * Get the current options for the port...	 */	tcgetattr(fd, &options);	cfsetispeed(&options, baud_rate);	cfsetospeed(&options, baud_rate);		options.c_cflag &= ~PARENB;	options.c_cflag &= CSTOPB;	options.c_cflag &= ~CSIZE;	options.c_cflag |= CS8;	options.c_cflag &= ~CRTSCTS;	options.c_oflag &= ~OPOST; //raw output		options.c_lflag &= ~(ICANON | ECHO | ISIG);	/*	 * Enable the receiver and set local mode...	 */	options.c_cflag |= (CLOCAL | CREAD | baud_rate);		/*	 * Set the timeouts VMIN is the minimum amount of characters to read	 */		//options.c_cc[VMIN] = 0;		/*	 * The amount of time to wait for the amount of data specified by VMIN in tenths of a second	 */		//options.c_cc[VTIME] = 0;	/*	 * Set the new options for the port...	 */	tcsetattr(fd, TCSANOW, &options);

Подскажите, что не так. Либо кусок кода.где работает блокировка. Спасибо

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...