How to save sessions

I’m using logic Pro 8 and software v2.3.47. Multiple sessions can be created at the left-bottom of the UI, but I cannot find where to save the sessions. Every time the software restarts, only session 0 is loaded.
Is it possible to save them? Thanks.
image

@jasonedn Great question! Yes, session tabs can be saved into .sal capture files as described in the support article below:

Hope this helps!

@timreyes It works, thanks

I am using 2.4.22 on Windows 11 Pro
I am having no success saving and opening my set of 12 sessions.
I have tried Save Capture, but on re-opening this capture file it opens as read-only and all 12 sessions are missing, only have default Session 0

I have tried to Save Preset. When the Preset is LOADed it says “Preset loaded!” but also does not open my sessions.
Is this a bug or am I missing something?

When you save a tab as a capture file (*.sal), it only saves the data/settings in that tab – not all tabs/sessions. When you save a preset file, it saves the settings for a given session (channels enabled/disabled, channel names, sample rates, etc.), but not the waveform data.

Sounds like you’re looking for a ‘save all open tabs’ feature vs. just one? I don’t think that currently exists other than doing it individually, one by one. What is your use case for having 12 different tabs/sessions to save/restore each time? What are you trying to do?

Hello Bob,
Thanks for getting back to me.

Our testing has at least 12 connection variants for the set of 8 Saleae probes.
During the testing I have to switch between the different test modes frequently, so I have 12 tabs open, one for each test mode.
The probes get re-allocated electrically when I switch test modes.

So yes, I am looking for a means to “save all open tabs” and then a corresponding means to “open a group of saved tabs”

For now I have saved all 12 separately. But if the PC goes to sleep, on resume from sleep the Saleae fails to recognise the Logic Pro 8, the only solution to re-connecting I have found is to do a full re-boot of the PC. This inevitably then requires that I manually load all 12 tabs, and since your software does not use the session name that is stored in the JSON file, it renames loaded sessions as “Session 0” I have to then re-name each one manually also.

There are several issues here.

  1. Application failing to see the hardware after sleep - resume, requires re-boot

  2. No feature to save and restore all open session tabs as a group

  3. Re loading a session tab is not restoring the name it was saved under despite the fact that the name does get saved in the JSON file

This is causing wasted time and productivity issues so would be grateful if some improvements could be made.

Regards
Chris

Chris Roberts​​​​

Design Engineer (Electronics) Contractor

DCA Design International

19 Church Street

Warwick

CV34 4AB

United Kingdom

T

+44 1926 507102

(Direct)

T

+44 1926 499461

(Reception)

W

www.dca-design.com

DCA Privacy Notice

This email is communicated in confidence. It is intended for the recipient only, and may not be disclosed further without the express consent of the sender. If you receive this email in error please notify the sender immediately, return the original message, and destroy any copies. Viruses - DCA Design International has taken every reasonable precaution to ensure that this message is virus-free. However, we cannot accept liability for any damage sustained as a result of software viruses. You are advised to scan all messages before opening.

​DCA Design International Limited, Registered number: 01995159, Registered in England and Wales, Registered office: 19 Church Street, Warwick, CV34 4AB

Okay, I think I understand your use case. For now, I think you could set 12 separate presets and then load each one into a separate session/tab at a time. Perhaps when Saleae adds UI control to the automation API, this could be streamlined & automated. Otherwise, you could use the automation API to capture your data, with 12 different settings or scripts for each of your configurations. This would not provide an interactive UI experience, but could automate configuration & capturing to a save file. If your probe switching can also be scripted by python, then you could possibly more fully automate your entire workflow.

I realize neither of these might be as optimal for your preferred usage, but I’ll have to defer to Saleae’s official support to comment on if/when any of your suggested improvements could be implemented. Meanwhile, you can also submit your own ideas here:
https://ideas.saleae.com/

PS: I’m just a customer & user, not an employee.

I’m working with Chris on these issues (primarily the device connection issues after system sleep) in a support ticket. However I wanted to chime in here with another suggestion i provided about configuring those 12 tabs.

The automation API (Logic2 Automation API) wasn’t designed for this, but it can be used to create 12 tabs. It can’t separate creating & configuring a tab from actually starting a recording, but you could start 12 recordings without closing them, which results in 12 open tabs. You could customize the capture settings for each tab, and include adding analyzers. Any capture mode could be used too, the capture would just need to be stopped from the API right after it was started.

For example:

from saleae import automation

# Connect to the running Logic 2 Application on port `10430`
manager = automation.Manager(port=10430)


for i in range(12):

    # Configure the capturing device to record on digital channels 0, 1, 2, and 3,
    # with a sampling rate of 10 MSa/s, and a logic level of 3.3V.
    device_configuration = automation.LogicDeviceConfiguration(
        enabled_digital_channels=[0, 1, 2, 3],
        enabled_analog_channels=[1, 2],
        digital_sample_rate=50_000_000,
        analog_sample_rate=12_500_000,
        digital_threshold_volts=3.3
    )

    # Record 5 seconds of data before stopping the capture
    capture_configuration = automation.CaptureConfiguration(
        capture_mode=automation.TimedCaptureMode(duration_seconds=0.1)
    )
    capture = manager.start_capture(device_id='F4241', device_configuration=device_configuration,
                                    capture_configuration=capture_configuration)
    capture.wait()

    # Add an analyzer to the capture
    # Note: The simulator output is not actual SPI data
    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)'
    })


# Close the connection
manager.close()