encode dict
This commit is contained in:
parent
4df197e4c3
commit
6687cc1f1b
2 changed files with 59 additions and 10 deletions
|
@ -127,7 +127,7 @@ class IT32(RcProtocol): #switch1
|
|||
return self._ookdata
|
||||
|
||||
def encode(self, args):
|
||||
if args.code:
|
||||
if hasattr(args, "code") and args.code:
|
||||
if re.match("^[01]{32}$", args.code):
|
||||
return self.__encode(args.code)
|
||||
|
||||
|
@ -193,13 +193,13 @@ class ITTristate(RcProtocol): #old intertechno systems
|
|||
return code
|
||||
|
||||
def encode(self, args):
|
||||
if args.code:
|
||||
if hasattr(args, 'code') and args.code:
|
||||
if re.match("^[01Ff]{12}$", args.code):
|
||||
return self.__encode(args.code)
|
||||
|
||||
code = ""
|
||||
code += self.__encode_int(ord(args.house[0]) - ord('A'), 4)
|
||||
if args.group:
|
||||
if hasattr(args, 'group') and args.group:
|
||||
code += self.__encode_int(args.group - 1, 2)
|
||||
code += self.__encode_int(args.unit - 1, 2)
|
||||
else:
|
||||
|
@ -403,6 +403,7 @@ class PDM32(RcProtocol):
|
|||
'0': [2, 1],
|
||||
}
|
||||
RcProtocol.__init__(self)
|
||||
self._parser.add_argument("-c", "--code")
|
||||
|
||||
def decode(self, pulsetrain):
|
||||
code, tb = self._decode_symbols(pulsetrain[0:-2])
|
||||
|
@ -413,6 +414,14 @@ class PDM32(RcProtocol):
|
|||
"timebase": tb,
|
||||
}
|
||||
|
||||
def encode(self, args):
|
||||
self._reset()
|
||||
self._add_symbols(args.code)
|
||||
self._add_pulses([1, 11])
|
||||
self._add_finish()
|
||||
return self._ookdata
|
||||
|
||||
|
||||
protocols = [
|
||||
IT32(),
|
||||
Switch15(),
|
||||
|
@ -426,9 +435,20 @@ protocols = [
|
|||
def encode(protocol, args):
|
||||
for p in protocols:
|
||||
if (protocol):
|
||||
print("found ptoto")
|
||||
if p._name == protocol:
|
||||
return (p.encode(p._parser.parse_args(args)), p._timebase, p._repetitions)
|
||||
|
||||
class RCStruct:
|
||||
def __init__(self, **entries):
|
||||
self.__dict__.update(entries)
|
||||
|
||||
def encode_dict(dict):
|
||||
s = RCStruct(**dict)
|
||||
for p in protocols:
|
||||
if p._name == s.protocol:
|
||||
return (p.encode(s), p._timebase, p._repetitions)
|
||||
|
||||
def decode(pulsetrain):
|
||||
dec = None
|
||||
res = []
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
from raspyrfm import *
|
||||
import sys
|
||||
import time
|
||||
import it32
|
||||
import tristate
|
||||
import bistate24
|
||||
import fs20
|
||||
#import it32
|
||||
#import tristate
|
||||
#import bistate24
|
||||
#import fs20
|
||||
from argparse import ArgumentParser
|
||||
import wave, struct
|
||||
import threading
|
||||
|
@ -61,6 +61,8 @@ trainbuf = []
|
|||
|
||||
class RxThread(threading.Thread):
|
||||
def __init__(self):
|
||||
self.__event = threading.Event()
|
||||
self.__event.set()
|
||||
threading.Thread.__init__(self)
|
||||
|
||||
def __rxcb(self, rfm):
|
||||
|
@ -75,7 +77,7 @@ class RxThread(threading.Thread):
|
|||
else:
|
||||
wf = None
|
||||
|
||||
while True:
|
||||
while self.__event.isSet():
|
||||
fifo = rfm.read_fifo_wait(64)
|
||||
ba = bytearray()
|
||||
|
||||
|
@ -109,11 +111,25 @@ class RxThread(threading.Thread):
|
|||
wf.writeframes('')
|
||||
|
||||
def run(self):
|
||||
self.__event.wait()
|
||||
rfm.set_params(
|
||||
Datarate = 20.0 #kbit/s
|
||||
)
|
||||
rfm.start_receive(self.__rxcb)
|
||||
|
||||
def suspend(self):
|
||||
self.__event.clear()
|
||||
|
||||
def resume(self):
|
||||
self.__event.set()
|
||||
|
||||
rxthread = RxThread()
|
||||
rxthread.daemon = True
|
||||
rxthread.start()
|
||||
lasttime = 0
|
||||
|
||||
class Args:
|
||||
pass
|
||||
|
||||
while True:
|
||||
time.sleep(0.1)
|
||||
|
@ -125,5 +141,18 @@ while True:
|
|||
dec = rcprotocols.decode(train)
|
||||
if (dec):
|
||||
print(dec)
|
||||
else:
|
||||
print(train)
|
||||
#else:
|
||||
print(train)
|
||||
|
||||
if time.time() > lasttime:
|
||||
lasttime = time.time() + 5
|
||||
print("sdfkl")
|
||||
args = Args()
|
||||
#rxthread.suspend()
|
||||
args.code = "01010011110011111110000111111111"
|
||||
#rfm.set_params(
|
||||
# Datarate = 1000.0 / 600
|
||||
#)
|
||||
#txdata = rcprotocols.encode("PDM32", args)
|
||||
#print(txdata)
|
||||
#rxthread.resume()
|
||||
|
|
Loading…
Reference in a new issue