Impero

Overview
Impero is an SDK for capturing the events from the Ultrasonix console devices. Impero works by connecting to the various consoles through the serial port to communicate with the hardware/firmware layers. When running the Sonix research software, note that a connection through Impero is not possible due to the research software already having the console port open.

Impero is ideal for custom programs built upon Texo or Porta, where imaging functions are taking place. The SDK can be integrated into the program to handle button events, and then relay specific actions to the Texo or Porta interface to change parameters, etc.

PDF Download
Download all Impero SDK documentation as a PDF

Button Identifiers
In the example program for Impero, the callback function receives a pointer void * data, that points to the information, about which button or dial on the panel has started the callback. In the figure below, the values that are expected from the pointer as interpreted as an unsigned integer, are shown over each button control. Note that the Sonix RP layout is also valid for the Sonix MDP system, though the Sonix MDP has one additional dial control near the touchscreen.





Programming
The following pseudo-code gives an idea of how to use Impero:

void main { // setup program startThread(eventThread) impero->connect(port) impero->setCallback(onButton) }

void onButton(type, data) { // check for freeze button push if (type == imperoEventPush && data == freezeButton) {   SetEvent(freezeEvent) } }

void eventThread { while(1) {   // block until freeze event is set WaitForEvent(freezeEvent) // Texo or Porta could be used here to toggle imaging status ImagingSDK->toggleFreeze; } }