More remote fixes

This commit is contained in:
Tim Bentley 2009-08-12 17:29:00 +01:00
parent 46cf6c763c
commit a684ecaa1e
2 changed files with 46 additions and 29 deletions

View File

@ -18,39 +18,54 @@ You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA
"""
import sys
import logging
import socket
import sys
from optparse import OptionParser
logging.basicConfig(level=logging.DEBUG,
format=u'%(asctime)s:%(msecs)3d %(name)-15s %(levelname)-8s %(message)s',
datefmt=u'%m-%d %H:%M:%S', filename=u'remoteclient-cli.log', filemode=u'w')
class OpenLPRemoteCli():
global log
log = logging.getLogger(u'OpenLP Remote Application')
def sendData(options, message):
addr = (options.address, options.port)
try:
UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
UDPSock.sendto(message, addr)
print u'message sent ', message , addr
except:
print u'Errow thrown ', sys.exc_info()[1]
def __init__(self, argv):
log.debug(u'Initialising')
host = u'localhost'
port = 4316
self.addr = (host, port)
try:
self.UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
self.sendData()
except:
log.error(u'Errow thrown %s', sys.exc_info()[1])
print u'Errow thrown ', sys.exc_info()[1]
def format_message(options):
return u'%s:%s' % (options.event, options.message)
def sendData(self):
text = "Alert:Wave to Zak, Superfly"
print self.UDPSock
print self.UDPSock.sendto(text, self.addr)
def main():
usage = "usage: %prog [options] arg1 arg2"
parser = OptionParser(usage=usage)
parser.add_option("-v", "--verbose",
action="store_true", dest="verbose", default=True,
help="make lots of noise [%default]")
parser.add_option("-p", "--port",
default=4316,
help="IP Port number %default ")
parser.add_option("-a", "--address",
help="Recipient address ")
parser.add_option("-e", "--event",
default=u'Alert',
help="Action to be undertaken")
parser.add_option("-m", "--message",
help="Message to be passed for the action")
def run(self):
pass
(options, args) = parser.parse_args()
if len(args) > 0:
parser.print_help()
parser.error("incorrect number of arguments")
elif options.message is None:
parser.print_help()
parser.error("No message passed")
elif options.address is None:
parser.print_help()
parser.error("IP address missing")
else:
text = format_message(options)
sendData(options, text)
if __name__ == u'__main__':
app = OpenLPRemoteCli(sys.argv)
app.run()
main()

View File

@ -40,15 +40,17 @@ class RemotesPlugin(Plugin):
QtCore.SIGNAL(u'readyRead()'), self.readData)
def readData(self):
log.info(u'Remoted data has arrived')
while self.server.hasPendingDatagrams():
datagram, host, port = self.server.readDatagram(self.server.pendingDatagramSize())
self.handle_datagram(datagram)
def handle_datagram(self, datagram):
log.info(u'Sending event %s ', datagram)
pos = datagram.find(u':')
event = unicode(datagram[:pos])
event = unicode(datagram[:pos].lower())
payload = unicode(datagram[pos + 1:])
if event == u'Alert':
if event == u'alert':
self.event_manager.post_event(Event(EventType.TriggerAlert, u'RemotePlugin', payload))