Skip to content

Commit 3be9373

Browse files
authored
Update __init__.py
Add some basic error checking
1 parent 8bec839 commit 3be9373

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

src/dfplayer/__init__.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,21 @@ def __init__(self,uart_id,tx_pin_id=None,rx_pin_id=None):
1616
self.uart.init(9600, bits=8, parity=None, stop=1)
1717

1818
def flush(self):
19-
while self.uart.any():
19+
self.uart.flush()
20+
if self.uart.any():
2021
self.uart.read()
2122

22-
def send_query(self,cmd,param1=0,param2=0):
23-
self.flush()
24-
self.send_cmd(cmd,param1,param2)
25-
time.sleep(0.05)
26-
in_bytes = self.uart.read()
27-
if not in_bytes:
28-
return bytes(10)
23+
def send_query(self,cmd,param1=0,param2=0):
24+
retry=True
25+
while (retry):
26+
self.flush()
27+
self.send_cmd(cmd,param1,param2)
28+
time.sleep(0.05)
29+
in_bytes = self.uart.read()
30+
if not in_bytes: #timeout
31+
return -1
32+
if len(in_bytes)==10 and in_bytes[1]==255 and in_bytes[9]==239:
33+
retry=False
2934
return in_bytes
3035

3136
def send_cmd(self,cmd,param1=0,param2=0):
@@ -62,13 +67,19 @@ def reset(self):
6267
self.send_cmd(12,0,1)
6368

6469
def is_playing(self):
65-
return self.send_query(66)[6]
70+
in_bytes = self.send_query(66)
71+
if in_bytes==-1 or in_bytes[5]!=2:
72+
return -1
73+
return in_bytes[6]
6674

6775
def get_volume(self):
6876
return self.send_query(67)[6]
6977

7078
def get_files_in_folder(self,folder):
7179
in_bytes = self.send_query(78,0,folder)
72-
if in_bytes[3]!=78:
80+
if in_bytes==-1:
7381
return -1
82+
if in_bytes[3]!=78:
83+
return 0
7484
return in_bytes[6]
85+

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy