Skip to content

Commit cae3b49

Browse files
author
andy
committed
store
1 parent e9b309e commit cae3b49

File tree

104 files changed

+1303
-14477
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+1303
-14477
lines changed

__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
import subprocess
33

4-
VERSION = '1.3.5'
4+
VERSION = '1.4.9'
55

66

77
def get_version():

devices/Eutechnics_4500_driver.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
"""
2+
This driver is for the Eutechnics 4500 thermometer
3+
4+
Written by Carlos Fernandez
5+
"""
6+
import serial
7+
import time
8+
import os
9+
import sys
10+
11+
12+
class Eutechnics(serial.Serial):
13+
def __init__(self, port='/dev/ttyUSB0', baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE,
14+
bytesize=serial.EIGHTBITS, timeout=0.1):
15+
self.error_count = 0
16+
self.max_errors = 100
17+
self.unlimited_errors = False
18+
self.raise_exceptions = True
19+
self.reading_raw = ''
20+
# Most likely port is the only parameter that would change
21+
self._serial = serial.Serial.__init__(self,
22+
port=port,
23+
baudrate=baudrate,
24+
parity=parity,
25+
stopbits=stopbits,
26+
bytesize=8,
27+
timeout=timeout)
28+
29+
"""This setups the themometer in outputing the temperature
30+
This function needs to be called first before retrieving data off the
31+
thermometer"""
32+
33+
def setup(self):
34+
self.rts = True
35+
self.__enter__()
36+
condition = True
37+
while condition:
38+
self._serial.write('\r\n'.encode("utf-8"))
39+
time.sleep(0.5)
40+
self.reading_raw = self.readline()
41+
# print(self.reading_raw)
42+
if self.reading_raw == b'> \r\n':
43+
self._serial.write('T'.encode("utf-8"))
44+
time.sleep(4)
45+
condition = False
46+
# self.reading_raw = self.readline()
47+
# print(self.reading_raw)
48+
49+
"""
50+
Return Readings off the thermometer
51+
"""
52+
53+
def temp_read(self):
54+
self.reset_input_buffer()
55+
self.reset_output_buffer()
56+
try:
57+
condition = True
58+
while condition:
59+
self._serial.write('\r\n'.encode("utf-8"))
60+
time.sleep(0.5)
61+
self.reading_raw = self._serial.readline().strip()
62+
# print(self.reading_raw )
63+
if self.reading_raw == b'> T':
64+
pass
65+
elif len(self.reading_raw.decode().strip()) != 7:
66+
pass
67+
elif self.reading_raw != b'':
68+
# print('Reading Temperature')
69+
condition = False
70+
return self.reading_raw.decode()
71+
except self.raise_exceptions:
72+
raise print('Bad Readings, check the connection')
73+
74+
75+
if __name__ == '__main__':
76+
thermometer = Eutechnics(port='COM14')
77+
thermometer.unlimited_errors = True
78+
thermometer.setup()
79+
while True:
80+
temp_reading = thermometer.temp_read()
81+
print("Temp Reading: ", temp_reading, " C", len(temp_reading))

devices/laser_stj_10_m0.py

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,23 @@
33
"""
44

55
import codecs
6+
import time
7+
68
from drivers.serial_driver import SerialDriver
79

810
MEASURE_CODE = bytes.fromhex("024D45415355524503")
911
LOW_MEASURE_CODE = "GetVolt"
12+
GET_MOUNT = 'GetMount'
13+
COM = 'COM9'
1014

1115

1216
class LaserSensor:
1317
def __init__(self, send=True):
1418
self.serial = SerialDriver()
1519
self.send = send
16-
self.accuracy = "high"
20+
self.accuracy = "low"
1721

18-
def init_device(self, select_default=False):
22+
def init_device(self, select_default=''):
1923
"""
2024
get device
2125
:return:
@@ -28,6 +32,19 @@ def init_device(self, select_default=False):
2832
def close(self):
2933
self.serial.close()
3034

35+
def get_mount(self):
36+
for _i in range(5):
37+
result = self.serial.write_and_get_buffer(GET_MOUNT, delay=3)
38+
if "ADS1115" in str(result):
39+
continue
40+
if "L" in str(result).upper():
41+
return "left"
42+
elif "R" in str(result).upper():
43+
return 'right'
44+
else:
45+
pass
46+
raise ValueError("Failed to find mount")
47+
3148
def read_sensor_high(self):
3249
result = self.serial.write_and_get_buffer(MEASURE_CODE)
3350
data = codecs.encode(result, 'hex')
@@ -51,20 +68,27 @@ def read_sensor_low(self, show_distance=False):
5168
multi_value = {}
5269
result = self.serial.write_and_get_buffer(LOW_MEASURE_CODE)
5370
result = result.decode('utf-8')
54-
print(f"Result: {result}")
5571
for index, item in enumerate(result.split(',')):
72+
if ":" not in item:
73+
continue
5674
_value = float(item.split(':')[1].strip()) / 1000
5775
_value = round(_value, 3)
5876
if show_distance:
59-
_value = round(-2*_value + 35, 3)
77+
_value = round(-2 * _value + 35, 3)
6078
multi_value.update({index: _value})
6179
return multi_value
6280

6381

6482
if __name__ == '__main__':
6583
ls = LaserSensor()
6684
ls.init_device()
67-
# ls.accuracy = "low"
85+
86+
# mount = ls.get_mount()
87+
# print(f"Mount: {mount}")
88+
# while True:
89+
# res = ls.read_sensor_low(show_distance=True)
90+
# print(f"Distance: {res}")
91+
# time.sleep(1)
6892
while True:
69-
ret = ls.read_sensor_low(show_distance=True)
70-
print(ret)
93+
res = ls.read_sensor_low(show_distance=True)
94+
print(res)

drivers/serial_driver.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,20 @@ def __init__(self):
2020
self.com = None
2121
self.receive_buffer = None
2222

23-
def get_device(self, select_default=False):
23+
def get_device(self, select_default=''):
2424
"""
2525
select device
2626
:return:
2727
"""
28-
port_list = SerialDriver.get_com_list()
29-
print("=" * 5 + "PORT LIST" + "=" * 5)
30-
for index, p in enumerate(port_list):
31-
print(f"{index + 1} >>{p.device}")
32-
if select_default:
33-
select = '1'
28+
if select_default != '':
29+
self.device = select_default
3430
else:
31+
port_list = SerialDriver.get_com_list()
32+
print("=" * 5 + "PORT LIST" + "=" * 5)
33+
for index, p in enumerate(port_list):
34+
print(f"{index + 1} >>{p.device}")
3535
select = input("Select Port Number(输入串口号对应的数字):")
36-
self.device = port_list[int(select.strip()) - 1].device
36+
self.device = port_list[int(select.strip()) - 1].device
3737

3838
def init_serial(self, baud):
3939

@@ -59,7 +59,7 @@ def close(self):
5959
self.com.close()
6060
print(f"{self.device} Closed! \n")
6161

62-
def init(self, baud, select_default=False):
62+
def init(self, baud, select_default=''):
6363
"""
6464
main
6565
:return:

0 commit comments

Comments
 (0)