Skip to content

Commit 289893d

Browse files
author
andy
committed
add oem project
1 parent 1201a73 commit 289893d

19 files changed

+1657
-128
lines changed
1.32 MB
Binary file not shown.

oem_projects/bayOmics/Lib/BayOmicsLib.egg-info/PKG-INFO

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Metadata-Version: 2.1
22
Name: BayOmicsLib
3-
Version: 1.4.8
3+
Version: 1.5.4
44
Summary: UNKNOWN
55
Home-page: UNKNOWN
66
License: UNKNOWN

oem_projects/bayOmics/Lib/BayOmicsLib.py

Lines changed: 75 additions & 17 deletions
Large diffs are not rendered by default.

oem_projects/bayOmics/Lib/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,10 @@
44
python setup.py bdist_wheel
55
```
66

7+
## upload
8+
9+
```tex
10+
scp -i C:\Users\22192\.ssh\ot2_ssh_key .\BayOmicsLib-1.4.8-py3-none-any.whl [email protected]:/data
11+
```
12+
713

Binary file not shown.
Binary file not shown.
Binary file not shown.

oem_projects/bayOmics/Lib/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from setuptools import setup
22

33
setup(name='BayOmicsLib',
4-
version='1.4.8',
4+
version='1.5.4',
55
py_modules=['BayOmicsLib'],
66
)

oem_projects/bayOmics/debug_pos.py

Lines changed: 1065 additions & 0 deletions
Large diffs are not rendered by default.

oem_projects/bayOmics/driver.py

Lines changed: 69 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@
77
import serial
88
import serial.tools.list_ports
99
import codecs
10+
from enum import Enum
1011

11-
VERIFY_RESPONDS = True
12-
EXPLAIN_FLAG = True
12+
VERIFY_RESPONDS = False
13+
EXPLAIN_FLAG = False
1314
SET_LED_VIRTUAL = True
1415

1516

17+
class UserMode(Enum):
18+
Debugging = 1
19+
Running = 2
20+
21+
1622
class BasicDriver:
1723
@classmethod
1824
def get_com_list(cls):
@@ -25,6 +31,7 @@ def __init__(self, baud):
2531
self.device = None
2632
self.led_virtual = True
2733
self.simulate = False
34+
self.user_mode = UserMode.Running
2835

2936
def build_connection(self):
3037
res = BasicDriver.get_com_list()
@@ -254,20 +261,20 @@ def home(self, y=True, z=True, r=True):
254261
time.sleep(5)
255262
self.send_to_device("050600000300", "Set R Axis Speed Mode", verify="")
256263
self.judge_pos(60, 'r', "00000000")
264+
if z:
265+
self.set_axis_speed('z')
266+
self.send_to_device("070600000302", "Set Z Axis Relative Position Mode", verify="")
267+
self.send_to_device("07 10 00 01 00 02 04 AC FF FF FF", "move relative", verify="")
268+
time.sleep(0.5)
269+
self.send_to_device("070600000300", "Set Z Axis Speed Mode", verify="")
270+
self.judge_pos(30, 'z', "00000000")
257271
if y:
258272
self.set_axis_speed('y')
259273
self.send_to_device("06 10 00 01 00 02 04 BA 24 FF FF", "Move Relative", verify="061000010002")
260274
self.send_to_device("060600000302", "Set Y Axis Relative Position Mode", verify="")
261275
time.sleep(1.5)
262276
self.send_to_device("060600000300", "Set Y Axis Speed Mode", verify="")
263277
self.judge_pos(30, 'y', "00000000")
264-
if z:
265-
self.set_axis_speed('z')
266-
self.send_to_device("070600000302", "Set Z Axis Relative Position Mode", verify="")
267-
self.send_to_device("07 10 00 01 00 02 04 AC FF FF FF", "move relative", verify="")
268-
time.sleep(1)
269-
self.send_to_device("070600000300", "Set Z Axis Speed Mode", verify="")
270-
self.judge_pos(30, 'z', "00000000")
271278

272279
def init_motors(self):
273280
"""
@@ -305,7 +312,14 @@ def close_lid(self):
305312
"""
306313
self.send_to_device("050600000301", "Set R Axis Speed Mode", verify="") # 位置模式
307314
self.send_to_device("05 10 00 01 00 02 04 F7 D4 FF FF", "close lid", verify="051000010002")
308-
self.judge_pos(60, "r", "F7D4FFFF")
315+
ret = self.judge_pos(60, "r", "F7D4FFFF", judge_method="")
316+
if not ret:
317+
for i in range(3):
318+
judge_m = "Interrupt" if i >= 2 else ""
319+
self.home(y=False, z=False)
320+
self.send_to_device("050600000301", "Set R Axis Speed Mode", verify="") # 位置模式
321+
self.send_to_device("05 10 00 01 00 02 04 F7 D4 FF FF", "close lid", verify="051000010002")
322+
self.judge_pos(60, "r", "F7D4FFFF", judge_method=judge_m)
309323

310324
def dark_incubation(self, dark_time: int):
311325
"""
@@ -427,24 +441,43 @@ def get_axis_position(self, axis: str):
427441
raise ValueError("Can't find Axis")
428442
return (data[6:14].upper())
429443

444+
def read_pressure(self):
445+
"""
446+
读取气压值
447+
"""
448+
data = self.send_to_device("04 04 00 00 00 01", "Read Pressure", verify="")
449+
value = data[6:10]
450+
value = int(value, 16) / 1000
451+
value_mpa = 0.125 * value - 0.124
452+
return value_mpa
453+
430454
def set_pressure(self, pressure, duration):
431455
"""
432456
施加压力过程
433457
:param pressure: 压力值(MPa)
434458
:param duration: 持续时间 (s)
435459
:return:
436460
"""
437-
self.move_to_work_position()
438-
pressure_kpa = pressure * 1000
439-
voltage_mv = int(((pressure_kpa + 123.75) / 124.75) * 1000)
461+
# self.move_to_work_position()
462+
if self.user_mode == UserMode.Debugging:
463+
pressure_kpa = 0
464+
else:
465+
pressure_kpa = pressure * 1000
466+
# voltage_mv = int(((pressure_kpa + 123.75) / 124.75) * 1000) # * 10000
467+
voltage_mv = int(pressure_kpa * 10)
440468
voltage_mv_string = self._format_hex(voltage_mv)
441469
self.send_to_device("03 05 00 41 FF 00", "Pressure Open") # 阀门开启
442470
self.send_to_device(f"0406000A{voltage_mv_string}", f"Set Pressure {pressure} Mpa", verify="") # 设置正压
471+
time.sleep(0.5)
472+
pressure = self.read_pressure()
473+
print(f"SET {(i + 1) * 0.01} GET {pressure}")
474+
# 显示压力值
475+
self.set_led_pressure_value(int(pressure * 1000))
443476
time.sleep(duration)
444477
# 关闭压力
445478
self.set_pressure_off()
446479
# 释放work position
447-
self.release_work_position()
480+
# self.release_work_position()
448481

449482
def move_to_work_position(self, home=False):
450483
"""
@@ -453,15 +486,15 @@ def move_to_work_position(self, home=False):
453486
"""
454487
if home:
455488
self.home()
456-
self.move_y("BA24FFFF")
457-
self.move_z("AC67FFFF")
489+
self.move_y("BAD0FFFF")
490+
self.move_z("8E3EFFFF")
458491

459492
def release_work_position(self):
460493
"""
461494
释放work position, ready home
462495
:return:
463496
"""
464-
# self.move_z("00000000")
497+
self.move_z("00000000")
465498
self.home(r=False)
466499

467500
def init_led(self):
@@ -495,24 +528,28 @@ def init_loop(self):
495528
if __name__ == '__main__':
496529
bd = BasicDriver(19200)
497530
bd.build_connection()
531+
# for i in range(10):
532+
# print(f"Round ---------------------------- {i + 1}")
533+
# bd.set_pressure((i + 1) * 0.01, 10)
498534
bd.init_device()
535+
bd.close_lid()
536+
537+
# bd.init_device()
499538
"""
500539
1. x y z 轴电机测试
501540
"""
502541
# for i in range(10):
503-
# print(f"Round ---------------------------- {i+1}")
542+
# print(f"Round ---------------------------- {i + 1}")
504543
# bd.move_to_work_position()
505-
# bd.set_pressure(0.02, 5)
506-
# bd.home()
507-
508-
"""
509-
2. 保温测试
510-
"""
511-
# bd.heat_incubation([{"temperature": 70, "time": 60}])
512-
# bd.move_z("AC67FFFF")
513-
"""
514-
3. led测试
515-
"""
516-
bd.set_led_virtual_value()
517-
518-
544+
# bd.set_pressure((i + 1) * 0.01, 10)
545+
# bd.home()
546+
547+
# """
548+
# 2. 保温测试
549+
# """
550+
# # bd.heat_incubation([{"temperature": 70, "time": 60}])
551+
# # bd.move_z("AC67FFFF")
552+
# """
553+
# 3. led测试
554+
# """
555+
# bd.set_led_virtual_value()

0 commit comments

Comments
 (0)