Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import struct
- class eth8020:
- def __init__(self, hostname, port=17494):
- self.s = socket.create_connection((hostname, int(port)))
- def execute(self, request):
- self.s.send(request)
- response = self.s.recv(10)
- return struct.unpack('B', response)[0]
- def set(self, index, value):
- if value:
- return self.activate(index)
- return self.deactivate(index)
- def activate(self, index, duration=0):
- request = struct.pack('BBB', 0x20, index, duration)
- return self.execute(request)
- def deactivate(self, index, duration=0):
- request = struct.pack('BBB', 0x21, index, duration)
- return self.execute(request)
- if __name__ == '__main__':
- import argparse, sys
- p = argparse.ArgumentParser(description="Command-line utility for controlling the Antratek ETH8020.")
- p.add_argument('ip_address')
- p.add_argument('relay', type=int, help="relay index 1..20")
- p.add_argument('action', type=int, help="1=activate, 0=deactivate.")
- p.add_argument('-q', dest='quiet', action='store_true', help="Do not print to stdout.")
- args = p.parse_args()
- e = eth8020(args.ip_address)
- r = e.set(args.relay, args.action)
- if not args.quiet:
- print('success' if not r else 'failed')
- sys.exit(r)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement