mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 23:23:52 +01:00
meldungen mit adress und längenangabe
This commit is contained in:
@@ -33,7 +33,6 @@ begrenzt werden!
|
|||||||
import gzip
|
import gzip
|
||||||
import proginit
|
import proginit
|
||||||
import os
|
import os
|
||||||
import pickle
|
|
||||||
import shlex
|
import shlex
|
||||||
import signal
|
import signal
|
||||||
import socket
|
import socket
|
||||||
@@ -515,13 +514,24 @@ class RevPiSlave(Thread):
|
|||||||
fh_proc = open(procimg, "r+b", 0)
|
fh_proc = open(procimg, "r+b", 0)
|
||||||
|
|
||||||
# Erste Meldung erhalten
|
# Erste Meldung erhalten
|
||||||
meldung = self.rpi.recv(4)
|
meldung = self.rpi.recv(12)
|
||||||
|
|
||||||
comtime = 0
|
comtime = 0
|
||||||
while meldung in msgcli:
|
while meldung[:4] in msgcli:
|
||||||
ot = default_timer()
|
ot = default_timer()
|
||||||
|
|
||||||
if meldung == b'PICT':
|
# Meldung zerlegen
|
||||||
|
command = meldung[:4]
|
||||||
|
try:
|
||||||
|
startval = int(meldung[4:-4])
|
||||||
|
except:
|
||||||
|
startval = 0
|
||||||
|
try:
|
||||||
|
lenval = int(meldung[-4:])
|
||||||
|
except:
|
||||||
|
lenval = 0
|
||||||
|
|
||||||
|
if command == b'PICT':
|
||||||
# piCtory Konfiguration senden
|
# piCtory Konfiguration senden
|
||||||
proginit.logger.debug("transfair pictory configuration")
|
proginit.logger.debug("transfair pictory configuration")
|
||||||
fh_pic = open(configrsc, "rb")
|
fh_pic = open(configrsc, "rb")
|
||||||
@@ -536,27 +546,23 @@ class RevPiSlave(Thread):
|
|||||||
# Abschlussmeldung
|
# Abschlussmeldung
|
||||||
self.rpi.send(b'PICOK')
|
self.rpi.send(b'PICOK')
|
||||||
|
|
||||||
if meldung == b'DATA':
|
if command == b'DATA':
|
||||||
proginit.logger.debug("read process image")
|
|
||||||
|
|
||||||
# Processabbild übertragen
|
# Processabbild übertragen
|
||||||
block = 0
|
bcount = 0
|
||||||
fh_proc.seek(0)
|
blength = lenval
|
||||||
while block < 4:
|
fh_proc.seek(startval)
|
||||||
|
while bcount < blength:
|
||||||
self.rpi.send(fh_proc.read(1024))
|
self.rpi.send(fh_proc.read(1024))
|
||||||
block += 1
|
bcount += 1024
|
||||||
|
|
||||||
if meldung == b'SEND':
|
|
||||||
proginit.logger.debug("write to process image")
|
|
||||||
|
|
||||||
|
if command == b'SEND':
|
||||||
# Ausgänge empfangen
|
# Ausgänge empfangen
|
||||||
block = self.rpi.recv(1024)
|
block = self.rpi.recv(lenval)
|
||||||
test = pickle.loads(block)
|
fh_proc.seek(startval)
|
||||||
fh_proc.seek(test[0])
|
fh_proc.write(block)
|
||||||
fh_proc.write(test[1])
|
|
||||||
|
|
||||||
# Nächste Meldung erhalten
|
# Nächste Meldung erhalten
|
||||||
meldung = self.rpi.recv(4)
|
meldung = self.rpi.recv(12)
|
||||||
|
|
||||||
# Verarbeitungszeit prüfen
|
# Verarbeitungszeit prüfen
|
||||||
comtime = default_timer() - ot
|
comtime = default_timer() - ot
|
||||||
|
|||||||
Reference in New Issue
Block a user