smartpi 0.1.21__py3-none-any.whl → 0.1.23__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
smartpi/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  __all__ = ["base_driver"]
2
2
 
3
- __version__ = "0.1.21"
3
+ __version__ = "0.1.23"
4
4
 
smartpi/base_driver.py CHANGED
@@ -487,7 +487,7 @@ def read_peripheral() -> Optional[bytes]:
487
487
  return None
488
488
 
489
489
  """单次操作外设"""
490
- def single_operate_sensor(op_struct: bytes) -> Optional[bytes]:
490
+ def single_operate_sensor(op_struct: bytes, block_time: float) -> Optional[bytes]:
491
491
  serial_lock.acquire() #获取线程锁
492
492
  fcntl.flock(ser.fileno(), fcntl.LOCK_EX) # 进程锁,阻塞其他进程
493
493
  write_data(SINGLE_OP_H, SINGLE_OP_L, op_struct)
@@ -503,7 +503,7 @@ def single_operate_sensor(op_struct: bytes) -> Optional[bytes]:
503
503
  # print("\n")
504
504
  return display_data
505
505
  else:
506
- if time.time() - start_time > 2:
506
+ if time.time() - start_time > 2+block_time:
507
507
  print("读取超时")
508
508
  buffer.clear()
509
509
  serial_lock.release() #释放线程锁
@@ -514,7 +514,7 @@ def single_operate_sensor(op_struct: bytes) -> Optional[bytes]:
514
514
  def P_port_init(port:bytes) -> Optional[bytes]:
515
515
  servo_str=[0xA0, 0x0F, 0x00, 0xBE]
516
516
  servo_str[0]=0XA0+port
517
- response = single_operate_sensor(servo_str)
517
+ response = single_operate_sensor(servo_str,0)
518
518
  if response:
519
519
  return 0
520
520
  else:
@@ -641,7 +641,6 @@ def smartpi_init():
641
641
  motor.reset_motor_encoder(5)
642
642
  motor.reset_motor_encoder(6)
643
643
  time.sleep(0.1)
644
- gui.init()
645
644
  serial_lock.release()
646
645
  time.sleep(0.1)
647
646
 
smartpi/color_sensor.py CHANGED
@@ -8,7 +8,7 @@ def get_value(port:bytes) -> Optional[bytes]:
8
8
  color_str=[0xA0, 0x04, 0x00, 0xBE]
9
9
  color_str[0]=0XA0+port
10
10
  color_str[2]=1
11
- response = base_driver.single_operate_sensor(color_str)
11
+ response = base_driver.single_operate_sensor(color_str,0)
12
12
  if response == None:
13
13
  return None
14
14
  else:
smartpi/gui.py CHANGED
@@ -1,61 +1,87 @@
1
1
  import socket
2
2
  import json
3
- import sys
3
+ import time
4
4
 
5
- # 连接对象(模块级单例)
6
- _connection = None
5
+ class _gui_client:
6
+ def __init__(self, host="127.0.0.1", port=65167):
7
+ self.sock = socket.create_connection((host, port))
8
+ self.clear()
7
9
 
8
- def init(host="127.0.0.1", port=65167):
9
- """初始化GUI连接"""
10
- global _connection
11
- if _connection is None:
12
- _connection = socket.create_connection((host, port))
13
- _send({"type": "clear"})
10
+ def _send(self, cmd):
11
+ self.sock.sendall((json.dumps(cmd) + "\n").encode())
12
+ time.sleep(0.1)
14
13
 
15
- def _send(cmd):
16
- """发送命令到服务器"""
17
- if _connection is None and "pytest" not in sys.modules: # 允许测试环境不初始化
18
- raise ConnectionError("GUI not initialized. Call gui.init() first.")
19
- if _connection:
20
- _connection.sendall((json.dumps(cmd) + "\n").encode())
14
+ def show_text(self, x, y, text, color="black", size=16):
15
+ self._send({"type": "text", "x": x, "y": y, "text": text, "color": color, "size": size})
21
16
 
17
+ def print(self, text):
18
+ self._send({"type": "print", "text": text})
19
+
20
+ def println(self, text):
21
+ self._send({"type": "println", "text": text})
22
+
23
+ def show_image(self, x, y, path, width, height):
24
+ self._send({"type": "image", "x": x, "y": y, "path": path, "width": width, "height": height})
25
+
26
+ def draw_line(self, x1, y1, x2, y2, color="black", width=1):
27
+ self._send({"type": "line", "x1": x1, "y1": y1, "x2": x2, "y2": y2, "color": color, "width": width})
28
+
29
+ def fill_rect(self, x, y, w, h, color="black"):
30
+ self._send({"type": "fill_rect", "x": x, "y": y, "w": w, "h": h, "color": color})
31
+
32
+ def draw_rect(self, x, y, w, h, width, color="black"):
33
+ self._send({"type": "draw_rect", "x": x, "y": y, "w": w, "h": h, "width": width, "color": color})
34
+
35
+ def fill_circle(self, cx, cy, r, color="black"):
36
+ self._send({"type": "fill_circle", "cx": cx, "cy": cy, "r": r, "color": color})
37
+
38
+ def draw_circle(self, cx, cy, r, width, color="black"):
39
+ self._send({"type": "draw_circle", "cx": cx, "cy": cy, "r": r, "width": width, "color": color})
40
+
41
+ def clear(self):
42
+ self._send({"type": "clear"})
43
+
44
+ def finish(self):
45
+ self.sock.close()
46
+
47
+ # 创建全局实例
48
+ _client_instance = _gui_client()
49
+
50
+ # 将类方法提升为模块级别的函数
22
51
  def show_text(x, y, text, color="black", size=16):
23
- _send({"type": "text", "x": x, "y": y, "text": text, "color": color, "size": size})
52
+ _client_instance.show_text(x, y, text, color, size)
24
53
 
25
- def print(text): # 使用print作为函数名,因为调用时使用gui.print()
26
- _send({"type": "print", "text": text})
54
+ def print(text):
55
+ _client_instance.print(text)
27
56
 
28
57
  def println(text):
29
- _send({"type": "println", "text": text})
58
+ _client_instance.println(text)
30
59
 
31
60
  def show_image(x, y, path, width, height):
32
- _send({"type": "image", "x": x, "y": y, "path": path, "width": width, "height": height})
61
+ _client_instance.show_image(x, y, path, width, height)
33
62
 
34
63
  def draw_line(x1, y1, x2, y2, color="black", width=1):
35
- _send({"type": "line", "x1": x1, "y1": y1, "x2": x2, "y2": y2, "color": color, "width": width})
64
+ _client_instance.draw_line(x1, y1, x2, y2, color, width)
36
65
 
37
66
  def fill_rect(x, y, w, h, color="black"):
38
- _send({"type": "fill_rect", "x": x, "y": y, "w": w, "h": h, "color": color})
67
+ _client_instance.fill_rect(x, y, w, h, color)
39
68
 
40
69
  def draw_rect(x, y, w, h, width, color="black"):
41
- _send({"type": "draw_rect", "x": x, "y": y, "w": w, "h": h, "width": width, "color": color})
70
+ _client_instance.draw_rect(x, y, w, h, width, color)
42
71
 
43
72
  def fill_circle(cx, cy, r, color="black"):
44
- _send({"type": "fill_circle", "cx": cx, "cy": cy, "r": r, "color": color})
73
+ _client_instance.fill_circle(cx, cy, r, color)
45
74
 
46
75
  def draw_circle(cx, cy, r, width, color="black"):
47
- _send({"type": "draw_circle", "cx": cx, "cy": cy, "r": r, "width": width, "color": color})
76
+ _client_instance.draw_circle(cx, cy, r, width, color)
48
77
 
49
78
  def clear():
50
- _send({"type": "clear"})
51
-
52
- def close():
53
- """关闭GUI连接"""
54
- global _connection
55
- if _connection:
56
- _connection.close()
57
- _connection = None
58
-
59
- # 注册程序退出时自动关闭连接
60
- import atexit
61
- atexit.register(close)
79
+ _client_instance.clear()
80
+
81
+ def finish():
82
+ _client_instance.finish()
83
+
84
+ # 可选:如果希望仍然可以使用类创建新实例
85
+ def create_client(host="127.0.0.1", port=65167):
86
+ return _gui_client(host, port)
87
+
smartpi/humidity.py CHANGED
@@ -9,7 +9,7 @@ def get_value(port:bytes) -> Optional[bytes]:
9
9
  humi_str=[0XA0, 0X0C, 0X01, 0X71, 0X00, 0XBE]
10
10
  humi_str[0]=0XA0+port
11
11
  humi_str[4]=0X01
12
- response = base_driver.single_operate_sensor(humi_str)
12
+ response = base_driver.single_operate_sensor(humi_str,0)
13
13
  if response == None:
14
14
  return None
15
15
  else:
smartpi/led.py CHANGED
@@ -9,7 +9,7 @@ def set_color(port:bytes,command:bytes) -> Optional[bytes]:
9
9
  color_lamp_str=[0xA0, 0x05, 0x00, 0xBE]
10
10
  color_lamp_str[0]=0XA0+port
11
11
  color_lamp_str[2]=command
12
- response = base_driver.single_operate_sensor(color_lamp_str)
12
+ response = base_driver.single_operate_sensor(color_lamp_str,0)
13
13
  if response == None:
14
14
  return None
15
15
  else:
smartpi/light_sensor.py CHANGED
@@ -8,7 +8,7 @@ def get_value(port:bytes) -> Optional[bytes]:
8
8
  light_str=[0xA0, 0x02, 0x00, 0xBE]
9
9
  light_str[0]=0XA0+port
10
10
  light_str[2]=0x01
11
- response = base_driver.single_operate_sensor(light_str)
11
+ response = base_driver.single_operate_sensor(light_str,0)
12
12
  if response == None:
13
13
  return None
14
14
  else:
@@ -23,7 +23,7 @@ def set_threshold(port:bytes,threshold:int) -> Optional[bytes]:
23
23
  light_str[2]=0x04
24
24
  light_str[4]=threshold//256
25
25
  light_str[5]=threshold%256
26
- response = base_driver.single_operate_sensor(light_str)
26
+ response = base_driver.single_operate_sensor(light_str,0)
27
27
  if response == None:
28
28
  return None
29
29
  else:
@@ -34,7 +34,7 @@ def get_threshold(port:bytes) -> Optional[bytes]:
34
34
  light_str=[0xA0, 0x02, 0x00, 0xBE]
35
35
  light_str[0]=0XA0+port
36
36
  light_str[2]=0x05
37
- response = base_driver.single_operate_sensor(light_str)
37
+ response = base_driver.single_operate_sensor(light_str,0)
38
38
  if response == None:
39
39
  return None
40
40
  else:
@@ -47,7 +47,7 @@ def get_bool_data(port:bytes) -> Optional[bytes]:
47
47
  light_str=[0xA0, 0x02, 0x00, 0xBE]
48
48
  light_str[0]=0XA0+port
49
49
  light_str[2]=0x06
50
- response = base_driver.single_operate_sensor(light_str)
50
+ response = base_driver.single_operate_sensor(light_str,0)
51
51
  if response == None:
52
52
  return None
53
53
  else:
smartpi/motor.py CHANGED
@@ -1,14 +1,15 @@
1
1
  # coding=utf-8
2
2
  import time
3
+ import struct
3
4
  from typing import List, Optional
4
5
  from smartpi import base_driver
5
6
 
6
-
7
+
7
8
  #��������ȡ port:����M�˿ڣ�
8
9
  def get_motor_encoder(port:bytes) -> Optional[bytes]:
9
10
  motor_str=[0xA0, 0x01, 0x01, 0xBE]
10
11
  motor_str[0]=0XA0+port
11
- response = base_driver.single_operate_sensor(motor_str)
12
+ response = base_driver.single_operate_sensor(motor_str,0)
12
13
  if response == None:
13
14
  return None
14
15
  else:
@@ -20,7 +21,7 @@ def get_motor_encoder(port:bytes) -> Optional[bytes]:
20
21
  def reset_motor_encoder(port:bytes) -> Optional[bytes]:
21
22
  motor_str=[0xA0, 0x01, 0x03, 0xBE]
22
23
  motor_str[0]=0XA0+port
23
- response = base_driver.single_operate_sensor(motor_str)
24
+ response = base_driver.single_operate_sensor(motor_str,0)
24
25
  if response == None:
25
26
  return None
26
27
  else:
@@ -31,7 +32,7 @@ def set_motor_direction(port:bytes,direc:bytes) -> Optional[bytes]:
31
32
  motor_str=[0xA0, 0x01, 0x06, 0x71, 0x00, 0xBE]
32
33
  motor_str[0]=0XA0+port
33
34
  motor_str[4]=direc
34
- response = base_driver.single_operate_sensor(motor_str)
35
+ response = base_driver.single_operate_sensor(motor_str,0)
35
36
  if response == None:
36
37
  return None
37
38
  else:
@@ -52,7 +53,7 @@ def set_motor(port:bytes,speed:int) -> Optional[bytes]:
52
53
 
53
54
  motor_str[4]=m_par
54
55
 
55
- response = base_driver.single_operate_sensor(motor_str)
56
+ response = base_driver.single_operate_sensor(motor_str,0)
56
57
  if response == None:
57
58
  return None
58
59
  else:
@@ -62,7 +63,7 @@ def set_motor(port:bytes,speed:int) -> Optional[bytes]:
62
63
  def set_motor_stop(port:bytes) -> Optional[bytes]:
63
64
  motor_str=[0xA0, 0x01, 0x0B, 0xBE]
64
65
  motor_str[0]=0XA0+port
65
- response = base_driver.single_operate_sensor(motor_str)
66
+ response = base_driver.single_operate_sensor(motor_str,0)
66
67
  if response == None:
67
68
  return None
68
69
  else:
@@ -85,15 +86,15 @@ def set_motor_angle(port:bytes,speed:int,degree:int) -> Optional[bytes]:
85
86
  motor_str[4]=m_par
86
87
  motor_str[6]=degree//256
87
88
  motor_str[7]=degree%256
88
- response = base_driver.single_operate_sensor(motor_str)
89
+ response = base_driver.single_operate_sensor(motor_str,0)
89
90
  if response == None:
90
91
  return None
91
92
  else:
92
93
  return 0
93
94
 
94
95
  #���ﶨʱת�� port:����M�˿ڣ�speed:-100~100��second:1~256
95
- def set_motor_second(port:bytes,speed:int,second:bytes) -> Optional[bytes]:
96
- motor_str=[0xA0, 0x01, 0x08, 0x81, 0x00, 0x71, 0x00, 0xBE]
96
+ def set_motor_second(port:bytes,speed:int,second:float) -> Optional[bytes]:
97
+ motor_str=[0xA0, 0x01, 0x08, 0x81, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0xBE]
97
98
  motor_str[0]=0XA0+port
98
99
 
99
100
  if speed>100:
@@ -105,9 +106,17 @@ def set_motor_second(port:bytes,speed:int,second:bytes) -> Optional[bytes]:
105
106
  elif speed<=0 and speed>=-100:
106
107
  m_par=256+speed
107
108
 
108
- motor_str[4]=m_par
109
- motor_str[6]=second
110
- response = base_driver.single_operate_sensor(motor_str)
109
+ motor_str[4]=m_par
110
+
111
+ byte_data = struct.pack('f', second)
112
+ byte_array = list(byte_data)
113
+
114
+ motor_str[6]=byte_array[0]
115
+ motor_str[7]=byte_array[1]
116
+ motor_str[8]=byte_array[2]
117
+ motor_str[9]=byte_array[3]
118
+
119
+ response = base_driver.single_operate_sensor(motor_str,second)
111
120
  if response == None:
112
121
  return None
113
122
  else:
@@ -129,7 +138,7 @@ def set_motor_constspeed(port:bytes,speed:int) -> Optional[bytes]:
129
138
 
130
139
  motor_str[4]=m_par
131
140
 
132
- response = base_driver.single_operate_sensor(motor_str)
141
+ response = base_driver.single_operate_sensor(motor_str,0)
133
142
  if response == None:
134
143
  return None
135
144
  else:
@@ -139,7 +148,7 @@ def set_motor_constspeed(port:bytes,speed:int) -> Optional[bytes]:
139
148
  def get_motor_speed(port:bytes) -> Optional[bytes]:
140
149
  motor_str=[0xA0, 0x01, 0x10, 0xBE]
141
150
  motor_str[0]=0XA0+port
142
- response = base_driver.single_operate_sensor(motor_str)
151
+ response = base_driver.single_operate_sensor(motor_str,0)
143
152
  if response == None:
144
153
  return None
145
154
  else:
smartpi/move.py CHANGED
@@ -20,7 +20,7 @@ def run_second(dir:bytes,speed:bytes,second:bytes) -> Optional[bytes]:
20
20
  move_str[6]=speed
21
21
  move_str[8]=second
22
22
 
23
- response = base_driver.single_operate_sensor(move_str)
23
+ response = base_driver.single_operate_sensor(move_str,0)
24
24
  if response == None:
25
25
  return None
26
26
  else:
@@ -43,7 +43,7 @@ def run_angle(dir:bytes,speed:bytes,angle:int) -> Optional[bytes]:
43
43
  move_str[8]=angle//256
44
44
  move_str[9]=angle%256
45
45
 
46
- response = base_driver.single_operate_sensor(move_str)
46
+ response = base_driver.single_operate_sensor(move_str,0)
47
47
  if response == None:
48
48
  return None
49
49
  else:
@@ -64,7 +64,7 @@ def run(dir:bytes,speed:bytes) -> Optional[bytes]:
64
64
 
65
65
  move_str[6]=speed
66
66
 
67
- response = base_driver.single_operate_sensor(move_str)
67
+ response = base_driver.single_operate_sensor(move_str,0)
68
68
  if response == None:
69
69
  return None
70
70
  else:
@@ -98,7 +98,7 @@ def run_speed_second(Lspeed:int,Rspeed:int,second:bytes) -> Optional[bytes]:
98
98
 
99
99
  move_str[8]=second
100
100
 
101
- response = base_driver.single_operate_sensor(move_str)
101
+ response = base_driver.single_operate_sensor(move_str,0)
102
102
  if response == None:
103
103
  return None
104
104
  else:
@@ -130,7 +130,7 @@ def run_speed(Lspeed:int,Rspeed:int) -> Optional[bytes]:
130
130
 
131
131
  move_str[4]=m_par
132
132
 
133
- response = base_driver.single_operate_sensor(move_str)
133
+ response = base_driver.single_operate_sensor(move_str,0)
134
134
  if response == None:
135
135
  return None
136
136
  else:
@@ -143,7 +143,7 @@ def run_power(Lpower:bytes,Rpower:bytes) -> Optional[bytes]:
143
143
  move_str[4]=Rpower
144
144
  move_str[6]=Lpower
145
145
 
146
- response = base_driver.single_operate_sensor(move_str)
146
+ response = base_driver.single_operate_sensor(move_str,0)
147
147
  if response == None:
148
148
  return None
149
149
  else:
@@ -160,7 +160,7 @@ def set_maxpower(M1:bytes,M2:bytes,M3:bytes,M4:bytes,M5:bytes,M6:bytes) -> Optio
160
160
  move_str[12]=M5
161
161
  move_str[14]=M6
162
162
 
163
- response = base_driver.single_operate_sensor(move_str)
163
+ response = base_driver.single_operate_sensor(move_str,0)
164
164
  if response == None:
165
165
  return None
166
166
  else:
@@ -170,7 +170,7 @@ def set_maxpower(M1:bytes,M2:bytes,M3:bytes,M4:bytes,M5:bytes,M6:bytes) -> Optio
170
170
  def stop() -> Optional[bytes]:
171
171
  move_str=[0xA0, 0x01, 0x0A, 0xBE]
172
172
 
173
- response = base_driver.single_operate_sensor(move_str)
173
+ response = base_driver.single_operate_sensor(move_str,0)
174
174
  if response == None:
175
175
  return None
176
176
  else:
@@ -192,7 +192,7 @@ def set_move_init(Lmotor:bytes,Rmotor:bytes,state:bytes) -> Optional[bytes]:
192
192
  move_str[6]=Rmotor
193
193
  move_str[8]=Lmotor
194
194
 
195
- response = base_driver.single_operate_sensor(move_str)
195
+ response = base_driver.single_operate_sensor(move_str,0)
196
196
  if response == None:
197
197
  return None
198
198
  else:
smartpi/servo.py CHANGED
@@ -9,7 +9,7 @@ def steer_angle(port:bytes,angle:bytes) -> Optional[bytes]:
9
9
  servo_str=[0xA0, 0x0E, 0x01, 0x71, 0x00, 0xBE]
10
10
  servo_str[0]=0XA0+port
11
11
  servo_str[4]=angle
12
- response = base_driver.single_operate_sensor(servo_str)
12
+ response = base_driver.single_operate_sensor(servo_str,0)
13
13
  if response == None:
14
14
  return None
15
15
  else:
@@ -22,7 +22,7 @@ def steer_angle_delay(port:bytes,angle:bytes,second:bytes) -> Optional[bytes]:
22
22
  servo_str[4]=angle//256
23
23
  servo_str[5]=angle%256
24
24
  servo_str[7]=second
25
- response = base_driver.single_operate_sensor(servo_str)
25
+ response = base_driver.single_operate_sensor(servo_str,0)
26
26
  if response == None:
27
27
  return None
28
28
  else:
@@ -33,7 +33,7 @@ def set_dir(port:bytes,dir:bytes) -> Optional[bytes]:
33
33
  servo_str=[0xA0, 0x24, 0x01, 0x71, 0x00, 0xBE]
34
34
  servo_str[0]=0XA0+port
35
35
  servo_str[4]=dir
36
- response = base_driver.single_operate_sensor(servo_str)
36
+ response = base_driver.single_operate_sensor(servo_str,0)
37
37
  if response == None:
38
38
  return None
39
39
  else:
@@ -46,7 +46,7 @@ def set_angle_speed(port:bytes,angle:bytes,speed:bytes) -> Optional[bytes]:
46
46
  servo_str[4]=angle//256
47
47
  servo_str[5]=angle%256
48
48
  servo_str[7]=speed
49
- response = base_driver.single_operate_sensor(servo_str)
49
+ response = base_driver.single_operate_sensor(servo_str,0)
50
50
  if response == None:
51
51
  return None
52
52
  else:
@@ -60,7 +60,7 @@ def set_angle_ms(port:bytes,angle:bytes,ms:int) -> Optional[bytes]:
60
60
  servo_str[5]=angle%256
61
61
  servo_str[7]=ms//256
62
62
  servo_str[8]=ms%256
63
- response = base_driver.single_operate_sensor(servo_str)
63
+ response = base_driver.single_operate_sensor(servo_str,0)
64
64
  if response == None:
65
65
  return None
66
66
  else:
@@ -70,7 +70,7 @@ def set_angle_ms(port:bytes,angle:bytes,ms:int) -> Optional[bytes]:
70
70
  def set_init(port:bytes) -> Optional[bytes]:
71
71
  servo_str=[0xA0, 0x12, 0x01, 0xBE]
72
72
  servo_str[0]=0XA0+port
73
- response = base_driver.single_operate_sensor(servo_str)
73
+ response = base_driver.single_operate_sensor(servo_str,0)
74
74
  if response == None:
75
75
  return None
76
76
  else:
@@ -80,7 +80,7 @@ def set_init(port:bytes) -> Optional[bytes]:
80
80
  def get_angle(port:bytes) -> Optional[bytes]:
81
81
  servo_str=[0xA0, 0x13, 0x01, 0xBE]
82
82
  servo_str[0]=0XA0+port
83
- response = base_driver.single_operate_sensor(servo_str)
83
+ response = base_driver.single_operate_sensor(servo_str,0)
84
84
  if response == None:
85
85
  return None
86
86
  else:
@@ -102,7 +102,7 @@ def set_speed(port:bytes,speed:int) -> Optional[bytes]:
102
102
  m_par=256+speed
103
103
 
104
104
  servo_str[4]=m_par
105
- response = base_driver.single_operate_sensor(servo_str)
105
+ response = base_driver.single_operate_sensor(servo_str,0)
106
106
  if response == None:
107
107
  return None
108
108
  else:
@@ -126,7 +126,7 @@ def set_code_speed(port:bytes,code:int,speed:int) -> Optional[bytes]:
126
126
  m_par=256+speed
127
127
  servo_str[7]=m_par
128
128
 
129
- response = base_driver.single_operate_sensor(servo_str)
129
+ response = base_driver.single_operate_sensor(servo_str,0)
130
130
  if response == None:
131
131
  return None
132
132
  else:
@@ -136,7 +136,7 @@ def set_code_speed(port:bytes,code:int,speed:int) -> Optional[bytes]:
136
136
  def reset_encode(port:bytes) -> Optional[bytes]:
137
137
  servo_str=[0xA0, 0x16, 0x01, 0xBE]
138
138
  servo_str[0]=0XA0+port
139
- response = base_driver.single_operate_sensor(servo_str)
139
+ response = base_driver.single_operate_sensor(servo_str,0)
140
140
  if response == None:
141
141
  return None
142
142
  else:
@@ -146,7 +146,7 @@ def reset_encode(port:bytes) -> Optional[bytes]:
146
146
  def get_encoder(port:bytes) -> Optional[bytes]:
147
147
  servo_str=[0xA0, 0x17, 0x01, 0xBE]
148
148
  servo_str[0]=0XA0+port
149
- response = base_driver.single_operate_sensor(servo_str)
149
+ response = base_driver.single_operate_sensor(servo_str,0)
150
150
  if response == None:
151
151
  return None
152
152
  else:
smartpi/temperature.py CHANGED
@@ -9,7 +9,7 @@ def get_value(port:bytes) -> Optional[bytes]:
9
9
  temp_str=[0XA0, 0X0C, 0X01, 0X71, 0X00, 0XBE]
10
10
  temp_str[0]=0XA0+port
11
11
  temp_str[4]=0
12
- response = base_driver.single_operate_sensor(temp_str)
12
+ response = base_driver.single_operate_sensor(temp_str,0)
13
13
  if response == None:
14
14
  return None
15
15
  else:
smartpi/touch_sensor.py CHANGED
@@ -7,7 +7,7 @@ from smartpi import base_driver
7
7
  def get_value(port:bytes) -> Optional[bytes]:
8
8
  read_sw_str=[0xA0, 0x03, 0x01, 0xBE]
9
9
  read_sw_str[0]=0XA0+port
10
- response = base_driver.single_operate_sensor(read_sw_str)
10
+ response = base_driver.single_operate_sensor(read_sw_str,0)
11
11
  if response == None:
12
12
  return None
13
13
  else:
smartpi/trace.py CHANGED
@@ -27,7 +27,7 @@ def get_chn_data(port:bytes, chn:bytes) -> Optional[bytes]:
27
27
  trace_str=[0xA0, 0x18, 0x01, 0x71, 0x00, 0xBE]
28
28
  trace_str[0]=0XA0+port
29
29
  trace_str[4]=chn
30
- response = base_driver.single_operate_sensor(trace_str)
30
+ response = base_driver.single_operate_sensor(trace_str,0)
31
31
  if response == None:
32
32
  return None
33
33
  else:
@@ -44,7 +44,7 @@ def set_chn_color(port:bytes, color1:bytes, color2:bytes, color3:bytes, color4:b
44
44
  trace_str[12]=color5
45
45
  trace_str[14]=color6
46
46
  trace_str[16]=color7
47
- response = base_driver.single_operate_sensor(trace_str)
47
+ response = base_driver.single_operate_sensor(trace_str,0)
48
48
  if response == None:
49
49
  return None
50
50
  else:
@@ -55,7 +55,7 @@ def set_color(port:bytes, color:bytes) -> Optional[bytes]:
55
55
  trace_str=[0xA0, 0x20, 0x01, 0x71, 0x00, 0xBE]
56
56
  trace_str[0]=0XA0+port
57
57
  trace_str[4]=color
58
- response = base_driver.single_operate_sensor(trace_str)
58
+ response = base_driver.single_operate_sensor(trace_str,0)
59
59
  if response == None:
60
60
  return None
61
61
  else:
@@ -66,7 +66,7 @@ def get_analog(port:bytes, chn:bytes) -> Optional[bytes]:
66
66
  trace_str=[0xA0, 0x21, 0x01, 0x71, 0x00, 0xBE]
67
67
  trace_str[0]=0XA0+port
68
68
  trace_str[4]=20+chn
69
- response = base_driver.single_operate_sensor(trace_str)
69
+ response = base_driver.single_operate_sensor(trace_str,0)
70
70
  if response == None:
71
71
  return None
72
72
  else:
@@ -78,7 +78,7 @@ def get_line_state(port:bytes, state:bytes) -> Optional[bytes]:
78
78
  trace_str=[0xA0, 0x22, 0x01, 0x71, 0x00, 0xBE]
79
79
  trace_str[0]=0XA0+port
80
80
  trace_str[4]=state
81
- response = base_driver.single_operate_sensor(trace_str)
81
+ response = base_driver.single_operate_sensor(trace_str,0)
82
82
  if response == None:
83
83
  return None
84
84
  else:
smartpi/ultrasonic.py CHANGED
@@ -8,7 +8,7 @@ def get_value(port:bytes) -> Optional[bytes]:
8
8
  ultrasonic_str=[0xA0, 0x06, 0x00, 0xBE]
9
9
  ultrasonic_str[0]=0XA0+port
10
10
  ultrasonic_str[2]=1
11
- response = base_driver.single_operate_sensor(ultrasonic_str)
11
+ response = base_driver.single_operate_sensor(ultrasonic_str,0)
12
12
 
13
13
  if response == None:
14
14
  return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: smartpi
3
- Version: 0.1.21
3
+ Version: 0.1.23
4
4
  Summary: A library use for H2-RCU
5
5
  Author: ZMROBO
6
6
  Classifier: Programming Language :: Python :: 3
@@ -0,0 +1,20 @@
1
+ smartpi/__init__.py,sha256=vHEaSuG4o0m17zvDoMBhn-lttaKYGct1k73F5y1orhk,55
2
+ smartpi/base_driver.py,sha256=jP8cuQ0LRfjMuVQ2I6tY7fxp3JsjcUH8fdWKooIogME,24188
3
+ smartpi/color_sensor.py,sha256=YXJjknYjp7teTZsHYZRAWgi73CH0MhBp1go9y0Inxyo,498
4
+ smartpi/cw2015.py,sha256=1lAF-pi_ye_ya1AZQS1sjbgsDf7MThO5IAskKsNGBzA,5695
5
+ smartpi/flash.py,sha256=-pUqg6FSVoBiLFKqrG9B4dFqn8lICnQsSPJr_MtZLIU,4132
6
+ smartpi/gui.py,sha256=HaupXWg5cWw_n86ge8IxARrvL3gpcDCNRwATK9irwH8,2960
7
+ smartpi/humidity.py,sha256=nZwiBtMWKNipVM83ymajZACPHxkC2vUJjDMmCOPN9lw,499
8
+ smartpi/led.py,sha256=flvN7EJfP6VDTSiC93w1uR8pRxcZD9w2vLXA1GbJTo8,538
9
+ smartpi/light_sensor.py,sha256=MayyVikWcXQfjeZrtYRnwYgHBDzu2g-mfJLpdd29EG8,1852
10
+ smartpi/motor.py,sha256=CS-a1AxKeLFQNxsBpfThWE7lI3ZC27OZthXPfgk8vro,4792
11
+ smartpi/move.py,sha256=mYw5li1qQe97845cqclMksuaKOL9n_0E0n9652EIMcI,6046
12
+ smartpi/servo.py,sha256=SN4Md57MNDBBlu2vCrzby04IDQiLNqdwgvS4dCh0q8E,5057
13
+ smartpi/temperature.py,sha256=VT79CYA41q1d_4AM-Y0eIMeIw7AtCkSXjWVws6Yx5yE,462
14
+ smartpi/touch_sensor.py,sha256=P57RRQlqY0KexpMi-ydqwF5albOKCBOGb0Rb6zeVTqk,440
15
+ smartpi/trace.py,sha256=tut7BMbq87ShaR5eNuv7PZtAEz9DS5_BDf0_muIZ-tQ,4577
16
+ smartpi/ultrasonic.py,sha256=kmVpUfvE1oHoqgv92ZU6Fi-sO6DSwm10ssKsImNeOkY,624
17
+ smartpi-0.1.23.dist-info/METADATA,sha256=VFDRXlgYEsVNBbHmPcqcwQnuu5VUeoFE0G1VtTfe3Vw,311
18
+ smartpi-0.1.23.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
19
+ smartpi-0.1.23.dist-info/top_level.txt,sha256=PoLhUCmWAiQUg5UeN2fS-Y1iQyBbF2rdUlizXtpHGRQ,8
20
+ smartpi-0.1.23.dist-info/RECORD,,
@@ -1,20 +0,0 @@
1
- smartpi/__init__.py,sha256=QR4ouIPj9-lhXKMzcZUxB--K9gklRhYKZenfjmxWUOw,55
2
- smartpi/base_driver.py,sha256=n_KIkdfk2BLzaPZpOj-hH30QuyiGwHSMQuosxj2YnOU,24172
3
- smartpi/color_sensor.py,sha256=sTqD3jApjmc6qHMrDyEy2UjaRt8vhJZNR88vzgUiLKs,496
4
- smartpi/cw2015.py,sha256=1lAF-pi_ye_ya1AZQS1sjbgsDf7MThO5IAskKsNGBzA,5695
5
- smartpi/flash.py,sha256=-pUqg6FSVoBiLFKqrG9B4dFqn8lICnQsSPJr_MtZLIU,4132
6
- smartpi/gui.py,sha256=E98_soyWbEf_dwYhXZgMSXrgY5QuYoDTuFCPK63flIQ,2102
7
- smartpi/humidity.py,sha256=xtALQ_IlcwR2RCYvopCSmeNajB45kQU_ckk6FZ0rqko,497
8
- smartpi/led.py,sha256=n3_k1jGcQptfGXhezDLaYzH6UptgluP4Ze6qP_Y4WmU,536
9
- smartpi/light_sensor.py,sha256=glDa4O0wW0kamb-tI3qf509qM7zA8UUjVXbA9si3TXM,1844
10
- smartpi/motor.py,sha256=uvuAwt2j5LjdLaMfNisXqaGh1ro3fZDvHU8IXd2fn9Q,4527
11
- smartpi/move.py,sha256=3qzrJCGA-qbsLXBpklY2DErtw0jlzMELzozjhEvRzKs,6028
12
- smartpi/servo.py,sha256=p8BxfqXVQYP81Kl0J9P23AGoGTrnn8To98ipo6Z_Tkk,5035
13
- smartpi/temperature.py,sha256=px2YeqgG63nPkyhJA1wDg3dwYx_oOCYuhMjtsVm_YO0,460
14
- smartpi/touch_sensor.py,sha256=F6IIQGewNRhC9U1RbHpVzuGYqb8H41lpeQ1Ejwsc_T8,438
15
- smartpi/trace.py,sha256=ntk3UwVATOV_eViGQhFi3lyil9xFmzeZZ_MBvQTq3UQ,4567
16
- smartpi/ultrasonic.py,sha256=0meczFKXFLUt92kLxipeEc37vb5duvJjPs4kgtlpO8M,622
17
- smartpi-0.1.21.dist-info/METADATA,sha256=bZEx5P-yz1jfxEPLJS9W-DhGHNrjyfXHHiKLlkLqpHE,311
18
- smartpi-0.1.21.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
19
- smartpi-0.1.21.dist-info/top_level.txt,sha256=PoLhUCmWAiQUg5UeN2fS-Y1iQyBbF2rdUlizXtpHGRQ,8
20
- smartpi-0.1.21.dist-info/RECORD,,