I am developing an automated test setup to do regression and long term testing of zigbee devices on a network and as part of that would like to run a continuous capture of the network traffic but not use Ember Desktop to accomplish this. There are a couple of reasons for this, first is the automated system runs on a linux box, and the other is that I only want to capture when necessary and to be able to keep the capture files small, all under the control of the test system.
I have read TS7 (Ember Debug Adapter - ISA-3 - Technical Specification), UG107 (Ember EM35x Utilities Guide for the EM35x SoC Platform) and UG110 ( EMBER® EM35X DEVELOPMENT KIT USER GUIDE ) and have seen the IP ports available, and have already written tests to capture console output from my DUT, control power and load firmware on the DUT, also how to discover ISA-3s on my network, but not how to initiate a network traffic capture.
It seems like this should be a simple operation, Ember Desktop communicates with the ISA-3 over an ethernet connection. Any help would be appreciated.
This kind of operation isn't supported by Silicon Labs and therefore isn't documented. There's a lot of detail in the TCP-based interaction with the ISA3 firmware and binary debug protocol it puts out to Ember Desktop that would need to be understood to get this to work. Also note that the packet capture being done at the ISA3 is raw bytes before any decryption, so Ember Desktop is doing all the AES-128 decryption for you in software that the PC.
A better solution would be to run Ember Desktop in a "headless" sort of mode, where it can be run via a script and perform automated capture. (Yes, I know you said you were on Linux, but ask your Silicon Labs support guys about a potential avenue for support there...)
Regarding automatic capture, this sort of scripted, "headless" operation of Ember Desktop is possible and is something that our QA team internally uses to automate tests and run verifications against parts of the product.
The first thing you'll want to do is familiarize yourself with the scripting language/command set available in the tool. You can get some rudimentary documentation (list of commands) and test your scripts via the Shell view in ISD, which is accessible by going to Window -> Show View -> Other -> Shell from the menus after launching it. Once the shell, type "help" for the basic introduction. This shell is essentially a wrapper for the BeanShell Java Interpreter (see www.beanshell.org for details), so you can also download the bsh.Interpreter package from the web and try your scripts out that way as well (although the SiliconLabs/Ember-specific class packages are rolled into Ember Desktop as com.ember.*).
Once you've got a *.bsh script file written with your commands, launch EmberDesktop (some versions call it InSightDesktop) from the command line with args like the following to get a headless execution of your shell script happening:
InSightDesktop.exe -consoleLog -nosplash -application com.ember.shell.application logFile="/tmp/myCapture.log" scriptLoc="~/myScript.bsh"
...where myScript.bsh has Ember Desktop accept a connection on a port and then sends API calls through the port.
Also see Knowledge Base article below for details on parsing the text-based event logs (exported from ED via File >> Export or accessible by renaming the *.isd file into a *.zip file and then unzipping it to access the raw *.log data inside):
Does ember still doesn't support command line options to start the auto-logging? and the above mentioned scripted way is the only option ?