Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2014, 00:36   #1
digiwo
Пользователь
 
Аватар для digiwo
 
Регистрация: 13.01.2014
Сообщений: 45
По умолчанию Коммуникация с SerialPort под линуксом.

Добрый день,

не могу настроить соединение с серийным портом под линукс.
Посылаю данные но получаю таймаут.
Вроде настройки все правильные но что то не идет.

Вот кусок кода
Код:
	public void Test()
	{
		if (mySerial != null)
			if (mySerial.IsOpen)
				mySerial.Close();
 
		mySerial = new SerialPort("/dev/ttyUSB0", 9600, Parity.None,8,StopBits.One);
		mySerial.Open();
		mySerial.ReadTimeout = 1000;
		SendData("24 14 18 45 01 31 32 33 34 00 ff ff 01 01 46 49 58 50 4f 53 49 54 00");
		Console.WriteLine(ReadData());  
	}

	public string ReadData()
	{
		byte tmpByte;
		string rxString = "";
 
		tmpByte = (byte) mySerial.ReadByte();
 
		while (tmpByte != 255) {
			rxString += ((char) tmpByte);
			tmpByte = (byte) mySerial.ReadByte();			
		}
 
		return rxString;
	}
 
	public bool SendData(string Data)
	{
		mySerial.Write(Data);
		return true;		
	}

Вот ошибка

Код:
Unhandled Exception: System.TimeoutException: The operation has timed-out.
  at System.IO.Ports.SerialPortStream.Read (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0
  at System.IO.Ports.SerialPort.read_byte () [0x00000] in <filename unknown>:0
  at System.IO.Ports.SerialPort.ReadByte () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) System.IO.Ports.SerialPort:ReadByte ()
  at SerialPortVerbindung.ReadData () [0x00000] in <filename unknown>:0
  at SerialPortVerbindung.Test () [0x00000] in <filename unknown>:0
  at GPSTrack.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TimeoutException: The operation has timed-out.
  at System.IO.Ports.SerialPortStream.Read (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0
  at System.IO.Ports.SerialPort.read_byte () [0x00000] in <filename unknown>:0
  at System.IO.Ports.SerialPort.ReadByte () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) System.IO.Ports.SerialPort:ReadByte ()
  at SerialPortVerbindung.ReadData () [0x00000] in <filename unknown>:0
  at SerialPortVerbindung.Test () [0x00000] in <filename unknown>:0
  at GPSTrack.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
Может кто имеет опыт работы под линукс с портами?
digiwo вне форума Ответить с цитированием
Старый 21.01.2014, 09:39   #2
alexusankov
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 66
По умолчанию

Я никогда не имел дел, с кодингом на C# под Linux, но если бы впервые сел, то меня очень смутил тот факт, что ты указываешь :
Код:
new SerialPort("/dev/ttyUSB0", 9600, Parity.None,8,StopBits.One);
а тебе в ответ - in <filename unknown>:0
Уверен ли ты, что /dev/ttyUSB0 - корректное обозначение порта, и именно так обращаться к порту из Линукса?
alexusankov вне форума Ответить с цитированием
Старый 21.01.2014, 14:46   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...если речь об обращении к виртуальному Serial over USB.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 21.01.2014, 16:09   #4
digiwo
Пользователь
 
Аватар для digiwo
 
Регистрация: 13.01.2014
Сообщений: 45
По умолчанию

Да. Подключение через USB-Serial адаптер U232-P9
digiwo вне форума Ответить с цитированием
Старый 21.01.2014, 16:45   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
U232-P9
в Линуксе FTDI поддерживаются... оно на FTDI?

Ибо гугл выдал:
Цитата:
Prolific U232-P9
а это на PL23XX/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 21.01.2014, 19:42   #6
digiwo
Пользователь
 
Аватар для digiwo
 
Регистрация: 13.01.2014
Сообщений: 45
По умолчанию

Как я понял он на PL23XX, но судя по той инфе что я нашел драйвер должен внутри быть. У меня в кернеле лежит mct_u232.ko, устройство так же маунтится, но я не могу ничего к нему послать. Пробовал просто Эхо послать, тоже молчит(((

Вроде как и распознается
Код:
Jan 20 21:46:48 raspberrypi kernel: [    6.842662] usb 1-1.2: MCT U232 converter now attached to ttyUSB0
digiwo вне форума Ответить с цитированием
Старый 21.01.2014, 20:29   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...точно знаю, что с FTDI под Линуксями проблем никогда не было. Как себя ведет драйвер профилика под ним не могу подсказать.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.01.2014, 00:09   #8
digiwo
Пользователь
 
Аватар для digiwo
 
Регистрация: 13.01.2014
Сообщений: 45
По умолчанию

Продолжу тут чтоб не плодить подобных тем.
В общем запустил я пока это всё из винды для теста. Из под линукса ещё не пробовал сегодня. Возник вопрос.
Как лучше реализовать получение ответа?
я запустил просто в while цикле, но выйти из него не могу.
Так как при считывании
Код:
string data = mySerial.ReadExisting();
Я получаю стринг в котором только кракозябры.
Возможно ли как то это получить в HEX коде?
digiwo вне форума Ответить с цитированием
Старый 23.01.2014, 08:16   #9
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

У SerialPort есть событие получения данных. Его и используйте.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 23.01.2014, 14:21   #10
digiwo
Пользователь
 
Аватар для digiwo
 
Регистрация: 13.01.2014
Сообщений: 45
По умолчанию

А можно по подробнее? Я просто не сильно со всем этим знаком, пример было замечательно. Спасибо
digiwo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки при компиляции на Qt под линуксом Eyxeniy Qt и кроссплатформенное программирование С/С++ 3 09.06.2011 15:58
Писать и отлажевать Виндовс програмы под Линуксом? 026rus Помощь студентам 5 25.08.2010 16:31
Ищу задачки на сишке под линуксом zerg Общие вопросы C/C++ 1 04.12.2009 21:59
Flash видео не запускается под линуксом SeRhy Софт 3 12.10.2009 22:10
async serialport Imya Общие вопросы .NET 1 13.07.2009 14:37