Dalek-ESP/dalek.py

159 lines
6.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# encoding: utf-8
import time
import socket
import sys
import serial
import codecs
BAUDOT_FIGURES = 0b11011
BAUDOT_LETTERS = 0b11111
CHARSET = {
BAUDOT_LETTERS: {
"q": 0b11101,
"w": 0b11001,
"e": 0b10000,
"r": 0b01010,
"t": 0b00001,
"y": 0b10101,
"u": 0b11100,
"i": 0b01100,
"o": 0b00011,
u"ó": 0b00011,
"p": 0b01101,
"s": 0b10100,
u"ś": 0b10100,
"d": 0b10010,
"f": 0b10110,
"g": 0b01011,
"h": 0b00101,
"k": 0b11110,
"l": 0b01001,
"z": 0b10001,
u"ż": 0b10001,
u"ź": 0b10001,
"x": 0b10111,
"c": 0b01110,
u"ć": 0b01110,
"v": 0b01111,
"b": 0b10011,
u"ń": 0b00110,
"m": 0b00111,
"j": 0b11010,
"a": 0b11000,
"n": 0b00110,
# FIXME this is supported in figures as well
"\r": 0b00010,
"\n": 0b01000,
' ': 0b00100,
},
BAUDOT_FIGURES: {
"1": 0b11101,
"2": 0b11001,
"3": 0b10000,
"4": 0b01010,
"5": 0b00001,
"6": 0b10101,
"7": 0b11100,
"8": 0b01100,
"9": 0b00011,
"0": 0b01101,
"-": 0b11000,
"'": 0b10100,
# "$": 0b10010, # who are you
u"ą": 0b10110,
u"ę": 0b01011,
u"ł": 0b00101,
"\b": 0b11010,
"(": 0b11110,
")": 0b01001,
"+": 0b10001,
"/": 0b10111,
":": 0b01110,
"=": 0b01111,
"?": 0b10011,
",": 0b00110,
".": 0b00111,
u"": 0b10100, # This is pretty similar
"`": 0b10100,
"\"": 0b10100,
},
}
class Teletype(serial.Serial):
mode = BAUDOT_LETTERS
column = 0
max_line_length = 68
def send(self, text, wrap=True):
for n in text.lower():
for mode, chars in CHARSET.items():
if n in chars:
print(n)
self.send_char(mode, chars.get(n))
if n == '\r':
self.column = 0
elif n != '\n':
self.column += 1
if wrap and self.column >= self.max_line_length:
self.column = 0
self.send('\r\n', wrap=False)
break
def send_char(self, mode, char):
if self.mode != mode:
self.write(chr(mode))
self.mode = mode
self.write(chr(char))
class TCPTeletype(Teletype):
def __init__(self, address, port):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.connect((address, port))
def write(self, b):
self.sock.send(b)
time.sleep(0.1)
class FDTeletype(Teletype):
def __init__(self, fd):
self.sock = fd
def write(self, b):
self.sock.write(b)
self.sock.flush()
time.sleep(0.1)
if __name__ == "__main__":
if len(sys.argv) == 3:
tty = TCPTeletype(sys.argv[1], int(sys.argv[2]))
elif len(sys.argv) == 2:
tty = Teletype(sys.argv[1], 9600)
else:
tty = FDTeletype(sys.stdout)
time.sleep(2)
sys.stdin = codecs.getreader('utf8')(sys.stdin)
while True:
tty.send(sys.stdin.read(1))
#tty = Teletype('/dev/ttyACM0', 9600)
#tty.write('\xff')
#time.sleep(5)
#tty.send(u'no i ja się pytam człowieku dumny ty jesteś z siebie zdajesz sobie sprawę z tego co robisz?masz ty wogóle rozum i godnośc człowieka?ja nie wiem ale żałosny typek z ciebie ,chyba nie pomyślałes nawet co robisz i kogo obrażasz ,możesz sobie obrażac tych co na to zasłużyli sobie ale nie naszego papieża polaka naszego rodaka wielką osobę ,i tak wyjątkowa i ważną bo to nie jest ktoś tam taki sobie że możesz go sobie wyśmiać bo tak ci się podoba nie wiem w jakiej ty się wychowałes rodzinie ale chyba ty nie wiem nie rozumiesz co to jest wiara .jeśli myslisz że jestes wspaniały to jestes zwykłym czubkiem którego ktoś nie odizolował jeszcze od społeczeństwa ,nie wiem co w tym jest takie śmieszne ale czepcie się stalina albo hitlera albo innych zwyrodnialców a nie czepiacie się takiej świętej osoby jak papież jan paweł 2 .jak można wogóle publicznie zamieszczac takie zdięcia na forach internetowych?ja się pytam kto powinien za to odpowiedziec bo chyba widac że do koscioła nie chodzi jak jestes nie wiem ateistą albo wierzysz w jakies sekty czy wogóle jestes może ty sługą szatana a nie będziesz z papieża robił takiego ,to ty chyba jestes jakis nie wiem co sie jarasz pomiotami szatana .wez pomyśl sobie ile papież zrobił ,on był kimś a ty kim jestes żeby z niego sobie robić kpiny co? kto dał ci prawo obrażac wogóle papieża naszego ?pomyślałes wogóle nad tym że to nie jest osoba taka sobie że ją wyśmieje i mnie będa wszyscy chwalic? wez dziecko naprawdę jestes jakis psycholek bo w przeciwieństwie do ciebie to papież jest autorytetem dla mnie a ty to nie wiem czyim możesz być autorytetem chyba takich samych jakiś głupków jak ty którzy nie wiedza co to kosciół i religia ,widac że się nie modlisz i nie chodzisz na religie do szkoły ,widac nie szanujesz religii to nie wiem jak chcesz to sobie wez swoje zdięcie wstaw ciekawe czy byś sie odważył .naprawdę wezta się dzieci zastanówcie co wy roicie bo nie macie widac pojęcia o tym kim był papież jan paweł2 jak nie jestescie w pełni rozwinięte umysłowo to się nie zabierajcie za taką osobę jak ojciec swięty bo to świadczy o tym że nie macie chyba w domu krzyża ani jednego obraza świętego nie chodzi tutaj o kosciół mnie ale wogóle ogólnie o zasady wiary żeby mieć jakąs godnosc bo papież nikogo nie obrażał a ty za co go obrażasz co? no powiedz za co obrażasz taką osobę jak ojciec święty ?brak mnie słów ale jakbyś miał pojęcie chociaz i sięgnął po pismo święte i poczytał sobie to może byś się odmienił .nie wiem idz do kościoła bo widac już dawno szatan jest w tobie człowieku ,nie lubisz kościoła to chociaż siedz cicho i nie obrażaj innych ludzi')
#send_baudot(ser, 'jan pawel drugi papiez pedofil 2137\b\r\nxD\r\n')