The socket API can be used to automate the process of taking a capture, saving it, and exporting protocol results. However, it cannot be used to add, remove, or configure protocol analyzers.
In order to manage protocol analyzers using the socket API, *.logicsettings files must be used.
*.logicsettings and *.logicdata files can be loaded using the Socket API through the LOADFROMFILE command. the LOADFROMFILE command can be used to open a file through the socket.
The simplest way to use protocol analyzers and the socket API is to simply manually setup the software with all settings and analyzers before starting the automation application.
However, if it is necessary to switch between different protocol analyzers, or change analyzer settings, this can be done by creating one *.logicsettings file for each configuration. Then, the automation application can load the correct settings file before executing the export command.
Unfortunately, there is no way to edit the settings individually. If you need to edit one setting and it's not possible to produce a complete set of *.logicsettings files for every scenario, there is one other possible option. The *.logicsettings files are saved in a binary format, but each analyzer stores its settings in a plain ASCII string inside of the settings file. Look for the name of the analyzer using a text editor like Notepad++, After the name (and several non displayable characters) you will find a string, possibly like this one:
[22 serialization::archive 10 25 SaleaeAsyncSerialAnalyzer 0 21 19986 0 1 9600 8 1 0 1 0 0 0
The analyzer settings are saved in that string. You can either save several *.logicsettings file to guess which value corresponds to which setting, or you can download the source code to all of the analyzers here: Protocol Analyzer SDK. (see AnalyzerSettings::SaveSettings() for details) Be careful when editing the file from your application to preserve all other characters in the file. Also the length of the string might be serialized in binary, so changing the length of the string could be difficult.
trello ID: 5632509ed209e3ccce1d11a1