Visualisation Library - about
The Visualisation Library does not model hardware directly but instead provides components, protocols, and a library. These permit a GUI display that lets you interact with the external I/O from the model platform.
The types of I/O handled include:
- LCD display, such as the output from the PL110_CLCD component display port.
- LEDs representing values from a ValueState port as either single lights, or as segmented alphanumeric displays.
- DIP switches, which can drive a ValueState port.
- Capture of keyboard and mouse input, using the KeyboardStatus and MouseStatus protocols to feed input to a PS2Keyboard or PS2Mouse component.
- Background graphics, custom rendered graphics, and clickable push buttons, permitting the UI to provide display a skin representing the physical appearance of the device being modeled.
- Status information such as processor instruction counters, with values taken from the InstructionCount port of a processor.
The Visualisation Library provides a C++ API that enables you to write your own visualization components in LISA+. These custom components can display any combination of the supported I/O types.
You can add the prebuilt GUIPoll component to your custom component. The GUIPoll component provides a LISA visualization component with a periodic signal that keeps the display updated, even when the simulation is stopped.
An example of how to use the Visualisation API is in $PVLIB_HOME/examples/LISA/VP_PhoneSkin/. The PhoneVisualisation subcomponent uses the Visualisation API to create a GUI consisting of a status panel, two LCD panels, and some push buttons.
A prebuilt component called Visualisation is included within the platform models. This component provides a window containing a representation of a single LCD display, DIP switches, LEDs, and one or two instruction counters. The window resizes to match the timing parameters configured in the LCD controller.
The Visualisation Library supports one signaling protocol, the LCD protocol.