Python + Serial Port

В разделе рассматриваются вопросы информационного обмена в робототехнике.
Аппаратный уровень, протоколы.

Python + Serial Port

Сообщение Vooon » 01 июл 2007, 04:49

начал статью в вике :)

http://www.roboforum.ru/mediawiki/index.php/Python_%D0%B8_Com_Port

обсуждаем здесь :)
Последний раз редактировалось Vooon 08 июл 2007, 01:48, всего редактировалось 1 раз.
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Сергей » 01 июл 2007, 15:38

[off]Зачет)[/off]
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Сообщение Vooon » 02 июл 2007, 15:48

в общем пока у меня не получилось написать гуй...
но сейчас разбираюсь на примере gajim'a...

вот старый код (если кому интересно):
sersetup.ry
Код: Выделить всё
#!/usr/bin/env python    
# -*- coding: utf-8    -*-
# -*- autor: vooon     -*-
# -*- date: 2007/06/30 -*-

import pygtk
pygtk.require('2.0')
import gtk, guidef, serdef

class serialSetup:
   """реализует графическую оболочку"""
   
   def portCallback(self, widget, data=None):
       print "1# self.port = %d" % self.port
       self.port = data
       print "2# self.port = %d" % self.port
   
   def baudCallback(self, widget, data=None):
       print "1# self.baud = %d" % self.baud
       self.baud = data
       print "2# self.baud = %d" % self.baud

   def okButton(self, widget, data=None):
       self.ok = False
   
   def __init__(self):
       """init"""
       self.ok = True

       self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
       self.window.connect("destroy", lambda w: gtk.main_quit())

       self.window.set_title("Terminal::Port_Option")
       self.window.set_border_width(0)

       box1 = gtk.VBox(False, 3)
       box2 = gtk.HBox(True, 3)

       #>>>--- Ok/Cancel --->>>
       button1 = gtk.Button("Ok")
       button1.connect('clicked', lambda w, d=None: self.window.destroy())
       button2 = gtk.Button("Cancel")
       button2.connect('clicked', lambda w, d=None: gtk.main_quit())

       box2.pack_start(button1, True, True, 0) # Ok
       box2.pack_start(button2, True, True, 0) # Cancel
       button1.show()
       button2.show()
       box2.show()
       box1.pack_end(box2, False, False, 0)
       #<<<--- Ok/Cancel ---<<<

       frame1 = gtk.Frame("Basics")
       box1.pack_start(frame1, False, False, 0)        

       table1 = gtk.Table(2, 2, homogeneous = True)

       #>>>--- Port list --->>>
       label1 = gtk.Label("Port")
       table1.attach(label1, 0, 1, 0, 1)
       label1.show()
       
       opt1 = gtk.OptionMenu()
       menu1 = gtk.Menu()
       for (d,s) in serdef.availPorts():
           item1 = guidef.make_menu_item(s, self.portCallback, d)
           menu1.append(item1)
       opt1.set_menu(menu1)
       menu1.activate_item
       table1.attach(opt1, 1, 2, 0, 1)
       opt1.show()
       self.port = serdef.availPorts()[0][0]
       #<<<--- Port list ---<<<

       #>>>--- Baud rate list --->>>
       label1 = gtk.Label("Baud")
       table1.attach(label1, 0, 1, 1, 2)
       label1.show()

       opt1 = gtk.OptionMenu()
       menu1 = gtk.Menu()
       for b in serdef.availBauds():
           item1 = guidef.make_menu_item("%d" % b, self.baudCallback, b)
           menu1.append(item1)
       opt1.set_menu(menu1)
       table1.attach(opt1, 1, 2, 1, 2)
       opt1.show()
       self.baud = serdef.availBauds()[0]
       #<<<--- Baud rate list ---<<<

       frame1.add(table1)
       frame1.show()

       self.window.add(box1)
       self.window.show_all()
               
   def main(self):
       gtk.main()

if __name__ == "__main__":
   setup = serialSetup()
   setup.main()
Вложения
Terminal-Port_Option.png
весь этот код превращается в такое окошко...
Terminal-Port_Option.png (9.27 КиБ) Просмотров: 5496
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Виталий » 02 июл 2007, 16:39

Скукота...
С++ + Qt =)
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Сообщение Vooon » 02 июл 2007, 20:48

Виталий писал(а):С++ + Qt =)

я тоже подумываю о Qt
(прост че было в дефолте то и стал пробовать :))
а вот на приплюснутого не пойду - мне и скорости питона хватает
(да и думаю попробовать руби, в питоне уже наткнулся на "подарочек" переводилка из GLADE формата в 3,14 побилась
и у меня вылетает с кучей ошибок :(

пс библу комовскую уже и под рубин нашел, но она на си
и не совсем полностью одинаково работает на разных платформах
(питоновская чистая, и rts'ом можно рулить и в винде)
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Виталий » 02 июл 2007, 23:32

а вот на приплюснутого не пойду - мне и скорости питона хватает


Это уж как говориться дело вкуса...
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Сообщение Vooon » 03 июл 2007, 03:39

Виталий писал(а):С++ + Qt

кстати на сколько помню Qt идет как надстройка над  приплюснутым
что используете для разработки?
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Виталий » 03 июл 2007, 10:23

Visual Studio =)
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Сообщение Vooon » 03 июл 2007, 19:16

Виталий писал(а):Visual Studio =)

мдя, мне он нафиг неупал :)
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Сообщение Виталий » 03 июл 2007, 20:33

Да вам линукс нафиг не упал на самом деле =)
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Сообщение Vooon » 03 июл 2007, 22:03

ага мне и компутер нафиг ненужен  :lol:  :)
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков


Вернуться в Коммуникации

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5