Odeslani dat pres tlacitko na seriovku – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odeslani dat pres tlacitko na seriovku – Python – Fórum – Programujte.comOdeslani dat pres tlacitko na seriovku – Python – Fórum – Programujte.com

 

Jirka
~ Anonymní uživatel
305 příspěvků
9. 10. 2017   #1
-
0
-

Ahoj. Chtěl bych se zeptat, využívám wx a jednoduchou grafiku. Mám dvě tlačítka a někončenou smyčku.

A chtěl bych, když kliknu na tlačítko, tak aby se mi odeslal data po sériovce pryč. Ale problém je ten, že data odejdou, ale program se mi kousne. Ale mě se nedaří tento problém odstranit. Tak třeba mi někdo poradí.

Program nedělá nic jiného, než že vytvoří okno, kde jsou dvě tlačítka. V nekonečné smyčce se čtou data ze síriovky, a po stisku tlačítka chci odeslat data pryč a pokračovat dál. Díky moc

#!python
# -*- coding: utf-8 -*-

from visual import *
from visual.controls import *
from visual.graph import *
import wx
import serial
import string
import math
import sys
from time import time
import numpy as np
import config


# Navaz spojeni, jinak nahlas chybu
try:
   ser = serial.Serial(port='COM10',baudrate=115200, parity=serial.PARITY_NONE, stopbits=1, timeout=None)
   ser.write("AHOJ")
except:
   print "ERROR"

#tlacitko pro odeslani initu
def sendInit(evt):
   try:
      ser.write("NEEEE")
   except:
      print "navaz spojeni blbe"
   print "odeslano"

#tlacitko pro opetovne navazani
def connect(evt):
   try:
      ser = serial.Serial(port='COM10',baudrate=115200, parity=serial.PARITY_NONE, stopbits=1, timeout=None)
      ser.write("Stisknuto")
   except:
      print "HOUSTNE mame problem"
   print "odeslano"

#vytvoreni panelu s tlacitky
w = window(width=480, height=320, menus=False, title='Controls', x = 10, y = 650,style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
p = w.panel
#definice tlacitek
#   Init tlacitko
Init = wx.Button(p, label='Send Init', pos=(10,10))
Init.Bind(wx.EVT_BUTTON, sendInit)
#   Reconnect tlacitko
ReConnect = wx.Button(p, label='Re-connect', pos=(10,40))
ReConnect.Bind(wx.EVT_BUTTON, connect)

#nekonecnik
while 1:
   try:
      s=ser.read(6)
      ss=np.fromstring(s, dtype=np.int8, count=6)
      A1=ss[0]
      A2=ss[1]
      A3=ss[2]
      A4=ss[3]
      A5=ss[4]
      A6=ss[5]
   except:
      print "data nechodi"

   print A1
   print A2
   print A3
   print A4
   print A5
   print A6
   
   rate(20)
ser.close
Nahlásit jako SPAM
IP: 80.251.250.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý