wiki:Python Quagents Client

Version 2 (modified by xwang, 13 years ago) (diff)

--

Python Quagents Client

Client.py:

This file contains the Client class. Clients connect to the server on port 6000. Each client stores information about it's name, id, commandid, etc. Calling the ready() function spawn a quagent.
NOTE: Sometimes calling ready() too fast will not spawn a quagent and the program will be stuck waiting for a response from the server. Calling setName() before ready() usually avoids this problem.

Command.py

This file contains the Command class and the individual command classes that inherit from the Command class. Each individual command takes in a different number of parameters and has a unique opcode. Each command must be attached to a client which is done by calling the setExecuter() function. The command can then be executed by calling execute().
NOTE: Executing multiple commands too fast causes the received data to get screwed up at times so the program sleeps for a brief period after each command.

Example Code

Writing a script to control a quagent is very simple. See the following example.

# Main.py
import client
import command
import time

agent = client.Client("127.0.0.1")	# Creates a quagent
agent.setName('Quagent')
agent.ready()				# Spawn

# Give commands to quagent by creating the command object and setting the quagent as the executor
fo = command.Follow('n')	
fo.setExecutor(agent)
fo.execute()
pu = command.PickUp('n')
pu.setExecutor(agent)
pu.execute()
ci = command.CheckInventory('n')	
ci.setExecutor(agent)
ci.execute()
pd = command.PutDown(0, 20, 'n')	# The parameters correspond to protocolzero. The last parameter is always the priority
pd.setExecutor(agent)
pd.execute()
ci.execute()