Skip to content

Commit ddbd12e

Browse files
author
Nicolas Rabault
authored
Merge pull request Luos-io#93 from Luos-io/tx_it
Tx it pyluos adaptations
2 parents 41f2959 + 0985a0b commit ddbd12e

File tree

6 files changed

+35
-22
lines changed

6 files changed

+35
-22
lines changed

pyluos/containers/container.py

+16-12
Original file line numberDiff line numberDiff line change
@@ -103,18 +103,22 @@ def uuid(self):
103103
def luos_statistics(self):
104104
self._push_value('luos_statistics', "")
105105
time.sleep(0.3)
106-
max_table = [self._luos_statistics["msg_stack"], self._luos_statistics["luos_stack"]]
107-
max_val = max(max_table)
108-
s = self.alias + " statistics :"
109-
s = s + "\n.luos allocated RAM occupation \t= " + repr(max_val)
110-
s = s + "%\n\t.Message stack \t\t= " + repr(self._luos_statistics["msg_stack"])
111-
s = s + "%\n\t.Luos stack \t\t= " + repr(self._luos_statistics["luos_stack"])
112-
s = s + "%\n.Dropped messages number \t= " + repr(self._luos_statistics["msg_drop"])
113-
s = s + "\n.Max luos loop delay \t\t= " + repr(self._luos_statistics["loop_ms"])
114-
s = s + "ms\n.Msg fail ratio \t\t= " + repr(self._luos_statistics["fail_ratio"])
115-
s = s + "%\n.Nak msg max number \t\t= " + repr(self._luos_statistics["nak_max"])
116-
s = s + "\n.Collision msg max number \t= " + repr(self._luos_statistics["collision_max"])
117-
print(s)
106+
try:
107+
max_table = [self._luos_statistics["rx_msg_stack"], self._luos_statistics["luos_stack"], self._luos_statistics["tx_msg_stack"], self._luos_statistics["buffer_occupation"]]
108+
max_val = max(max_table)
109+
s = self.alias + " statistics :"
110+
s = s + "\n.luos allocated RAM occupation \t= " + repr(max_val)
111+
s = s + "%\n\t.RX message stack \t = " + repr(self._luos_statistics["rx_msg_stack"])
112+
s = s + "%\n\t.TX message stack \t = " + repr(self._luos_statistics["tx_msg_stack"])
113+
s = s + "%\n\t.Luos stack \t\t = " + repr(self._luos_statistics["luos_stack"])
114+
s = s + "%\n\t.Buffer occupation \t = " + repr(self._luos_statistics["buffer_occupation"])
115+
s = s + "%\n.Dropped messages number \t= " + repr(self._luos_statistics["msg_drop"])
116+
s = s + "\n.Max luos loop delay \t\t= " + repr(self._luos_statistics["loop_ms"])
117+
s = s + "ms\n.msg max retry number \t\t= " + repr(self._luos_statistics["max_retry"])
118+
s = s + "\n"
119+
print(s)
120+
except:
121+
print(self.alias + " statistics collection failed.\n")
118122

119123
def rename(self, name):
120124
# check if the string start with a number before sending

pyluos/containers/state.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def state(self):
1414

1515
@state.setter
1616
def state(self, new_val):
17-
self._value == new_val
17+
self._value = new_val
1818
self._push_value('io_state', new_val)
1919

2020
def _update(self, new_state):

pyluos/containers/unknown.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ def __init__(self, id, alias, device):
3232
def _update(self, new_state):
3333
Container._update(self, new_state)
3434
if 'io_state' in new_state:
35-
new_state = new_state['io_state']
36-
if new_state != self._state:
37-
self._pub_event('changed', self._state, new_state)
35+
val = new_state['io_state']
36+
if val != self._state:
37+
self._pub_event('changed', self._state, val)
3838

39-
evt = 'pressed' if new_state == True else 'released'
40-
self._pub_event(evt, self._state, new_state)
39+
evt = 'pressed' if val == True else 'released'
40+
self._pub_event(evt, self._state, val)
4141

42-
self._state = new_state
42+
self._state = val
4343
if 'rot_position' in new_state:
4444
self._angular_position = new_state['rot_position']
4545
if 'rot_speed' in new_state:
@@ -95,7 +95,7 @@ def state(self):
9595

9696
@state.setter
9797
def state(self, new_val):
98-
self._state == new_val
98+
self._state = new_val
9999
self._push_value('io_state', new_val)
100100

101101
@property

pyluos/device.py

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# -*- coding: utf-8 -*-
12
import os
23
import sys
34
import json
@@ -160,8 +161,16 @@ def benchmark(self, target_id, data, repetition):
160161
self._write( json.dumps(self._bench_settings).encode() + '\r'.encode() + self._bench_Data)
161162

162163
state = self._poll_once()
164+
startTime = time.time()
165+
retry = 0
163166
while ('benchmark' not in state):
164167
state = self._poll_once()
168+
if (time.time()-startTime > 30):
169+
self._write( json.dumps(self._bench_settings).encode() + '\r'.encode() + self._bench_Data)
170+
retry = retry+1
171+
if (retry == 3):
172+
return (0, 100)
173+
startTime = time.time()
165174

166175
#self._pause = False
167176
return (state['benchmark']['data_rate'], state['benchmark']['fail_rate'])

pyluos/io/serial_io.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
JSONDecodeError = ValueError
2424

2525
class Serial(IOHandler):
26-
poll_frequency = 100
26+
poll_frequency = 200
2727

2828
@classmethod
2929
def available_hosts(cls):

pyluos/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = '1.4.1'
1+
version = '1.4.2'

0 commit comments

Comments
 (0)