コード例 #1
0
ファイル: serverFunctions.py プロジェクト: naarcini/site
def ParseRobotRequest(robotId, body):
    """
    Parse some JSON for robot updates
    """
    result = TextToJson(body)
    if not IsOperationSuccess(result):
        return result

    rawData = result['rawData']
    robotUpdates = {}

    if 'cells' in rawData and len(rawData['cells']) > 0:
        result = MapListToCellArray(rawData['cells'])
        if not IsOperationSuccess(result):
            return result

        robotUpdates['cells'] = result['cells']

    if 'robot' in rawData:
        robot = RobotObject(robotId)
        inRobot = rawData['robot']

        if 'position' in inRobot and len(inRobot['position']) > 0:
            result = MapListToCellArray(inRobot['position'])
            if not IsOperationSuccess(result):
                return result

            position = result['cells'][0]
            robot.position.x = position.coordinate.x
            robot.position.y = position.coordinate.y

        if 'exactPosition' in inRobot and len(inRobot['exactPosition']) > 0:
            result = MapListToCellArray(inRobot['exactPosition'])
            if not IsOperationSuccess(result):
                return result

            exactPosition = result['cells'][0]
            robot.exactPosition.x = exactPosition.coordinate.x
            robot.exactPosition.y = exactPosition.coordinate.y

        if 'waypoints' in inRobot and len(inRobot['waypoints']) > 0:
            result = MapListToCellArray(inRobot['waypoints'])
            if not IsOperationSuccess(result):
                return result

            robot.waypoints = [ cell.Dictify() for cell in result['cells'] ]

        robotUpdates['robot'] = robot

    if 'robot' not in robotUpdates and 'cells' not in robotUpdates:
        return BuildJsonResponse(False, 'Unable to parse any input data')

    response = BuildJsonResponse(True, 'Successfully parsed input data')
    response['result'] = robotUpdates
    return response
コード例 #2
0
ファイル: serverFunctions.py プロジェクト: naarcini/site
def MapRobotDBToRobotObj(robotDB, waypoints):
    """
    Map a robot model object to a separate object for easier validation/printing
    """
    robot = RobotObject(robotDB.pk)

    robot.position.x = robotDB.xPos
    robot.position.y = robotDB.yPos
    robot.exactPosition.x = robotDB.xExactPos
    robot.exactPosition.y = robotDB.yExactPos
    robot.instruction.x = robotDB.xTarget
    robot.instruction.y = robotDB.yTarget

    if waypoints is not None:
        robot.waypoints = [ [point.x, point.y] for point in waypoints ]

    return robot