Страница 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 писал(а):Как опишем так и буде работать.
Тогда предлагаю сделать, как писал выше - и работать будет быстрее...
Хотя, с другой стороны... было бы заманчиво прямо передавать название пина... но правда парсить потом замаемся, особенно на стороне платы. И все равно все пины надо заранее определять...

... наверное лучше каждому пину свой 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, то можно и здесь...
Если Афтаев конечно не против. Хотя он сейчас добрый стал

.
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