Python 2.7 + telnet nevrací celé znaky

ewrfiweirh

Python 2.7 + telnet nevrací celé znaky
« kdy: 09. 03. 2016, 08:50:49 »
Zdravim osadenstvo. Snazim sa komunikovat s kamerou ktora podporuje telnet. Ako "interface" sa ma pouzit prave python. Kamera standardne reaguje na prikazy s hyperterminalu. Problem je ale python script ktory mi proste nenacita cely vystup s terminalu ale len par znakov a potom ako keby "zamerzne".

Moj kod
Kód: [Vybrat]
import sys
import telnetlib

HOST = "192.168.1.78" #Emulator IP

tn = telnetlib.Telnet(HOST)

print tn.read_eager()
tn.write("admin\r\n") #the user name is admin
tn.write("\r\n") #there is no password - just return - now logged in
print tn.read_eager()

tn.write("\r\n")
print tn.read_very_lazy()
tn.write("\r\n")
tn.write("GI\r\n")          #hey camera tell me more about you
print tn.read_very_lazy() #read output

tn.write("SO1\r\n")#set camera online
print tn.read_eager()

sess_op = tn.read_all()
print sess_op
tn.close()

Vysledok je niekedy taky ako ma byt ale niekedy to cele zomrie hned ako sa prihlasim do systemu. Vedel by niekto nasmerovat kde je poroblem ? Dakujem
« Poslední změna: 09. 03. 2016, 09:48:47 od Petr Krčmář »


Logik

  • *****
  • 1 049
    • Zobrazit profil
    • E-mail
Re:Python 2.7 + telnet nevrací celé znaky
« Odpověď #1 kdy: 09. 03. 2016, 11:04:02 »
Od pohledu bych čekal, že Ti prostě kamera nestačí poslat všechna data.
Vykašlal bych se na telnetlib, posílal bych to normálníma socketama s blokovacím čtením.

David1234

Re:Python 2.7 + telnet nevrací celé znaky
« Odpověď #2 kdy: 09. 03. 2016, 13:52:53 »
Není tam nějaký prompt na který by se dalo vždy čekat a až potom poslat příkaz?