start grbl
This commit is contained in:
@@ -29,7 +29,9 @@ class GRBLController:
|
||||
Y_MIN = 0
|
||||
|
||||
def __init__(self, port='/dev/ttyUSB0', baudrate=115200, timeout=1, send_callback=None, x_max=None, y_max=None):
|
||||
self.lock = threading.Lock()
|
||||
logger.info(f"GRBLController::init begin {port} device port")
|
||||
|
||||
#self.lock = threading.Lock()
|
||||
self.port = port
|
||||
self.baudrate = baudrate
|
||||
self.timeout = timeout
|
||||
@@ -44,9 +46,8 @@ class GRBLController:
|
||||
self._state = self._send_msg
|
||||
|
||||
self.x, self.y = 0, 0
|
||||
self.start_connection()
|
||||
self._wake_up()
|
||||
self._init_machine()
|
||||
|
||||
#self.start_connection()
|
||||
|
||||
def wait_for(self, delay=1.0):
|
||||
threading.Event().wait(delay*1.0)
|
||||
@@ -57,7 +58,7 @@ class GRBLController:
|
||||
def clear_buffer(self):
|
||||
while self.ser.in_waiting >0:
|
||||
msg = self.ser.readline().decode().strip()
|
||||
print(f"Buffer: {msg}")
|
||||
logger.info(f"Buffer: {msg}")
|
||||
self._state(state='serial', msg=msg)
|
||||
|
||||
def start_connection(self):
|
||||
@@ -69,9 +70,14 @@ class GRBLController:
|
||||
self.ser.setDTR(False)
|
||||
self.ser.setRTS(False)
|
||||
self.clear_buffer()
|
||||
|
||||
self._wake_up()
|
||||
self._init_machine()
|
||||
logger.info(f"GRBLController::start_connexion started {self.port}")
|
||||
break
|
||||
except Exception as e:
|
||||
print(f"Erreur de connexion (essai {n}): {e}")
|
||||
logger.error(f"GRBLController::start_connexion (essai {n}): {e}")
|
||||
self._state(state='error', msg=f"{e}")
|
||||
n += 1
|
||||
self.wait_for(1.0)
|
||||
|
||||
@@ -100,12 +106,6 @@ class GRBLController:
|
||||
self._state(state='error', msg=f"Error send {cmd} command: {e}")
|
||||
self.close()
|
||||
self.start_connection()
|
||||
self._wake_up()
|
||||
self._init_machine()
|
||||
'''
|
||||
self.recover()
|
||||
self.reset_grbl()
|
||||
raise'''
|
||||
|
||||
def recover(self):
|
||||
#print("Récupération de GRBL...")
|
||||
|
||||
@@ -228,6 +228,12 @@ class ScannerProcess(Task):
|
||||
self.cam._active_median = False
|
||||
self.cam.set_circular_crop(None)
|
||||
|
||||
self.grbl = grbl.GRBLController(
|
||||
send_callback=self._display,
|
||||
x_max=self.conf.grbl_xmax,
|
||||
y_max=self.conf.grbl_ymax
|
||||
)
|
||||
|
||||
self.stop_event.clear()
|
||||
self.start_services()
|
||||
except Exception as e:
|
||||
@@ -248,6 +254,7 @@ class ScannerProcess(Task):
|
||||
def start_services(self):
|
||||
Thread(target=self._listen_to_redis, daemon=True).start()
|
||||
Thread(target=self._recording, daemon=True).start()
|
||||
Thread(target=self._init_grbl, daemon=True).start()
|
||||
self.cam.start()
|
||||
|
||||
def _send(self, **payload):
|
||||
@@ -288,21 +295,22 @@ class ScannerProcess(Task):
|
||||
except Exception as e:
|
||||
logger.error(f'recorder: {e}')
|
||||
|
||||
|
||||
def _init_grbl(self, feed=1000):
|
||||
self.grbl = grbl.GRBLController(
|
||||
send_callback=self._display,
|
||||
x_max=self.conf.grbl_xmax,
|
||||
y_max=self.conf.grbl_ymax
|
||||
)
|
||||
logger.info(f"==== GRBLController try to start connection!")
|
||||
self.grbl.start_connection()
|
||||
self._send(state='serial', msg=f"Connected {self.grbl.port}")
|
||||
|
||||
self.grbl.go_origin(feed=feed)
|
||||
self.grbl.wait_for(2.0)
|
||||
|
||||
|
||||
def _listen_to_redis(self):
|
||||
try:
|
||||
logger.info(f"==== Scanner {self.group}: listen via redisDB")
|
||||
pubsub = redisDB.pubsub()
|
||||
pubsub.subscribe(self.group)
|
||||
self._init_grbl()
|
||||
#self._init_grbl()
|
||||
self.manager = MultiWellManager(process=self)
|
||||
|
||||
for message in pubsub.listen():
|
||||
|
||||
Reference in New Issue
Block a user