base: add an argument to peek at the first drawing only
Use --peek to download the first (oldest) drawing on the device but do not delete it. This is primarily intended as a debugging option, so we can debug the tablet handling without having to draw new drawings (which cause the protocol messages to change slightly). Since the tablet only has a "download oldest file" command this isn't very useful to end users. If there are two or more files on the tablet, we can only ever retrieve the oldest one. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
23989e4291
commit
e030b0b3ea
|
@ -450,9 +450,14 @@ def main(args=sys.argv):
|
||||||
help='Base directory for configuration',
|
help='Base directory for configuration',
|
||||||
type=str,
|
type=str,
|
||||||
default=DEFAULT_CONFIG_PATH)
|
default=DEFAULT_CONFIG_PATH)
|
||||||
|
parser.add_argument('--peek',
|
||||||
|
help='Download first drawing only but do not remove it from the device',
|
||||||
|
action='store_true',
|
||||||
|
default=False)
|
||||||
|
|
||||||
ns = parser.parse_args(args[1:])
|
ns = parser.parse_args(args[1:])
|
||||||
TuhiConfig.set_base_path(ns.config_dir)
|
TuhiConfig.set_base_path(ns.config_dir)
|
||||||
|
TuhiConfig().peek_at_drawing = ns.peek
|
||||||
setup_logging(ns.config_dir)
|
setup_logging(ns.config_dir)
|
||||||
|
|
||||||
if ns.verbose:
|
if ns.verbose:
|
||||||
|
|
|
@ -41,6 +41,7 @@ class TuhiConfig(GObject.Object):
|
||||||
|
|
||||||
self._devices = {}
|
self._devices = {}
|
||||||
self._scan_config_dir()
|
self._scan_config_dir()
|
||||||
|
self.peek_at_drawing = False
|
||||||
return cls._instance
|
return cls._instance
|
||||||
|
|
||||||
@GObject.Property
|
@GObject.Property
|
||||||
|
|
|
@ -46,6 +46,12 @@ class Application(Gtk.Application):
|
||||||
GLib.OptionFlags.NONE,
|
GLib.OptionFlags.NONE,
|
||||||
GLib.OptionArg.NONE,
|
GLib.OptionArg.NONE,
|
||||||
'enable verbose output')
|
'enable verbose output')
|
||||||
|
# unused, just here to have option compatibility with the tuhi
|
||||||
|
# server but we could add some GUI feedback here
|
||||||
|
self.add_main_option('peek', 0,
|
||||||
|
GLib.OptionFlags.NONE,
|
||||||
|
GLib.OptionArg.NONE,
|
||||||
|
'download first drawing only but do not remove it from the device')
|
||||||
self._tuhi = None
|
self._tuhi = None
|
||||||
|
|
||||||
def do_startup(self):
|
def do_startup(self):
|
||||||
|
|
|
@ -26,6 +26,7 @@ from .uhid import UHIDDevice
|
||||||
import tuhi.protocol
|
import tuhi.protocol
|
||||||
from tuhi.protocol import NordicData, Interactions, Mode, ProtocolVersion, StrokeFile
|
from tuhi.protocol import NordicData, Interactions, Mode, ProtocolVersion, StrokeFile
|
||||||
from .util import list2hex, flatten
|
from .util import list2hex, flatten
|
||||||
|
from tuhi.config import TuhiConfig
|
||||||
|
|
||||||
logger = logging.getLogger('tuhi.wacom')
|
logger = logging.getLogger('tuhi.wacom')
|
||||||
|
|
||||||
|
@ -745,7 +746,8 @@ class WacomProtocolBase(WacomProtocolLowLevelComm):
|
||||||
def read_offline_data(self):
|
def read_offline_data(self):
|
||||||
self.set_paper_mode()
|
self.set_paper_mode()
|
||||||
transaction_count = 0
|
transaction_count = 0
|
||||||
while self.count_available_files():
|
file_count = self.count_available_files()
|
||||||
|
while file_count > 0:
|
||||||
count, timestamp = self.get_stroke_data()
|
count, timestamp = self.get_stroke_data()
|
||||||
logger.info(f'receiving {count} bytes drawn on UTC {time.strftime("%y%m%d%H%M%S", time.gmtime(timestamp))}')
|
logger.info(f'receiving {count} bytes drawn on UTC {time.strftime("%y%m%d%H%M%S", time.gmtime(timestamp))}')
|
||||||
self.start_downloading_oldest_file()
|
self.start_downloading_oldest_file()
|
||||||
|
@ -755,6 +757,12 @@ class WacomProtocolBase(WacomProtocolLowLevelComm):
|
||||||
drawing = self.parse_pen_data(pen_data, timestamp)
|
drawing = self.parse_pen_data(pen_data, timestamp)
|
||||||
if drawing:
|
if drawing:
|
||||||
self.emit('drawing', drawing)
|
self.emit('drawing', drawing)
|
||||||
|
file_count -= 1
|
||||||
|
if TuhiConfig().peek_at_drawing:
|
||||||
|
logger.info(f'Not deleting drawing from device')
|
||||||
|
if file_count > 0:
|
||||||
|
logger.info(f'{file_count} more files on device but I can only download the oldest one')
|
||||||
|
break
|
||||||
self.delete_oldest_file()
|
self.delete_oldest_file()
|
||||||
transaction_count += 1
|
transaction_count += 1
|
||||||
return transaction_count
|
return transaction_count
|
||||||
|
|
Loading…
Reference in New Issue