MegunoLink supports a variety of controls and components that you can use when building a custom interface for your Arduino project. Some controls, such as buttons, will send serial messages to your Arduino when you click them. Others, such as gauges, just display information. Container controls, such as the group box, help you organize your user interface. A few controls, such as the MLPUIMessageProcessor, don’t have a user interface at all. They provide services, such as decoding serial messages you send from the Arduino to set the value of controls on an interface panel.
Here we summarize the most useful properties that control behavior and appearance. See Dynamic Control Layout for information on automatically resizing and positioning controls when the size of an Interface Panel changes.
Use the designer to add controls and components to an Interface Panel visualizer.
Most controls are based on WinForms controls. You can check out Microsoft’s documentation for more detail. Not all controls are supported by MegunoLink yet.
- Control – A control is an object with a user interface that you can drag onto the Interface Panel you are building.
- Component – A component is an object without a user interface that you can drag onto the Interface Panel you are building.
- Properties – A property refers to a configurable setting that a control has.
- Design-time – A design-time property is one that can only be edited using the Interface Panel Designer.
- Run-time – A run-time property can be edited using the Interface Panel Designer and requested and modified by the Arduino.
A default name is assigned automatically when the control is created but you can change a controls name to make it easier to remember what it is for. Names can include numbers, letters and the underscore (_) character. Names can’t include spaces.
Change control names using the (name) property in the property editor, or with the smart-tag attached to most controls.
|Button||Send a serial message when clicked.|
|Checkbox||The state of the checkbox can be sent when an event is raised.|
|Dynamic Label||Use this to display text or numeric information. Text in Dynamic Labels can be adjusted from the Arduino.|
|Gauge||The gauge lets you display a value sent from your Arduino on a speedometer style indicator.|
|Indicator||An LED type indicator that can be turned on and off.|
|Label||Use this to display text or numeric information. This label is fixed. If you want to adjust it from your Arduino use the Dynamic label.|
|NumericUpDown||User can enter a number or adjust it using the up and down arrows. The result can be sent when events occur such as clicking a button.|
|Open local document||Opens a local file using the default application when clicked.|
|Open Web Page||Opens a web page in the user’s default browser when clicked.|
|PictureBox||The picture box allows you to show bitmap images on the interface. You can show and hide images allowing basic annimation.|
|ProgressBar||A progress bar provides visual feedback to the user on the progress of a task. The value is typically updated by the Arduino.|
|Prompt||A component to prompt the user for information, triggered by a serial command.|
|RadioButton||Radio buttons are like checkboxes but are used in groups of 2 or more. Only one in a given group can be selected at a time. The state of a radio button can be sent when an event is raised.|
|StartProgram||A component to start a program on your computer when triggered by a serial command.|
|TextBox||User can enter text and send this when events occur.|
|Timer||The timer raises periodic events which can send messages to your Arduino.|
|TrackBarWithIndicator||A track bar provides a visual control to set a numeric value. The selected number can be sent when an event is raised.|
|Value Combo Box||A pre-defined list of items with names and values displayed in a drop-down list. The selected item name or value can be sent when events are raised.|
|ValueList||A pre-defined list of items with names and values displayed in a list. The selected item name or value can be sent when events are raised.|
Container controls are used to group controls in the Interface Panel. Grouping controls can make it easier to both understand how the user interface works and create responsive layouts. See Dynamic Control Layout for information on automatically resizing and positioning controls when the size of an Interface Panel changes.
|Group box||Provides a labelled grouping for other controls.|
|Flow layout panel||A panel that automatically lays out its contents vertically or horizontally when the control size changes.|
|Panel||Groups other controls with scrolling support when the visible size of the control is smaller than its contents.|
|Split container||A pair of containers that can be stacked vertically or horizontally and resized by the user at run-time.|
|Tab control||A container control with multiple tabs that can contain other controls.|
|Table layout panel||A panel that lays outs its contents in rows and columns.|
Communications components provide tools for communicating with your device.
|MLP UI message processor||Responds to commands sent to the Interface Panel from an Arduino sketch or other serial source.|
|Message library||Stores a collection of messages that can be sent to a serial channel.|
|Serial connection||Send a serial message when MegunoLink connects to your device.|
Visualizer controls allow you to place other MegunoLink visualizers into an Interface Panel for greater flexibility.
|Time plot||Plot serial data against time.|
|XY plot||Plot x-y serial data.|
|Property table||Table of property values received from your Arduino sketch.|
|Mapping||Display coordinates on a map.|
|Message monitor||Display filtered messages received from your Arduino sketch.|
|Raw serial monitor||Display all serial messages received from your Arduino sketch.|
|Record table||Tabulate records received from your Arduino sketch.|
See common control properties for a list of the available properties.