Пример #1
0
    def do_POST(self):
        ctype, pdict = parse_header(self.headers['content-type'])
        if ctype == 'multipart/form-data':
            postvars = parse_multipart(self.rfile, pdict)
        elif ctype == 'application/x-www-form-urlencoded':
            length = int(self.headers['content-length'])
            postvars = parse_qs(self.rfile.read(length), keep_blank_values=1)
        else:
            postvars = {}

        pathArray = self.path[1:].split("/")
        if (len(pathArray) == 1):
            if (pathArray[0] == "hydraulics"):
                if "state" in postvars:
                    newState = postvars["state"][0]
                    hydraulics_drv.setState(newState)
                    self.send_response(200)
                if ("oldPlaybackName" in postvars
                        and "newPlaybackName" in postvars):
                    oldName = postvars["oldPlaybackName"][0]
                    newName = postvars["newPlaybackName"][0]
                    hydraulics_playback.renamePlayback(oldName, newName)
                if ("currentPlayback" in postvars):
                    playback = postvars["currentPlayback"][0]
                    hydraulics_playback.setCurrentPlayback(playback)
                if ("record" in postvars):
                    doRecord = postvars["record"][0]
                    if doRecord.lower() == "true":
                        recordingFile = hydraulics_playback.getNewRecordingFile(
                        )
                        hydraulics_drv.startRecording(recordingFile)
                    else:
                        hydraulics_drv.stopRecording()
                if ("loopback_x" in postvars):
                    loopback_x = postvars["loopback_x"][0]
                    x, y, z = hydraulics_drv.getLoopbackValues()
                    print("loopback_x set to", loopback_x)
                    hydraulics_drv.setLoopbackValues(loopback_x, y, z)
                if ("loopback_y" in postvars):
                    print postvars
                    loopback_y = postvars["loopback_y"][0]
                    print("loopback_y set to", loopback_y)
                    x, y, z = hydraulics_drv.getLoopbackValues()
                    hydraulics_drv.setLoopbackValues(x, loopback_y, z)
                if ("loopback_z" in postvars):
                    loopback_z = postvars["loopback_z"][0]
                    print("loopback_z set to", loopback_z)
                    x, y, z = hydraulics_drv.getLoopbackValues()
                    hydraulics_drv.setLoopbackValues(x, y, loopback_z)
                self.send_response(200)
            else:
                self.sendError(404)
        else:
            self.sendError(404)

        def log_message(self, format, *args):
            # yep, I'm sick of the annoying logging of all requests
            pass
Пример #2
0
def getHydraulicsState():
    control_x, control_y, control_z = hydraulics_drv.getCurrentInput()
    pid_x, pid_y, pid_z = hydraulics_drv.getVoltageInput()

    loopback_x, loopback_y, loopback_z = hydraulics_drv.getLoopbackValues()

    retObj = {}

    retObj["x"] = control_x
    retObj["y"] = control_y
    retObj["z"] = control_z
    retObj["pid_x"] = pid_x
    retObj["pid_y"] = pid_y
    retObj["pid_z"] = pid_z
    retObj["playbacks"] = hydraulics_playback.getList()
    retObj["currentPlayback"] = hydraulics_playback.getCurrentPlayback()
    retObj["states"] = hydraulics_drv.getAllStates()
    retObj["currentState"] = hydraulics_drv.getState()
    retObj["isRecording"] = hydraulics_drv.isRecording()
    retObj["loopback_x"] = loopback_x
    retObj["loopback_y"] = loopback_y
    retObj["loopback_z"] = loopback_z

    print("Adding currentState to the data {} ({})".format(
        retObj["currentPlayback"], hydraulics_playback.getCurrentPlayback()))

    return retObj