forked from CIDARLAB/syringe_pumps
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgradient_demo.py
More file actions
121 lines (87 loc) · 3.8 KB
/
Copy pathgradient_demo.py
File metadata and controls
121 lines (87 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import serial
import logging
import pump_code_pack
import time
def gradient(port, address_1, address_2, address_3, total_flow_rate, total_flow_rate_units):
##### set up serial connection and define pumps #####
# set up serial connection:
sc_com4 = pump_code_pack.Serial_connection(port)
# # define first pump
pump_2000_1 = pump_code_pack.Pump2000(sc_com4,address_1, name='PHD2000_1')
# # define second pump
pump_2000_2 = pump_code_pack.Pump2000(sc_com4,address_2, name='PHD2000_2')
# # define third pump
pump_2000_3 = pump_code_pack.Pump2000(sc_com4,address_3, name='PHD2000_3')
sleep_time = 1
rounds_per_gradient = 20
min_flow_percent = float(0.25)
percent_1 = float(0.333)
percent_2 = float(0.333)
percent_3 = float(0.333)
# percent_1 = float(percent_1)
# percent_2 = float(percent_2)
# percent_3 = float(percent_3)
diff = (2*(min_flow_percent) - percent_1) /rounds_per_gradient
total_flow_rate = float(total_flow_rate)
total_percents = percent_1 + percent_2 + percent_3
infuse_rate_1 = total_flow_rate*percent_1/total_percents
pump_2000_1.set_infuse_rate(infuse_rate_1, total_flow_rate_units)
infuse_rate_2 = total_flow_rate*percent_2/total_percents
pump_2000_2.set_infuse_rate(infuse_rate_2, total_flow_rate_units)
infuse_rate_3 = total_flow_rate*percent_3/total_percents
pump_2000_3.set_infuse_rate(infuse_rate_3, total_flow_rate_units)
# run pump to infuse
pump_2000_1.set_irun()
pump_2000_2.set_irun()
pump_2000_3.set_irun()
time.sleep(sleep_time)
for x in range(rounds_per_gradient):
print(x)
percent_1 = percent_1 + diff
percent_2 = percent_2 - (diff/2)
percent_3 = percent_3 - (diff/2)
total_percents = percent_1 + percent_2 + percent_3
infuse_rate_2 = total_flow_rate*percent_2/total_percents
pump_2000_2.set_infuse_rate(infuse_rate_2, total_flow_rate_units)
infuse_rate_3 = total_flow_rate*percent_3/total_percents
pump_2000_3.set_infuse_rate(infuse_rate_3, total_flow_rate_units)
infuse_rate_1 = total_flow_rate*percent_1/total_percents
pump_2000_1.set_infuse_rate(infuse_rate_1, total_flow_rate_units)
time.sleep(sleep_time)
print('DONE WITH FIRST LOOP ')
for x in range(rounds_per_gradient):
print(x)
percent_1 = percent_1 - (diff)
percent_2 = percent_2 + (diff)
total_percents = percent_1 + percent_2 + percent_3
infuse_rate_1 = total_flow_rate*percent_1/total_percents
pump_2000_1.set_infuse_rate(infuse_rate_1, total_flow_rate_units)
infuse_rate_2 = total_flow_rate*percent_2/total_percents
pump_2000_2.set_infuse_rate(infuse_rate_2, total_flow_rate_units)
time.sleep(sleep_time)
print('DONE WITH SECOND LOOP ')
for x in range(rounds_per_gradient):
print(x)
percent_2 = percent_2 - diff
percent_3 = percent_3 + diff
total_percents = percent_1 + percent_2 + percent_3
infuse_rate_2 = total_flow_rate*percent_2/total_percents
pump_2000_2.set_infuse_rate(infuse_rate_2, total_flow_rate_units)
infuse_rate_3 = total_flow_rate*percent_3/total_percents
pump_2000_3.set_infuse_rate(infuse_rate_3, total_flow_rate_units)
time.sleep(sleep_time)
print('DONE WITH THIRD LOOP ')
for x in range(rounds_per_gradient):
print(x)
percent_1 = percent_1 + (diff/2)
percent_2 = percent_2 + (diff/2)
percent_3 = percent_3 - (diff)
total_percents = percent_1 + percent_2 + percent_3
infuse_rate_3 = total_flow_rate*percent_3/total_percents
pump_2000_3.set_infuse_rate(infuse_rate_3, total_flow_rate_units)
infuse_rate_1 = total_flow_rate*percent_1/total_percents
pump_2000_1.set_infuse_rate(infuse_rate_1, total_flow_rate_units)
infuse_rate_2 = total_flow_rate*percent_2/total_percents
pump_2000_2.set_infuse_rate(infuse_rate_2, total_flow_rate_units)
time.sleep(sleep_time)
print('DONE WITH FOURTH LOOP ')