[[TracNav(WARPLab7/TOC)]] = MATLAB Classes = A typical WARPLab experiment script contains a collection of {{{Node}}} objects and a single {{{Trigger}}} object. [[Image(typical.png,width=800)]] Attached to each {{{Node}}} is a number of different submodules: {{{Baseband}}}, {{{Interface Group}}}, {{{Transport}}}, and {{{User Extension}}}. Each of these modules are objects from different MATLAB classes. This document serves to explain each MATLAB class and what it is responsible for. === Node === [[Image(node.png,width=800)]] A {{{Node}}} is an object of the [browser:ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Reference/classes/wl_node.m wl_node class]. The primary role of the node object is to broker commands to other modules within the node and collect responses to those commands to deliver back to the user. Furthermore, the methods within the wl_node class are able to deal with vector inputs of of multiple wl_node objects, allowing automatic iteration through the provided nodes to replicate a single command provided by the user script. Beyond being the access point for users to interact with all of the modules in a WARPLab node, the wl_node class processes a few node-level commands of its own (such as [wiki:WARPLab7/Reference/Commands/Node#identify identify]-- a command to help users identify a particular node by blinking LEDs on the hardware). === Trigger === [[Image(trigger.png,width=800)]] A {{{Trigger}}} is an object from the [browser:ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Reference/classes/wl_trigger.m wl_trigger.m] abstract class. Currently, the only class that subclasses from this abstract class is [browser:ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Reference/classes/wl_trigger_eth_udp_broadcast.m wl_trigger_eth_udp_broadcast.m]. This is a simple class that contains an ID (provided by [browser:ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Reference/classes/wl_trigger_IDs.m wl_trigger_IDs.m]) and a method for sending the trigger through a broadcast {{{Transport}}} object. === Transport === [[Image(transport.png,width=800)]] === Interface === [[Image(interface.png,width=800)]] === Baseband === [[Image(baseband.png,width=800)]] == User Extension == [[Image(user.png,width=800)]]