# RoverControl.py
# TigerJython

from entrydialog import *
from btcom import *

def showDialog():
    global dlg, buttons
    buttons = [ButtonEntry("Left"), ButtonEntry("Forward"), ButtonEntry("Stop"),
               ButtonEntry("Backward"), ButtonEntry("Right")]
    pane = EntryPane(buttons[0], buttons[1], buttons[2], buttons[3], buttons[4])
    dlg = EntryDialog(pane)
    dlg.setTitle("Remote Control")
    dlg.show()

showDialog()
commands = ["LEFT", "FORWARD", "STOP", "BACKWARD", "RIGHT"]

def onStateChanged(state, msg):
    pass
       
serviceName = "BTRover"
client = BTClient(stateChanged = onStateChanged)
dlg.setTitle("Searching for rover. Please wait...")
serverInfo = client.findService(serviceName, 30)
if serverInfo == None:
    dlg.setTitle("Rover not found")
else:
    if client.connect(serverInfo, 20):
        dlg.setTitle("Connected to " + serverInfo[0])
        while not dlg.isDisposed():
            for n in range(len(buttons)):
                if buttons[n].isTouched():
                    client.sendMessage(commands[n])
        client.disconnect()  

