update
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import serial
|
||||
import time
|
||||
import bin.com.lib
|
||||
|
||||
|
||||
lb = bin.com.lib.Com()
|
||||
|
||||
|
||||
class CommandListGenerator:
|
||||
def __init__(self):
|
||||
self.__go = 0
|
||||
self.__received = ""
|
||||
self.__start = 0
|
||||
self.__lfcount = 0
|
||||
self.__total = ""
|
||||
self.__output = []
|
||||
|
||||
def run(self, special_port):
|
||||
# This function asks the micro:bit to send a list of all of the commands the program that runs
|
||||
# on it supports. Sent string: "\ncmdl\n". Please note: if using micropython, use the here included
|
||||
# com module to communicate (you can flash it to the micro:bit through the settings menu and also
|
||||
# add your own modules to the micro:bit.
|
||||
try:
|
||||
lb.connect(19200, special_port)
|
||||
self.__go = 1
|
||||
except serial.SerialException as e:
|
||||
return e
|
||||
if self.__go == 1:
|
||||
self.__start = time.time()
|
||||
lb.send("\ncmdl\n")
|
||||
self.__go = 0
|
||||
while time.time() - self.__start < 5:
|
||||
self.__received = lb.receive(1)
|
||||
if self.__received == "\n":
|
||||
self.__received = lb.receive(1)
|
||||
if self.__received == "c":
|
||||
self.__received = lb.receive(1)
|
||||
if self.__received == "m":
|
||||
self.__received = lb.receive(1)
|
||||
if self.__received == "d":
|
||||
self.__go = 1
|
||||
break
|
||||
if self.__go == 1:
|
||||
self.__total = ""
|
||||
self.__output = []
|
||||
lb.receive(1)
|
||||
while self.__lfcount < 3:
|
||||
self.__received = lb.receive(1)
|
||||
if self.__received == "\n":
|
||||
self.__lfcount += 1
|
||||
else:
|
||||
self.__lfcount = 0
|
||||
if self.__received == " ":
|
||||
self.__output.append(self.__total)
|
||||
self.__total = ""
|
||||
else:
|
||||
self.__total += self.__received
|
||||
return self.__output
|
||||
|
||||
Reference in New Issue
Block a user