Reduce serial reading to once a second, but then read all available lines
This commit is contained in:
parent
10bbb68dc0
commit
5b9e8a3754
@ -24,6 +24,8 @@ serial_device=os.environ['SERIAL_DEVICE']
|
|||||||
try:
|
try:
|
||||||
if (os.environ['PY_LOGGING']):
|
if (os.environ['PY_LOGGING']):
|
||||||
customLevel = os.environ['PY_LOGGING'].upper()
|
customLevel = os.environ['PY_LOGGING'].upper()
|
||||||
|
else:
|
||||||
|
customLevel = 'ERROR'
|
||||||
except (KeyError):
|
except (KeyError):
|
||||||
customLevel = 'WARNING'
|
customLevel = 'WARNING'
|
||||||
|
|
||||||
@ -77,6 +79,7 @@ def on_message(client, userdata, msg):
|
|||||||
def on_connect(client, obj, flags, reason_code, properties):
|
def on_connect(client, obj, flags, reason_code, properties):
|
||||||
client.subscribe(mqtt_topic + "cmd/led")
|
client.subscribe(mqtt_topic + "cmd/led")
|
||||||
client.subscribe(mqtt_topic + "cmd/rpm")
|
client.subscribe(mqtt_topic + "cmd/rpm")
|
||||||
|
client.publish(mqtt_topic + "logging", payload=customLevel)
|
||||||
client.publish(mqtt_topic + "online", payload="true", qos=1, retain=True)
|
client.publish(mqtt_topic + "online", payload="true", qos=1, retain=True)
|
||||||
logging.debug("Connected: " + str(reason_code))
|
logging.debug("Connected: " + str(reason_code))
|
||||||
|
|
||||||
@ -122,6 +125,14 @@ try:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
line = ser.readline() # read a '\n' terminated line
|
line = ser.readline() # read a '\n' terminated line
|
||||||
|
logging.debug("Read one line: " + str(line) )
|
||||||
|
if (ser.in_waiting > 0):
|
||||||
|
for i in range(10):
|
||||||
|
if (ser.in_waiting > 0):
|
||||||
|
line = ser.readline() # read a '\n' terminated line
|
||||||
|
logging.debug("" + str(i+1) + ". line: " + str(line) )
|
||||||
|
else:
|
||||||
|
logging.debug("No additional lines")
|
||||||
except (serial.SerialException):
|
except (serial.SerialException):
|
||||||
SerialCommunicationFailureCounter = SerialCommunicationFailureCounter + 1
|
SerialCommunicationFailureCounter = SerialCommunicationFailureCounter + 1
|
||||||
client.publish(mqtt_topic + "serialcom/failure", str(SerialCommunicationFailureCounter))
|
client.publish(mqtt_topic + "serialcom/failure", str(SerialCommunicationFailureCounter))
|
||||||
@ -194,9 +205,9 @@ try:
|
|||||||
if (parseError == False):
|
if (parseError == False):
|
||||||
client.publish(mqtt_topic + "debug", None)
|
client.publish(mqtt_topic + "debug", None)
|
||||||
else:
|
else:
|
||||||
client.publish(mqtt_topic + "debug", line) # line was invalid and could not be parsed
|
client.publish(mqtt_topic + "debug", "invalid:" + str(l)) # line was invalid and could not be parsed
|
||||||
else:
|
# Always wait between two cycles
|
||||||
time.sleep(0.5)
|
time.sleep(0.9)
|
||||||
|
|
||||||
except (KeyboardInterrupt, SystemExit):
|
except (KeyboardInterrupt, SystemExit):
|
||||||
logging.error("User aborted service ...")
|
logging.error("User aborted service ...")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user