diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2012-06-08 12:54:08 +0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-06-10 11:32:02 +0300 |
commit | f95d221ce951cf6867559ad8fb6ae04abe363a3f (patch) | |
tree | 143c5584eb1c9af0736a2464d4acce378ad05ea9 | |
parent | c2260bf2e5d9a36b8c736488c288bd7a87685d62 (diff) | |
download | obexd-f95d221ce951cf6867559ad8fb6ae04abe363a3f.tar.gz |
test: Add progress support to ftp-client
Print transfer progress when verbose mode is enabled.
-rwxr-xr-x | test/ftp-client | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/test/ftp-client b/test/ftp-client index 39d7675..064a81a 100755 --- a/test/ftp-client +++ b/test/ftp-client @@ -35,7 +35,9 @@ def parse_options(): class FtpClient: def __init__(self, session_path, verbose=False): + self.progress = 0 self.transfer_path = None + self.transfer_size = 0 self.verbose = verbose bus = dbus.SessionBus() obj = bus.get_object("org.bluez.obex.client", session_path) @@ -49,10 +51,16 @@ class FtpClient: dbus_interface="org.bluez.obex.Transfer", signal_name="Error", path_keyword="path") + if self.verbose: + bus.add_signal_receiver(self.transfer_progress, + dbus_interface="org.bluez.obex.Transfer", + signal_name="PropertyChanged", + path_keyword="path") def create_transfer_reply(self, reply): (path, properties) = reply self.transfer_path = path + self.transfer_size = properties["Size"] if self.verbose: print "Transfer created: %s" % path @@ -77,6 +85,19 @@ class FtpClient: print "Transfer finished with error %s: %s" % (code, message) mainloop.quit() + def transfer_progress(self, prop, value, path): + if path != self.transfer_path: + return + + if prop != "Progress": + return + + speed = (value - self.progress) / 1000 + print "Transfer progress %d/%d at %d kBps" % (value, + self.transfer_size, + speed) + self.progress = value + def change_folder(self, new_dir): for node in new_dir.split("/"): self.ftp.ChangeFolder(node) @@ -136,7 +157,7 @@ if __name__ == '__main__': print "Creating Session" path = client.CreateSession(options.device, { "Target": "ftp" }) - ftp_client = FtpClient(path) + ftp_client = FtpClient(path, options.verbose) if options.new_dir: ftp_client.change_folder(options.new_dir) |