Last active
August 29, 2015 14:03
-
-
Save treeherder/7d9fc7c8699d049ef37a to your computer and use it in GitHub Desktop.
fledgling rpc for some automated tasks.. works great so far.
This file contains 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 xmlrpclib, time | |
server = xmlrpclib.ServerProxy('http://localhost:8000',allow_none=True) | |
print(server.system.listMethods()) | |
server.capture(time.time()) | |
server.tx("/1Z5000R") |
This file contains 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 cv2, cv, serial | |
import numpy as np | |
from SimpleXMLRPCServer import SimpleXMLRPCServer | |
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler | |
class Camera(): | |
def __init__(self): | |
self.cap = cv2.VideoCapture(0) | |
def capture(self, name): | |
flag, ret = self.cap.read() | |
cv2.imwrite("{0}.jpg".format(name), ret) | |
def finish(self): | |
self.cap.release() | |
class Motor(): | |
def __init__(self): | |
self.ser = serial.Serial("/dev/ttyUSB0") #usb->rs438 | |
def rx(self, size): #read from motor db9 | |
ret_msg= self.com.readline() | |
self.ser.flushInput() | |
return ret_msg | |
def tx(self, message): #write to motor port | |
self.ser.flushInput() | |
self.ser.write(message+"\r\n") | |
class Analyzer(Motor, Camera): | |
pass | |
# RPC methods start here -----------> | |
# Restrict to a particular path. | |
# not sure why this is important, but it says to do it in the documentation | |
class RequestHandler(SimpleXMLRPCRequestHandler): | |
rpc_paths = ('/RPC2',) | |
# instantiate server | |
server = SimpleXMLRPCServer(("localhost", 8000), | |
requestHandler=RequestHandler,allow_none=True) | |
server.register_introspection_functions() | |
#server.register_function(cam, 'cam') | |
#better off as a class | |
server.register_instance(Analyzer, allow_dotted_names=True) | |
server.serve_forever() #justserverthings |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment