Страница 5 из 5

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 19 май 2012, 00:11
aftaev
Nick писал(а):В общем, расскажите, как ведется передача информации по COM, есть ли какие-нибудь служебные команды?
Как опишем так и буде работать. Можно побитно, можно передавать хоть словами типо Spindle=24000 (что значит скорость шпинделя установить 24000)
Nick писал(а):Кстати, что ты хочешь передавать в пульт и что получать из него?
Война план покажет. Пока что нибудь лижбы работало :)

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 19 май 2012, 00:19
Nick
aftaev писал(а):Как опишем так и буде работать.
Тогда предлагаю сделать, как писал выше - и работать будет быстрее...
Хотя, с другой стороны... было бы заманчиво прямо передавать название пина... но правда парсить потом замаемся, особенно на стороне платы. И все равно все пины надо заранее определять... :thinking: ... наверное лучше каждому пину свой id прицепить.
aftaev писал(а):Война план покажет. Пока что нибудь лижбы работало
Тогда пробуй то, что nkp написал! По результатам доложись! :)

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 22 май 2012, 11:05
nkp
Как в питоне взять значение переменной из хал ?
Вот например наш модуль:

Код: Выделить всё

h.newpin("out", hal.HAL_BIT, hal.HAL_OUT)
h.newpin("a", hal.HAL_BIT, hal.HAL_OUT)
h.newpin("b", hal.HAL_BIT, hal.HAL_OUT)
h.newpin("c", hal.HAL_BIT, hal.HAL_OUT)

h.newpin("numberin", hal.HAL_S32, hal.HAL_IN)
h.newpin("numberout", hal.HAL_S32, hal.HAL_OUT)


h.ready()
h['a'] = False
h['b'] = False
h['c'] = False
h['out'] = False


try:
    while 1:
		time.sleep(1)
		ser = serial.Serial('/dev/ttyS0', 115200, timeout=1)	
		x = ser.read()
		if x == '2' :
			h['out'] = True
		else :
			h['out'] = False
		if x == '3' :
			h['a'] = True
			h['b'] = False
		if x == '4' :
			h['b'] = True
			h['a'] = False
		if x == '5' :
			h['c'] = True
		ser.close()
		h['numberout'] = h['numberin']
		n=h['numberout']
except KeyboardInterrupt:
    raise SystemExit
Переменная n. Import pult -вызывает ошибку, from pult import n - так тоже.
Пробовал выделить код в отдельную функцию и потом ее импортировать- ошибка

Код: Выделить всё

HAL: ERROR: duplicate component name 'pult'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pult.py", line 4, in <module>
    h = hal.component("pult")
hal.error: Invalid argument
PS вообще много вопросов возникает по питону-мож тему отдельную для него?

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 22 май 2012, 11:37
Nick
Просто:
сначала объявляем пин h.newpin("numberin", hal.HAL_S32, hal.HAL_IN)

а потом:
a = h["numberin"]
Все :)
h = это ассоциативный массив (в терминах питона - dict - dictionary - словарь)
nkp писал(а):Переменная n. Import pult -вызывает ошибку, from pult import n - так тоже.
Вот это я чего-то не понял... зачем ты еще раз модуль импортируешь???
Или ты это все пишешь в отдельном скрипте?
nkp писал(а):PS вообще много вопросов возникает по питону-мож тему отдельную для него?
Как хошь, если это связанно с RS232, то можно и здесь...
Если Афтаев конечно не против. Хотя он сейчас добрый стал :hehehe:.

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 22 май 2012, 11:43
nkp
Nick писал(а): если это связанно с RS232, то можно и здесь...
Питон в емс везде :) -так что вопросы будут касаться разных аспектов.

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 22 май 2012, 11:45
nkp
Nick писал(а): Или ты это все пишешь в отдельном скрипте?
Да -нам надо эту "n" использовать теперь в других скриптах.

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 22 май 2012, 12:31
Nick
Скинь все скрипты. И примерно, что хочешь делать...

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 07 июн 2012, 17:48
Саша7892ХН
Как прописать чтобы из скрипта питон значение выводилось в pyvcp

не пинайте хочу со всем разобраться

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 07 июн 2012, 17:58
nkp
В pyvcp не делал,а вот в glade это можно.Смотри в эту сторону.
ЗЫ (не дублируй вопросы )

Re: В Linux посмотреть передачу по RS232->USB

Добавлено: 08 июн 2012, 15:24
Nick
Дак и в pyvcp можно. Просто делаешь компонент на питоне как обычно, делаешь ему пин
h.newpin("float-out", hal.HAL_FLOAT, hal.HAL_OUT)
и потом
net float-out <= comp.float-out => pyvcp.number