1
1
import logging
2
2
import os
3
- import time
4
- import socket
3
+ import re
5
4
import serial
5
+ import socket
6
+ import time
6
7
7
- from .database import Database
8
8
from .becker_helper import finalize_code
9
9
from .becker_helper import generate_code
10
10
from .becker_helper import BeckerConnectionError
11
+ from .database import Database
11
12
12
13
COMMAND_UP = 0x20
13
14
COMMAND_UP2 = 0x21 # move up
@@ -102,6 +103,9 @@ async def run_codes(self, channel, unit, cmd, test):
102
103
_LOGGER .error ("The unit %s is not configured" % (unit [0 ]))
103
104
return
104
105
106
+ # move up/down dependent on given time
107
+ mt = re .match (r"(DOWN|UP):(\d+)" , cmd )
108
+
105
109
codes = []
106
110
if cmd == "UP" :
107
111
codes .append (generate_code (channel , unit , COMMAND_UP ))
@@ -114,12 +118,8 @@ async def run_codes(self, channel, unit, cmd, test):
114
118
elif cmd == "DOWN2" :
115
119
codes .append (generate_code (channel , unit , COMMAND_DOWN5 ))
116
120
elif cmd == "TRAIN" :
117
- codes .append (generate_code (channel , unit , COMMAND_PAIR ))
118
- unit [1 ] += 1
119
121
codes .append (generate_code (channel , unit , COMMAND_PAIR2 ))
120
122
unit [1 ] += 1
121
- codes .append (generate_code (channel , unit , COMMAND_PAIR ))
122
- unit [1 ] += 1
123
123
codes .append (generate_code (channel , unit , COMMAND_PAIR2 ))
124
124
# set unit as configured
125
125
unit [2 ] = 1
@@ -134,24 +134,38 @@ async def run_codes(self, channel, unit, cmd, test):
134
134
unit [1 ] += 1
135
135
codes .append (generate_code (channel , unit , COMMAND_CLEARPOS4 ))
136
136
elif cmd == "REMOVE" :
137
- codes .append (generate_code (channel , unit , COMMAND_PAIR ))
138
- unit [1 ] += 1
139
137
codes .append (generate_code (channel , unit , COMMAND_PAIR2 ))
140
138
unit [1 ] += 1
141
- codes .append (generate_code (channel , unit , COMMAND_PAIR ))
142
- unit [1 ] += 1
143
139
codes .append (generate_code (channel , unit , COMMAND_PAIR2 ))
144
140
unit [1 ] += 1
145
141
codes .append (generate_code (channel , unit , COMMAND_PAIR3 ))
146
142
unit [1 ] += 1
147
143
codes .append (generate_code (channel , unit , COMMAND_PAIR4 ))
144
+ unit [2 ] = 0
148
145
149
- unit [1 ] += 1
146
+ if mt :
147
+ _LOGGER .INFO ("Moving %s for %s seconds..." % (mt .group (1 ), mt .group (2 )))
148
+ # move down/up for a specific time
149
+ if mt .group (1 ) == "UP" :
150
+ code = generate_code (channel , unit , COMMAND_UP )
151
+ elif mt .group (1 ) == "DOWN" :
152
+ code = generate_code (channel , unit , COMMAND_DOWN )
150
153
151
- # append the release button code
152
- codes .append (generate_code (channel , unit , 0 ))
154
+ unit [1 ] += 1
155
+ await self .write ([code ])
156
+
157
+ time .sleep (int (mt .group (2 )))
153
158
154
- unit [1 ] += 1
159
+ # stop moving
160
+ code = generate_code (channel , unit , COMMAND_HALT )
161
+ unit [1 ] += 1
162
+ await self .write ([code ])
163
+ else :
164
+ unit [1 ] += 1
165
+
166
+ # append the release button code
167
+ #codes.append(generate_code(channel, unit, 0))
168
+ #unit[1] += 1
155
169
156
170
await self .write (codes )
157
171
self .db .set_unit (unit , test )
0 commit comments