Skip to content
Snippets Groups Projects
Commit 098631f4 authored by Neil Gershenfeld's avatar Neil Gershenfeld
Browse files

wip

parent 06624532
Branches
No related tags found
No related merge requests found
......@@ -20,18 +20,19 @@
# warranty is provided, and users accept all liability.
#
char_delay = 0.0001
char_delay = 0.001
cmd_delay = 0.1
import sys,serial,time
if (len(sys.argv) < 3):
print("upy.py port command [arguments]")
sys.exit()
s = serial.Serial(sys.argv[1])
s.write(b'\x04') # ^d reset
s.write(b'\r\n\x03\r\n') # ^c break
s.write(b'\x01') # ^a enter raw mode
while (s.in_waiting > 0): # clear buffer
s.read()
if (sys.argv[2] == 'run'):
s.write(b'\x03') # ^c interrupt
file = open(sys.argv[3],'r')
str = file.read()
file.close()
......@@ -42,51 +43,55 @@ if (sys.argv[2] == 'run'):
while (True): # show output
sys.stdout.write(s.read().decode('utf-8'))
elif (sys.argv[2] == 'ls'):
s.write(b'\x03') # ^c interrupt
s.write(b'import os\n')
s.write(b'files = os.listdir()\n')
s.write(b'print("")\n')
s.write(b'for i in files:\n')
s.write(b' print(i)\n')
s.write(b'\x04') # ^d exit raw mode and execute
time.sleep(0.1)
time.sleep(cmd_delay)
while (s.in_waiting > 0): # show output
sys.stdout.write(s.read().decode('utf-8'))
print('')
elif (sys.argv[2] == 'put'):
s.write(b'\x03') # ^c interrupt
file = open(sys.argv[3],'r')
str = file.read()
file.close()
s.write(bytes(f'str = """{str}"""\n','ascii'))
if (len(sys.argv) == 4):
s.write(bytes(f'file = open("{sys.argv[3]}","w")\n','ascii'))
elif (len(sys.argv) == 5):
s.write(bytes(f'file = open("{sys.argv[4]}","w")\n','ascii'))
s.write(b'file.write(str)\n')
s.write(bytes(f'file.write("""','ascii'))
for i in range(len(str)):
c = str[i]
s.write(bytes(f'{c}','ascii'))
if (c == '\\'):
s.write(b'\\')
time.sleep(char_delay)
s.write(bytes(f'""")\n','ascii'))
s.write(b'file.close()\n')
s.write(b'del str\n')
s.write(b'\x04') # ^d exit raw mode and execute
time.sleep(0.1)
time.sleep(cmd_delay)
while (s.in_waiting > 0): # show output and quit
sys.stdout.write(s.read().decode('utf-8'))
print('')
elif (sys.argv[2] == 'get'):
s.write(b'\x03') # ^c interrupt
s.write(bytes(f'file = open("{sys.argv[3]}","r")\n','ascii'))
s.write(b'print(file.read())\n')
s.write(b'while (True):\n')
s.write(b' ret = file.read(1)\n')
s.write(b' if (ret != ""):\n')
s.write(b' print(ret,end="")\n')
s.write(b' else:\n')
s.write(b' break\n')
s.write(b'file.close()\n')
s.write(b'\x04') # ^d exit raw mode and execute
time.sleep(0.1)
while (s.in_waiting > 0): # show output and quit
sys.stdout.write(s.read().decode('utf-8'))
print('')
time.sleep(cmd_delay)
while (True):
sys.stdout.write(s.read().decode('ascii'))
elif (sys.argv[2] == 'rm'):
s.write(b'\x03') # ^c interrupt
s.write(b'import os\n')
s.write(bytes(f'os.remove("{sys.argv[3]}")\n','ascii'))
s.write(b'\x04') # ^d exit raw mode and execute
time.sleep(0.1)
time.sleep(cmd_delay)
while (s.in_waiting > 0): # show output and quit
sys.stdout.write(s.read().decode('utf-8'))
print('')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment