saleae / logic2-automation

Logic2 Automation API
https://saleae.github.io/logic2-automation/
Apache License 2.0
19 stars 8 forks source link

When `export_raw_data_csv` or `export_raw_data_binary` is called with non-existent direcroy, no Python exception and wrong Logic GUI error message #45

Open pfroud opened 4 months ago

pfroud commented 4 months ago
from saleae import automation
with automation.Manager.connect() as manager:
    device_configuration = automation.LogicDeviceConfiguration(
        enabled_digital_channels=[0, 1, 2, 3],
        digital_sample_rate=10_000_000
    )
    capture_configuration = automation.CaptureConfiguration(
        capture_mode=automation.TimedCaptureMode(duration_seconds=1.0)
    )
    with manager.start_capture(
            device_id='F4241',
            device_configuration=device_configuration,
            capture_configuration=capture_configuration) as capture:
        capture.wait()
        spi_analyzer = capture.add_analyzer('SPI', label=f'Test Analyzer', settings={
            'MISO': 0,
            'Clock': 1,
            'Enable': 2,
            'Bits per Transfer': '8 Bits per Transfer (Standard)'
        })
        capture.export_raw_data_csv(directory="non_existent_directory", digital_channels=[0, 1, 2, 3])
        # the same behavior happens if you call capture.export_raw_data_binary("non_existent_directory")

The Logic GUI shows a popup message which says "failed to create directory":

"failed to create directory" message

but I think the error message should say "directory not found" because in capture.py it says:

https://github.com/saleae/logic2-automation/blob/6b1aceb00cb473dc0d3bef954a634d6cc8603d95/python/saleae/automation/capture.py#L270

Also, the Python program does not throw an exception.

Logic version information:

{"Environment":"production","Branch":"master","Commit":"a59be960fd362c11b73b4cb5105f39676631e868","Version":"2.4.14","AutomationVersion":"1.0.0","MachineID":"19aa4ba2-11aa-4b08-86cc-ecac4ec55058","PID":3572,"LaunchId":"1dd197ae-82fd-4a00-b21f-a8744627229e","Architecture":"x64"}