Last active
August 29, 2015 14:08
-
-
Save fredyr/efd89e98e29210434367 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import csv | |
def load_params(): | |
with open('params.csv', 'rb') as f: | |
reader = csv.reader(f, delimiter=';', quoting=csv.QUOTE_NONE) | |
# Drop first two rows (crap+headers) | |
rows = [row for row in reader if len(row) > 15][2:] | |
# print rows | |
defaults = {r[4]: r[15] for r in rows} | |
print defaults | |
# names[5] = "D 80:4T/Ta"; | |
# names[4] = "D 120:4T/Ta"; | |
# names[3] = "D 200:4T/Ta"; | |
# override model id since, tesira can only be 3-5 | |
defaults["0x3"] = "5" | |
return defaults | |
params = load_params() | |
def peek(addr, num): | |
if num == 1: | |
s = params[addr] | |
else: | |
s = (" 0" * num).strip() | |
return "+OK \"data\":["+ s +"]\n" | |
# "LGAmp1" peek 0x3 1 | |
# [2014-05-28T08:55:12] LGAmp1 peek 0x60005 1 | |
# [2014-05-28T08:55:12] OK "data":[0] "result":0 | |
def mon(): | |
return "+OK \"value\":[112132097 257 16843008 257 16843008 257 16843008 257 16843008 2007541760 67180034 0 0 0 0]\n" | |
def cmd(str): | |
parts = str.split() | |
cmd_type = parts[1] | |
if cmd_type == "peek": | |
return peek(parts[2], int(parts[3])) | |
if cmd_type == "get" and parts[2] == "ampPower": | |
return "+OK \"value\":true\n" | |
if cmd_type == "get" and parts[2] == "monitorData": | |
return mon() | |
# print cmd_type | |
return "+OK \"value\":\"Fejkamp1\"\n" | |
host = '' | |
port = 23 | |
backlog = 5 | |
size = 1024 | |
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | |
s.bind((host,port)) | |
s.listen(backlog) | |
print "Starting server on port " + str(port) | |
c, address = s.accept() | |
while 1: | |
data = c.recv(size) | |
print data | |
c.send(cmd(data)) | |
# c.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment