Files
mixly3-server/mixly/boards/default/micropython/build/lib/ch914x_at.py

148 lines
3.9 KiB
Python

"""
Bluetooth AT
Micropython library for the Bluetooth AT(WCH)
=======================================================
#Preliminary composition 20230106
dahanzimin From the Mixly Team
"""
from machine import Pin
from time import sleep_ms
class AT:
def __init__(self, pin,times=5):
self.at_pin = Pin(pin, Pin.OUT)
self.at_pin.value(1)
self._times = times
self._flag = [0,0,0,0,0,0,0,0] #mac0,1 name2,3 power4,5 power6,7
self._power = [0,1,2,3,-3,-8,-14,-20]
sleep_ms(100)
def _str_reverse(self,data):
data=data.split(':')
data.reverse()
data=":".join(data)
return data
def ble_mac(self, mac=None):
sleep_ms(200)
if mac is None:
if not (self._flag[0] >= self._times and self._times != 0):
self._flag[0]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+MAC?\r\n')
input()
self.at_pin.value(1)
print('BLE_MAC:',self._str_reverse(data))
sleep_ms(100)
return self._str_reverse(data)
else:
print('Please delete this command and upload other programs again')
else:
if not (self._flag[1] >= self._times and self._times != 0):
self._flag[1]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+MAC={}\r\n'.format(self._str_reverse(mac)))
print('\r\n')
self.at_pin.value(1)
print('BLE_MAC:',mac,data)
sleep_ms(100)
return True if data is "OK" else False
else:
print('Please delete this command and upload other programs again')
def ble_name(self, name=None):
sleep_ms(200)
if name is None:
if not (self._flag[2] >= self._times and self._times != 0):
self._flag[2]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+NAME?\r\n')
input()
input()
self.at_pin.value(1)
print('BLE_NAME:',data)
sleep_ms(100)
return data
else:
print('Please delete this command and upload other programs again')
else:
if not (self._flag[3] >= self._times and self._times != 0):
self._flag[3]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+NAME='+name+'\r\n')
print('\r\n')
self.at_pin.value(1)
print('BLE_NAME:',name,data)
sleep_ms(100)
return True if data is "OK" else False
else:
print('Please delete this command and upload other programs again')
def ble_power(self, power=None):
sleep_ms(200)
if power is None:
if not (self._flag[4] >= self._times and self._times != 0):
self._flag[4]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+TPL?\r\n')
input()
print(' \r\n')
self.at_pin.value(1)
data=self._power[int(data[4:])]
print('BLE_Power: {}DB'.format(data))
sleep_ms(100)
return data
else:
print('Please delete this command and upload other programs again')
else:
if not (self._flag[5] >= self._times and self._times != 0):
self._flag[5]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+TPL={}\r\n'.format(self._power.index(power)))
print('\r\n')
self.at_pin.value(1)
print('BLE_Power:',str(power)+'DB',data)
sleep_ms(100)
return True if data is "OK" else False
else:
print('Please delete this command and upload other programs again')
def ble_pname(self, name=None):
sleep_ms(200)
if name is None:
if not (self._flag[6] >= self._times and self._times != 0):
self._flag[6]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+PNAME?\r\n')
input()
input()
self.at_pin.value(1)
print('BLE_PNAME:',data)
sleep_ms(100)
return data
else:
print('Please delete this command and upload other programs again')
else:
if not (self._flag[7] >= self._times and self._times != 0):
self._flag[7]+=1
self.at_pin.value(0)
sleep_ms(10)
data=input('AT+PNAME='+name+'\r\n')
print('\r\n')
self.at_pin.value(1)
print('BLE_PNAME:',name,data)
sleep_ms(100)
return True if data is "OK" else False
else:
print('Please delete this command and upload other programs again')